diff --git a/tests/language/deferred/duplicate_prefix1_runtime_test.dart b/tests/language/deferred/duplicate_prefix1_runtime_test.dart
index 0feaa2e..198027ad 100644
--- a/tests/language/deferred/duplicate_prefix1_runtime_test.dart
+++ b/tests/language/deferred/duplicate_prefix1_runtime_test.dart
@@ -7,5 +7,4 @@
 
 import "prefix_constraints_lib2.dart" as lib;
 
-
 void main() {}
diff --git a/tests/language/deferred/duplicate_prefix2_runtime_test.dart b/tests/language/deferred/duplicate_prefix2_runtime_test.dart
index 482f828..198027ad 100644
--- a/tests/language/deferred/duplicate_prefix2_runtime_test.dart
+++ b/tests/language/deferred/duplicate_prefix2_runtime_test.dart
@@ -5,7 +5,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-
 import "prefix_constraints_lib2.dart" as lib;
 
 void main() {}
diff --git a/tests/language/deferred/duplicate_prefix3_runtime_test.dart b/tests/language/deferred/duplicate_prefix3_runtime_test.dart
index 3f409b6..d65eb11 100644
--- a/tests/language/deferred/duplicate_prefix3_runtime_test.dart
+++ b/tests/language/deferred/duplicate_prefix3_runtime_test.dart
@@ -5,7 +5,4 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-
-
-
 void main() {}
diff --git a/tests/language/deferred/function_type_lib.dart b/tests/language/deferred/function_type_lib.dart
index 939122e..75fd550 100644
--- a/tests/language/deferred/function_type_lib.dart
+++ b/tests/language/deferred/function_type_lib.dart
@@ -5,7 +5,9 @@
 import 'package:expect/expect.dart';
 
 class T {
-  A foo(int x) { return A(); }
+  A foo(int x) {
+    return A();
+  }
 }
 
 class A {}
