Revert string interp (#49602)

diff --git a/dev/bots/unpublish_package.dart b/dev/bots/unpublish_package.dart
index 5385ec2..581cd8f 100644
--- a/dev/bots/unpublish_package.dart
+++ b/dev/bots/unpublish_package.dart
@@ -391,7 +391,7 @@
   final String banner = '*** $message ***';
   print('\n');
   print('*' * banner.length);
-  print(banner);
+  print('$banner');
   print('*' * banner.length);
   print('\n');
 }
diff --git a/dev/customer_testing/run_tests.dart b/dev/customer_testing/run_tests.dart
index 4a662ba..62133a4 100644
--- a/dev/customer_testing/run_tests.dart
+++ b/dev/customer_testing/run_tests.dart
@@ -272,7 +272,7 @@
     print('>> $command');
   Process process;
   if (Platform.isWindows) {
-    process = await Process.start('CMD.EXE', <String>['/S', '/C', command], workingDirectory: directory.path);
+    process = await Process.start('CMD.EXE', <String>['/S', '/C', '$command'], workingDirectory: directory.path);
   } else {
     final List<String> segments = command.trim().split(_spaces);
     process = await Process.start(segments.first, segments.skip(1).toList(), workingDirectory: directory.path);
diff --git a/dev/devicelab/bin/tasks/named_isolates_test.dart b/dev/devicelab/bin/tasks/named_isolates_test.dart
index af0bf60..acfa1cd 100644
--- a/dev/devicelab/bin/tasks/named_isolates_test.dart
+++ b/dev/devicelab/bin/tasks/named_isolates_test.dart
@@ -51,7 +51,7 @@
     print('Extracted observatory port: $observatoryUri');
     final Process attachProcess =
       await _run(device: device, command: <String>['attach', '--debug-uri',
-          observatoryUri, '--isolate-filter', _kSecondIsolateName], stdoutListener: (String line) {
+          observatoryUri, '--isolate-filter', '$_kSecondIsolateName'], stdoutListener: (String line) {
         if (line.contains(_kFirstIsolateName)) {
           firstNameFound.complete();
         } else if (line.contains(_kSecondIsolateName)) {
diff --git a/dev/integration_tests/release_smoke_test/lib/main.dart b/dev/integration_tests/release_smoke_test/lib/main.dart
index d45b047..c2106a0 100644
--- a/dev/integration_tests/release_smoke_test/lib/main.dart
+++ b/dev/integration_tests/release_smoke_test/lib/main.dart
@@ -2,18 +2,28 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import 'dart:convert' show utf8;
+
+import 'package:flutter/foundation.dart';
 import 'package:flutter/widgets.dart';
 
-void main() {
+Future<void> main() async {
   const Text text = Text('Hello, world!', textDirection: TextDirection.ltr);
   // These calls must not result in an error. They behave differently in
   // release mode compared to debug or profile.
   // The test will grep logcat for any errors emitted by Flutter.
   print(text.toDiagnosticsNode());
   print(text.toStringDeep());
+  // regression test for https://github.com/flutter/flutter/issues/49601
+  final List<int> computed = await compute(_utf8Encode, 'test', debugLabel: null);
+  print(computed);
   runApp(
     const Center(
       child: text,
     ),
   );
 }
+
+List<int> _utf8Encode(String data) {
+  return utf8.encode(data);
+}
diff --git a/dev/manual_tests/lib/density.dart b/dev/manual_tests/lib/density.dart
index b49d4d4..6c94ffc 100644
--- a/dev/manual_tests/lib/density.dart
+++ b/dev/manual_tests/lib/density.dart
@@ -246,7 +246,7 @@
                       ),
                     ),
                     Text(
-                      widget.model.size.toStringAsFixed(3),
+                      '${widget.model.size.toStringAsFixed(3)}',
                       style: TextStyle(color: Colors.grey[50]),
                     ),
                   ],
@@ -261,7 +261,7 @@
                       child: SliderTheme(
                         data: controlTheme,
                         child: Slider(
-                          label: widget.model.density.horizontal.toStringAsFixed(1),
+                          label: '${widget.model.density.horizontal.toStringAsFixed(1)}',
                           min: VisualDensity.minimumDensity,
                           max: VisualDensity.maximumDensity,
                           onChanged: (double value) {
@@ -272,7 +272,7 @@
                       ),
                     ),
                     Text(
-                      widget.model.density.horizontal.toStringAsFixed(3),
+                      '${widget.model.density.horizontal.toStringAsFixed(3)}',
                       style: TextStyle(color: Colors.grey[50]),
                     ),
                   ],
@@ -287,7 +287,7 @@
                       child: SliderTheme(
                         data: controlTheme,
                         child: Slider(
-                          label: widget.model.density.vertical.toStringAsFixed(1),
+                          label: '${widget.model.density.vertical.toStringAsFixed(1)}',
                           min: VisualDensity.minimumDensity,
                           max: VisualDensity.maximumDensity,
                           onChanged: (double value) {
@@ -298,7 +298,7 @@
                       ),
                     ),
                     Text(
-                      widget.model.density.vertical.toStringAsFixed(3),
+                      '${widget.model.density.vertical.toStringAsFixed(3)}',
                       style: TextStyle(color: Colors.grey[50]),
                     ),
                   ],
diff --git a/dev/tools/gen_keycodes/lib/code_gen.dart b/dev/tools/gen_keycodes/lib/code_gen.dart
index 7d80476..c7f006a 100644
--- a/dev/tools/gen_keycodes/lib/code_gen.dart
+++ b/dev/tools/gen_keycodes/lib/code_gen.dart
@@ -25,7 +25,7 @@
         currentLine += ' $word';
       } else {
         result.writeln('$prefix$currentLine');
-        currentLine = word;
+        currentLine = '$word';
       }
     }
     if (currentLine.isNotEmpty) {
diff --git a/dev/tools/localization/localizations_utils.dart b/dev/tools/localization/localizations_utils.dart
index 4c0ae2c..9813d43 100644
--- a/dev/tools/localization/localizations_utils.dart
+++ b/dev/tools/localization/localizations_utils.dart
@@ -339,7 +339,7 @@
   assert(subtags.isNotEmpty);
   assert(_languages.containsKey(subtags[0]));
   final String language = _languages[subtags[0]];
-  String output = language;
+  String output = '$language';
   String region;
   String script;
   if (subtags.length == 2) {
diff --git a/examples/catalog/bin/sample_page.dart b/examples/catalog/bin/sample_page.dart
index 6e1ae65..852e718 100644
--- a/examples/catalog/bin/sample_page.dart
+++ b/examples/catalog/bin/sample_page.dart
@@ -202,7 +202,7 @@
       outputFile('${className}_index.md'),
       inputFile('bin', 'class_index.md.template').readAsStringSync(),
       <String, String>{
-        'class': className,
+        'class': '$className',
         'entries': entries.join('\n'),
         'link': '${className}_index',
       },
diff --git a/examples/flutter_gallery/lib/demo/material/data_table_demo.dart b/examples/flutter_gallery/lib/demo/material/data_table_demo.dart
index 507c181..da59408 100644
--- a/examples/flutter_gallery/lib/demo/material/data_table_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/data_table_demo.dart
@@ -113,11 +113,11 @@
         }
       },
       cells: <DataCell>[
-        DataCell(Text(dessert.name)),
+        DataCell(Text('${dessert.name}')),
         DataCell(Text('${dessert.calories}')),
-        DataCell(Text(dessert.fat.toStringAsFixed(1))),
+        DataCell(Text('${dessert.fat.toStringAsFixed(1)}')),
         DataCell(Text('${dessert.carbs}')),
-        DataCell(Text(dessert.protein.toStringAsFixed(1))),
+        DataCell(Text('${dessert.protein.toStringAsFixed(1)}')),
         DataCell(Text('${dessert.sodium}')),
         DataCell(Text('${dessert.calcium}%')),
         DataCell(Text('${dessert.iron}%')),
diff --git a/examples/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart b/examples/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart
index a3a6eeb..775a688 100644
--- a/examples/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart
@@ -83,7 +83,7 @@
               },
               child: Row(
                 children: <Widget>[
-                  Text(time.format(context)),
+                  Text('${time.format(context)}'),
                   const Icon(Icons.arrow_drop_down, color: Colors.black54),
                 ],
               ),
