Version 2.14.0-205.0.dev

Merge commit '91cde7d4bf10860b72ce45c91edf96fb98af1ef0' into 'dev'
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index d354751..df8d575 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -82,7 +82,7 @@
 /// TODO(scheglov) Clean up the list of implicitly analyzed files.
 class AnalysisDriver implements AnalysisDriverGeneric {
   /// The version of data format, should be incremented on every format change.
-  static const int DATA_VERSION = 147;
+  static const int DATA_VERSION = 148;
 
   /// The number of exception contexts allowed to write. Once this field is
   /// zero, we stop writing any new exception contexts in this process.
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
index 3686719..9850164 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
@@ -740,9 +740,10 @@
   }
 
   InterpolationString _readInterpolationString() {
+    var lexeme = _readStringReference();
     var value = _readStringReference();
     return astFactory.interpolationString(
-      TokenFactory.tokenFromString(value),
+      TokenFactory.tokenFromString(lexeme),
       value,
     );
   }
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
index 7ae8243..3578bc6 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
@@ -425,6 +425,7 @@
   @override
   void visitInterpolationString(InterpolationString node) {
     _writeByte(Tag.InterpolationString);
+    _writeStringReference(node.contents.lexeme);
     _writeStringReference(node.value);
   }
 
diff --git a/pkg/analyzer/lib/src/summary2/informative_data.dart b/pkg/analyzer/lib/src/summary2/informative_data.dart
index ba09c74..259d681 100644
--- a/pkg/analyzer/lib/src/summary2/informative_data.dart
+++ b/pkg/analyzer/lib/src/summary2/informative_data.dart
@@ -1766,6 +1766,18 @@
   }
 
   @override
+  void visitInterpolationExpression(InterpolationExpression node) {
+    _tokenOrNull(node.leftBracket);
+    _tokenOrNull(node.rightBracket);
+    super.visitInterpolationExpression(node);
+  }
+
+  @override
+  void visitInterpolationString(InterpolationString node) {
+    _tokenOrNull(node.contents);
+  }
+
+  @override
   void visitIsExpression(IsExpression node) {
     _tokenOrNull(node.isOperator);
     super.visitIsExpression(node);
diff --git a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
index 519b2e3..ea5951a 100644
--- a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
+++ b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
@@ -854,6 +854,8 @@
     _withIndent(() {
       var properties = _Properties();
       properties.addNode('expression', node.expression);
+      properties.addToken('leftBracket', node.leftBracket);
+      properties.addToken('rightBracket', node.rightBracket);
       _addInterpolationElement(properties, node);
       _writeProperties(properties);
     });
diff --git a/pkg/analyzer/test/src/summary/resynthesize_common.dart b/pkg/analyzer/test/src/summary/resynthesize_common.dart
index 9db2bbc..0dc788c 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_common.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_common.dart
@@ -10702,19 +10702,23 @@
           StringInterpolation
             elements
               InterpolationString
-                contents: aaa  @0
+                contents: 'aaa  @341
               InterpolationExpression
                 expression: BooleanLiteral
                   literal: true @348
                   staticType: bool
+                leftBracket: ${ @346
+                rightBracket: } @352
               InterpolationString
-                contents:   @0
+                contents:   @353
               InterpolationExpression
                 expression: IntegerLiteral
                   literal: 42 @356
                   staticType: int
+                leftBracket: ${ @354
+                rightBracket: } @358
               InterpolationString
-                contents:  bbb @0
+                contents:  bbb' @359
             staticType: null
             stringValue: null
       static const vSymbol @372
diff --git a/tools/VERSION b/tools/VERSION
index 7c86e03..9ed9fd4 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 14
 PATCH 0
-PRERELEASE 204
+PRERELEASE 205
 PRERELEASE_PATCH 0
\ No newline at end of file