diff --git a/tests/language/deferred/inheritance_constraints_error_test.dart b/tests/language/deferred/inheritance_constraints_error_test.dart
index f9bf5b8..097514f 100644
--- a/tests/language/deferred/inheritance_constraints_error_test.dart
+++ b/tests/language/deferred/inheritance_constraints_error_test.dart
@@ -29,9 +29,9 @@
 class D {
   D();
   factory D.factory() = lib.Foo2;
-//                      ^^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.REDIRECT_TO_INVALID_RETURN_TYPE
-// [cfe] The constructor function type 'Foo2 Function()' isn't a subtype of 'D Function()'.
+  //                    ^^^^^^^^
+  // [analyzer] COMPILE_TIME_ERROR.REDIRECT_TO_INVALID_RETURN_TYPE
+  // [cfe] The constructor function type 'Foo2 Function()' isn't a subtype of 'D Function()'.
 }
 
 void main() {
diff --git a/tests/language/deferred/load_constants_test.dart b/tests/language/deferred/load_constants_test.dart
index 7ea89fa..6957a4d 100644
--- a/tests/language/deferred/load_constants_test.dart
+++ b/tests/language/deferred/load_constants_test.dart
@@ -27,35 +27,35 @@
     Expect.throws(() => const [foo.c]);
     //                  ^
     // [cfe] Constant evaluation error:
-    //                         ^^^^^
+    //                         ^
     // [cfe] 'foo' can't be used in a constant expression because it's marked as 'deferred' which means it isn't available until loaded.
     //                             ^
     // [analyzer] COMPILE_TIME_ERROR.COLLECTION_ELEMENT_FROM_DEFERRED_LIBRARY
     Expect.throws(() => const [foo.C]);
     //                  ^
     // [cfe] Constant evaluation error:
-    //                         ^^^^^
+    //                         ^
     // [cfe] 'foo' can't be used in a constant expression because it's marked as 'deferred' which means it isn't available until loaded.
     //                             ^
     // [analyzer] COMPILE_TIME_ERROR.COLLECTION_ELEMENT_FROM_DEFERRED_LIBRARY
     Expect.throws(() => const [foo.funtype]);
     //                  ^
     // [cfe] Constant evaluation error:
-    //                         ^^^^^^^^^^^
+    //                         ^
     // [cfe] 'foo' can't be used in a constant expression because it's marked as 'deferred' which means it isn't available until loaded.
     //                             ^^^^^^^
     // [analyzer] COMPILE_TIME_ERROR.COLLECTION_ELEMENT_FROM_DEFERRED_LIBRARY
     Expect.throws(() => const [foo.toplevel]);
     //                  ^
     // [cfe] Constant evaluation error:
-    //                         ^^^^^^^^^^^^
+    //                         ^
     // [cfe] 'foo' can't be used in a constant expression because it's marked as 'deferred' which means it isn't available until loaded.
     //                             ^^^^^^^^
     // [analyzer] COMPILE_TIME_ERROR.COLLECTION_ELEMENT_FROM_DEFERRED_LIBRARY
     Expect.throws(() => const [foo.C.staticfun]);
     //                  ^
     // [cfe] Constant evaluation error:
-    //                         ^^^^^^^^^^^^^^^
+    //                         ^
     // [cfe] 'foo' can't be used in a constant expression because it's marked as 'deferred' which means it isn't available until loaded.
     //                             ^
     // [analyzer] COMPILE_TIME_ERROR.COLLECTION_ELEMENT_FROM_DEFERRED_LIBRARY
diff --git a/tests/language/deferred/load_library_wrong_args_test.dart b/tests/language/deferred/load_library_wrong_args_test.dart
index 78914d7..2cb0072 100644
--- a/tests/language/deferred/load_library_wrong_args_test.dart
+++ b/tests/language/deferred/load_library_wrong_args_test.dart
@@ -3,8 +3,8 @@
 void main() {
   // Loadlibrary should be called without arguments.
   lib.loadLibrary(10);
-//    ^
-// [cfe] 'loadLibrary' takes no arguments.
-//                ^^
-// [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //  ^
+  // [cfe] 'loadLibrary' takes no arguments.
+  //              ^^
+  // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
 }
diff --git a/tests/language/deferred/no_prefix_runtime_test.dart b/tests/language/deferred/no_prefix_runtime_test.dart
index 1cbab75..466bb5f 100644
--- a/tests/language/deferred/no_prefix_runtime_test.dart
+++ b/tests/language/deferred/no_prefix_runtime_test.dart
@@ -6,8 +6,6 @@
 // BSD-style license that can be found in the LICENSE file.
 
 // Loading a deferred library without prefix is not allowed.
-import "constraints_lib2.dart"
-
-    ;
+import "constraints_lib2.dart";
 
 void main() {}
diff --git a/tests/language/deferred/shared_and_unshared_classes_test.dart b/tests/language/deferred/shared_and_unshared_classes_test.dart
index dc7a328..fa60c6f 100644
--- a/tests/language/deferred/shared_and_unshared_classes_test.dart
+++ b/tests/language/deferred/shared_and_unshared_classes_test.dart
@@ -19,7 +19,7 @@
       }),
       lib2.loadLibrary().then((_) {
         lib2.foo();
-      })
+      }),
     ]);
   });
 }
diff --git a/tests/language/deferred/split_constants_canonicalization_test.dart b/tests/language/deferred/split_constants_canonicalization_test.dart
index 8617f03..8003a44 100644
--- a/tests/language/deferred/split_constants_canonicalization_test.dart
+++ b/tests/language/deferred/split_constants_canonicalization_test.dart
@@ -11,11 +11,7 @@
   const Box(this.contents);
 }
 
-enum Enum {
-  RED,
-  GREEN,
-  BLUE,
-}
+enum Enum { RED, GREEN, BLUE }
 
 commonClosure() {}
 