diff --git a/examples/flutter_gallery/lib/demo/material/tabs_demo.dart b/examples/flutter_gallery/lib/demo/material/tabs_demo.dart
index 9cef2c0..d1ec375 100644
--- a/examples/flutter_gallery/lib/demo/material/tabs_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/tabs_demo.dart
@@ -113,7 +113,7 @@
               alignment: page.id == 'H'
                 ? Alignment.centerLeft
                 : Alignment.centerRight,
-              child: CircleAvatar(child: Text(page.id)),
+              child: CircleAvatar(child: Text('${page.id}')),
             ),
             SizedBox(
               width: 144.0,
diff --git a/examples/flutter_gallery/lib/gallery/options.dart b/examples/flutter_gallery/lib/gallery/options.dart
index 0bb4765..a3b57c0 100644
--- a/examples/flutter_gallery/lib/gallery/options.dart
+++ b/examples/flutter_gallery/lib/gallery/options.dart
@@ -231,7 +231,7 @@
               children: <Widget>[
                 const Text('Theme'),
                 Text(
-                  modeLabels[options.themeMode],
+                  '${modeLabels[options.themeMode]}',
                   style: Theme.of(context).primaryTextTheme.bodyText2,
                 ),
               ],
@@ -278,7 +278,7 @@
               children: <Widget>[
                 const Text('Text size'),
                 Text(
-                  options.textScaleFactor.label,
+                  '${options.textScaleFactor.label}',
                   style: Theme.of(context).primaryTextTheme.bodyText2,
                 ),
               ],
@@ -324,7 +324,7 @@
               children: <Widget>[
                 const Text('Visual density'),
                 Text(
-                  options.visualDensity.label,
+                  '${options.visualDensity.label}',
                   style: Theme.of(context).primaryTextTheme.bodyText2,
                 ),
               ],
@@ -431,7 +431,7 @@
               children: <Widget>[
                 const Text('Platform mechanics'),
                  Text(
-                   _platformLabel(options.platform),
+                   '${_platformLabel(options.platform)}',
                    style: Theme.of(context).primaryTextTheme.bodyText2,
                  ),
               ],
diff --git a/examples/stocks/lib/stock_symbol_viewer.dart b/examples/stocks/lib/stock_symbol_viewer.dart
index 88a2f8e..e375ace 100644
--- a/examples/stocks/lib/stock_symbol_viewer.dart
+++ b/examples/stocks/lib/stock_symbol_viewer.dart
@@ -29,7 +29,7 @@
           Row(
             children: <Widget>[
               Text(
-                stock.symbol,
+                '${stock.symbol}',
                 key: ValueKey<String>('${stock.symbol}_symbol_name'),
                 style: Theme.of(context).textTheme.headline3,
               ),
@@ -43,7 +43,7 @@
             height: 8.0
           ),
           Text('Market Cap', style: headings),
-          Text(stock.marketCap),
+          Text('${stock.marketCap}'),
           Container(
             height: 8.0
           ),
diff --git a/packages/flutter/lib/src/animation/animation.dart b/packages/flutter/lib/src/animation/animation.dart
index b1cfaa3..9f67855 100644
--- a/packages/flutter/lib/src/animation/animation.dart
+++ b/packages/flutter/lib/src/animation/animation.dart
@@ -207,6 +207,6 @@
         break;
     }
     assert(icon != null);
-    return icon;
+    return '$icon';
   }
 }