diff --git a/tests/language/deferred/static_separate_lib1.dart b/tests/language/deferred/static_separate_lib1.dart
index 07e9cf5..61ea3ec 100644
--- a/tests/language/deferred/static_separate_lib1.dart
+++ b/tests/language/deferred/static_separate_lib1.dart
@@ -45,7 +45,7 @@
 
 class C5 {
   static const foo = const [
-    const {1: 3}
+    const {1: 3},
   ];
   bar() {
     () {}(); // Hack to avoid inlining.
diff --git a/tests/language/deferred/static_separate_lib2.dart b/tests/language/deferred/static_separate_lib2.dart
index 48bf271..d4dab32 100644
--- a/tests/language/deferred/static_separate_lib2.dart
+++ b/tests/language/deferred/static_separate_lib2.dart
@@ -18,6 +18,6 @@
   Expect.equals(x, C3.foo);
   Expect.mapEquals({x: x}, C4.foo);
   Expect.listEquals([
-    const {1: 3}
+    const {1: 3},
   ], C5.foo);
 }
diff --git a/tests/language/deferred/super_dependency_lib.dart b/tests/language/deferred/super_dependency_lib.dart
index 8a7af63..5ef2b9c 100644
--- a/tests/language/deferred/super_dependency_lib.dart
+++ b/tests/language/deferred/super_dependency_lib.dart
@@ -7,8 +7,8 @@
 class C extends A {
   foo() {
     super.foo = 3;
-//        ^^^
-// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_SUPER_MEMBER
-// [cfe] Superclass has no setter named 'foo'.
+    //    ^^^
+    // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_SUPER_MEMBER
+    // [cfe] Superclass has no setter named 'foo'.
   }
 }
diff --git a/tests/language/double/int_to_string_test.dart b/tests/language/double/int_to_string_test.dart
index bed1027..56650b2 100644
--- a/tests/language/double/int_to_string_test.dart
+++ b/tests/language/double/int_to_string_test.dart
@@ -12,11 +12,15 @@
     Expect.equals("9.0", (9.0).toString());
     Expect.equals("90.0", (90.0).toString());
     Expect.equals(
-        "111111111111111110000.0", (111111111111111111111.0).toString());
+      "111111111111111110000.0",
+      (111111111111111111111.0).toString(),
+    );
     Expect.equals("-9.0", (-9.0).toString());
     Expect.equals("-90.0", (-90.0).toString());
     Expect.equals(
-        "-111111111111111110000.0", (-111111111111111111111.0).toString());
+      "-111111111111111110000.0",
+      (-111111111111111111111.0).toString(),
+    );
     Expect.equals("1000.0", (1000.0).toString());
     Expect.equals("1000000000000000100.0", (1000000000000000128.0).toString());
   } else {
@@ -25,11 +29,15 @@
     Expect.equals("9", (9.0).toString());
     Expect.equals("90", (90.0).toString());
     Expect.equals(
-        "111111111111111110000", (111111111111111111111.0).toString());
+      "111111111111111110000",
+      (111111111111111111111.0).toString(),
+    );
     Expect.equals("-9", (-9.0).toString());
     Expect.equals("-90", (-90.0).toString());
     Expect.equals(
-        "-111111111111111110000", (-111111111111111111111.0).toString());
+      "-111111111111111110000",
+      (-111111111111111111111.0).toString(),
+    );
     Expect.equals("1000", (1000.0).toString());
     Expect.equals("1000000000000000100", (1000000000000000128.0).toString());
   }
diff --git a/tests/language/double/invalid_runtime_test.dart b/tests/language/double/invalid_runtime_test.dart
index a47bfc7..6ab6401 100644
--- a/tests/language/double/invalid_runtime_test.dart
+++ b/tests/language/double/invalid_runtime_test.dart
@@ -8,6 +8,5 @@
 // Test an invalid double format
 
 main() {
-
   ;
 }
diff --git a/tests/language/double/to_string_as_exponential2_runtime_test.dart b/tests/language/double/to_string_as_exponential2_runtime_test.dart
index 1c0a498..9b1c753 100644
--- a/tests/language/double/to_string_as_exponential2_runtime_test.dart
+++ b/tests/language/double/to_string_as_exponential2_runtime_test.dart
@@ -12,7 +12,4 @@
   var v = 1.0;
   Expect.throwsRangeError(() => v.toStringAsExponential(-1));
   Expect.throwsRangeError(() => v.toStringAsExponential(21));
-
-
-
 }
diff --git a/tests/language/double/to_string_as_fixed2_runtime_test.dart b/tests/language/double/to_string_as_fixed2_runtime_test.dart
index 821394f..42c5c65 100644
--- a/tests/language/double/to_string_as_fixed2_runtime_test.dart
+++ b/tests/language/double/to_string_as_fixed2_runtime_test.dart
@@ -12,7 +12,4 @@
   var v = 0.0;
   Expect.throwsRangeError(() => v.toStringAsFixed(-1));
   Expect.throwsRangeError(() => v.toStringAsFixed(21));
-
-
-
 }
diff --git a/tests/language/double/to_string_as_fixed_test.dart b/tests/language/double/to_string_as_fixed_test.dart
index 6e0aed2..14455d9 100644
--- a/tests/language/double/to_string_as_fixed_test.dart
+++ b/tests/language/double/to_string_as_fixed_test.dart
@@ -16,7 +16,9 @@
     Expect.equals("Infinity", (1.0 / 0.0).toStringAsFixed(3));
     Expect.equals("-Infinity", (-1.0 / 0.0).toStringAsFixed(3));
     Expect.equals(
-        "1.1111111111111111e+21", 1111111111111111111111.0.toStringAsFixed(8));
+      "1.1111111111111111e+21",
+      1111111111111111111111.0.toStringAsFixed(8),
+    );
     Expect.equals("0.1", 0.1.toStringAsFixed(1));
     Expect.equals("0.10", 0.1.toStringAsFixed(2));
     Expect.equals("0.100", 0.1.toStringAsFixed(3));