diff --git a/packages/flutter/lib/src/animation/curves.dart b/packages/flutter/lib/src/animation/curves.dart
index 707ee10..6d52f1e 100644
--- a/packages/flutter/lib/src/animation/curves.dart
+++ b/packages/flutter/lib/src/animation/curves.dart
@@ -46,7 +46,7 @@
   }
 
   @override
-  String toString() => objectRuntimeType(this, 'ParametricCurve');
+  String toString() => '${objectRuntimeType(this, 'ParametricCurve')}';
 }
 
 /// An parametric animation easing curve, i.e. a mapping of the unit interval to
diff --git a/packages/flutter/lib/src/foundation/_isolates_io.dart b/packages/flutter/lib/src/foundation/_isolates_io.dart
index 37e3265..6c65264 100644
--- a/packages/flutter/lib/src/foundation/_isolates_io.dart
+++ b/packages/flutter/lib/src/foundation/_isolates_io.dart
@@ -80,7 +80,7 @@
 Future<void> _spawn<Q, R>(_IsolateConfiguration<Q, FutureOr<R>> configuration) async {
   R result;
   await Timeline.timeSync(
-    configuration.debugLabel,
+    '${configuration.debugLabel}',
     () async {
       final FutureOr<R> applicationResult = await configuration.apply();
       result = await applicationResult;
diff --git a/packages/flutter/lib/src/foundation/assertions.dart b/packages/flutter/lib/src/foundation/assertions.dart
index 34a9c54..9154267 100644
--- a/packages/flutter/lib/src/foundation/assertions.dart
+++ b/packages/flutter/lib/src/foundation/assertions.dart
@@ -381,7 +381,7 @@
       debugFillProperties(builder);
       summary = builder.properties.firstWhere((DiagnosticsNode node) => node.level == DiagnosticLevel.summary, orElse: () => null);
     }
-    return summary ?? ErrorSummary(formatException());
+    return summary ?? ErrorSummary('${formatException()}');
   }
 
   @override
@@ -415,7 +415,7 @@
         String message = exceptionAsString();
         if (message.startsWith(prefix))
           message = message.substring(prefix.length);
-        properties.add(ErrorSummary(message));
+        properties.add(ErrorSummary('$message'));
       }
     }
 
diff --git a/packages/flutter/lib/src/foundation/diagnostics.dart b/packages/flutter/lib/src/foundation/diagnostics.dart
index 5635558..118e1d0 100644
--- a/packages/flutter/lib/src/foundation/diagnostics.dart
+++ b/packages/flutter/lib/src/foundation/diagnostics.dart
@@ -1277,7 +1277,7 @@
         // with cases where a single line properties output may not have single
         // linebreak.
         final String propertyRender = render(property,
-          prefixLineOne: propertyStyle.prefixLineOne,
+          prefixLineOne: '${propertyStyle.prefixLineOne}',
           prefixOtherLines: '${propertyStyle.childLinkSpace}${propertyStyle.prefixOtherLines}',
           parentConfiguration: config,
         );
@@ -1306,7 +1306,7 @@
     if (!config.lineBreakProperties)
       builder.write(config.lineBreak);
 