@@ -70,25 +72,41 @@
     Expect.equals("0", 0.00001.toStringAsFixed(0));
     Expect.equals("0.00001", 0.00001.toStringAsFixed(5));
     Expect.equals(
-        "0.00000000000000000010", 0.0000000000000000001.toStringAsFixed(20));
+      "0.00000000000000000010",
+      0.0000000000000000001.toStringAsFixed(20),
+    );
     Expect.equals("0.00001000000000000", 0.00001.toStringAsFixed(17));
     Expect.equals("1.00000000000000000", 1.0.toStringAsFixed(17));
     Expect.equals(
-        "1000000000000000128", 1000000000000000128.0.toStringAsFixed(0));
+      "1000000000000000128",
+      1000000000000000128.0.toStringAsFixed(0),
+    );
     Expect.equals(
-        "100000000000000128.0", 100000000000000128.0.toStringAsFixed(1));
+      "100000000000000128.0",
+      100000000000000128.0.toStringAsFixed(1),
+    );
     Expect.equals(
-        "10000000000000128.00", 10000000000000128.0.toStringAsFixed(2));
-    Expect.equals("10000000000000128.00000000000000000000",
-        10000000000000128.0.toStringAsFixed(20));
+      "10000000000000128.00",
+      10000000000000128.0.toStringAsFixed(2),
+    );
+    Expect.equals(
+      "10000000000000128.00000000000000000000",
+      10000000000000128.0.toStringAsFixed(20),
+    );
     Expect.equals("0", 0.0.toStringAsFixed(0));
     Expect.equals("-42.000", (-42.0).toStringAsFixed(3));
     Expect.equals(
-        "-1000000000000000128", (-1000000000000000128.0).toStringAsFixed(0));
-    Expect.equals("-0.00000000000000000010",
-        (-0.0000000000000000001).toStringAsFixed(20));
+      "-1000000000000000128",
+      (-1000000000000000128.0).toStringAsFixed(0),
+    );
     Expect.equals(
-        "0.12312312312312299889", 0.123123123123123.toStringAsFixed(20));
+      "-0.00000000000000000010",
+      (-0.0000000000000000001).toStringAsFixed(20),
+    );
+    Expect.equals(
+      "0.12312312312312299889",
+      0.123123123123123.toStringAsFixed(20),
+    );
     // Test that we round up even when the last digit generated is even.
     // dtoa does not do this in its original form.
     Expect.equals("1", 0.5.toStringAsFixed(0));
diff --git a/tests/language/double/to_string_as_precision2_runtime_test.dart b/tests/language/double/to_string_as_precision2_runtime_test.dart
index 8831dca..cfac60e 100644
--- a/tests/language/double/to_string_as_precision2_runtime_test.dart
+++ b/tests/language/double/to_string_as_precision2_runtime_test.dart
@@ -12,7 +12,4 @@
   var v = 0.0;
   Expect.throwsRangeError(() => v.toStringAsPrecision(0));
   Expect.throwsRangeError(() => v.toStringAsPrecision(22));
-
-
-
 }
diff --git a/tests/language/double/to_string_as_precision3_test.dart b/tests/language/double/to_string_as_precision3_test.dart
index 19f390ca..435b388 100644
--- a/tests/language/double/to_string_as_precision3_test.dart
+++ b/tests/language/double/to_string_as_precision3_test.dart
@@ -7,12 +7,18 @@
 
 main() {
   Expect.equals(
-      "0.000555000000000000046248", (0.000555).toStringAsPrecision(21));
+    "0.000555000000000000046248",
+    (0.000555).toStringAsPrecision(21),
+  );
   Expect.equals(0.000555000000000000046248, 0.000555);
   Expect.equals(
-      "5.54999999999999980179e-7", (0.000000555).toStringAsPrecision(21));
+    "5.54999999999999980179e-7",
+    (0.000000555).toStringAsPrecision(21),
+  );
   Expect.equals(5.54999999999999980179e-7, 0.000000555);
   Expect.equals(
-      "-5.54999999999999980179e-7", (-0.000000555).toStringAsPrecision(21));
+    "-5.54999999999999980179e-7",
+    (-0.000000555).toStringAsPrecision(21),
+  );
   Expect.equals(-5.54999999999999980179e-7, -0.000000555);
 }