-    final String prefixChildren = config.bodyIndent;
+    final String prefixChildren = '${config.bodyIndent}';
     final String prefixChildrenRaw = '$prefixOtherLines$prefixChildren';
     if (children.isEmpty &&
         config.addBlankLineIfNoChildren &&
diff --git a/packages/flutter/lib/src/gestures/mouse_tracking.dart b/packages/flutter/lib/src/gestures/mouse_tracking.dart
index 0094ce8..871e3ad 100644
--- a/packages/flutter/lib/src/gestures/mouse_tracking.dart
+++ b/packages/flutter/lib/src/gestures/mouse_tracking.dart
@@ -174,7 +174,7 @@
   @override
   String toString() {
     String describeEvent(PointerEvent event) {
-      return event == null ? 'null' : describeIdentity(event);
+      return event == null ? 'null' : '${describeIdentity(event)}';
     }
     final String describeLatestEvent = 'latestEvent: ${describeEvent(latestEvent)}';
     final String describeAnnotations = 'annotations: [list of ${annotations.length}]';
diff --git a/packages/flutter/lib/src/material/floating_action_button_location.dart b/packages/flutter/lib/src/material/floating_action_button_location.dart
index fd1ec08..533eaf2 100644
--- a/packages/flutter/lib/src/material/floating_action_button_location.dart
+++ b/packages/flutter/lib/src/material/floating_action_button_location.dart
@@ -122,7 +122,7 @@
   Offset getOffset(ScaffoldPrelayoutGeometry scaffoldGeometry);
 
   @override
-  String toString() => objectRuntimeType(this, 'FloatingActionButtonLocation');
+  String toString() => '${objectRuntimeType(this, 'FloatingActionButtonLocation')}';
 }
 
 double _leftOffset(ScaffoldPrelayoutGeometry scaffoldGeometry, { double offset = 0.0 }) {
@@ -407,7 +407,7 @@
   double getAnimationRestart(double previousValue) => 0.0;
 
   @override
-  String toString() => objectRuntimeType(this, 'FloatingActionButtonAnimator');
+  String toString() => '${objectRuntimeType(this, 'FloatingActionButtonAnimator')}';
 }
 
 class _ScalingFabMotionAnimator extends FloatingActionButtonAnimator {
diff --git a/packages/flutter/lib/src/painting/decoration.dart b/packages/flutter/lib/src/painting/decoration.dart
index a629ce7..03e665a 100644
--- a/packages/flutter/lib/src/painting/decoration.dart
+++ b/packages/flutter/lib/src/painting/decoration.dart
@@ -26,7 +26,7 @@
   const Decoration();
 
   @override
-  String toStringShort() => objectRuntimeType(this, 'Decoration');
+  String toStringShort() => '${objectRuntimeType(this, 'Decoration')}';
 
   /// In checked mode, throws an exception if the object is not in a
   /// valid configuration. Otherwise, returns true.
diff --git a/packages/flutter/lib/src/painting/strut_style.dart b/packages/flutter/lib/src/painting/strut_style.dart
index 2cd5b3e..66f7186 100644
--- a/packages/flutter/lib/src/painting/strut_style.dart
+++ b/packages/flutter/lib/src/painting/strut_style.dart
@@ -571,7 +571,7 @@
   }
 
   @override
-  String toStringShort() => objectRuntimeType(this, 'StrutStyle');
+  String toStringShort() => '${objectRuntimeType(this, 'StrutStyle')}';
 
   /// Adds all properties prefixing property names with the optional `prefix`.
   @override
diff --git a/packages/flutter/lib/src/painting/text_span.dart b/packages/flutter/lib/src/painting/text_span.dart
index 2387294..a174b4c 100644
--- a/packages/flutter/lib/src/painting/text_span.dart
+++ b/packages/flutter/lib/src/painting/text_span.dart
@@ -440,7 +440,7 @@
   );
 
   @override
-  String toStringShort() => objectRuntimeType(this, 'TextSpan');
+  String toStringShort() => '${objectRuntimeType(this, 'TextSpan')}';
 
   @override
   void debugFillProperties(DiagnosticPropertiesBuilder properties) {
diff --git a/packages/flutter/lib/src/painting/text_style.dart b/packages/flutter/lib/src/painting/text_style.dart
index f84063f..be50003 100644
--- a/packages/flutter/lib/src/painting/text_style.dart
+++ b/packages/flutter/lib/src/painting/text_style.dart
@@ -1195,7 +1195,7 @@
   }
 
   @override
-  String toStringShort() => objectRuntimeType(this, 'TextStyle');
+  String toStringShort() => '${objectRuntimeType(this, 'TextStyle')}';
 
   /// Adds all properties prefixing property names with the optional `prefix`.
   @override
diff --git a/packages/flutter/lib/src/physics/simulation.dart b/packages/flutter/lib/src/physics/simulation.dart
index fc67321..9a9f665 100644
--- a/packages/flutter/lib/src/physics/simulation.dart
+++ b/packages/flutter/lib/src/physics/simulation.dart
@@ -54,5 +54,5 @@
   Tolerance tolerance;
 
   @override
-  String toString() => objectRuntimeType(this, 'Simulation');
+  String toString() => '${objectRuntimeType(this, 'Simulation')}';
 }
diff --git a/packages/flutter/lib/src/rendering/custom_layout.dart b/packages/flutter/lib/src/rendering/custom_layout.dart
index 71dd112..af8ee03 100644
--- a/packages/flutter/lib/src/rendering/custom_layout.dart
+++ b/packages/flutter/lib/src/rendering/custom_layout.dart
@@ -294,7 +294,7 @@
   ///
   /// By default, returns the [runtimeType] of the class.
   @override
-  String toString() => objectRuntimeType(this, 'MultiChildLayoutDelegate');
+  String toString() => '${objectRuntimeType(this, 'MultiChildLayoutDelegate')}';
 }
 
 /// Defers the layout of multiple children to a delegate.
diff --git a/packages/flutter/lib/src/rendering/flow.dart b/packages/flutter/lib/src/rendering/flow.dart
index 15b1447..dcc9d53 100644
--- a/packages/flutter/lib/src/rendering/flow.dart
+++ b/packages/flutter/lib/src/rendering/flow.dart
@@ -132,7 +132,7 @@
   ///
   /// By default, returns the [runtimeType] of the class.
   @override
-  String toString() => objectRuntimeType(this, 'FlowDelegate');
+  String toString() => '${objectRuntimeType(this, 'FlowDelegate')}';
 }
 
 /// Parent data for use with [RenderFlow].
diff --git a/packages/flutter/lib/src/rendering/proxy_box.dart b/packages/flutter/lib/src/rendering/proxy_box.dart
index 8553064..afa7b56 100644
--- a/packages/flutter/lib/src/rendering/proxy_box.dart
+++ b/packages/flutter/lib/src/rendering/proxy_box.dart
@@ -1138,7 +1138,7 @@
   bool shouldReclip(covariant CustomClipper<T> oldClipper);
 
   @override