diff --git a/tests/language/double/to_string_test.dart b/tests/language/double/to_string_test.dart
index fcdafb9..03d157a 100644
--- a/tests/language/double/to_string_test.dart
+++ b/tests/language/double/to_string_test.dart
@@ -14,9 +14,13 @@
   Expect.equals("0.01", (0.01).toString());
   Expect.equals("0.0123", (0.0123).toString());
   Expect.equals(
-      "1.1111111111111111e+21", (1111111111111111111111.0).toString());
+    "1.1111111111111111e+21",
+    (1111111111111111111111.0).toString(),
+  );
   Expect.equals(
-      "1.1111111111111111e+22", (11111111111111111111111.0).toString());
+    "1.1111111111111111e+22",
+    (11111111111111111111111.0).toString(),
+  );
   Expect.equals("0.00001", (0.00001).toString());
   Expect.equals("0.000001", (0.000001).toString());
   Expect.equals("1e-7", (0.0000001).toString());
@@ -32,9 +36,13 @@
   Expect.equals("-0.01", (-0.01).toString());
   Expect.equals("-0.0123", (-0.0123).toString());
   Expect.equals(
-      "-1.1111111111111111e+21", (-1111111111111111111111.0).toString());
+    "-1.1111111111111111e+21",
+    (-1111111111111111111111.0).toString(),
+  );
   Expect.equals(
-      "-1.1111111111111111e+22", (-11111111111111111111111.0).toString());
+    "-1.1111111111111111e+22",
+    (-11111111111111111111111.0).toString(),
+  );
   Expect.equals("-0.00001", (-0.00001).toString());
   Expect.equals("-0.000001", (-0.000001).toString());
   Expect.equals("-1e-7", (-0.0000001).toString());
@@ -50,7 +58,9 @@
   Expect.equals("1e-7", (0.0000001).toString());
   Expect.equals("-1e-7", (-0.0000001).toString());
   Expect.equals(
-      "1.0000000000000001e+21", (1000000000000000128000.0).toString());
+    "1.0000000000000001e+21",
+    (1000000000000000128000.0).toString(),
+  );
   Expect.equals("0.000001", (0.000001).toString());
   Expect.equals("1e-7", (0.0000001).toString());
 }
diff --git a/tests/language/double_literals/double_literal_coercion_test.dart b/tests/language/double_literals/double_literal_coercion_test.dart
index b18b22f..aa6f505 100644
--- a/tests/language/double_literals/double_literal_coercion_test.dart
+++ b/tests/language/double_literals/double_literal_coercion_test.dart
@@ -51,8 +51,10 @@
   expectDouble(p2_62, 4611686018427387904);
   expectDouble(p2_63, 9223372036854775808);
   expectDouble(p2_64, 18446744073709551616);
-  expectDouble(maxValue,
-      179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368);
+  expectDouble(
+    maxValue,
+    179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368,
+  );
 
   expectDouble(-0.0, -0);
   expectDouble(-1.0, -1);
@@ -82,8 +84,10 @@
   expectDouble(-(p2_62), -4611686018427387904);
   expectDouble(-(p2_63), -9223372036854775808);
   expectDouble(-(p2_64), -18446744073709551616);
-  expectDouble(-maxValue,
-      -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368);
+  expectDouble(
+    -maxValue,
+    -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368,
+  );
 
   expectDouble(0.0, 0x0);
   expectDouble(1.0, 0x1);
@@ -113,8 +117,10 @@
   expectDouble(p2_62, 0x4000000000000000);
   expectDouble(p2_63, 0x8000000000000000);
   expectDouble(p2_64, 0x10000000000000000);
-  expectDouble(maxValue,
-      0xfffffffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000);
+  expectDouble(
+    maxValue,
+    0xfffffffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,
+  );
 
   expectDouble(-0.0, -0x0);
   expectDouble(-1.0, -0x1);
@@ -144,6 +150,8 @@
   expectDouble(-(p2_62), -0x4000000000000000);
   expectDouble(-(p2_63), -0x8000000000000000);
   expectDouble(-(p2_64), -0x10000000000000000);
-  expectDouble(-maxValue,
-      -0xfffffffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000);
+  expectDouble(
+    -maxValue,
+    -0xfffffffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,
+  );
 }