-  String toString() => objectRuntimeType(this, 'CustomClipper');
+  String toString() => '${objectRuntimeType(this, 'CustomClipper')}';
 }
 
 /// A [CustomClipper] that clips to the outer path of a [ShapeBorder].
diff --git a/packages/flutter/lib/src/rendering/sliver.dart b/packages/flutter/lib/src/rendering/sliver.dart
index bd3be14..d56720c 100644
--- a/packages/flutter/lib/src/rendering/sliver.dart
+++ b/packages/flutter/lib/src/rendering/sliver.dart
@@ -759,7 +759,7 @@
   }
 
   @override
-  String toStringShort() => objectRuntimeType(this, 'SliverGeometry');
+  String toStringShort() => '${objectRuntimeType(this, 'SliverGeometry')}';
 
   @override
   void debugFillProperties(DiagnosticPropertiesBuilder properties) {
diff --git a/packages/flutter/lib/src/rendering/table.dart b/packages/flutter/lib/src/rendering/table.dart
index f627f95..b7ca6c4 100644
--- a/packages/flutter/lib/src/rendering/table.dart
+++ b/packages/flutter/lib/src/rendering/table.dart
@@ -76,7 +76,7 @@
   double flex(Iterable<RenderBox> cells) => null;
 
   @override
-  String toString() => objectRuntimeType(this, 'TableColumnWidth');
+  String toString() => '${objectRuntimeType(this, 'TableColumnWidth')}';
 }
 
 /// Sizes the column according to the intrinsic dimensions of all the
diff --git a/packages/flutter/lib/src/semantics/semantics.dart b/packages/flutter/lib/src/semantics/semantics.dart
index 148a473..495b4ae 100644
--- a/packages/flutter/lib/src/semantics/semantics.dart
+++ b/packages/flutter/lib/src/semantics/semantics.dart
@@ -376,7 +376,7 @@
   bool hasAction(SemanticsAction action) => (actions & action.index) != 0;
 
   @override
-  String toStringShort() => objectRuntimeType(this, 'SemanticsData');
+  String toStringShort() => '${objectRuntimeType(this, 'SemanticsData')}';
 
   @override
   void debugFillProperties(DiagnosticPropertiesBuilder properties) {
@@ -1150,7 +1150,7 @@
   }
 
   @override
-  String toStringShort() => objectRuntimeType(this, 'SemanticsProperties'); // the hashCode isn't important since we're immutable
+  String toStringShort() => '${objectRuntimeType(this, 'SemanticsProperties')}'; // the hashCode isn't important since we're immutable
 }
 
 /// In tests use this function to reset the counter used to generate
diff --git a/packages/flutter/lib/src/widgets/basic.dart b/packages/flutter/lib/src/widgets/basic.dart
index 56981da..4ea531b 100644
--- a/packages/flutter/lib/src/widgets/basic.dart
+++ b/packages/flutter/lib/src/widgets/basic.dart
@@ -2099,9 +2099,9 @@
     } else if (width == 0.0 && height == 0.0) {
       type = '${objectRuntimeType(this, 'SizedBox')}.shrink';
     } else {
-      type = objectRuntimeType(this, 'SizedBox');
+      type = '${objectRuntimeType(this, 'SizedBox')}';
     }
-    return key == null ? type : '$type-$key';
+    return key == null ? '$type' : '$type-$key';
   }
 
   @override
diff --git a/packages/flutter/lib/src/widgets/debug.dart b/packages/flutter/lib/src/widgets/debug.dart
index e613747..79a8746 100644
--- a/packages/flutter/lib/src/widgets/debug.dart
+++ b/packages/flutter/lib/src/widgets/debug.dart
@@ -315,7 +315,7 @@
         debugPrintGlobalKeyedWidgetLifecycle ||
         debugProfileBuildsEnabled ||
         debugHighlightDeprecatedWidgets) {
-      throw FlutterError.fromParts(<DiagnosticsNode>[ErrorSummary(reason)]);
+      throw FlutterError.fromParts(<DiagnosticsNode>[ErrorSummary('$reason')]);
     }
     return true;
   }());
diff --git a/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart b/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart
index 7534964..71d3b29 100644
--- a/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart
+++ b/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart
@@ -476,7 +476,7 @@
     );
 
     final AnimationController ballisticController = AnimationController.unbounded(
-      debugLabel: objectRuntimeType(this, '_DraggableScrollableSheetPosition'),
+      debugLabel: '${objectRuntimeType(this, '_DraggableScrollableSheetPosition')}',
       vsync: context.vsync,
     );
     double lastDelta = 0;
diff --git a/packages/flutter/lib/src/widgets/framework.dart b/packages/flutter/lib/src/widgets/framework.dart
index 3b6ef7d..f63eb78 100644
--- a/packages/flutter/lib/src/widgets/framework.dart
+++ b/packages/flutter/lib/src/widgets/framework.dart
@@ -442,8 +442,7 @@
   /// A short, textual description of this widget.
   @override
   String toStringShort() {
-    final String type = objectRuntimeType(this, 'Widget');
-    return key == null ? type : '$type-$key';
+    return key == null ? '${objectRuntimeType(this, 'Widget')}' : '${objectRuntimeType(this, 'Widget')}-$key';
   }
 
   @override
@@ -3897,7 +3896,7 @@
   /// A short, textual description of this element.
   @override
   String toStringShort() {
-    return widget != null ? widget.toStringShort() : '[${objectRuntimeType(this, 'Element')}]';
+    return widget != null ? '${widget.toStringShort()}' : '[${objectRuntimeType(this, 'Element')}]';
   }
 
   @override
diff --git a/packages/flutter/lib/src/widgets/implicit_animations.dart b/packages/flutter/lib/src/widgets/implicit_animations.dart
index a6ba536..efd31e1 100644
--- a/packages/flutter/lib/src/widgets/implicit_animations.dart
+++ b/packages/flutter/lib/src/widgets/implicit_animations.dart
@@ -360,7 +360,7 @@
     super.initState();
     _controller = AnimationController(
       duration: widget.duration,
-      debugLabel: kDebugMode ? widget.toStringShort() : null,
+      debugLabel: kDebugMode ? '${widget.toStringShort()}' : null,
       vsync: this,
     );
     _controller.addStatusListener((AnimationStatus status) {
diff --git a/packages/flutter/lib/src/widgets/routes.dart b/packages/flutter/lib/src/widgets/routes.dart
index c959b52..e0e5073 100644
--- a/packages/flutter/lib/src/widgets/routes.dart
+++ b/packages/flutter/lib/src/widgets/routes.dart
@@ -354,7 +354,7 @@
   }
 
   /// A short description of this route useful for debugging.
-  String get debugLabel => objectRuntimeType(this, 'TransitionRoute');
+  String get debugLabel => '${objectRuntimeType(this, 'TransitionRoute')}';
 
   @override
   String toString() => '${objectRuntimeType(this, 'TransitionRoute')}(animation: $_controller)';
diff --git a/packages/flutter/lib/src/widgets/scroll_activity.dart b/packages/flutter/lib/src/widgets/scroll_activity.dart
index 0ce728c..3487ecf 100644
--- a/packages/flutter/lib/src/widgets/scroll_activity.dart
+++ b/packages/flutter/lib/src/widgets/scroll_activity.dart
@@ -507,7 +507,7 @@
     TickerProvider vsync,
   ) : super(delegate) {
     _controller = AnimationController.unbounded(
-      debugLabel: kDebugMode ? objectRuntimeType(this, 'BallisticScrollActivity') : null,
+      debugLabel: kDebugMode ? '${objectRuntimeType(this, 'BallisticScrollActivity')}' : null,
       vsync: vsync,
     )
       ..addListener(_tick)
@@ -604,7 +604,7 @@
     _completer = Completer<void>();
     _controller = AnimationController.unbounded(
       value: from,
-      debugLabel: objectRuntimeType(this, 'DrivenScrollActivity'),
+      debugLabel: '${objectRuntimeType(this, 'DrivenScrollActivity')}',
       vsync: vsync,
     )
       ..addListener(_tick)
diff --git a/packages/flutter/lib/src/widgets/scroll_configuration.dart b/packages/flutter/lib/src/widgets/scroll_configuration.dart
index f295b18..a3e0d3e 100644
--- a/packages/flutter/lib/src/widgets/scroll_configuration.dart
+++ b/packages/flutter/lib/src/widgets/scroll_configuration.dart
@@ -77,7 +77,7 @@
   bool shouldNotify(covariant ScrollBehavior oldDelegate) => false;
 
   @override
-  String toString() => objectRuntimeType(this, 'ScrollBehavior');
+  String toString() => '${objectRuntimeType(this, 'ScrollBehavior')}';
 }
 
 /// Controls how [Scrollable] widgets behave in a subtree.
diff --git a/packages/flutter/lib/src/widgets/shortcuts.dart b/packages/flutter/lib/src/widgets/shortcuts.dart
index 720b6e6..44caef6 100644
--- a/packages/flutter/lib/src/widgets/shortcuts.dart
+++ b/packages/flutter/lib/src/widgets/shortcuts.dart
@@ -156,7 +156,7 @@
           return a.debugName.compareTo(b.debugName);
         }
     );
-    return sortedKeys.map<String>((LogicalKeyboardKey key) => key.debugName).join(' + ');
+    return sortedKeys.map<String>((LogicalKeyboardKey key) => '${key.debugName}').join(' + ');
   }
 
   @override
diff --git a/packages/flutter/test/material/slider_theme_test.dart b/packages/flutter/test/material/slider_theme_test.dart
index 7c71c25..e474a40 100644
--- a/packages/flutter/test/material/slider_theme_test.dart
+++ b/packages/flutter/test/material/slider_theme_test.dart
@@ -378,7 +378,7 @@
                     data: sliderTheme,
                     child: Slider(
                       value: sliderValue,
-                      label: value,
+                      label: '$value',
                       divisions: 3,
                       onChanged: (double d) { },
                     ),