diff --git a/tests/language/double_literals/implicit_double_context_test.dart b/tests/language/double_literals/implicit_double_context_test.dart
index 117b5cd..aee4122 100644
--- a/tests/language/double_literals/implicit_double_context_test.dart
+++ b/tests/language/double_literals/implicit_double_context_test.dart
@@ -431,11 +431,13 @@
   Expect.identical(0.0, v1);
   v2 = 1..toString();
   Expect.identical(1.0, v2);
-  v3 = -0
-    ..toString();
+  v3 =
+      -0
+        ..toString();
   Expect.identical(-0.0, v3);
-  v4 = -1
-    ..toString();
+  v4 =
+      -1
+        ..toString();
   Expect.identical(-1.0, v4);
   v5 = 9223372036854775808..toString();
   Expect.identical(9223372036854775808.0, v5);
@@ -443,8 +445,9 @@
   Expect.identical(18446744073709551616.0, v6);
   v7 = 0x02..toString(); // Hex literal.
   Expect.identical(2.0, v7);
-  v8 = -0x02
-    ..toString(); // Hex literal.
+  v8 =
+      -0x02
+        ..toString(); // Hex literal.
   Expect.identical(-2.0, v8);
 
   // Nexted context, double assignment.
@@ -551,8 +554,9 @@
   {
     // Check that the correct value is used as receiver for the cascade.
     var collector = StringBuffer();
-    double tricky = -42
-      ..toString().codeUnits.forEach(collector.writeCharCode);
+    double tricky =
+        -42
+          ..toString().codeUnits.forEach(collector.writeCharCode);
     Expect.equals("${-42.0}", collector.toString());
   }
 
diff --git a/tests/language/dynamic/dynamic2_runtime_test.dart b/tests/language/dynamic/dynamic2_runtime_test.dart
deleted file mode 100644
index d7159b8..0000000
--- a/tests/language/dynamic/dynamic2_runtime_test.dart
+++ /dev/null
@@ -1,17 +0,0 @@
-// TODO(multitest): This was automatically migrated from a multitest and may
-// contain strange or dead code.
-
-// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-//
-// Test the prohibited use of 'dynamic' in extending and implementing classes.
-
-class A
-
-
-{}
-
-main() {
-  new A();
-}
diff --git a/tests/language/dynamic/dynamic2_test.dart b/tests/language/dynamic/dynamic2_test.dart
index e62c7aa..bf17dd9 100644
--- a/tests/language/dynamic/dynamic2_test.dart
+++ b/tests/language/dynamic/dynamic2_test.dart
@@ -4,17 +4,12 @@
 //
 // Test the prohibited use of 'dynamic' in extending and implementing classes.
 
-class A
-  extends dynamic
-  //      ^^^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.EXTENDS_NON_CLASS
-  // [cfe] The type 'dynamic' can't be used as supertype.
-  implements dynamic
-  //         ^^^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.IMPLEMENTS_NON_CLASS
-  // [cfe] The type 'dynamic' can't be used as supertype.
-{}
+class A extends dynamic {}
+//              ^^^^^^^
+// [analyzer] COMPILE_TIME_ERROR.EXTENDS_NON_CLASS
+// [cfe] The type 'dynamic' can't be used as supertype.
 
-main() {
-  new A();
-}
+class B implements dynamic {}
+//                 ^^^^^^^
+// [analyzer] COMPILE_TIME_ERROR.IMPLEMENTS_NON_CLASS
+// [cfe] The type 'dynamic' can't be used as supertype.
diff --git a/tests/language/dynamic/field_runtime_test.dart b/tests/language/dynamic/field_runtime_test.dart
index aebfbf6..68d866d 100644
--- a/tests/language/dynamic/field_runtime_test.dart
+++ b/tests/language/dynamic/field_runtime_test.dart
@@ -15,20 +15,12 @@
 }
 
 class C {
-  foo() {
-
-
-  }
-  bar() {
-
-
-  }
+  foo() {}
+  bar() {}
 }
 
 main() {
   var a = new A();
   a.a = 1;
   a.b = a;
-
-
 }
diff --git a/tests/language/dynamic/field_test.dart b/tests/language/dynamic/field_test.dart
index 23190e0..c8f7346 100644
--- a/tests/language/dynamic/field_test.dart
+++ b/tests/language/dynamic/field_test.dart
@@ -22,6 +22,7 @@
     // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_IDENTIFIER
     // [cfe] The getter 'a' isn't defined for the class 'C'.
   }
+
   bar() {
     print(b.a);
     //    ^