diff --git a/packages/flutter/test/widgets/semantics_tester.dart b/packages/flutter/test/widgets/semantics_tester.dart
index fd66cf7..dc3d2e7 100644
--- a/packages/flutter/test/widgets/semantics_tester.dart
+++ b/packages/flutter/test/widgets/semantics_tester.dart
@@ -259,7 +259,7 @@
     DebugSemanticsDumpOrder childOrder = DebugSemanticsDumpOrder.inverseHitTest,
   }) {
     bool fail(String message) {
-      matchState[TestSemantics] = message;
+      matchState[TestSemantics] = '$message';
       return false;
     }
 
diff --git a/packages/flutter_localizations/test/material/date_picker_test.dart b/packages/flutter_localizations/test/material/date_picker_test.dart
index 3b54198..3563f17 100644
--- a/packages/flutter_localizations/test/material/date_picker_test.dart
+++ b/packages/flutter_localizations/test/material/date_picker_test.dart
@@ -46,7 +46,7 @@
       const Locale('ar', 'AR'): <String, dynamic>{
         'textDirection': TextDirection.rtl,
         'expectedDaysOfWeek': <String>['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
-        'expectedDaysOfMonth': List<String>.generate(30, (int i) => arabicNumbers.format(i + 1)),
+        'expectedDaysOfMonth': List<String>.generate(30, (int i) => '${arabicNumbers.format(i + 1)}'),
         'expectedMonthYearHeader': 'سبتمبر ٢٠١٧',
       },
     };
diff --git a/packages/flutter_test/lib/src/test_async_utils.dart b/packages/flutter_test/lib/src/test_async_utils.dart
index 219497d..cd99756 100644
--- a/packages/flutter_test/lib/src/test_async_utils.dart
+++ b/packages/flutter_test/lib/src/test_async_utils.dart
@@ -344,14 +344,14 @@
             // a 'dart:' API, like from the Future/microtask mechanism, because dart: URLs in the
             // stack trace don't have a column number and so don't match the regexp above.
             information.add(ErrorSummary('(Unable to parse the stack frame of the method that called the method that called $_className.$method(). The stack may be incomplete or bogus.)'));
-            information.add(ErrorDescription(stack[index]));
+            information.add(ErrorDescription('${stack[index]}'));
           }
         } else {
           information.add(ErrorSummary('(Unable to find the stack frame of the method that called the method that called $_className.$method(). The stack may be incomplete or bogus.)'));
         }
       } else {
         information.add(ErrorSummary('(Unable to parse the stack frame of the method that called $_className.$method(). The stack may be incomplete or bogus.)'));
-        information.add(ErrorDescription(stack[index]));
+        information.add(ErrorDescription('${stack[index]}'));
       }
     } else {
       information.add(ErrorSummary('(Unable to find the method that called $_className.$method(). The stack may be incomplete or bogus.)'));
diff --git a/packages/flutter_tools/lib/src/android/android_studio.dart b/packages/flutter_tools/lib/src/android/android_studio.dart
index 65cb3e9..f7ebfb4 100644
--- a/packages/flutter_tools/lib/src/android/android_studio.dart
+++ b/packages/flutter_tools/lib/src/android/android_studio.dart
@@ -68,7 +68,7 @@
     }
     final String presetPluginsPath = pathsSelectorValue == null
         ? null
-        : globals.fs.path.join(homeDirPath, 'Library', 'Application Support', pathsSelectorValue);
+        : globals.fs.path.join(homeDirPath, 'Library', 'Application Support', '$pathsSelectorValue');
     return AndroidStudio(studioPath, version: version, presetPluginsPath: presetPluginsPath);
   }
 
diff --git a/packages/flutter_tools/lib/src/build_runner/web_fs.dart b/packages/flutter_tools/lib/src/build_runner/web_fs.dart
index 443cab3..977f545 100644
--- a/packages/flutter_tools/lib/src/build_runner/web_fs.dart
+++ b/packages/flutter_tools/lib/src/build_runner/web_fs.dart
@@ -455,7 +455,7 @@
           flutterProject.dartTool.path,
           'build',
           'flutter_web',
-          flutterProject.manifest.appName,
+          '${flutterProject.manifest.appName}',
           'lib',
           '${targetBaseName}_web_entrypoint.dart.js.tar.gz',
         ));
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
index ef96323..7151899 100644
--- a/packages/flutter_tools/lib/src/cache.dart
+++ b/packages/flutter_tools/lib/src/cache.dart
@@ -580,7 +580,7 @@
 
   /// Download an archive from the given [url] and unzip it to [location].
   Future<void> _downloadArchive(String message, Uri url, Directory location, bool verifier(File f), void extractor(File f, Directory d)) {
-    return _withDownloadFile(flattenNameSubdirs(url), (File tempFile) async {
+    return _withDownloadFile('${flattenNameSubdirs(url)}', (File tempFile) async {
       if (!verifier(tempFile)) {
         final Status status = globals.logger.startProgress(message, timeout: timeoutConfiguration.slowOperation);
         try {
diff --git a/packages/flutter_tools/lib/src/commands/update_packages.dart b/packages/flutter_tools/lib/src/commands/update_packages.dart
index 30d01e4..9b3a170 100644
--- a/packages/flutter_tools/lib/src/commands/update_packages.dart
+++ b/packages/flutter_tools/lib/src/commands/update_packages.dart
@@ -382,7 +382,7 @@
     for (_DependencyLink path in paths) {
       final StringBuffer buf = StringBuffer();
       while (path != null) {
-        buf.write(path.to);
+        buf.write('${path.to}');
         path = path.from;
         if (path != null) {
           buf.write(' <- ');
diff --git a/packages/flutter_tools/lib/src/compile.dart b/packages/flutter_tools/lib/src/compile.dart
index c001821..cbd4dd4 100644
--- a/packages/flutter_tools/lib/src/compile.dart
+++ b/packages/flutter_tools/lib/src/compile.dart
@@ -605,9 +605,8 @@
     _server.stdin.writeln('recompile $mainUri$inputKey');
     globals.printTrace('<- recompile $mainUri$inputKey');
     for (final Uri fileUri in request.invalidatedFiles) {
-      final String message = _mapFileUri(fileUri.toString(), packageUriMapper);
-      _server.stdin.writeln(message);
-      globals.printTrace(message);
+      _server.stdin.writeln(_mapFileUri(fileUri.toString(), packageUriMapper));
+      globals.printTrace('${_mapFileUri(fileUri.toString(), packageUriMapper)}');
     }
     _server.stdin.writeln(inputKey);
     globals.printTrace('<- $inputKey');
diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart
index b1805b9..debd75a 100644
--- a/packages/flutter_tools/lib/src/device.dart
+++ b/packages/flutter_tools/lib/src/device.dart
@@ -468,7 +468,7 @@
       table.add(<String>[
         device.name,
         device.id,
-        getNameForTargetPlatform(targetPlatform),
+        '${getNameForTargetPlatform(targetPlatform)}',
         '${await device.sdkNameAndVersion}$supportIndicator',
       ]);
     }
diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart
index e92c05e..c9b4341 100644
--- a/packages/flutter_tools/lib/src/ios/devices.dart
+++ b/packages/flutter_tools/lib/src/ios/devices.dart
@@ -50,7 +50,7 @@
       '--justlaunch',
       if (launchArguments.isNotEmpty) ...<String>[
         '--args',
-        launchArguments.join(' '),
+        '${launchArguments.join(" ")}',
       ],
     ];
 
diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart
index 1fd62bb..977a1e5 100644
--- a/packages/flutter_tools/lib/src/ios/mac.dart
+++ b/packages/flutter_tools/lib/src/ios/mac.dart
@@ -473,7 +473,7 @@
   initialBuildStatus = null;
   globals.printStatus(
     'Xcode build done.'.padRight(kDefaultStatusPadding + 1)
-        + getElapsedAsSeconds(sw.elapsed).padLeft(5),
+        + '${getElapsedAsSeconds(sw.elapsed).padLeft(5)}',
   );
   flutterUsage.sendTiming('build', 'xcode-ios', Duration(milliseconds: sw.elapsedMilliseconds));
 
diff --git a/packages/flutter_tools/lib/src/macos/build_macos.dart b/packages/flutter_tools/lib/src/macos/build_macos.dart
index 0e560ee..a18fd1b 100644
--- a/packages/flutter_tools/lib/src/macos/build_macos.dart
+++ b/packages/flutter_tools/lib/src/macos/build_macos.dart
@@ -79,7 +79,7 @@
       'xcrun',
       'xcodebuild',
       '-workspace', flutterProject.macos.xcodeWorkspace.path,
-      '-configuration', configuration,
+      '-configuration', '$configuration',
       '-scheme', 'Runner',
       '-derivedDataPath', flutterBuildDir.absolute.path,
       'OBJROOT=${globals.fs.path.join(flutterBuildDir.absolute.path, 'Build', 'Intermediates.noindex')}',
diff --git a/packages/flutter_tools/lib/src/reporting/events.dart b/packages/flutter_tools/lib/src/reporting/events.dart
index 3bf8139..626629c 100644
--- a/packages/flutter_tools/lib/src/reporting/events.dart
+++ b/packages/flutter_tools/lib/src/reporting/events.dart
@@ -139,9 +139,9 @@
     // category
     'build',
     // parameter
-    FlutterCommand.current == null
-      ? 'unspecified'
-      : FlutterCommand.current.name,
+    FlutterCommand.current == null ?
+      'unspecified' :
+      '${FlutterCommand.current.name}',
     label: label,
   );
 
diff --git a/packages/flutter_tools/lib/src/test/test_compiler.dart b/packages/flutter_tools/lib/src/test/test_compiler.dart
index a876544..30e9097 100644
--- a/packages/flutter_tools/lib/src/test/test_compiler.dart
+++ b/packages/flutter_tools/lib/src/test/test_compiler.dart
@@ -186,6 +186,6 @@
       _suppressOutput = true;
       return;
     }
-    globals.printError(message);
+    globals.printError('$message');
   }
 }
diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart
index f7d7912..9daa2c5 100644
--- a/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart
+++ b/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart
@@ -115,7 +115,7 @@
     });
     await const DebugUnpackMacOS().build(environment);
 
-    expect(globals.fs.directory(_kOutputPrefix).existsSync(), true);
+    expect(globals.fs.directory('$_kOutputPrefix').existsSync(), true);
     for (final File file in inputs) {
       expect(globals.fs.file(file.path.replaceFirst(_kInputPrefix, _kOutputPrefix)).existsSync(), true);
     }
diff --git a/packages/flutter_tools/test/general.shard/runner/flutter_command_runner_test.dart b/packages/flutter_tools/test/general.shard/runner/flutter_command_runner_test.dart
index bb6104f..a5a6460 100644
--- a/packages/flutter_tools/test/general.shard/runner/flutter_command_runner_test.dart
+++ b/packages/flutter_tools/test/general.shard/runner/flutter_command_runner_test.dart
@@ -107,7 +107,7 @@
         await runner.run(<String>['dummy', '--local-engine=ios_debug']);
 
         // Verify that this also works if the sky_engine path is a symlink to the engine root.
-        fs.link('/symlink').createSync(_kArbitraryEngineRoot);
+        fs.link('/symlink').createSync('$_kArbitraryEngineRoot');
         fs.file(_kDotPackages).writeAsStringSync('sky_engine:file:///symlink/src/out/ios_debug/gen/dart-pkg/sky_engine/lib/');
         await runner.run(<String>['dummy', '--local-engine=ios_debug']);
       }, overrides: <Type, Generator>{