Version 2.17.0-169.0.dev

Merge commit '54fedc818d9ba254ba3a1efb17b6e610c5c58dc9' into 'dev'
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 70414c2..a5313a2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -63,6 +63,10 @@
 - Deprecate `SecureSocket.renegotiate` and `RawSecureSocket.renegotiate`,
   which were no-ops.
 
+#### `dart:isolate`
+
+- Add `Isolate.run` to run a function in a new isolate.
+
 ### Tools
 
 #### Dart command line
diff --git a/OWNERS b/OWNERS
index 88fdd3c..911f0bb 100644
--- a/OWNERS
+++ b/OWNERS
@@ -8,16 +8,16 @@
 vsm@google.com #{LAST_RESORT_SUGGESTION}
 
 # DEPS
-per-file DEPS=/tools/OWNERS_ENG
+per-file DEPS=file:/tools/OWNERS_ENG
 
 # Changelog, AUTHORS, and .git* do not require approval.
 per-file CHANGELOG.md,AUTHORS,.gitattributes,.gitconfig,.gitignore=*
 
 # Product documentation
-CONTRIBUTING.md,LICENSE,PATENT_GRANT,README.*,SECURITY.md=file:/tools/OWNERS_PRODUCT
+per-file CONTRIBUTING.md,LICENSE,PATENT_GRANT,README.*,SECURITY.md=file:/tools/OWNERS_PRODUCT
 
 # Top level build files
-per-file .clang-format,BUILD.gn,sdk_args.gni=file:/tools/OWNERS_VM,file:/tools/OWNERS_INFRA
+per-file .clang-format,BUILD.gn,sdk_args.gni=file:/tools/OWNERS_VM
 
 # Generated file
 per-file .packages=*
diff --git a/build/config/OWNERS b/build/config/OWNERS
deleted file mode 100644
index bd53091..0000000
--- a/build/config/OWNERS
+++ /dev/null
@@ -1,6 +0,0 @@
-brettw@chromium.org
-dpranke@chromium.org
-scottmg@chromium.org
-
-per-file BUILDCONFIG.gn=brettw@chromium.org
-per-file BUILDCONFIG.gn=set noparent
diff --git a/build/mac/OWNERS b/build/mac/OWNERS
deleted file mode 100644
index c56e89d..0000000
--- a/build/mac/OWNERS
+++ /dev/null
@@ -1,2 +0,0 @@
-mark@chromium.org
-thomasvl@chromium.org
diff --git a/build/sanitizers/OWNERS b/build/sanitizers/OWNERS
deleted file mode 100644
index 0be2be8..0000000
--- a/build/sanitizers/OWNERS
+++ /dev/null
@@ -1,4 +0,0 @@
-glider@chromium.org
-earthdok@chromium.org
-per-file tsan_suppressions.cc=*
-per-file lsan_suppressions.cc=*
diff --git a/build/toolchain/OWNERS b/build/toolchain/OWNERS
deleted file mode 100644
index c6cda3f..0000000
--- a/build/toolchain/OWNERS
+++ /dev/null
@@ -1,3 +0,0 @@
-brettw@chromium.org
-dpranke@chromium.org
-scottmg@chromium.org
diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart b/pkg/front_end/testcases/general/duplicated_declarations.dart
index 1b914cd..1f60cf5 100644
--- a/pkg/front_end/testcases/general/duplicated_declarations.dart
+++ b/pkg/front_end/testcases/general/duplicated_declarations.dart
@@ -2,6 +2,8 @@
 // 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.
 
+// @dart=2.16
+
 part "duplicated_declarations_part.dart";
 
 import 'duplicated_declarations_lib.dart' as Typedef;
diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.textual_outline.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.textual_outline.expect
index 1f4f8e4..0af83b1 100644
--- a/pkg/front_end/testcases/general/duplicated_declarations.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.textual_outline.expect
@@ -1,3 +1,4 @@
+// @dart = 2.16
 part "duplicated_declarations_part.dart";
 import 'duplicated_declarations_lib.dart' as Typedef;
 import 'duplicated_declarations_lib.dart' as Typedef;
diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect
index bcf1826..a81678e 100644
--- a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect
+++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect
@@ -2,351 +2,351 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:7:1: Error: Import directives must precede part directives.
-// Try moving the import directives before the part directives.
-// import 'duplicated_declarations_lib.dart' as Typedef;
-// ^^^^^^
-//
 // pkg/front_end/testcases/general/duplicated_declarations.dart:9:1: Error: Import directives must precede part directives.
 // Try moving the import directives before the part directives.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 // ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:13:9: Error: 'Typedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:11:1: Error: Import directives must precede part directives.
+// Try moving the import directives before the part directives.
+// import 'duplicated_declarations_lib.dart' as Typedef;
+// ^^^^^^
+//
+// pkg/front_end/testcases/general/duplicated_declarations.dart:15:9: Error: 'Typedef' is already declared in this scope.
 // typedef Typedef = Object Function();
 //         ^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:11:9: Context: Previous declaration of 'Typedef'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:13:9: Context: Previous declaration of 'Typedef'.
 // typedef Typedef = void Function();
 //         ^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:15:1: Error: Directives must appear before any declarations.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:17:1: Error: Directives must appear before any declarations.
 // Try moving the directive before any declarations.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 // ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:19:16: Error: 'OldTypedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:21:16: Error: 'OldTypedef' is already declared in this scope.
 // typedef Object OldTypedef();
 //                ^^^^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:17:14: Context: Previous declaration of 'OldTypedef'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:19:14: Context: Previous declaration of 'OldTypedef'.
 // typedef void OldTypedef();
 //              ^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:23:5: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:25:5: Error: 'field' is already declared in this scope.
 // var field = "2nd";
 //     ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:21:5: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:23:5: Context: Previous declaration of 'field'.
 // var field = "1st";
 //     ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:29:1: Error: 'main' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:31:1: Error: 'main' is already declared in this scope.
 // main() {
 // ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:25:1: Context: Previous declaration of 'main'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:27:1: Context: Previous declaration of 'main'.
 // main() {
 // ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:43:3: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:45:3: Error: 'C' is already declared in this scope.
 //   C(a, b);
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:42:3: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:44:3: Context: Previous declaration of 'C'.
 //   C(a);
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:46:7: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:48:7: Error: 'field' is already declared in this scope.
 //   var field = "2nd";
 //       ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:44:7: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:46:7: Context: Previous declaration of 'field'.
 //   var field = "1st";
 //       ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:52:3: Error: 'm' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:54:3: Error: 'm' is already declared in this scope.
 //   m() {
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:48:3: Context: Previous declaration of 'm'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:50:3: Context: Previous declaration of 'm'.
 //   m() {
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:60:10: Error: 's' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:62:10: Error: 's' is already declared in this scope.
 //   static s() {
 //          ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:56:10: Context: Previous declaration of 's'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:58:10: Context: Previous declaration of 's'.
 //   static s() {
 //          ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:72:7: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:74:7: Error: 'C' is already declared in this scope.
 // class C {
 //       ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:41:7: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:43:7: Context: Previous declaration of 'C'.
 // class C {
 //       ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:77:3: Error: Name of enum constant 'Enum' can't be the same as the enum's own name.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:79:3: Error: Name of enum constant 'Enum' can't be the same as the enum's own name.
 //   Enum,
 //   ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:79:3: Error: 'a' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:81:3: Error: 'a' is already declared in this scope.
 //   a,
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:78:3: Context: Previous declaration of 'a'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:80:3: Context: Previous declaration of 'a'.
 //   a,
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:83:6: Error: 'Enum' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:85:6: Error: 'Enum' is already declared in this scope.
 // enum Enum {
 //      ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:76:6: Context: Previous declaration of 'Enum'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:78:6: Context: Previous declaration of 'Enum'.
 // enum Enum {
 //      ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:95:3: Error: 'toString' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:97:3: Error: 'toString' is already declared in this scope.
 //   toString,
 //   ^^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:89:6: Context: Previous declaration of 'toString' is implied by this definition.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:91:6: Context: Previous declaration of 'toString' is implied by this definition.
 // enum AnotherEnum {
 //      ^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:96:3: Error: 'values' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:98:3: Error: 'values' is already declared in this scope.
 //   values,
 //   ^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:89:6: Context: Previous declaration of 'values' is implied by this definition.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:91:6: Context: Previous declaration of 'values' is implied by this definition.
 // enum AnotherEnum {
 //      ^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:11:9: Error: 'Typedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:13:9: Error: 'Typedef' is already declared in this scope.
 // typedef Typedef = void Function();
 //         ^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:13:9: Context: Previous declaration of 'Typedef'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:15:9: Context: Previous declaration of 'Typedef'.
 // typedef Typedef = Object Function();
 //         ^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:17:14: Error: 'OldTypedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:19:14: Error: 'OldTypedef' is already declared in this scope.
 // typedef void OldTypedef();
 //              ^^^^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:19:16: Context: Previous declaration of 'OldTypedef'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:21:16: Context: Previous declaration of 'OldTypedef'.
 // typedef Object OldTypedef();
 //                ^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:21:5: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:23:5: Error: 'field' is already declared in this scope.
 // var field = "3rd";
 //     ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:23:5: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:25:5: Context: Previous declaration of 'field'.
 // var field = "2nd";
 //     ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:27:1: Error: 'main' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:29:1: Error: 'main' is already declared in this scope.
 // main() {
 // ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:29:1: Context: Previous declaration of 'main'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:31:1: Context: Previous declaration of 'main'.
 // main() {
 // ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:39:7: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:41:7: Error: 'C' is already declared in this scope.
 // class C {
 //       ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:72:7: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:74:7: Context: Previous declaration of 'C'.
 // class C {
 //       ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:73:6: Error: 'Enum' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:75:6: Error: 'Enum' is already declared in this scope.
 // enum Enum {
 //      ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:83:6: Context: Previous declaration of 'Enum'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:85:6: Context: Previous declaration of 'Enum'.
 // enum Enum {
 //      ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:7:1: Error: The part-of directive must be the only directive in a part.
-// Try removing the other directives, or moving them to the library for which this is a part.
-// import 'duplicated_declarations_lib.dart' as Typedef;
-// ^^^^^^
-//
 // pkg/front_end/testcases/general/duplicated_declarations_part.dart:9:1: Error: The part-of directive must be the only directive in a part.
 // Try removing the other directives, or moving them to the library for which this is a part.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 // ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:13:9: Error: 'Typedef' is already declared in this scope.
-// typedef Typedef = Object Function();
-//         ^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:11:9: Context: Previous declaration of 'Typedef'.
-// typedef Typedef = void Function();
-//         ^^^^^^^
-//
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:15:1: Error: The part-of directive must be the only directive in a part.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:11:1: Error: The part-of directive must be the only directive in a part.
 // Try removing the other directives, or moving them to the library for which this is a part.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 // ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:19:16: Error: 'OldTypedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:15:9: Error: 'Typedef' is already declared in this scope.
+// typedef Typedef = Object Function();
+//         ^^^^^^^
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:13:9: Context: Previous declaration of 'Typedef'.
+// typedef Typedef = void Function();
+//         ^^^^^^^
+//
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:17:1: Error: The part-of directive must be the only directive in a part.
+// Try removing the other directives, or moving them to the library for which this is a part.
+// import 'duplicated_declarations_lib.dart' as Typedef;
+// ^^^^^^
+//
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:21:16: Error: 'OldTypedef' is already declared in this scope.
 // typedef Object OldTypedef();
 //                ^^^^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:17:14: Context: Previous declaration of 'OldTypedef'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:19:14: Context: Previous declaration of 'OldTypedef'.
 // typedef void OldTypedef();
 //              ^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:23:5: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:25:5: Error: 'field' is already declared in this scope.
 // var field = 4;
 //     ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:21:5: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:23:5: Context: Previous declaration of 'field'.
 // var field = "3rd";
 //     ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:25:5: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:27:5: Error: 'field' is already declared in this scope.
 // var field = 5.0;
 //     ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:23:5: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:25:5: Context: Previous declaration of 'field'.
 // var field = 4;
 //     ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:31:1: Error: 'main' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:33:1: Error: 'main' is already declared in this scope.
 // main() {
 // ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:27:1: Context: Previous declaration of 'main'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:29:1: Context: Previous declaration of 'main'.
 // main() {
 // ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:35:1: Error: 'main' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:37:1: Error: 'main' is already declared in this scope.
 // main() {
 // ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:31:1: Context: Previous declaration of 'main'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:33:1: Context: Previous declaration of 'main'.
 // main() {
 // ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:41:3: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:43:3: Error: 'C' is already declared in this scope.
 //   C(a, b);
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:40:3: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:42:3: Context: Previous declaration of 'C'.
 //   C(a);
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:44:7: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:46:7: Error: 'field' is already declared in this scope.
 //   var field = "2nd";
 //       ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:42:7: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:44:7: Context: Previous declaration of 'field'.
 //   var field = "1st";
 //       ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:50:3: Error: 'm' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:52:3: Error: 'm' is already declared in this scope.
 //   m() {
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:46:3: Context: Previous declaration of 'm'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:48:3: Context: Previous declaration of 'm'.
 //   m() {
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:58:10: Error: 's' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:60:10: Error: 's' is already declared in this scope.
 //   static s() {
 //          ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:54:10: Context: Previous declaration of 's'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:56:10: Context: Previous declaration of 's'.
 //   static s() {
 //          ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:65:7: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:67:7: Error: 'C' is already declared in this scope.
 // class C {
 //       ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:39:7: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:41:7: Context: Previous declaration of 'C'.
 // class C {
 //       ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:69:7: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:71:7: Error: 'C' is already declared in this scope.
 // class C {
 //       ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:65:7: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:67:7: Context: Previous declaration of 'C'.
 // class C {
 //       ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:74:3: Error: Name of enum constant 'Enum' can't be the same as the enum's own name.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:76:3: Error: Name of enum constant 'Enum' can't be the same as the enum's own name.
 //   Enum,
 //   ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:76:3: Error: 'a' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:78:3: Error: 'a' is already declared in this scope.
 //   a,
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:75:3: Context: Previous declaration of 'a'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:77:3: Context: Previous declaration of 'a'.
 //   a,
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:80:6: Error: 'Enum' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:82:6: Error: 'Enum' is already declared in this scope.
 // enum Enum {
 //      ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:73:6: Context: Previous declaration of 'Enum'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:75:6: Context: Previous declaration of 'Enum'.
 // enum Enum {
 //      ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:86:6: Error: 'Enum' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:88:6: Error: 'Enum' is already declared in this scope.
 // enum Enum {
 //      ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:80:6: Context: Previous declaration of 'Enum'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:82:6: Context: Previous declaration of 'Enum'.
 // enum Enum {
 //      ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:7:46: Error: 'Typedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:9:46: Error: 'Typedef' is already declared in this scope.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 //                                              ^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:13:9: Context: Previous declaration of 'Typedef'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:15:9: Context: Previous declaration of 'Typedef'.
 // typedef Typedef = Object Function();
 //         ^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:67:19: Error: 'C' isn't a type.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:69:19: Error: 'C' isn't a type.
 // class Sub extends C {
 //                   ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:67:19: Context: This isn't a type.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:69:19: Context: This isn't a type.
 // class Sub extends C {
 //                   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:94:3: Error: Can't declare a member that conflicts with an inherited one.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:96:3: Error: Can't declare a member that conflicts with an inherited one.
 //   index,
 //   ^^^^^
 // sdk/lib/core/enum.dart:101:13: Context: This is the inherited member.
 //   final int index;
 //             ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:34:3: Error: Can't use 'main' because it is declared more than once.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:36:3: Error: Can't use 'main' because it is declared more than once.
 //   main();
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:35:9: Error: Can't use 'field' because it is declared more than once.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:37:9: Error: Can't use 'field' because it is declared more than once.
 //   print(field);
 //         ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:36:3: Error: Can't use 'C' because it is declared more than once.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:38:3: Error: Can't use 'C' because it is declared more than once.
 //   C.s();
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:37:5: Error: Expected identifier, but got 'this'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:39:5: Error: Expected identifier, but got 'this'.
 //   C.this();
 //     ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:38:6: Error: Expected an identifier, but got ')'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:40:6: Error: Expected an identifier, but got ')'.
 // Try inserting an identifier before ')'.
 //   C.();
 //      ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:38:5: Error: Expected an identifier, but got '('.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:40:5: Error: Expected an identifier, but got '('.
 // Try inserting an identifier before '('.
 //   C.();
 //     ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:64:17: Error: Can't use 's' because it is declared more than once.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:66:17: Error: Can't use 's' because it is declared more than once.
 //   static f() => s;
 //                 ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:68:16: Error: Too many positional arguments: 0 allowed, but 1 found.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:70:16: Error: Too many positional arguments: 0 allowed, but 1 found.
 // Try removing the extra positional arguments.
 //   Sub() : super(null);
 //                ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:69:16: Error: Superclass has no method named 'm'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:71:16: Error: Superclass has no method named 'm'.
 //   m() => super.m();
 //                ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:106:41: Error: Can't use 'toString' because it is declared more than once.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:108:41: Error: Can't use 'toString' because it is declared more than once.
 //     "AnotherEnum.toString": AnotherEnum.toString,
 //                                         ^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:107:39: Error: Can't use 'values' because it is declared more than once.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:109:39: Error: Can't use 'values' because it is declared more than once.
 //     "AnotherEnum.values": AnotherEnum.values,
 //                                       ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:62:17: Error: Can't use 's' because it is declared more than once.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:64:17: Error: Can't use 's' because it is declared more than once.
 //   static f() => s;
 //                 ^
 //
@@ -385,7 +385,7 @@
     "1st";
   }
   static method f() → dynamic
-    return invalid-expression "pkg/front_end/testcases/general/duplicated_declarations_part.dart:62:17: Error: Can't use 's' because it is declared more than once.
+    return invalid-expression "pkg/front_end/testcases/general/duplicated_declarations_part.dart:64:17: Error: Can't use 's' because it is declared more than once.
   static f() => s;
                 ^";
 }
@@ -406,13 +406,13 @@
     "1st";
   }
   static method f() → dynamic
-    return invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:64:17: Error: Can't use 's' because it is declared more than once.
+    return invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:66:17: Error: Can't use 's' because it is declared more than once.
   static f() => s;
                 ^";
 }
 class Sub extends core::Object {
   constructor •() → self::Sub
-    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:68:16: Error: Too many positional arguments: 0 allowed, but 1 found.
+    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:70:16: Error: Too many positional arguments: 0 allowed, but 1 found.
 Try removing the extra positional arguments.
   Sub() : super(null);
                ^"
@@ -491,27 +491,27 @@
   "1st";
 }
 static method foo() → dynamic {
-  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:34:3: Error: Can't use 'main' because it is declared more than once.
+  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:36:3: Error: Can't use 'main' because it is declared more than once.
   main();
   ^"{dynamic}.call();
-  core::print(invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:35:9: Error: Can't use 'field' because it is declared more than once.
+  core::print(invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:37:9: Error: Can't use 'field' because it is declared more than once.
   print(field);
         ^");
-  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:36:3: Error: Can't use 'C' because it is declared more than once.
+  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:38:3: Error: Can't use 'C' because it is declared more than once.
   C.s();
   ^"{dynamic}.s();
-  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:37:5: Error: Expected identifier, but got 'this'.
+  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:39:5: Error: Expected identifier, but got 'this'.
   C.this();
     ^^^^";
-  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:38:5: Error: Expected an identifier, but got '('.
+  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:40:5: Error: Expected an identifier, but got '('.
 Try inserting an identifier before '('.
   C.();
     ^";
 }
 static method useAnotherEnum() → dynamic {
-  <core::String, core::Object>{"AnotherEnum.a": #C26, "AnotherEnum.b": #C27, "AnotherEnum.c": #C28, "AnotherEnum._name": #C31, "AnotherEnum.index": #C34, "AnotherEnum.toString": invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:106:41: Error: Can't use 'toString' because it is declared more than once.
+  <core::String, core::Object>{"AnotherEnum.a": #C26, "AnotherEnum.b": #C27, "AnotherEnum.c": #C28, "AnotherEnum._name": #C31, "AnotherEnum.index": #C34, "AnotherEnum.toString": invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:108:41: Error: Can't use 'toString' because it is declared more than once.
     \"AnotherEnum.toString\": AnotherEnum.toString,
-                                        ^^^^^^^^", "AnotherEnum.values": invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:107:39: Error: Can't use 'values' because it is declared more than once.
+                                        ^^^^^^^^", "AnotherEnum.values": invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:109:39: Error: Can't use 'values' because it is declared more than once.
     \"AnotherEnum.values\": AnotherEnum.values,
                                       ^^^^^^"};
 }
@@ -561,8 +561,8 @@
 
 Constructor coverage from constants:
 org-dartlang-testcase:///duplicated_declarations.dart:
-- Enum#1. (from org-dartlang-testcase:///duplicated_declarations.dart:83:6)
+- Enum#1. (from org-dartlang-testcase:///duplicated_declarations.dart:85:6)
 - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
-- Enum. (from org-dartlang-testcase:///duplicated_declarations.dart:76:6)
-- AnotherEnum. (from org-dartlang-testcase:///duplicated_declarations.dart:89:6)
+- Enum. (from org-dartlang-testcase:///duplicated_declarations.dart:78:6)
+- AnotherEnum. (from org-dartlang-testcase:///duplicated_declarations.dart:91:6)
diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect
index bcf1826..a81678e 100644
--- a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect
@@ -2,351 +2,351 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:7:1: Error: Import directives must precede part directives.
-// Try moving the import directives before the part directives.
-// import 'duplicated_declarations_lib.dart' as Typedef;
-// ^^^^^^
-//
 // pkg/front_end/testcases/general/duplicated_declarations.dart:9:1: Error: Import directives must precede part directives.
 // Try moving the import directives before the part directives.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 // ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:13:9: Error: 'Typedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:11:1: Error: Import directives must precede part directives.
+// Try moving the import directives before the part directives.
+// import 'duplicated_declarations_lib.dart' as Typedef;
+// ^^^^^^
+//
+// pkg/front_end/testcases/general/duplicated_declarations.dart:15:9: Error: 'Typedef' is already declared in this scope.
 // typedef Typedef = Object Function();
 //         ^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:11:9: Context: Previous declaration of 'Typedef'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:13:9: Context: Previous declaration of 'Typedef'.
 // typedef Typedef = void Function();
 //         ^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:15:1: Error: Directives must appear before any declarations.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:17:1: Error: Directives must appear before any declarations.
 // Try moving the directive before any declarations.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 // ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:19:16: Error: 'OldTypedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:21:16: Error: 'OldTypedef' is already declared in this scope.
 // typedef Object OldTypedef();
 //                ^^^^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:17:14: Context: Previous declaration of 'OldTypedef'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:19:14: Context: Previous declaration of 'OldTypedef'.
 // typedef void OldTypedef();
 //              ^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:23:5: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:25:5: Error: 'field' is already declared in this scope.
 // var field = "2nd";
 //     ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:21:5: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:23:5: Context: Previous declaration of 'field'.
 // var field = "1st";
 //     ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:29:1: Error: 'main' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:31:1: Error: 'main' is already declared in this scope.
 // main() {
 // ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:25:1: Context: Previous declaration of 'main'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:27:1: Context: Previous declaration of 'main'.
 // main() {
 // ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:43:3: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:45:3: Error: 'C' is already declared in this scope.
 //   C(a, b);
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:42:3: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:44:3: Context: Previous declaration of 'C'.
 //   C(a);
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:46:7: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:48:7: Error: 'field' is already declared in this scope.
 //   var field = "2nd";
 //       ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:44:7: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:46:7: Context: Previous declaration of 'field'.
 //   var field = "1st";
 //       ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:52:3: Error: 'm' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:54:3: Error: 'm' is already declared in this scope.
 //   m() {
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:48:3: Context: Previous declaration of 'm'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:50:3: Context: Previous declaration of 'm'.
 //   m() {
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:60:10: Error: 's' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:62:10: Error: 's' is already declared in this scope.
 //   static s() {
 //          ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:56:10: Context: Previous declaration of 's'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:58:10: Context: Previous declaration of 's'.
 //   static s() {
 //          ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:72:7: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:74:7: Error: 'C' is already declared in this scope.
 // class C {
 //       ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:41:7: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:43:7: Context: Previous declaration of 'C'.
 // class C {
 //       ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:77:3: Error: Name of enum constant 'Enum' can't be the same as the enum's own name.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:79:3: Error: Name of enum constant 'Enum' can't be the same as the enum's own name.
 //   Enum,
 //   ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:79:3: Error: 'a' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:81:3: Error: 'a' is already declared in this scope.
 //   a,
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:78:3: Context: Previous declaration of 'a'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:80:3: Context: Previous declaration of 'a'.
 //   a,
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:83:6: Error: 'Enum' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:85:6: Error: 'Enum' is already declared in this scope.
 // enum Enum {
 //      ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:76:6: Context: Previous declaration of 'Enum'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:78:6: Context: Previous declaration of 'Enum'.
 // enum Enum {
 //      ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:95:3: Error: 'toString' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:97:3: Error: 'toString' is already declared in this scope.
 //   toString,
 //   ^^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:89:6: Context: Previous declaration of 'toString' is implied by this definition.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:91:6: Context: Previous declaration of 'toString' is implied by this definition.
 // enum AnotherEnum {
 //      ^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:96:3: Error: 'values' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:98:3: Error: 'values' is already declared in this scope.
 //   values,
 //   ^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:89:6: Context: Previous declaration of 'values' is implied by this definition.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:91:6: Context: Previous declaration of 'values' is implied by this definition.
 // enum AnotherEnum {
 //      ^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:11:9: Error: 'Typedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:13:9: Error: 'Typedef' is already declared in this scope.
 // typedef Typedef = void Function();
 //         ^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:13:9: Context: Previous declaration of 'Typedef'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:15:9: Context: Previous declaration of 'Typedef'.
 // typedef Typedef = Object Function();
 //         ^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:17:14: Error: 'OldTypedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:19:14: Error: 'OldTypedef' is already declared in this scope.
 // typedef void OldTypedef();
 //              ^^^^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:19:16: Context: Previous declaration of 'OldTypedef'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:21:16: Context: Previous declaration of 'OldTypedef'.
 // typedef Object OldTypedef();
 //                ^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:21:5: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:23:5: Error: 'field' is already declared in this scope.
 // var field = "3rd";
 //     ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:23:5: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:25:5: Context: Previous declaration of 'field'.
 // var field = "2nd";
 //     ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:27:1: Error: 'main' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:29:1: Error: 'main' is already declared in this scope.
 // main() {
 // ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:29:1: Context: Previous declaration of 'main'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:31:1: Context: Previous declaration of 'main'.
 // main() {
 // ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:39:7: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:41:7: Error: 'C' is already declared in this scope.
 // class C {
 //       ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:72:7: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:74:7: Context: Previous declaration of 'C'.
 // class C {
 //       ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:73:6: Error: 'Enum' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:75:6: Error: 'Enum' is already declared in this scope.
 // enum Enum {
 //      ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:83:6: Context: Previous declaration of 'Enum'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:85:6: Context: Previous declaration of 'Enum'.
 // enum Enum {
 //      ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:7:1: Error: The part-of directive must be the only directive in a part.
-// Try removing the other directives, or moving them to the library for which this is a part.
-// import 'duplicated_declarations_lib.dart' as Typedef;
-// ^^^^^^
-//
 // pkg/front_end/testcases/general/duplicated_declarations_part.dart:9:1: Error: The part-of directive must be the only directive in a part.
 // Try removing the other directives, or moving them to the library for which this is a part.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 // ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:13:9: Error: 'Typedef' is already declared in this scope.
-// typedef Typedef = Object Function();
-//         ^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:11:9: Context: Previous declaration of 'Typedef'.
-// typedef Typedef = void Function();
-//         ^^^^^^^
-//
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:15:1: Error: The part-of directive must be the only directive in a part.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:11:1: Error: The part-of directive must be the only directive in a part.
 // Try removing the other directives, or moving them to the library for which this is a part.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 // ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:19:16: Error: 'OldTypedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:15:9: Error: 'Typedef' is already declared in this scope.
+// typedef Typedef = Object Function();
+//         ^^^^^^^
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:13:9: Context: Previous declaration of 'Typedef'.
+// typedef Typedef = void Function();
+//         ^^^^^^^
+//
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:17:1: Error: The part-of directive must be the only directive in a part.
+// Try removing the other directives, or moving them to the library for which this is a part.
+// import 'duplicated_declarations_lib.dart' as Typedef;
+// ^^^^^^
+//
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:21:16: Error: 'OldTypedef' is already declared in this scope.
 // typedef Object OldTypedef();
 //                ^^^^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:17:14: Context: Previous declaration of 'OldTypedef'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:19:14: Context: Previous declaration of 'OldTypedef'.
 // typedef void OldTypedef();
 //              ^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:23:5: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:25:5: Error: 'field' is already declared in this scope.
 // var field = 4;
 //     ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:21:5: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:23:5: Context: Previous declaration of 'field'.
 // var field = "3rd";
 //     ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:25:5: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:27:5: Error: 'field' is already declared in this scope.
 // var field = 5.0;
 //     ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:23:5: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:25:5: Context: Previous declaration of 'field'.
 // var field = 4;
 //     ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:31:1: Error: 'main' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:33:1: Error: 'main' is already declared in this scope.
 // main() {
 // ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:27:1: Context: Previous declaration of 'main'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:29:1: Context: Previous declaration of 'main'.
 // main() {
 // ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:35:1: Error: 'main' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:37:1: Error: 'main' is already declared in this scope.
 // main() {
 // ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:31:1: Context: Previous declaration of 'main'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:33:1: Context: Previous declaration of 'main'.
 // main() {
 // ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:41:3: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:43:3: Error: 'C' is already declared in this scope.
 //   C(a, b);
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:40:3: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:42:3: Context: Previous declaration of 'C'.
 //   C(a);
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:44:7: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:46:7: Error: 'field' is already declared in this scope.
 //   var field = "2nd";
 //       ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:42:7: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:44:7: Context: Previous declaration of 'field'.
 //   var field = "1st";
 //       ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:50:3: Error: 'm' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:52:3: Error: 'm' is already declared in this scope.
 //   m() {
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:46:3: Context: Previous declaration of 'm'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:48:3: Context: Previous declaration of 'm'.
 //   m() {
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:58:10: Error: 's' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:60:10: Error: 's' is already declared in this scope.
 //   static s() {
 //          ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:54:10: Context: Previous declaration of 's'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:56:10: Context: Previous declaration of 's'.
 //   static s() {
 //          ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:65:7: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:67:7: Error: 'C' is already declared in this scope.
 // class C {
 //       ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:39:7: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:41:7: Context: Previous declaration of 'C'.
 // class C {
 //       ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:69:7: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:71:7: Error: 'C' is already declared in this scope.
 // class C {
 //       ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:65:7: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:67:7: Context: Previous declaration of 'C'.
 // class C {
 //       ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:74:3: Error: Name of enum constant 'Enum' can't be the same as the enum's own name.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:76:3: Error: Name of enum constant 'Enum' can't be the same as the enum's own name.
 //   Enum,
 //   ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:76:3: Error: 'a' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:78:3: Error: 'a' is already declared in this scope.
 //   a,
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:75:3: Context: Previous declaration of 'a'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:77:3: Context: Previous declaration of 'a'.
 //   a,
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:80:6: Error: 'Enum' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:82:6: Error: 'Enum' is already declared in this scope.
 // enum Enum {
 //      ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:73:6: Context: Previous declaration of 'Enum'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:75:6: Context: Previous declaration of 'Enum'.
 // enum Enum {
 //      ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:86:6: Error: 'Enum' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:88:6: Error: 'Enum' is already declared in this scope.
 // enum Enum {
 //      ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:80:6: Context: Previous declaration of 'Enum'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:82:6: Context: Previous declaration of 'Enum'.
 // enum Enum {
 //      ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:7:46: Error: 'Typedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:9:46: Error: 'Typedef' is already declared in this scope.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 //                                              ^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:13:9: Context: Previous declaration of 'Typedef'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:15:9: Context: Previous declaration of 'Typedef'.
 // typedef Typedef = Object Function();
 //         ^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:67:19: Error: 'C' isn't a type.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:69:19: Error: 'C' isn't a type.
 // class Sub extends C {
 //                   ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:67:19: Context: This isn't a type.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:69:19: Context: This isn't a type.
 // class Sub extends C {
 //                   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:94:3: Error: Can't declare a member that conflicts with an inherited one.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:96:3: Error: Can't declare a member that conflicts with an inherited one.
 //   index,
 //   ^^^^^
 // sdk/lib/core/enum.dart:101:13: Context: This is the inherited member.
 //   final int index;
 //             ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:34:3: Error: Can't use 'main' because it is declared more than once.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:36:3: Error: Can't use 'main' because it is declared more than once.
 //   main();
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:35:9: Error: Can't use 'field' because it is declared more than once.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:37:9: Error: Can't use 'field' because it is declared more than once.
 //   print(field);
 //         ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:36:3: Error: Can't use 'C' because it is declared more than once.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:38:3: Error: Can't use 'C' because it is declared more than once.
 //   C.s();
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:37:5: Error: Expected identifier, but got 'this'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:39:5: Error: Expected identifier, but got 'this'.
 //   C.this();
 //     ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:38:6: Error: Expected an identifier, but got ')'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:40:6: Error: Expected an identifier, but got ')'.
 // Try inserting an identifier before ')'.
 //   C.();
 //      ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:38:5: Error: Expected an identifier, but got '('.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:40:5: Error: Expected an identifier, but got '('.
 // Try inserting an identifier before '('.
 //   C.();
 //     ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:64:17: Error: Can't use 's' because it is declared more than once.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:66:17: Error: Can't use 's' because it is declared more than once.
 //   static f() => s;
 //                 ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:68:16: Error: Too many positional arguments: 0 allowed, but 1 found.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:70:16: Error: Too many positional arguments: 0 allowed, but 1 found.
 // Try removing the extra positional arguments.
 //   Sub() : super(null);
 //                ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:69:16: Error: Superclass has no method named 'm'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:71:16: Error: Superclass has no method named 'm'.
 //   m() => super.m();
 //                ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:106:41: Error: Can't use 'toString' because it is declared more than once.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:108:41: Error: Can't use 'toString' because it is declared more than once.
 //     "AnotherEnum.toString": AnotherEnum.toString,
 //                                         ^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:107:39: Error: Can't use 'values' because it is declared more than once.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:109:39: Error: Can't use 'values' because it is declared more than once.
 //     "AnotherEnum.values": AnotherEnum.values,
 //                                       ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:62:17: Error: Can't use 's' because it is declared more than once.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:64:17: Error: Can't use 's' because it is declared more than once.
 //   static f() => s;
 //                 ^
 //
@@ -385,7 +385,7 @@
     "1st";
   }
   static method f() → dynamic
-    return invalid-expression "pkg/front_end/testcases/general/duplicated_declarations_part.dart:62:17: Error: Can't use 's' because it is declared more than once.
+    return invalid-expression "pkg/front_end/testcases/general/duplicated_declarations_part.dart:64:17: Error: Can't use 's' because it is declared more than once.
   static f() => s;
                 ^";
 }
@@ -406,13 +406,13 @@
     "1st";
   }
   static method f() → dynamic
-    return invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:64:17: Error: Can't use 's' because it is declared more than once.
+    return invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:66:17: Error: Can't use 's' because it is declared more than once.
   static f() => s;
                 ^";
 }
 class Sub extends core::Object {
   constructor •() → self::Sub
-    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:68:16: Error: Too many positional arguments: 0 allowed, but 1 found.
+    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:70:16: Error: Too many positional arguments: 0 allowed, but 1 found.
 Try removing the extra positional arguments.
   Sub() : super(null);
                ^"
@@ -491,27 +491,27 @@
   "1st";
 }
 static method foo() → dynamic {
-  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:34:3: Error: Can't use 'main' because it is declared more than once.
+  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:36:3: Error: Can't use 'main' because it is declared more than once.
   main();
   ^"{dynamic}.call();
-  core::print(invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:35:9: Error: Can't use 'field' because it is declared more than once.
+  core::print(invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:37:9: Error: Can't use 'field' because it is declared more than once.
   print(field);
         ^");
-  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:36:3: Error: Can't use 'C' because it is declared more than once.
+  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:38:3: Error: Can't use 'C' because it is declared more than once.
   C.s();
   ^"{dynamic}.s();
-  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:37:5: Error: Expected identifier, but got 'this'.
+  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:39:5: Error: Expected identifier, but got 'this'.
   C.this();
     ^^^^";
-  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:38:5: Error: Expected an identifier, but got '('.
+  invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:40:5: Error: Expected an identifier, but got '('.
 Try inserting an identifier before '('.
   C.();
     ^";
 }
 static method useAnotherEnum() → dynamic {
-  <core::String, core::Object>{"AnotherEnum.a": #C26, "AnotherEnum.b": #C27, "AnotherEnum.c": #C28, "AnotherEnum._name": #C31, "AnotherEnum.index": #C34, "AnotherEnum.toString": invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:106:41: Error: Can't use 'toString' because it is declared more than once.
+  <core::String, core::Object>{"AnotherEnum.a": #C26, "AnotherEnum.b": #C27, "AnotherEnum.c": #C28, "AnotherEnum._name": #C31, "AnotherEnum.index": #C34, "AnotherEnum.toString": invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:108:41: Error: Can't use 'toString' because it is declared more than once.
     \"AnotherEnum.toString\": AnotherEnum.toString,
-                                        ^^^^^^^^", "AnotherEnum.values": invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:107:39: Error: Can't use 'values' because it is declared more than once.
+                                        ^^^^^^^^", "AnotherEnum.values": invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:109:39: Error: Can't use 'values' because it is declared more than once.
     \"AnotherEnum.values\": AnotherEnum.values,
                                       ^^^^^^"};
 }
@@ -561,8 +561,8 @@
 
 Constructor coverage from constants:
 org-dartlang-testcase:///duplicated_declarations.dart:
-- Enum#1. (from org-dartlang-testcase:///duplicated_declarations.dart:83:6)
+- Enum#1. (from org-dartlang-testcase:///duplicated_declarations.dart:85:6)
 - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
-- Enum. (from org-dartlang-testcase:///duplicated_declarations.dart:76:6)
-- AnotherEnum. (from org-dartlang-testcase:///duplicated_declarations.dart:89:6)
+- Enum. (from org-dartlang-testcase:///duplicated_declarations.dart:78:6)
+- AnotherEnum. (from org-dartlang-testcase:///duplicated_declarations.dart:91:6)
diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.outline.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.outline.expect
index 3646760..7746abc 100644
--- a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.outline.expect
@@ -2,297 +2,297 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:7:1: Error: Import directives must precede part directives.
-// Try moving the import directives before the part directives.
-// import 'duplicated_declarations_lib.dart' as Typedef;
-// ^^^^^^
-//
 // pkg/front_end/testcases/general/duplicated_declarations.dart:9:1: Error: Import directives must precede part directives.
 // Try moving the import directives before the part directives.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 // ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:13:9: Error: 'Typedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:11:1: Error: Import directives must precede part directives.
+// Try moving the import directives before the part directives.
+// import 'duplicated_declarations_lib.dart' as Typedef;
+// ^^^^^^
+//
+// pkg/front_end/testcases/general/duplicated_declarations.dart:15:9: Error: 'Typedef' is already declared in this scope.
 // typedef Typedef = Object Function();
 //         ^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:11:9: Context: Previous declaration of 'Typedef'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:13:9: Context: Previous declaration of 'Typedef'.
 // typedef Typedef = void Function();
 //         ^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:15:1: Error: Directives must appear before any declarations.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:17:1: Error: Directives must appear before any declarations.
 // Try moving the directive before any declarations.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 // ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:19:16: Error: 'OldTypedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:21:16: Error: 'OldTypedef' is already declared in this scope.
 // typedef Object OldTypedef();
 //                ^^^^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:17:14: Context: Previous declaration of 'OldTypedef'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:19:14: Context: Previous declaration of 'OldTypedef'.
 // typedef void OldTypedef();
 //              ^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:23:5: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:25:5: Error: 'field' is already declared in this scope.
 // var field = "2nd";
 //     ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:21:5: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:23:5: Context: Previous declaration of 'field'.
 // var field = "1st";
 //     ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:29:1: Error: 'main' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:31:1: Error: 'main' is already declared in this scope.
 // main() {
 // ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:25:1: Context: Previous declaration of 'main'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:27:1: Context: Previous declaration of 'main'.
 // main() {
 // ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:43:3: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:45:3: Error: 'C' is already declared in this scope.
 //   C(a, b);
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:42:3: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:44:3: Context: Previous declaration of 'C'.
 //   C(a);
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:46:7: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:48:7: Error: 'field' is already declared in this scope.
 //   var field = "2nd";
 //       ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:44:7: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:46:7: Context: Previous declaration of 'field'.
 //   var field = "1st";
 //       ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:52:3: Error: 'm' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:54:3: Error: 'm' is already declared in this scope.
 //   m() {
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:48:3: Context: Previous declaration of 'm'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:50:3: Context: Previous declaration of 'm'.
 //   m() {
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:60:10: Error: 's' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:62:10: Error: 's' is already declared in this scope.
 //   static s() {
 //          ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:56:10: Context: Previous declaration of 's'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:58:10: Context: Previous declaration of 's'.
 //   static s() {
 //          ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:72:7: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:74:7: Error: 'C' is already declared in this scope.
 // class C {
 //       ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:41:7: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:43:7: Context: Previous declaration of 'C'.
 // class C {
 //       ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:77:3: Error: Name of enum constant 'Enum' can't be the same as the enum's own name.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:79:3: Error: Name of enum constant 'Enum' can't be the same as the enum's own name.
 //   Enum,
 //   ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:79:3: Error: 'a' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:81:3: Error: 'a' is already declared in this scope.
 //   a,
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:78:3: Context: Previous declaration of 'a'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:80:3: Context: Previous declaration of 'a'.
 //   a,
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:83:6: Error: 'Enum' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:85:6: Error: 'Enum' is already declared in this scope.
 // enum Enum {
 //      ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:76:6: Context: Previous declaration of 'Enum'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:78:6: Context: Previous declaration of 'Enum'.
 // enum Enum {
 //      ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:95:3: Error: 'toString' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:97:3: Error: 'toString' is already declared in this scope.
 //   toString,
 //   ^^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:89:6: Context: Previous declaration of 'toString' is implied by this definition.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:91:6: Context: Previous declaration of 'toString' is implied by this definition.
 // enum AnotherEnum {
 //      ^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:96:3: Error: 'values' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:98:3: Error: 'values' is already declared in this scope.
 //   values,
 //   ^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:89:6: Context: Previous declaration of 'values' is implied by this definition.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:91:6: Context: Previous declaration of 'values' is implied by this definition.
 // enum AnotherEnum {
 //      ^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:11:9: Error: 'Typedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:13:9: Error: 'Typedef' is already declared in this scope.
 // typedef Typedef = void Function();
 //         ^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:13:9: Context: Previous declaration of 'Typedef'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:15:9: Context: Previous declaration of 'Typedef'.
 // typedef Typedef = Object Function();
 //         ^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:17:14: Error: 'OldTypedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:19:14: Error: 'OldTypedef' is already declared in this scope.
 // typedef void OldTypedef();
 //              ^^^^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:19:16: Context: Previous declaration of 'OldTypedef'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:21:16: Context: Previous declaration of 'OldTypedef'.
 // typedef Object OldTypedef();
 //                ^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:21:5: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:23:5: Error: 'field' is already declared in this scope.
 // var field = "3rd";
 //     ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:23:5: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:25:5: Context: Previous declaration of 'field'.
 // var field = "2nd";
 //     ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:27:1: Error: 'main' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:29:1: Error: 'main' is already declared in this scope.
 // main() {
 // ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:29:1: Context: Previous declaration of 'main'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:31:1: Context: Previous declaration of 'main'.
 // main() {
 // ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:39:7: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:41:7: Error: 'C' is already declared in this scope.
 // class C {
 //       ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:72:7: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:74:7: Context: Previous declaration of 'C'.
 // class C {
 //       ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:73:6: Error: 'Enum' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:75:6: Error: 'Enum' is already declared in this scope.
 // enum Enum {
 //      ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:83:6: Context: Previous declaration of 'Enum'.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:85:6: Context: Previous declaration of 'Enum'.
 // enum Enum {
 //      ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:7:1: Error: The part-of directive must be the only directive in a part.
-// Try removing the other directives, or moving them to the library for which this is a part.
-// import 'duplicated_declarations_lib.dart' as Typedef;
-// ^^^^^^
-//
 // pkg/front_end/testcases/general/duplicated_declarations_part.dart:9:1: Error: The part-of directive must be the only directive in a part.
 // Try removing the other directives, or moving them to the library for which this is a part.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 // ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:13:9: Error: 'Typedef' is already declared in this scope.
-// typedef Typedef = Object Function();
-//         ^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:11:9: Context: Previous declaration of 'Typedef'.
-// typedef Typedef = void Function();
-//         ^^^^^^^
-//
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:15:1: Error: The part-of directive must be the only directive in a part.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:11:1: Error: The part-of directive must be the only directive in a part.
 // Try removing the other directives, or moving them to the library for which this is a part.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 // ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:19:16: Error: 'OldTypedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:15:9: Error: 'Typedef' is already declared in this scope.
+// typedef Typedef = Object Function();
+//         ^^^^^^^
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:13:9: Context: Previous declaration of 'Typedef'.
+// typedef Typedef = void Function();
+//         ^^^^^^^
+//
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:17:1: Error: The part-of directive must be the only directive in a part.
+// Try removing the other directives, or moving them to the library for which this is a part.
+// import 'duplicated_declarations_lib.dart' as Typedef;
+// ^^^^^^
+//
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:21:16: Error: 'OldTypedef' is already declared in this scope.
 // typedef Object OldTypedef();
 //                ^^^^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:17:14: Context: Previous declaration of 'OldTypedef'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:19:14: Context: Previous declaration of 'OldTypedef'.
 // typedef void OldTypedef();
 //              ^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:23:5: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:25:5: Error: 'field' is already declared in this scope.
 // var field = 4;
 //     ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:21:5: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:23:5: Context: Previous declaration of 'field'.
 // var field = "3rd";
 //     ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:25:5: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:27:5: Error: 'field' is already declared in this scope.
 // var field = 5.0;
 //     ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:23:5: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:25:5: Context: Previous declaration of 'field'.
 // var field = 4;
 //     ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:31:1: Error: 'main' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:33:1: Error: 'main' is already declared in this scope.
 // main() {
 // ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:27:1: Context: Previous declaration of 'main'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:29:1: Context: Previous declaration of 'main'.
 // main() {
 // ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:35:1: Error: 'main' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:37:1: Error: 'main' is already declared in this scope.
 // main() {
 // ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:31:1: Context: Previous declaration of 'main'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:33:1: Context: Previous declaration of 'main'.
 // main() {
 // ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:41:3: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:43:3: Error: 'C' is already declared in this scope.
 //   C(a, b);
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:40:3: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:42:3: Context: Previous declaration of 'C'.
 //   C(a);
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:44:7: Error: 'field' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:46:7: Error: 'field' is already declared in this scope.
 //   var field = "2nd";
 //       ^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:42:7: Context: Previous declaration of 'field'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:44:7: Context: Previous declaration of 'field'.
 //   var field = "1st";
 //       ^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:50:3: Error: 'm' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:52:3: Error: 'm' is already declared in this scope.
 //   m() {
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:46:3: Context: Previous declaration of 'm'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:48:3: Context: Previous declaration of 'm'.
 //   m() {
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:58:10: Error: 's' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:60:10: Error: 's' is already declared in this scope.
 //   static s() {
 //          ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:54:10: Context: Previous declaration of 's'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:56:10: Context: Previous declaration of 's'.
 //   static s() {
 //          ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:65:7: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:67:7: Error: 'C' is already declared in this scope.
 // class C {
 //       ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:39:7: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:41:7: Context: Previous declaration of 'C'.
 // class C {
 //       ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:69:7: Error: 'C' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:71:7: Error: 'C' is already declared in this scope.
 // class C {
 //       ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:65:7: Context: Previous declaration of 'C'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:67:7: Context: Previous declaration of 'C'.
 // class C {
 //       ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:74:3: Error: Name of enum constant 'Enum' can't be the same as the enum's own name.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:76:3: Error: Name of enum constant 'Enum' can't be the same as the enum's own name.
 //   Enum,
 //   ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:76:3: Error: 'a' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:78:3: Error: 'a' is already declared in this scope.
 //   a,
 //   ^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:75:3: Context: Previous declaration of 'a'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:77:3: Context: Previous declaration of 'a'.
 //   a,
 //   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:80:6: Error: 'Enum' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:82:6: Error: 'Enum' is already declared in this scope.
 // enum Enum {
 //      ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:73:6: Context: Previous declaration of 'Enum'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:75:6: Context: Previous declaration of 'Enum'.
 // enum Enum {
 //      ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:86:6: Error: 'Enum' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:88:6: Error: 'Enum' is already declared in this scope.
 // enum Enum {
 //      ^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:80:6: Context: Previous declaration of 'Enum'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:82:6: Context: Previous declaration of 'Enum'.
 // enum Enum {
 //      ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:7:46: Error: 'Typedef' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:9:46: Error: 'Typedef' is already declared in this scope.
 // import 'duplicated_declarations_lib.dart' as Typedef;
 //                                              ^^^^^^^
-// pkg/front_end/testcases/general/duplicated_declarations_part.dart:13:9: Context: Previous declaration of 'Typedef'.
+// pkg/front_end/testcases/general/duplicated_declarations_part.dart:15:9: Context: Previous declaration of 'Typedef'.
 // typedef Typedef = Object Function();
 //         ^^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:67:19: Error: 'C' isn't a type.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:69:19: Error: 'C' isn't a type.
 // class Sub extends C {
 //                   ^
-// pkg/front_end/testcases/general/duplicated_declarations.dart:67:19: Context: This isn't a type.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:69:19: Context: This isn't a type.
 // class Sub extends C {
 //                   ^
 //
-// pkg/front_end/testcases/general/duplicated_declarations.dart:94:3: Error: Can't declare a member that conflicts with an inherited one.
+// pkg/front_end/testcases/general/duplicated_declarations.dart:96:3: Error: Can't declare a member that conflicts with an inherited one.
 //   index,
 //   ^^^^^
 // sdk/lib/core/enum.dart:101:13: Context: This is the inherited member.
@@ -432,28 +432,28 @@
 
 
 Extra constant evaluation status:
-Evaluated: ListLiteral @ org-dartlang-testcase:///duplicated_declarations_part.dart:86:6 -> ListConstant(const <Enum#4*>[const Enum#4{_Enum.index: 0, _Enum._name: "a"}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations_part.dart:87:3 -> InstanceConstant(const Enum#4{_Enum.index: 0, _Enum._name: "a"})
-Evaluated: ListLiteral @ org-dartlang-testcase:///duplicated_declarations_part.dart:80:6 -> ListConstant(const <Enum#3*>[const Enum#3{_Enum.index: 0, _Enum._name: "a"}, const Enum#3{_Enum.index: 1, _Enum._name: "b"}, const Enum#3{_Enum.index: 2, _Enum._name: "c"}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations_part.dart:81:3 -> InstanceConstant(const Enum#3{_Enum.index: 0, _Enum._name: "a"})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations_part.dart:82:3 -> InstanceConstant(const Enum#3{_Enum.index: 1, _Enum._name: "b"})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations_part.dart:83:3 -> InstanceConstant(const Enum#3{_Enum.index: 2, _Enum._name: "c"})
-Evaluated: ListLiteral @ org-dartlang-testcase:///duplicated_declarations_part.dart:73:6 -> ListConstant(const <Enum#2*>[const Enum#2{_Enum.index: 0, _Enum._name: "Enum"}, const Enum#2{_Enum.index: 1, _Enum._name: "a"}, const Enum#2{_Enum.index: 2, _Enum._name: "b"}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations_part.dart:74:3 -> InstanceConstant(const Enum#2{_Enum.index: 0, _Enum._name: "Enum"})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations_part.dart:75:3 -> InstanceConstant(const Enum#2{_Enum.index: 1, _Enum._name: "a"})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations_part.dart:77:3 -> InstanceConstant(const Enum#2{_Enum.index: 2, _Enum._name: "b"})
-Evaluated: ListLiteral @ org-dartlang-testcase:///duplicated_declarations.dart:83:6 -> ListConstant(const <Enum#1*>[const Enum#1{_Enum.index: 0, _Enum._name: "a"}, const Enum#1{_Enum.index: 1, _Enum._name: "b"}, const Enum#1{_Enum.index: 2, _Enum._name: "c"}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:84:3 -> InstanceConstant(const Enum#1{_Enum.index: 0, _Enum._name: "a"})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:85:3 -> InstanceConstant(const Enum#1{_Enum.index: 1, _Enum._name: "b"})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:86:3 -> InstanceConstant(const Enum#1{_Enum.index: 2, _Enum._name: "c"})
-Evaluated: ListLiteral @ org-dartlang-testcase:///duplicated_declarations.dart:76:6 -> ListConstant(const <Enum*>[const Enum{_Enum.index: 0, _Enum._name: "Enum"}, const Enum{_Enum.index: 1, _Enum._name: "a"}, const Enum{_Enum.index: 2, _Enum._name: "b"}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:77:3 -> InstanceConstant(const Enum{_Enum.index: 0, _Enum._name: "Enum"})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:78:3 -> InstanceConstant(const Enum{_Enum.index: 1, _Enum._name: "a"})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:80:3 -> InstanceConstant(const Enum{_Enum.index: 2, _Enum._name: "b"})
-Evaluated: ListLiteral @ org-dartlang-testcase:///duplicated_declarations.dart:89:6 -> ListConstant(const <AnotherEnum*>[const AnotherEnum{_Enum.index: 0, _Enum._name: "a"}, const AnotherEnum{_Enum.index: 1, _Enum._name: "b"}, const AnotherEnum{_Enum.index: 2, _Enum._name: "c"}, const AnotherEnum{_Enum.index: 3, _Enum._name: "_name"}, const AnotherEnum{_Enum.index: 4, _Enum._name: "index"}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:90:3 -> InstanceConstant(const AnotherEnum{_Enum.index: 0, _Enum._name: "a"})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:91:3 -> InstanceConstant(const AnotherEnum{_Enum.index: 1, _Enum._name: "b"})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:92:3 -> InstanceConstant(const AnotherEnum{_Enum.index: 2, _Enum._name: "c"})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:93:3 -> InstanceConstant(const AnotherEnum{_Enum.index: 3, _Enum._name: "_name"})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:94:3 -> InstanceConstant(const AnotherEnum{_Enum.index: 4, _Enum._name: "index"})
+Evaluated: ListLiteral @ org-dartlang-testcase:///duplicated_declarations_part.dart:88:6 -> ListConstant(const <Enum#4*>[const Enum#4{_Enum.index: 0, _Enum._name: "a"}])
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations_part.dart:89:3 -> InstanceConstant(const Enum#4{_Enum.index: 0, _Enum._name: "a"})
+Evaluated: ListLiteral @ org-dartlang-testcase:///duplicated_declarations_part.dart:82:6 -> ListConstant(const <Enum#3*>[const Enum#3{_Enum.index: 0, _Enum._name: "a"}, const Enum#3{_Enum.index: 1, _Enum._name: "b"}, const Enum#3{_Enum.index: 2, _Enum._name: "c"}])
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations_part.dart:83:3 -> InstanceConstant(const Enum#3{_Enum.index: 0, _Enum._name: "a"})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations_part.dart:84:3 -> InstanceConstant(const Enum#3{_Enum.index: 1, _Enum._name: "b"})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations_part.dart:85:3 -> InstanceConstant(const Enum#3{_Enum.index: 2, _Enum._name: "c"})
+Evaluated: ListLiteral @ org-dartlang-testcase:///duplicated_declarations_part.dart:75:6 -> ListConstant(const <Enum#2*>[const Enum#2{_Enum.index: 0, _Enum._name: "Enum"}, const Enum#2{_Enum.index: 1, _Enum._name: "a"}, const Enum#2{_Enum.index: 2, _Enum._name: "b"}])
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations_part.dart:76:3 -> InstanceConstant(const Enum#2{_Enum.index: 0, _Enum._name: "Enum"})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations_part.dart:77:3 -> InstanceConstant(const Enum#2{_Enum.index: 1, _Enum._name: "a"})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations_part.dart:79:3 -> InstanceConstant(const Enum#2{_Enum.index: 2, _Enum._name: "b"})
+Evaluated: ListLiteral @ org-dartlang-testcase:///duplicated_declarations.dart:85:6 -> ListConstant(const <Enum#1*>[const Enum#1{_Enum.index: 0, _Enum._name: "a"}, const Enum#1{_Enum.index: 1, _Enum._name: "b"}, const Enum#1{_Enum.index: 2, _Enum._name: "c"}])
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:86:3 -> InstanceConstant(const Enum#1{_Enum.index: 0, _Enum._name: "a"})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:87:3 -> InstanceConstant(const Enum#1{_Enum.index: 1, _Enum._name: "b"})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:88:3 -> InstanceConstant(const Enum#1{_Enum.index: 2, _Enum._name: "c"})
+Evaluated: ListLiteral @ org-dartlang-testcase:///duplicated_declarations.dart:78:6 -> ListConstant(const <Enum*>[const Enum{_Enum.index: 0, _Enum._name: "Enum"}, const Enum{_Enum.index: 1, _Enum._name: "a"}, const Enum{_Enum.index: 2, _Enum._name: "b"}])
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:79:3 -> InstanceConstant(const Enum{_Enum.index: 0, _Enum._name: "Enum"})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:80:3 -> InstanceConstant(const Enum{_Enum.index: 1, _Enum._name: "a"})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:82:3 -> InstanceConstant(const Enum{_Enum.index: 2, _Enum._name: "b"})
+Evaluated: ListLiteral @ org-dartlang-testcase:///duplicated_declarations.dart:91:6 -> ListConstant(const <AnotherEnum*>[const AnotherEnum{_Enum.index: 0, _Enum._name: "a"}, const AnotherEnum{_Enum.index: 1, _Enum._name: "b"}, const AnotherEnum{_Enum.index: 2, _Enum._name: "c"}, const AnotherEnum{_Enum.index: 3, _Enum._name: "_name"}, const AnotherEnum{_Enum.index: 4, _Enum._name: "index"}])
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:92:3 -> InstanceConstant(const AnotherEnum{_Enum.index: 0, _Enum._name: "a"})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:93:3 -> InstanceConstant(const AnotherEnum{_Enum.index: 1, _Enum._name: "b"})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:94:3 -> InstanceConstant(const AnotherEnum{_Enum.index: 2, _Enum._name: "c"})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:95:3 -> InstanceConstant(const AnotherEnum{_Enum.index: 3, _Enum._name: "_name"})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///duplicated_declarations.dart:96:3 -> InstanceConstant(const AnotherEnum{_Enum.index: 4, _Enum._name: "index"})
 Extra constant evaluation: evaluated: 54, effectively constant: 24
diff --git a/pkg/front_end/testcases/general/duplicated_declarations_part.dart b/pkg/front_end/testcases/general/duplicated_declarations_part.dart
index a31f772..b4f05c3 100644
--- a/pkg/front_end/testcases/general/duplicated_declarations_part.dart
+++ b/pkg/front_end/testcases/general/duplicated_declarations_part.dart
@@ -2,6 +2,8 @@
 // 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.
 
+// @dart=2.16
+
 part of "duplicated_declarations.dart";
 
 import 'duplicated_declarations_lib.dart' as Typedef;
diff --git a/pkg/front_end/testcases/general/escape.dart b/pkg/front_end/testcases/general/escape.dart
index 711ee61..2b7ac32 100644
--- a/pkg/front_end/testcases/general/escape.dart
+++ b/pkg/front_end/testcases/general/escape.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2017, 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.
-// @dart=2.9
+
 class A {
   var field;
 }
diff --git a/pkg/front_end/testcases/general/escape.dart.textual_outline.expect b/pkg/front_end/testcases/general/escape.dart.textual_outline.expect
index 8dfa85d..55378bb 100644
--- a/pkg/front_end/testcases/general/escape.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/escape.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   var field;
 }
diff --git a/pkg/front_end/testcases/general/escape.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/escape.dart.textual_outline_modelled.expect
index 4e93520..d8cd132 100644
--- a/pkg/front_end/testcases/general/escape.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/escape.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   var field;
 }
diff --git a/pkg/front_end/testcases/general/escape.dart.weak.expect b/pkg/front_end/testcases/general/escape.dart.weak.expect
index e9c05d7..a0ca3e3 100644
--- a/pkg/front_end/testcases/general/escape.dart.weak.expect
+++ b/pkg/front_end/testcases/general/escape.dart.weak.expect
@@ -1,87 +1,48 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  operator ==(dynamic x) → core::bool*
+  operator ==(core::Object x) → core::bool
     return false;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class X extends core::Object implements self::A, self::B {
   field dynamic field = null;
-  synthetic constructor •() → self::X*
+  synthetic constructor •() → self::X
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static method useAsA(self::A* object) → void {
+static method useAsA(self::A object) → void {
   dynamic _ = object.{self::A::field}{dynamic};
 }
-static method useAsB(self::B* object) → void {
+static method useAsB(self::B object) → void {
   dynamic _ = object.{self::B::field}{dynamic};
   self::escape(object);
 }
 static method escape(dynamic x) → void {
   x == null ?{dynamic} x = "" : null;
   x == null ?{dynamic} x = 45 : null;
-  if(!(x is core::int*) && !(x is core::String*)) {
+  if(!(x is{ForNonNullableByDefault} core::int) && !(x is{ForNonNullableByDefault} core::String)) {
     x{dynamic}.field = 45;
   }
 }
 static method main() → dynamic {
-  self::X* object = new self::X::•();
+  self::X object = new self::X::•();
   self::useAsA(new self::A::•());
   self::useAsA(object);
   self::useAsB(new self::B::•());
diff --git a/pkg/front_end/testcases/general/escape.dart.weak.modular.expect b/pkg/front_end/testcases/general/escape.dart.weak.modular.expect
index e9c05d7..a0ca3e3 100644
--- a/pkg/front_end/testcases/general/escape.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/escape.dart.weak.modular.expect
@@ -1,87 +1,48 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  operator ==(dynamic x) → core::bool*
+  operator ==(core::Object x) → core::bool
     return false;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class X extends core::Object implements self::A, self::B {
   field dynamic field = null;
-  synthetic constructor •() → self::X*
+  synthetic constructor •() → self::X
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static method useAsA(self::A* object) → void {
+static method useAsA(self::A object) → void {
   dynamic _ = object.{self::A::field}{dynamic};
 }
-static method useAsB(self::B* object) → void {
+static method useAsB(self::B object) → void {
   dynamic _ = object.{self::B::field}{dynamic};
   self::escape(object);
 }
 static method escape(dynamic x) → void {
   x == null ?{dynamic} x = "" : null;
   x == null ?{dynamic} x = 45 : null;
-  if(!(x is core::int*) && !(x is core::String*)) {
+  if(!(x is{ForNonNullableByDefault} core::int) && !(x is{ForNonNullableByDefault} core::String)) {
     x{dynamic}.field = 45;
   }
 }
 static method main() → dynamic {
-  self::X* object = new self::X::•();
+  self::X object = new self::X::•();
   self::useAsA(new self::A::•());
   self::useAsA(object);
   self::useAsB(new self::B::•());
diff --git a/pkg/front_end/testcases/general/escape.dart.weak.outline.expect b/pkg/front_end/testcases/general/escape.dart.weak.outline.expect
index 9efa03e..72ade55 100644
--- a/pkg/front_end/testcases/general/escape.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/escape.dart.weak.outline.expect
@@ -1,70 +1,31 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
   field dynamic field;
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends core::Object {
   field dynamic field;
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  operator ==(dynamic x) → core::bool*
+  operator ==(core::Object x) → core::bool
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class X extends core::Object implements self::A, self::B {
   field dynamic field;
-  synthetic constructor •() → self::X*
+  synthetic constructor •() → self::X
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static method useAsA(self::A* object) → void
+static method useAsA(self::A object) → void
   ;
-static method useAsB(self::B* object) → void
+static method useAsB(self::B object) → void
   ;
 static method escape(dynamic x) → void
   ;
diff --git a/pkg/front_end/testcases/general/escape.dart.weak.transformed.expect b/pkg/front_end/testcases/general/escape.dart.weak.transformed.expect
index e9c05d7..a0ca3e3 100644
--- a/pkg/front_end/testcases/general/escape.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/escape.dart.weak.transformed.expect
@@ -1,87 +1,48 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  operator ==(dynamic x) → core::bool*
+  operator ==(core::Object x) → core::bool
     return false;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class X extends core::Object implements self::A, self::B {
   field dynamic field = null;
-  synthetic constructor •() → self::X*
+  synthetic constructor •() → self::X
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static method useAsA(self::A* object) → void {
+static method useAsA(self::A object) → void {
   dynamic _ = object.{self::A::field}{dynamic};
 }
-static method useAsB(self::B* object) → void {
+static method useAsB(self::B object) → void {
   dynamic _ = object.{self::B::field}{dynamic};
   self::escape(object);
 }
 static method escape(dynamic x) → void {
   x == null ?{dynamic} x = "" : null;
   x == null ?{dynamic} x = 45 : null;
-  if(!(x is core::int*) && !(x is core::String*)) {
+  if(!(x is{ForNonNullableByDefault} core::int) && !(x is{ForNonNullableByDefault} core::String)) {
     x{dynamic}.field = 45;
   }
 }
 static method main() → dynamic {
-  self::X* object = new self::X::•();
+  self::X object = new self::X::•();
   self::useAsA(new self::A::•());
   self::useAsA(object);
   self::useAsB(new self::B::•());
diff --git a/pkg/front_end/testcases/general/export_main.dart b/pkg/front_end/testcases/general/export_main.dart
index da68add..9471d95 100644
--- a/pkg/front_end/testcases/general/export_main.dart
+++ b/pkg/front_end/testcases/general/export_main.dart
@@ -1,5 +1,5 @@
 // Copyright (c) 2017, 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.
-// @dart=2.9
+
 export 'hello.dart' show main;
diff --git a/pkg/front_end/testcases/general/export_main.dart.textual_outline.expect b/pkg/front_end/testcases/general/export_main.dart.textual_outline.expect
index b75de28..8692093 100644
--- a/pkg/front_end/testcases/general/export_main.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/export_main.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 export 'hello.dart' show main;
diff --git a/pkg/front_end/testcases/general/export_main.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/export_main.dart.textual_outline_modelled.expect
index b75de28..8692093 100644
--- a/pkg/front_end/testcases/general/export_main.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/export_main.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 export 'hello.dart' show main;
diff --git a/pkg/front_end/testcases/general/export_main.dart.weak.expect b/pkg/front_end/testcases/general/export_main.dart.weak.expect
index ff4d3da..00de15c 100644
--- a/pkg/front_end/testcases/general/export_main.dart.weak.expect
+++ b/pkg/front_end/testcases/general/export_main.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "hello.dart" as hel;
 additionalExports = (hel::main)
diff --git a/pkg/front_end/testcases/general/export_main.dart.weak.modular.expect b/pkg/front_end/testcases/general/export_main.dart.weak.modular.expect
index ff4d3da..00de15c 100644
--- a/pkg/front_end/testcases/general/export_main.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/export_main.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "hello.dart" as hel;
 additionalExports = (hel::main)
diff --git a/pkg/front_end/testcases/general/export_main.dart.weak.outline.expect b/pkg/front_end/testcases/general/export_main.dart.weak.outline.expect
index 1a2b722..59dd42b 100644
--- a/pkg/front_end/testcases/general/export_main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/export_main.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "hello.dart" as hel;
 additionalExports = (hel::main)
diff --git a/pkg/front_end/testcases/general/export_main.dart.weak.transformed.expect b/pkg/front_end/testcases/general/export_main.dart.weak.transformed.expect
index ff4d3da..00de15c 100644
--- a/pkg/front_end/testcases/general/export_main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/export_main.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "hello.dart" as hel;
 additionalExports = (hel::main)
diff --git a/pkg/front_end/testcases/general/export_test.dart b/pkg/front_end/testcases/general/export_test.dart
index 3d91807..13646cf 100644
--- a/pkg/front_end/testcases/general/export_test.dart
+++ b/pkg/front_end/testcases/general/export_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2017, 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.
-// @dart=2.9
+
 /// Test that exports are serialized in platform.dill.
 
 // This is somewhat brittle and we should extend this test framework to be
diff --git a/pkg/front_end/testcases/general/export_test.dart.textual_outline.expect b/pkg/front_end/testcases/general/export_test.dart.textual_outline.expect
index 5ff65fc..069d6b3 100644
--- a/pkg/front_end/testcases/general/export_test.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/export_test.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:developer' show UserTag;
 export 'dart:core' show print;
 
diff --git a/pkg/front_end/testcases/general/export_test.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/export_test.dart.textual_outline_modelled.expect
index e0ddda5..c19fa80 100644
--- a/pkg/front_end/testcases/general/export_test.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/export_test.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 export 'dart:core' show print;
 import 'dart:developer' show UserTag;
 
diff --git a/pkg/front_end/testcases/general/export_test.dart.weak.expect b/pkg/front_end/testcases/general/export_test.dart.weak.expect
index 497ce03..ccdc983 100644
--- a/pkg/front_end/testcases/general/export_test.dart.weak.expect
+++ b/pkg/front_end/testcases/general/export_test.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 additionalExports = (core::print)
diff --git a/pkg/front_end/testcases/general/export_test.dart.weak.modular.expect b/pkg/front_end/testcases/general/export_test.dart.weak.modular.expect
index 497ce03..ccdc983 100644
--- a/pkg/front_end/testcases/general/export_test.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/export_test.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 additionalExports = (core::print)
diff --git a/pkg/front_end/testcases/general/export_test.dart.weak.outline.expect b/pkg/front_end/testcases/general/export_test.dart.weak.outline.expect
index 464a785..30aa6fa 100644
--- a/pkg/front_end/testcases/general/export_test.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/export_test.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 additionalExports = (core::print)
diff --git a/pkg/front_end/testcases/general/export_test.dart.weak.transformed.expect b/pkg/front_end/testcases/general/export_test.dart.weak.transformed.expect
index 497ce03..ccdc983 100644
--- a/pkg/front_end/testcases/general/export_test.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/export_test.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 additionalExports = (core::print)
diff --git a/pkg/front_end/testcases/general/expressions.dart b/pkg/front_end/testcases/general/expressions.dart
index 28f3268..6102941 100644
--- a/pkg/front_end/testcases/general/expressions.dart
+++ b/pkg/front_end/testcases/general/expressions.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2016, 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.
-// @dart=2.9
+
 foo({fisk}) {
   print(fisk);
 }
@@ -41,7 +41,7 @@
   print(i++);
   print(new Object());
   print(const Object());
-  print((new List<String>.filled(2, null)).runtimeType);
+  print((new List<String>.filled(2, '')).runtimeType);
   foo(fisk: "Blorp gulp");
   f() {
     print("f was called");
diff --git a/pkg/front_end/testcases/general/expressions.dart.textual_outline.expect b/pkg/front_end/testcases/general/expressions.dart.textual_outline.expect
index 296cc43..bfda72e 100644
--- a/pkg/front_end/testcases/general/expressions.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/expressions.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 foo({fisk}) {}
 caller(f) {}
 main() {}
diff --git a/pkg/front_end/testcases/general/expressions.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/expressions.dart.textual_outline_modelled.expect
index a6dae72..a1c989b 100644
--- a/pkg/front_end/testcases/general/expressions.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/expressions.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 caller(f) {}
 foo({fisk}) {}
 main() {}
diff --git a/pkg/front_end/testcases/general/expressions.dart.weak.expect b/pkg/front_end/testcases/general/expressions.dart.weak.expect
index 20f5b17..68b889a 100644
--- a/pkg/front_end/testcases/general/expressions.dart.weak.expect
+++ b/pkg/front_end/testcases/general/expressions.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,8 +16,8 @@
   f{dynamic}.call();
 }
 static method main() → dynamic {
-  core::int* i = 0;
-  core::print(i =={core::num::==}{(core::Object*) →* core::bool*} 1 ?{core::String*} "bad" : "good");
+  core::int i = 0;
+  core::print(i =={core::num::==}{(core::Object) → core::bool} 1 ?{core::String} "bad" : "good");
   core::print("${i}");
   core::print("'${i}'");
   core::print(" '${i}' ");
@@ -28,28 +28,28 @@
   try {
     throw "fisk";
   }
-  on core::String* catch(final core::String* e, final core::StackTrace* s) {
+  on core::String catch(final core::String e, final core::StackTrace s) {
     core::print(e);
     if(!(s == null))
       core::print(s);
   }
   for (; false; ) {
   }
-  core::List<core::String*>* list = <core::String*>["Hello, World!"];
-  core::print(list.{core::List::[]}(i){(core::int*) →* core::String*});
-  list.{core::List::[]=}(i, "Hello, Brave New World!"){(core::int*, core::String*) →* void};
-  core::print(list.{core::List::[]}(i){(core::int*) →* core::String*});
+  core::List<core::String> list = <core::String>["Hello, World!"];
+  core::print(list.{core::List::[]}(i){(core::int) → core::String});
+  list.{core::List::[]=}(i, "Hello, Brave New World!"){(core::int, core::String) → void};
+  core::print(list.{core::List::[]}(i){(core::int) → core::String});
   i = 87;
-  core::print(i.{core::int::unary-}(){() →* core::int*});
-  core::print(i.{core::int::~}(){() →* core::int*});
-  core::print(!(i =={core::num::==}{(core::Object*) →* core::bool*} 42));
-  core::print(i = i.{core::num::-}(1){(core::num*) →* core::int*});
-  core::print(i = i.{core::num::+}(1){(core::num*) →* core::int*});
-  core::print(let final core::int* #t1 = i in let final core::int* #t2 = i = #t1.{core::num::-}(1){(core::num*) →* core::int*} in #t1);
-  core::print(let final core::int* #t3 = i in let final core::int* #t4 = i = #t3.{core::num::+}(1){(core::num*) →* core::int*} in #t3);
+  core::print(i.{core::int::unary-}(){() → core::int});
+  core::print(i.{core::int::~}(){() → core::int});
+  core::print(!(i =={core::num::==}{(core::Object) → core::bool} 42));
+  core::print(i = i.{core::num::-}(1){(core::num) → core::int});
+  core::print(i = i.{core::num::+}(1){(core::num) → core::int});
+  core::print(let final core::int #t1 = i in let final core::int #t2 = i = #t1.{core::num::-}(1){(core::num) → core::int} in #t1);
+  core::print(let final core::int #t3 = i in let final core::int #t4 = i = #t3.{core::num::+}(1){(core::num) → core::int} in #t3);
   core::print(new core::Object::•());
   core::print(#C2);
-  core::print(core::List::filled<core::String*>(2, null).{core::Object::runtimeType}{core::Type*});
+  core::print(core::List::filled<core::String>(2, "").{core::Object::runtimeType}{core::Type});
   self::foo(fisk: "Blorp gulp");
   function f() → Null {
     core::print("f was called");
@@ -61,21 +61,21 @@
   function g([dynamic message = #C1]) → Null {
     core::print(message);
   }
-  g("Hello, World"){([dynamic]) →* Null};
+  g("Hello, World"){([dynamic]) → Null};
   self::caller(([dynamic x = #C1]) → Null {
     core::print("<anon> was called with ${x}");
   });
   function h({dynamic message = #C1}) → Null {
     core::print(message);
   }
-  h(message: "Hello, World"){({message: dynamic}) →* Null};
+  h(message: "Hello, World"){({message: dynamic}) → Null};
   self::caller(({dynamic x = #C1}) → Null {
     core::print("<anon> was called with ${x}");
   });
-  core::print(#C3.{core::Type::toString}(){() →* core::String*});
+  core::print(#C3.{core::Type::toString}(){() → core::String});
   core::print(#C3);
-  core::print(let final core::Type* #t5 = #C3 in block {
-    #t5.{core::Type::toString}(){() →* core::String*};
+  core::print(let final core::Type #t5 = #C3 in block {
+    #t5.{core::Type::toString}(){() → core::String};
   } =>#t5);
   try {
     core::print(invalid-expression "pkg/front_end/testcases/general/expressions.dart:74:16: Error: Method not found: 'int.toString'.
@@ -83,7 +83,7 @@
                ^^^^^^^^");
     throw "Shouldn't work";
   }
-  on core::NoSuchMethodError* catch(final core::NoSuchMethodError* e) {
+  on core::NoSuchMethodError catch(final core::NoSuchMethodError e) {
     core::print("As expected: ${e}");
   }
   core::print(core::int::parse("42"));
diff --git a/pkg/front_end/testcases/general/expressions.dart.weak.modular.expect b/pkg/front_end/testcases/general/expressions.dart.weak.modular.expect
index 20f5b17..68b889a 100644
--- a/pkg/front_end/testcases/general/expressions.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/expressions.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,8 +16,8 @@
   f{dynamic}.call();
 }
 static method main() → dynamic {
-  core::int* i = 0;
-  core::print(i =={core::num::==}{(core::Object*) →* core::bool*} 1 ?{core::String*} "bad" : "good");
+  core::int i = 0;
+  core::print(i =={core::num::==}{(core::Object) → core::bool} 1 ?{core::String} "bad" : "good");
   core::print("${i}");
   core::print("'${i}'");
   core::print(" '${i}' ");
@@ -28,28 +28,28 @@
   try {
     throw "fisk";
   }
-  on core::String* catch(final core::String* e, final core::StackTrace* s) {
+  on core::String catch(final core::String e, final core::StackTrace s) {
     core::print(e);
     if(!(s == null))
       core::print(s);
   }
   for (; false; ) {
   }
-  core::List<core::String*>* list = <core::String*>["Hello, World!"];
-  core::print(list.{core::List::[]}(i){(core::int*) →* core::String*});
-  list.{core::List::[]=}(i, "Hello, Brave New World!"){(core::int*, core::String*) →* void};
-  core::print(list.{core::List::[]}(i){(core::int*) →* core::String*});
+  core::List<core::String> list = <core::String>["Hello, World!"];
+  core::print(list.{core::List::[]}(i){(core::int) → core::String});
+  list.{core::List::[]=}(i, "Hello, Brave New World!"){(core::int, core::String) → void};
+  core::print(list.{core::List::[]}(i){(core::int) → core::String});
   i = 87;
-  core::print(i.{core::int::unary-}(){() →* core::int*});
-  core::print(i.{core::int::~}(){() →* core::int*});
-  core::print(!(i =={core::num::==}{(core::Object*) →* core::bool*} 42));
-  core::print(i = i.{core::num::-}(1){(core::num*) →* core::int*});
-  core::print(i = i.{core::num::+}(1){(core::num*) →* core::int*});
-  core::print(let final core::int* #t1 = i in let final core::int* #t2 = i = #t1.{core::num::-}(1){(core::num*) →* core::int*} in #t1);
-  core::print(let final core::int* #t3 = i in let final core::int* #t4 = i = #t3.{core::num::+}(1){(core::num*) →* core::int*} in #t3);
+  core::print(i.{core::int::unary-}(){() → core::int});
+  core::print(i.{core::int::~}(){() → core::int});
+  core::print(!(i =={core::num::==}{(core::Object) → core::bool} 42));
+  core::print(i = i.{core::num::-}(1){(core::num) → core::int});
+  core::print(i = i.{core::num::+}(1){(core::num) → core::int});
+  core::print(let final core::int #t1 = i in let final core::int #t2 = i = #t1.{core::num::-}(1){(core::num) → core::int} in #t1);
+  core::print(let final core::int #t3 = i in let final core::int #t4 = i = #t3.{core::num::+}(1){(core::num) → core::int} in #t3);
   core::print(new core::Object::•());
   core::print(#C2);
-  core::print(core::List::filled<core::String*>(2, null).{core::Object::runtimeType}{core::Type*});
+  core::print(core::List::filled<core::String>(2, "").{core::Object::runtimeType}{core::Type});
   self::foo(fisk: "Blorp gulp");
   function f() → Null {
     core::print("f was called");
@@ -61,21 +61,21 @@
   function g([dynamic message = #C1]) → Null {
     core::print(message);
   }
-  g("Hello, World"){([dynamic]) →* Null};
+  g("Hello, World"){([dynamic]) → Null};
   self::caller(([dynamic x = #C1]) → Null {
     core::print("<anon> was called with ${x}");
   });
   function h({dynamic message = #C1}) → Null {
     core::print(message);
   }
-  h(message: "Hello, World"){({message: dynamic}) →* Null};
+  h(message: "Hello, World"){({message: dynamic}) → Null};
   self::caller(({dynamic x = #C1}) → Null {
     core::print("<anon> was called with ${x}");
   });
-  core::print(#C3.{core::Type::toString}(){() →* core::String*});
+  core::print(#C3.{core::Type::toString}(){() → core::String});
   core::print(#C3);
-  core::print(let final core::Type* #t5 = #C3 in block {
-    #t5.{core::Type::toString}(){() →* core::String*};
+  core::print(let final core::Type #t5 = #C3 in block {
+    #t5.{core::Type::toString}(){() → core::String};
   } =>#t5);
   try {
     core::print(invalid-expression "pkg/front_end/testcases/general/expressions.dart:74:16: Error: Method not found: 'int.toString'.
@@ -83,7 +83,7 @@
                ^^^^^^^^");
     throw "Shouldn't work";
   }
-  on core::NoSuchMethodError* catch(final core::NoSuchMethodError* e) {
+  on core::NoSuchMethodError catch(final core::NoSuchMethodError e) {
     core::print("As expected: ${e}");
   }
   core::print(core::int::parse("42"));
diff --git a/pkg/front_end/testcases/general/expressions.dart.weak.outline.expect b/pkg/front_end/testcases/general/expressions.dart.weak.outline.expect
index 721ce9d..05986f3 100644
--- a/pkg/front_end/testcases/general/expressions.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/expressions.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method foo({dynamic fisk}) → dynamic
diff --git a/pkg/front_end/testcases/general/expressions.dart.weak.transformed.expect b/pkg/front_end/testcases/general/expressions.dart.weak.transformed.expect
index 3569966..83bc1a9 100644
--- a/pkg/front_end/testcases/general/expressions.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/expressions.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,8 +16,8 @@
   f{dynamic}.call();
 }
 static method main() → dynamic {
-  core::int* i = 0;
-  core::print(i =={core::num::==}{(core::Object*) →* core::bool*} 1 ?{core::String*} "bad" : "good");
+  core::int i = 0;
+  core::print(i =={core::num::==}{(core::Object) → core::bool} 1 ?{core::String} "bad" : "good");
   core::print("${i}");
   core::print("'${i}'");
   core::print(" '${i}' ");
@@ -28,28 +28,28 @@
   try {
     throw "fisk";
   }
-  on core::String* catch(final core::String* e, final core::StackTrace* s) {
+  on core::String catch(final core::String e, final core::StackTrace s) {
     core::print(e);
     if(!(s == null))
       core::print(s);
   }
   for (; false; ) {
   }
-  core::List<core::String*>* list = core::_GrowableList::_literal1<core::String*>("Hello, World!");
-  core::print(list.{core::List::[]}(i){(core::int*) →* core::String*});
-  list.{core::List::[]=}(i, "Hello, Brave New World!"){(core::int*, core::String*) →* void};
-  core::print(list.{core::List::[]}(i){(core::int*) →* core::String*});
+  core::List<core::String> list = core::_GrowableList::_literal1<core::String>("Hello, World!");
+  core::print(list.{core::List::[]}(i){(core::int) → core::String});
+  list.{core::List::[]=}(i, "Hello, Brave New World!"){(core::int, core::String) → void};
+  core::print(list.{core::List::[]}(i){(core::int) → core::String});
   i = 87;
-  core::print(i.{core::int::unary-}(){() →* core::int*});
-  core::print(i.{core::int::~}(){() →* core::int*});
-  core::print(!(i =={core::num::==}{(core::Object*) →* core::bool*} 42));
-  core::print(i = i.{core::num::-}(1){(core::num*) →* core::int*});
-  core::print(i = i.{core::num::+}(1){(core::num*) →* core::int*});
-  core::print(let final core::int* #t1 = i in let final core::int* #t2 = i = #t1.{core::num::-}(1){(core::num*) →* core::int*} in #t1);
-  core::print(let final core::int* #t3 = i in let final core::int* #t4 = i = #t3.{core::num::+}(1){(core::num*) →* core::int*} in #t3);
+  core::print(i.{core::int::unary-}(){() → core::int});
+  core::print(i.{core::int::~}(){() → core::int});
+  core::print(!(i =={core::num::==}{(core::Object) → core::bool} 42));
+  core::print(i = i.{core::num::-}(1){(core::num) → core::int});
+  core::print(i = i.{core::num::+}(1){(core::num) → core::int});
+  core::print(let final core::int #t1 = i in let final core::int #t2 = i = #t1.{core::num::-}(1){(core::num) → core::int} in #t1);
+  core::print(let final core::int #t3 = i in let final core::int #t4 = i = #t3.{core::num::+}(1){(core::num) → core::int} in #t3);
   core::print(new core::Object::•());
   core::print(#C2);
-  core::print(core::_List::•<core::String*>(2).{core::Object::runtimeType}{core::Type*});
+  core::print(core::_List::filled<core::String>(2, "").{core::Object::runtimeType}{core::Type});
   self::foo(fisk: "Blorp gulp");
   function f() → Null {
     core::print("f was called");
@@ -61,21 +61,21 @@
   function g([dynamic message = #C1]) → Null {
     core::print(message);
   }
-  g("Hello, World"){([dynamic]) →* Null};
+  g("Hello, World"){([dynamic]) → Null};
   self::caller(([dynamic x = #C1]) → Null {
     core::print("<anon> was called with ${x}");
   });
   function h({dynamic message = #C1}) → Null {
     core::print(message);
   }
-  h(message: "Hello, World"){({message: dynamic}) →* Null};
+  h(message: "Hello, World"){({message: dynamic}) → Null};
   self::caller(({dynamic x = #C1}) → Null {
     core::print("<anon> was called with ${x}");
   });
-  core::print(#C3.{core::Type::toString}(){() →* core::String*});
+  core::print(#C3.{core::Type::toString}(){() → core::String});
   core::print(#C3);
-  core::print(let final core::Type* #t5 = #C3 in block {
-    #t5.{core::Type::toString}(){() →* core::String*};
+  core::print(let final core::Type #t5 = #C3 in block {
+    #t5.{core::Type::toString}(){() → core::String};
   } =>#t5);
   try {
     core::print(invalid-expression "pkg/front_end/testcases/general/expressions.dart:74:16: Error: Method not found: 'int.toString'.
@@ -83,7 +83,7 @@
                ^^^^^^^^");
     throw "Shouldn't work";
   }
-  on core::NoSuchMethodError* catch(final core::NoSuchMethodError* e) {
+  on core::NoSuchMethodError catch(final core::NoSuchMethodError e) {
     core::print("As expected: ${e}");
   }
   core::print(core::int::parse("42"));
diff --git a/pkg/front_end/testcases/general/extend_with_type_variable.dart b/pkg/front_end/testcases/general/extend_with_type_variable.dart
index 04949c2..e763f69 100644
--- a/pkg/front_end/testcases/general/extend_with_type_variable.dart
+++ b/pkg/front_end/testcases/general/extend_with_type_variable.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2016, 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.
-// @dart=2.9
+
 // Regression test for issue #39774.
 
 class SuperClass {}
diff --git a/pkg/front_end/testcases/general/extend_with_type_variable.dart.textual_outline.expect b/pkg/front_end/testcases/general/extend_with_type_variable.dart.textual_outline.expect
index d9154a0..0ff9f7d 100644
--- a/pkg/front_end/testcases/general/extend_with_type_variable.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/extend_with_type_variable.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class SuperClass {}
 
 mixin Mixin<T> {}
diff --git a/pkg/front_end/testcases/general/extend_with_type_variable.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/extend_with_type_variable.dart.textual_outline_modelled.expect
index 074e1c4..975364e 100644
--- a/pkg/front_end/testcases/general/extend_with_type_variable.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/extend_with_type_variable.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Class1<T, S extends SuperClass> extends S with Mixin<T> {}
 
 class Class2<T, M extends Mixin<T>> extends SuperClass with M {}
diff --git a/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.expect b/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.expect
index 8ead278..932b16b 100644
--- a/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.expect
+++ b/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,59 +18,29 @@
 import "dart:core" as core;
 
 class SuperClass extends core::Object {
-  synthetic constructor •() → self::SuperClass*
+  synthetic constructor •() → self::SuperClass
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-abstract class Mixin<T extends core::Object* = dynamic> extends core::Object /*isMixinDeclaration*/  {
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+abstract class Mixin<T extends core::Object? = dynamic> extends core::Object /*isMixinDeclaration*/  {
 }
-abstract class _Class1&S&Mixin<T extends core::Object* = dynamic, S extends self::SuperClass*> = core::Object with self::Mixin<self::_Class1&S&Mixin::T*> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class1&S&Mixin<self::_Class1&S&Mixin::T*, self::_Class1&S&Mixin::S*>*
+abstract class _Class1&S&Mixin<T extends core::Object? = dynamic, S extends self::SuperClass> = core::Object with self::Mixin<self::_Class1&S&Mixin::T%> /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Class1&S&Mixin<self::_Class1&S&Mixin::T%, self::_Class1&S&Mixin::S>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Class1<T extends core::Object* = dynamic, S extends self::SuperClass*> extends self::_Class1&S&Mixin<self::Class1::T*, self::Class1::S*> {
-  synthetic constructor •() → self::Class1<self::Class1::T*, self::Class1::S*>*
+class Class1<T extends core::Object? = dynamic, S extends self::SuperClass> extends self::_Class1&S&Mixin<self::Class1::T%, self::Class1::S> {
+  synthetic constructor •() → self::Class1<self::Class1::T%, self::Class1::S>
     : super self::_Class1&S&Mixin::•()
     ;
 }
-abstract class _Class2&SuperClass&M<T extends core::Object* = dynamic, M extends self::Mixin<self::_Class2&SuperClass&M::T*>* = self::Mixin<dynamic>*> extends self::SuperClass /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class2&SuperClass&M<self::_Class2&SuperClass&M::T*, self::_Class2&SuperClass&M::M*>*
+abstract class _Class2&SuperClass&M<T extends core::Object? = dynamic, M extends self::Mixin<self::_Class2&SuperClass&M::T%> = self::Mixin<dynamic>> extends self::SuperClass /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Class2&SuperClass&M<self::_Class2&SuperClass&M::T%, self::_Class2&SuperClass&M::M>
     : super self::SuperClass::•()
     ;
 }
-class Class2<T extends core::Object* = dynamic, M extends self::Mixin<self::Class2::T*>* = self::Mixin<dynamic>*> extends self::_Class2&SuperClass&M<self::Class2::T*, self::Class2::M*> {
-  synthetic constructor •() → self::Class2<self::Class2::T*, self::Class2::M*>*
+class Class2<T extends core::Object? = dynamic, M extends self::Mixin<self::Class2::T%> = self::Mixin<dynamic>> extends self::_Class2&SuperClass&M<self::Class2::T%, self::Class2::M> {
+  synthetic constructor •() → self::Class2<self::Class2::T%, self::Class2::M>
     : super self::_Class2&SuperClass&M::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.modular.expect b/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.modular.expect
index 8ead278..932b16b 100644
--- a/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,59 +18,29 @@
 import "dart:core" as core;
 
 class SuperClass extends core::Object {
-  synthetic constructor •() → self::SuperClass*
+  synthetic constructor •() → self::SuperClass
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-abstract class Mixin<T extends core::Object* = dynamic> extends core::Object /*isMixinDeclaration*/  {
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+abstract class Mixin<T extends core::Object? = dynamic> extends core::Object /*isMixinDeclaration*/  {
 }
-abstract class _Class1&S&Mixin<T extends core::Object* = dynamic, S extends self::SuperClass*> = core::Object with self::Mixin<self::_Class1&S&Mixin::T*> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class1&S&Mixin<self::_Class1&S&Mixin::T*, self::_Class1&S&Mixin::S*>*
+abstract class _Class1&S&Mixin<T extends core::Object? = dynamic, S extends self::SuperClass> = core::Object with self::Mixin<self::_Class1&S&Mixin::T%> /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Class1&S&Mixin<self::_Class1&S&Mixin::T%, self::_Class1&S&Mixin::S>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Class1<T extends core::Object* = dynamic, S extends self::SuperClass*> extends self::_Class1&S&Mixin<self::Class1::T*, self::Class1::S*> {
-  synthetic constructor •() → self::Class1<self::Class1::T*, self::Class1::S*>*
+class Class1<T extends core::Object? = dynamic, S extends self::SuperClass> extends self::_Class1&S&Mixin<self::Class1::T%, self::Class1::S> {
+  synthetic constructor •() → self::Class1<self::Class1::T%, self::Class1::S>
     : super self::_Class1&S&Mixin::•()
     ;
 }
-abstract class _Class2&SuperClass&M<T extends core::Object* = dynamic, M extends self::Mixin<self::_Class2&SuperClass&M::T*>* = self::Mixin<dynamic>*> extends self::SuperClass /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class2&SuperClass&M<self::_Class2&SuperClass&M::T*, self::_Class2&SuperClass&M::M*>*
+abstract class _Class2&SuperClass&M<T extends core::Object? = dynamic, M extends self::Mixin<self::_Class2&SuperClass&M::T%> = self::Mixin<dynamic>> extends self::SuperClass /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Class2&SuperClass&M<self::_Class2&SuperClass&M::T%, self::_Class2&SuperClass&M::M>
     : super self::SuperClass::•()
     ;
 }
-class Class2<T extends core::Object* = dynamic, M extends self::Mixin<self::Class2::T*>* = self::Mixin<dynamic>*> extends self::_Class2&SuperClass&M<self::Class2::T*, self::Class2::M*> {
-  synthetic constructor •() → self::Class2<self::Class2::T*, self::Class2::M*>*
+class Class2<T extends core::Object? = dynamic, M extends self::Mixin<self::Class2::T%> = self::Mixin<dynamic>> extends self::_Class2&SuperClass&M<self::Class2::T%, self::Class2::M> {
+  synthetic constructor •() → self::Class2<self::Class2::T%, self::Class2::M>
     : super self::_Class2&SuperClass&M::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.outline.expect b/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.outline.expect
index c6193d3..c883ec7 100644
--- a/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,56 +18,26 @@
 import "dart:core" as core;
 
 class SuperClass extends core::Object {
-  synthetic constructor •() → self::SuperClass*
-    ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-abstract class Mixin<T extends core::Object* = dynamic> extends core::Object /*isMixinDeclaration*/  {
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-abstract class _Class1&S&Mixin<T extends core::Object* = dynamic, S extends self::SuperClass*> = core::Object with self::Mixin<self::_Class1&S&Mixin::T*> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class1&S&Mixin<self::_Class1&S&Mixin::T*, self::_Class1&S&Mixin::S*>*
-    ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-class Class1<T extends core::Object* = dynamic, S extends self::SuperClass*> extends self::_Class1&S&Mixin<self::Class1::T*, self::Class1::S*> {
-  synthetic constructor •() → self::Class1<self::Class1::T*, self::Class1::S*>*
+  synthetic constructor •() → self::SuperClass
     ;
 }
-abstract class _Class2&SuperClass&M<T extends core::Object* = dynamic, M extends self::Mixin<self::_Class2&SuperClass&M::T*>* = self::Mixin<dynamic>*> extends self::SuperClass /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class2&SuperClass&M<self::_Class2&SuperClass&M::T*, self::_Class2&SuperClass&M::M*>*
+abstract class Mixin<T extends core::Object? = dynamic> extends core::Object /*isMixinDeclaration*/  {
+}
+abstract class _Class1&S&Mixin<T extends core::Object? = dynamic, S extends self::SuperClass> = core::Object with self::Mixin<self::_Class1&S&Mixin::T%> /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Class1&S&Mixin<self::_Class1&S&Mixin::T%, self::_Class1&S&Mixin::S>
+    ;
+}
+class Class1<T extends core::Object? = dynamic, S extends self::SuperClass> extends self::_Class1&S&Mixin<self::Class1::T%, self::Class1::S> {
+  synthetic constructor •() → self::Class1<self::Class1::T%, self::Class1::S>
+    ;
+}
+abstract class _Class2&SuperClass&M<T extends core::Object? = dynamic, M extends self::Mixin<self::_Class2&SuperClass&M::T%> = self::Mixin<dynamic>> extends self::SuperClass /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Class2&SuperClass&M<self::_Class2&SuperClass&M::T%, self::_Class2&SuperClass&M::M>
     : super self::SuperClass::•()
     ;
 }
-class Class2<T extends core::Object* = dynamic, M extends self::Mixin<self::Class2::T*>* = self::Mixin<dynamic>*> extends self::_Class2&SuperClass&M<self::Class2::T*, self::Class2::M*> {
-  synthetic constructor •() → self::Class2<self::Class2::T*, self::Class2::M*>*
+class Class2<T extends core::Object? = dynamic, M extends self::Mixin<self::Class2::T%> = self::Mixin<dynamic>> extends self::_Class2&SuperClass&M<self::Class2::T%, self::Class2::M> {
+  synthetic constructor •() → self::Class2<self::Class2::T%, self::Class2::M>
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.transformed.expect b/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.transformed.expect
index 3c6fc51..b205d46 100644
--- a/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,59 +18,29 @@
 import "dart:core" as core;
 
 class SuperClass extends core::Object {
-  synthetic constructor •() → self::SuperClass*
+  synthetic constructor •() → self::SuperClass
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-abstract class Mixin<T extends core::Object* = dynamic> extends core::Object /*isMixinDeclaration*/  {
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+abstract class Mixin<T extends core::Object? = dynamic> extends core::Object /*isMixinDeclaration*/  {
 }
-abstract class _Class1&S&Mixin<T extends core::Object* = dynamic, S extends self::SuperClass*> extends core::Object implements self::Mixin<self::_Class1&S&Mixin::T*> /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class1&S&Mixin<self::_Class1&S&Mixin::T*, self::_Class1&S&Mixin::S*>*
+abstract class _Class1&S&Mixin<T extends core::Object? = dynamic, S extends self::SuperClass> extends core::Object implements self::Mixin<self::_Class1&S&Mixin::T%> /*isAnonymousMixin,isEliminatedMixin*/  {
+  synthetic constructor •() → self::_Class1&S&Mixin<self::_Class1&S&Mixin::T%, self::_Class1&S&Mixin::S>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Class1<T extends core::Object* = dynamic, S extends self::SuperClass*> extends self::_Class1&S&Mixin<self::Class1::T*, self::Class1::S*> {
-  synthetic constructor •() → self::Class1<self::Class1::T*, self::Class1::S*>*
+class Class1<T extends core::Object? = dynamic, S extends self::SuperClass> extends self::_Class1&S&Mixin<self::Class1::T%, self::Class1::S> {
+  synthetic constructor •() → self::Class1<self::Class1::T%, self::Class1::S>
     : super self::_Class1&S&Mixin::•()
     ;
 }
-abstract class _Class2&SuperClass&M<T extends core::Object* = dynamic, M extends self::Mixin<self::_Class2&SuperClass&M::T*>* = self::Mixin<dynamic>*> extends self::SuperClass /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class2&SuperClass&M<self::_Class2&SuperClass&M::T*, self::_Class2&SuperClass&M::M*>*
+abstract class _Class2&SuperClass&M<T extends core::Object? = dynamic, M extends self::Mixin<self::_Class2&SuperClass&M::T%> = self::Mixin<dynamic>> extends self::SuperClass /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Class2&SuperClass&M<self::_Class2&SuperClass&M::T%, self::_Class2&SuperClass&M::M>
     : super self::SuperClass::•()
     ;
 }
-class Class2<T extends core::Object* = dynamic, M extends self::Mixin<self::Class2::T*>* = self::Mixin<dynamic>*> extends self::_Class2&SuperClass&M<self::Class2::T*, self::Class2::M*> {
-  synthetic constructor •() → self::Class2<self::Class2::T*, self::Class2::M*>*
+class Class2<T extends core::Object? = dynamic, M extends self::Mixin<self::Class2::T%> = self::Mixin<dynamic>> extends self::_Class2&SuperClass&M<self::Class2::T%, self::Class2::M> {
+  synthetic constructor •() → self::Class2<self::Class2::T%, self::Class2::M>
     : super self::_Class2&SuperClass&M::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/external.dart b/pkg/front_end/testcases/general/external.dart
index 5fb2c9b..fb7358b 100644
--- a/pkg/front_end/testcases/general/external.dart
+++ b/pkg/front_end/testcases/general/external.dart
@@ -2,8 +2,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.
 
-// @dart=2.9
-
 import 'dart:isolate';
 
 var subscription;
diff --git a/pkg/front_end/testcases/general/external.dart.textual_outline.expect b/pkg/front_end/testcases/general/external.dart.textual_outline.expect
index b2341af..fbcbaee 100644
--- a/pkg/front_end/testcases/general/external.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/external.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:isolate';
 
 var subscription;
diff --git a/pkg/front_end/testcases/general/external.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/external.dart.textual_outline_modelled.expect
index e4915bb..1db5cd5 100644
--- a/pkg/front_end/testcases/general/external.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/external.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:isolate';
 
 main() {}
diff --git a/pkg/front_end/testcases/general/external.dart.weak.expect b/pkg/front_end/testcases/general/external.dart.weak.expect
index 5e9b241..6586104 100644
--- a/pkg/front_end/testcases/general/external.dart.weak.expect
+++ b/pkg/front_end/testcases/general/external.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:isolate" as iso;
@@ -12,10 +12,10 @@
   self::subscription{dynamic}.cancel();
 }
 static method main() → dynamic {
-  core::String* string = core::String::fromCharCode(65);
-  iso::ReceivePort* port = iso::ReceivePort::•();
-  self::subscription = port.{iso::ReceivePort::listen}(#C1){((dynamic) →* void, {cancelOnError: core::bool*, onDone: () →* void, onError: core::Function*}) →* asy::StreamSubscription<dynamic>*};
-  port.{iso::ReceivePort::sendPort}{iso::SendPort*}.{iso::SendPort::send}(string){(core::Object*) →* void};
+  core::String string = core::String::fromCharCode(65);
+  iso::ReceivePort port = iso::ReceivePort::•();
+  self::subscription = port.{iso::ReceivePort::listen}(#C1){((dynamic) →? void, {cancelOnError: core::bool?, onDone: () →? void, onError: core::Function?}) → asy::StreamSubscription<dynamic>};
+  port.{iso::ReceivePort::sendPort}{iso::SendPort}.{iso::SendPort::send}(string){(core::Object?) → void};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/general/external.dart.weak.modular.expect b/pkg/front_end/testcases/general/external.dart.weak.modular.expect
index 5e9b241..6586104 100644
--- a/pkg/front_end/testcases/general/external.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/external.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:isolate" as iso;
@@ -12,10 +12,10 @@
   self::subscription{dynamic}.cancel();
 }
 static method main() → dynamic {
-  core::String* string = core::String::fromCharCode(65);
-  iso::ReceivePort* port = iso::ReceivePort::•();
-  self::subscription = port.{iso::ReceivePort::listen}(#C1){((dynamic) →* void, {cancelOnError: core::bool*, onDone: () →* void, onError: core::Function*}) →* asy::StreamSubscription<dynamic>*};
-  port.{iso::ReceivePort::sendPort}{iso::SendPort*}.{iso::SendPort::send}(string){(core::Object*) →* void};
+  core::String string = core::String::fromCharCode(65);
+  iso::ReceivePort port = iso::ReceivePort::•();
+  self::subscription = port.{iso::ReceivePort::listen}(#C1){((dynamic) →? void, {cancelOnError: core::bool?, onDone: () →? void, onError: core::Function?}) → asy::StreamSubscription<dynamic>};
+  port.{iso::ReceivePort::sendPort}{iso::SendPort}.{iso::SendPort::send}(string){(core::Object?) → void};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/general/external.dart.weak.outline.expect b/pkg/front_end/testcases/general/external.dart.weak.outline.expect
index 1c44d50..2b7b111 100644
--- a/pkg/front_end/testcases/general/external.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/external.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "dart:isolate";
diff --git a/pkg/front_end/testcases/general/external.dart.weak.transformed.expect b/pkg/front_end/testcases/general/external.dart.weak.transformed.expect
index 5e9b241..6586104 100644
--- a/pkg/front_end/testcases/general/external.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/external.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:isolate" as iso;
@@ -12,10 +12,10 @@
   self::subscription{dynamic}.cancel();
 }
 static method main() → dynamic {
-  core::String* string = core::String::fromCharCode(65);
-  iso::ReceivePort* port = iso::ReceivePort::•();
-  self::subscription = port.{iso::ReceivePort::listen}(#C1){((dynamic) →* void, {cancelOnError: core::bool*, onDone: () →* void, onError: core::Function*}) →* asy::StreamSubscription<dynamic>*};
-  port.{iso::ReceivePort::sendPort}{iso::SendPort*}.{iso::SendPort::send}(string){(core::Object*) →* void};
+  core::String string = core::String::fromCharCode(65);
+  iso::ReceivePort port = iso::ReceivePort::•();
+  self::subscription = port.{iso::ReceivePort::listen}(#C1){((dynamic) →? void, {cancelOnError: core::bool?, onDone: () →? void, onError: core::Function?}) → asy::StreamSubscription<dynamic>};
+  port.{iso::ReceivePort::sendPort}{iso::SendPort}.{iso::SendPort::send}(string){(core::Object?) → void};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/general/external_import.dart b/pkg/front_end/testcases/general/external_import.dart
index d37c860..962f6de 100644
--- a/pkg/front_end/testcases/general/external_import.dart
+++ b/pkg/front_end/testcases/general/external_import.dart
@@ -2,8 +2,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.
 
-// @dart=2.9
-
 import 'dart-ext:here';
 import 'dart-ext:foo/../there';
 import 'dart-ext:/usr/local/somewhere';
diff --git a/pkg/front_end/testcases/general/external_import.dart.textual_outline.expect b/pkg/front_end/testcases/general/external_import.dart.textual_outline.expect
index 312d71b..e1f051e 100644
--- a/pkg/front_end/testcases/general/external_import.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/external_import.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart-ext:here';
 import 'dart-ext:foo/../there';
 import 'dart-ext:/usr/local/somewhere';
diff --git a/pkg/front_end/testcases/general/external_import.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/external_import.dart.textual_outline_modelled.expect
index 6ce2c47..29aa279 100644
--- a/pkg/front_end/testcases/general/external_import.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/external_import.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart-ext:/usr/local/somewhere';
 import 'dart-ext:foo/../there';
 import 'dart-ext:here';
diff --git a/pkg/front_end/testcases/general/external_import.dart.weak.expect b/pkg/front_end/testcases/general/external_import.dart.weak.expect
index 5e7e2df..1b3d235 100644
--- a/pkg/front_end/testcases/general/external_import.dart.weak.expect
+++ b/pkg/front_end/testcases/general/external_import.dart.weak.expect
@@ -1,21 +1,21 @@
 @#C2
 @#C4
 @#C6
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/external_import.dart:7:1: Error: Dart native extensions are no longer supported.
+// pkg/front_end/testcases/general/external_import.dart:5:1: Error: Dart native extensions are no longer supported.
 // Migrate to using FFI instead (https://dart.dev/guides/libraries/c-interop)
 // import 'dart-ext:here';
 // ^
 //
-// pkg/front_end/testcases/general/external_import.dart:8:1: Error: Dart native extensions are no longer supported.
+// pkg/front_end/testcases/general/external_import.dart:6:1: Error: Dart native extensions are no longer supported.
 // Migrate to using FFI instead (https://dart.dev/guides/libraries/c-interop)
 // import 'dart-ext:foo/../there';
 // ^
 //
-// pkg/front_end/testcases/general/external_import.dart:9:1: Error: Dart native extensions are no longer supported.
+// pkg/front_end/testcases/general/external_import.dart:7:1: Error: Dart native extensions are no longer supported.
 // Migrate to using FFI instead (https://dart.dev/guides/libraries/c-interop)
 // import 'dart-ext:/usr/local/somewhere';
 // ^
diff --git a/pkg/front_end/testcases/general/external_import.dart.weak.modular.expect b/pkg/front_end/testcases/general/external_import.dart.weak.modular.expect
index 5e7e2df..1b3d235 100644
--- a/pkg/front_end/testcases/general/external_import.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/external_import.dart.weak.modular.expect
@@ -1,21 +1,21 @@
 @#C2
 @#C4
 @#C6
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/external_import.dart:7:1: Error: Dart native extensions are no longer supported.
+// pkg/front_end/testcases/general/external_import.dart:5:1: Error: Dart native extensions are no longer supported.
 // Migrate to using FFI instead (https://dart.dev/guides/libraries/c-interop)
 // import 'dart-ext:here';
 // ^
 //
-// pkg/front_end/testcases/general/external_import.dart:8:1: Error: Dart native extensions are no longer supported.
+// pkg/front_end/testcases/general/external_import.dart:6:1: Error: Dart native extensions are no longer supported.
 // Migrate to using FFI instead (https://dart.dev/guides/libraries/c-interop)
 // import 'dart-ext:foo/../there';
 // ^
 //
-// pkg/front_end/testcases/general/external_import.dart:9:1: Error: Dart native extensions are no longer supported.
+// pkg/front_end/testcases/general/external_import.dart:7:1: Error: Dart native extensions are no longer supported.
 // Migrate to using FFI instead (https://dart.dev/guides/libraries/c-interop)
 // import 'dart-ext:/usr/local/somewhere';
 // ^
diff --git a/pkg/front_end/testcases/general/external_import.dart.weak.outline.expect b/pkg/front_end/testcases/general/external_import.dart.weak.outline.expect
index 2556da5..6770a82 100644
--- a/pkg/front_end/testcases/general/external_import.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/external_import.dart.weak.outline.expect
@@ -1,21 +1,21 @@
 @dart._internal::ExternalName::•("dart-ext:here")
 @dart._internal::ExternalName::•("dart-ext:foo/../there")
 @dart._internal::ExternalName::•("dart-ext:/usr/local/somewhere")
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/external_import.dart:7:1: Error: Dart native extensions are no longer supported.
+// pkg/front_end/testcases/general/external_import.dart:5:1: Error: Dart native extensions are no longer supported.
 // Migrate to using FFI instead (https://dart.dev/guides/libraries/c-interop)
 // import 'dart-ext:here';
 // ^
 //
-// pkg/front_end/testcases/general/external_import.dart:8:1: Error: Dart native extensions are no longer supported.
+// pkg/front_end/testcases/general/external_import.dart:6:1: Error: Dart native extensions are no longer supported.
 // Migrate to using FFI instead (https://dart.dev/guides/libraries/c-interop)
 // import 'dart-ext:foo/../there';
 // ^
 //
-// pkg/front_end/testcases/general/external_import.dart:9:1: Error: Dart native extensions are no longer supported.
+// pkg/front_end/testcases/general/external_import.dart:7:1: Error: Dart native extensions are no longer supported.
 // Migrate to using FFI instead (https://dart.dev/guides/libraries/c-interop)
 // import 'dart-ext:/usr/local/somewhere';
 // ^
diff --git a/pkg/front_end/testcases/general/external_import.dart.weak.transformed.expect b/pkg/front_end/testcases/general/external_import.dart.weak.transformed.expect
index 5e7e2df..1b3d235 100644
--- a/pkg/front_end/testcases/general/external_import.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/external_import.dart.weak.transformed.expect
@@ -1,21 +1,21 @@
 @#C2
 @#C4
 @#C6
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/external_import.dart:7:1: Error: Dart native extensions are no longer supported.
+// pkg/front_end/testcases/general/external_import.dart:5:1: Error: Dart native extensions are no longer supported.
 // Migrate to using FFI instead (https://dart.dev/guides/libraries/c-interop)
 // import 'dart-ext:here';
 // ^
 //
-// pkg/front_end/testcases/general/external_import.dart:8:1: Error: Dart native extensions are no longer supported.
+// pkg/front_end/testcases/general/external_import.dart:6:1: Error: Dart native extensions are no longer supported.
 // Migrate to using FFI instead (https://dart.dev/guides/libraries/c-interop)
 // import 'dart-ext:foo/../there';
 // ^
 //
-// pkg/front_end/testcases/general/external_import.dart:9:1: Error: Dart native extensions are no longer supported.
+// pkg/front_end/testcases/general/external_import.dart:7:1: Error: Dart native extensions are no longer supported.
 // Migrate to using FFI instead (https://dart.dev/guides/libraries/c-interop)
 // import 'dart-ext:/usr/local/somewhere';
 // ^
diff --git a/pkg/front_end/testcases/general/external_method.dart b/pkg/front_end/testcases/general/external_method.dart
index 05f0de4..976d23b 100644
--- a/pkg/front_end/testcases/general/external_method.dart
+++ b/pkg/front_end/testcases/general/external_method.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2020, 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.
-// @dart=2.9
+
 external void externalMethod();
 
 class Class {
diff --git a/pkg/front_end/testcases/general/external_method.dart.textual_outline.expect b/pkg/front_end/testcases/general/external_method.dart.textual_outline.expect
index c32b52a..a36e380 100644
--- a/pkg/front_end/testcases/general/external_method.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/external_method.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 external void externalMethod();
 
 class Class {
diff --git a/pkg/front_end/testcases/general/external_method.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/external_method.dart.textual_outline_modelled.expect
index be73ec2..b902ad8 100644
--- a/pkg/front_end/testcases/general/external_method.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/external_method.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Class {
   external void externalMethod();
 }
diff --git a/pkg/front_end/testcases/general/external_method.dart.weak.expect b/pkg/front_end/testcases/general/external_method.dart.weak.expect
index 323ca66..e22e596 100644
--- a/pkg/front_end/testcases/general/external_method.dart.weak.expect
+++ b/pkg/front_end/testcases/general/external_method.dart.weak.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
   external method externalMethod() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 external static method externalMethod() → void;
 static method main() → void {}
diff --git a/pkg/front_end/testcases/general/external_method.dart.weak.modular.expect b/pkg/front_end/testcases/general/external_method.dart.weak.modular.expect
index 323ca66..e22e596 100644
--- a/pkg/front_end/testcases/general/external_method.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/external_method.dart.weak.modular.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
   external method externalMethod() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 external static method externalMethod() → void;
 static method main() → void {}
diff --git a/pkg/front_end/testcases/general/external_method.dart.weak.outline.expect b/pkg/front_end/testcases/general/external_method.dart.weak.outline.expect
index fe16ab0..baf6bae 100644
--- a/pkg/front_end/testcases/general/external_method.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/external_method.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     ;
   external method externalMethod() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 external static method externalMethod() → void;
 static method main() → void
diff --git a/pkg/front_end/testcases/general/external_method.dart.weak.transformed.expect b/pkg/front_end/testcases/general/external_method.dart.weak.transformed.expect
index 323ca66..e22e596 100644
--- a/pkg/front_end/testcases/general/external_method.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/external_method.dart.weak.transformed.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
   external method externalMethod() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 external static method externalMethod() → void;
 static method main() → void {}
diff --git a/pkg/front_end/testcases/general/fallthrough.dart b/pkg/front_end/testcases/general/fallthrough.dart
index 44d38e8..141c751 100644
--- a/pkg/front_end/testcases/general/fallthrough.dart
+++ b/pkg/front_end/testcases/general/fallthrough.dart
@@ -1,7 +1,9 @@
 // Copyright (c) 2017, 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.
+
 // @dart=2.9
+
 void main(List<String> args) {
   var x = args.length;
   switch (x) {
diff --git a/pkg/front_end/testcases/general/fallthrough.dart.weak.expect b/pkg/front_end/testcases/general/fallthrough.dart.weak.expect
index 4348081..8e005ce 100644
--- a/pkg/front_end/testcases/general/fallthrough.dart.weak.expect
+++ b/pkg/front_end/testcases/general/fallthrough.dart.weak.expect
@@ -2,11 +2,11 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/fallthrough.dart:8:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/general/fallthrough.dart:10:5: Error: Switch case may fall through to the next case.
 //     case 3:
 //     ^
 //
-// pkg/front_end/testcases/general/fallthrough.dart:12:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/general/fallthrough.dart:14:5: Error: Switch case may fall through to the next case.
 //     case 6:
 //     ^
 //
@@ -21,7 +21,7 @@
     case #C1:
       {
         x = 4;
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///fallthrough.dart", 8);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///fallthrough.dart", 10);
       }
     #L3:
     case #C2:
@@ -38,7 +38,7 @@
         else {
           return;
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///fallthrough.dart", 12);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///fallthrough.dart", 14);
       }
     #L5:
     case #C5:
diff --git a/pkg/front_end/testcases/general/fallthrough.dart.weak.modular.expect b/pkg/front_end/testcases/general/fallthrough.dart.weak.modular.expect
index 4348081..8e005ce 100644
--- a/pkg/front_end/testcases/general/fallthrough.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/fallthrough.dart.weak.modular.expect
@@ -2,11 +2,11 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/fallthrough.dart:8:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/general/fallthrough.dart:10:5: Error: Switch case may fall through to the next case.
 //     case 3:
 //     ^
 //
-// pkg/front_end/testcases/general/fallthrough.dart:12:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/general/fallthrough.dart:14:5: Error: Switch case may fall through to the next case.
 //     case 6:
 //     ^
 //
@@ -21,7 +21,7 @@
     case #C1:
       {
         x = 4;
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///fallthrough.dart", 8);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///fallthrough.dart", 10);
       }
     #L3:
     case #C2:
@@ -38,7 +38,7 @@
         else {
           return;
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///fallthrough.dart", 12);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///fallthrough.dart", 14);
       }
     #L5:
     case #C5:
diff --git a/pkg/front_end/testcases/general/fallthrough.dart.weak.transformed.expect b/pkg/front_end/testcases/general/fallthrough.dart.weak.transformed.expect
index 4348081..8e005ce 100644
--- a/pkg/front_end/testcases/general/fallthrough.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/fallthrough.dart.weak.transformed.expect
@@ -2,11 +2,11 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/fallthrough.dart:8:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/general/fallthrough.dart:10:5: Error: Switch case may fall through to the next case.
 //     case 3:
 //     ^
 //
-// pkg/front_end/testcases/general/fallthrough.dart:12:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/general/fallthrough.dart:14:5: Error: Switch case may fall through to the next case.
 //     case 6:
 //     ^
 //
@@ -21,7 +21,7 @@
     case #C1:
       {
         x = 4;
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///fallthrough.dart", 8);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///fallthrough.dart", 10);
       }
     #L3:
     case #C2:
@@ -38,7 +38,7 @@
         else {
           return;
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///fallthrough.dart", 12);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///fallthrough.dart", 14);
       }
     #L5:
     case #C5:
diff --git a/pkg/front_end/testcases/general/fibonacci.dart b/pkg/front_end/testcases/general/fibonacci.dart
index 8f48278..e1ab1d5 100644
--- a/pkg/front_end/testcases/general/fibonacci.dart
+++ b/pkg/front_end/testcases/general/fibonacci.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2016, 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.
-// @dart=2.9
+
 int fibonacci(int n) {
   if (n < 2) return n;
   return fibonacci(n - 1) + fibonacci(n - 2);
diff --git a/pkg/front_end/testcases/general/fibonacci.dart.textual_outline.expect b/pkg/front_end/testcases/general/fibonacci.dart.textual_outline.expect
index 5084461..178655b 100644
--- a/pkg/front_end/testcases/general/fibonacci.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/fibonacci.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 int fibonacci(int n) {}
 main() {}
diff --git a/pkg/front_end/testcases/general/fibonacci.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/fibonacci.dart.textual_outline_modelled.expect
index 5084461..178655b 100644
--- a/pkg/front_end/testcases/general/fibonacci.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/fibonacci.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 int fibonacci(int n) {}
 main() {}
diff --git a/pkg/front_end/testcases/general/fibonacci.dart.weak.expect b/pkg/front_end/testcases/general/fibonacci.dart.weak.expect
index df2b7da..9efbdbe 100644
--- a/pkg/front_end/testcases/general/fibonacci.dart.weak.expect
+++ b/pkg/front_end/testcases/general/fibonacci.dart.weak.expect
@@ -1,14 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method fibonacci(core::int* n) → core::int* {
-  if(n.{core::num::<}(2){(core::num*) →* core::bool*})
+static method fibonacci(core::int n) → core::int {
+  if(n.{core::num::<}(2){(core::num) → core::bool})
     return n;
-  return self::fibonacci(n.{core::num::-}(1){(core::num*) →* core::int*}).{core::num::+}(self::fibonacci(n.{core::num::-}(2){(core::num*) →* core::int*})){(core::num*) →* core::int*};
+  return self::fibonacci(n.{core::num::-}(1){(core::num) → core::int}).{core::num::+}(self::fibonacci(n.{core::num::-}(2){(core::num) → core::int})){(core::num) → core::int};
 }
 static method main() → dynamic {
-  for (core::int* i = 0; i.{core::num::<}(20){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+  for (core::int i = 0; i.{core::num::<}(20){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
     core::print(self::fibonacci(i));
   }
 }
diff --git a/pkg/front_end/testcases/general/fibonacci.dart.weak.modular.expect b/pkg/front_end/testcases/general/fibonacci.dart.weak.modular.expect
index df2b7da..9efbdbe 100644
--- a/pkg/front_end/testcases/general/fibonacci.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/fibonacci.dart.weak.modular.expect
@@ -1,14 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method fibonacci(core::int* n) → core::int* {
-  if(n.{core::num::<}(2){(core::num*) →* core::bool*})
+static method fibonacci(core::int n) → core::int {
+  if(n.{core::num::<}(2){(core::num) → core::bool})
     return n;
-  return self::fibonacci(n.{core::num::-}(1){(core::num*) →* core::int*}).{core::num::+}(self::fibonacci(n.{core::num::-}(2){(core::num*) →* core::int*})){(core::num*) →* core::int*};
+  return self::fibonacci(n.{core::num::-}(1){(core::num) → core::int}).{core::num::+}(self::fibonacci(n.{core::num::-}(2){(core::num) → core::int})){(core::num) → core::int};
 }
 static method main() → dynamic {
-  for (core::int* i = 0; i.{core::num::<}(20){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+  for (core::int i = 0; i.{core::num::<}(20){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
     core::print(self::fibonacci(i));
   }
 }
diff --git a/pkg/front_end/testcases/general/fibonacci.dart.weak.outline.expect b/pkg/front_end/testcases/general/fibonacci.dart.weak.outline.expect
index 4bb744f..b3c88d3 100644
--- a/pkg/front_end/testcases/general/fibonacci.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/fibonacci.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method fibonacci(core::int* n) → core::int*
+static method fibonacci(core::int n) → core::int
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/fibonacci.dart.weak.transformed.expect b/pkg/front_end/testcases/general/fibonacci.dart.weak.transformed.expect
index df2b7da..9efbdbe 100644
--- a/pkg/front_end/testcases/general/fibonacci.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/fibonacci.dart.weak.transformed.expect
@@ -1,14 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method fibonacci(core::int* n) → core::int* {
-  if(n.{core::num::<}(2){(core::num*) →* core::bool*})
+static method fibonacci(core::int n) → core::int {
+  if(n.{core::num::<}(2){(core::num) → core::bool})
     return n;
-  return self::fibonacci(n.{core::num::-}(1){(core::num*) →* core::int*}).{core::num::+}(self::fibonacci(n.{core::num::-}(2){(core::num*) →* core::int*})){(core::num*) →* core::int*};
+  return self::fibonacci(n.{core::num::-}(1){(core::num) → core::int}).{core::num::+}(self::fibonacci(n.{core::num::-}(2){(core::num) → core::int})){(core::num) → core::int};
 }
 static method main() → dynamic {
-  for (core::int* i = 0; i.{core::num::<}(20){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+  for (core::int i = 0; i.{core::num::<}(20){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
     core::print(self::fibonacci(i));
   }
 }
diff --git a/pkg/front_end/testcases/general/field_initializer_capture_this.dart b/pkg/front_end/testcases/general/field_initializer_capture_this.dart
index 67f0935..80fe36c 100644
--- a/pkg/front_end/testcases/general/field_initializer_capture_this.dart
+++ b/pkg/front_end/testcases/general/field_initializer_capture_this.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2020, 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.
-// @dart=2.9
+
 class Class {
   var f = () => x; // error
   var x;
diff --git a/pkg/front_end/testcases/general/field_initializer_capture_this.dart.textual_outline.expect b/pkg/front_end/testcases/general/field_initializer_capture_this.dart.textual_outline.expect
index 4767f78..a0d1d0e 100644
--- a/pkg/front_end/testcases/general/field_initializer_capture_this.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/field_initializer_capture_this.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Class {
   var f = () => x;
   var x;
diff --git a/pkg/front_end/testcases/general/field_initializer_capture_this.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/field_initializer_capture_this.dart.textual_outline_modelled.expect
index 4767f78..a0d1d0e 100644
--- a/pkg/front_end/testcases/general/field_initializer_capture_this.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/field_initializer_capture_this.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Class {
   var f = () => x;
   var x;
diff --git a/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.expect b/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.expect
index 6307537..fffc2d4 100644
--- a/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.expect
+++ b/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,22 +10,12 @@
 import "dart:core" as core;
 
 class Class extends core::Object {
-  field () →* invalid-type f = () → invalid-type => invalid-expression "pkg/front_end/testcases/general/field_initializer_capture_this.dart:6:17: Error: Can't access 'this' in a field initializer to read 'x'.
+  field () → invalid-type f = () → invalid-type => invalid-expression "pkg/front_end/testcases/general/field_initializer_capture_this.dart:6:17: Error: Can't access 'this' in a field initializer to read 'x'.
   var f = () => x; // error
                 ^";
   field dynamic x = null;
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.modular.expect b/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.modular.expect
index 6307537..fffc2d4 100644
--- a/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,22 +10,12 @@
 import "dart:core" as core;
 
 class Class extends core::Object {
-  field () →* invalid-type f = () → invalid-type => invalid-expression "pkg/front_end/testcases/general/field_initializer_capture_this.dart:6:17: Error: Can't access 'this' in a field initializer to read 'x'.
+  field () → invalid-type f = () → invalid-type => invalid-expression "pkg/front_end/testcases/general/field_initializer_capture_this.dart:6:17: Error: Can't access 'this' in a field initializer to read 'x'.
   var f = () => x; // error
                 ^";
   field dynamic x = null;
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.outline.expect b/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.outline.expect
index 94b2880..e3635ba 100644
--- a/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,20 +10,10 @@
 import "dart:core" as core;
 
 class Class extends core::Object {
-  field () →* invalid-type f;
+  field () → invalid-type f;
   field dynamic x;
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.transformed.expect b/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.transformed.expect
index 6307537..fffc2d4 100644
--- a/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/field_initializer_capture_this.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,22 +10,12 @@
 import "dart:core" as core;
 
 class Class extends core::Object {
-  field () →* invalid-type f = () → invalid-type => invalid-expression "pkg/front_end/testcases/general/field_initializer_capture_this.dart:6:17: Error: Can't access 'this' in a field initializer to read 'x'.
+  field () → invalid-type f = () → invalid-type => invalid-expression "pkg/front_end/testcases/general/field_initializer_capture_this.dart:6:17: Error: Can't access 'this' in a field initializer to read 'x'.
   var f = () => x; // error
                 ^";
   field dynamic x = null;
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/final_field_setter.dart b/pkg/front_end/testcases/general/final_field_setter.dart
index 67bf016..9dcaad1 100644
--- a/pkg/front_end/testcases/general/final_field_setter.dart
+++ b/pkg/front_end/testcases/general/final_field_setter.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2020, 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.
-// @dart=2.9
+
 final int field = 42;
 void set field(int value) {}
 
diff --git a/pkg/front_end/testcases/general/final_field_setter.dart.textual_outline.expect b/pkg/front_end/testcases/general/final_field_setter.dart.textual_outline.expect
index 52f2149..08e9a6b 100644
--- a/pkg/front_end/testcases/general/final_field_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/final_field_setter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 final int field = 42;
 void set field(int value) {}
 
diff --git a/pkg/front_end/testcases/general/final_field_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/final_field_setter.dart.textual_outline_modelled.expect
index cb8e1ee..41e7dd1 100644
--- a/pkg/front_end/testcases/general/final_field_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/final_field_setter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Class {
   final int field = 42;
   void set field(int value) {}
diff --git a/pkg/front_end/testcases/general/final_field_setter.dart.weak.expect b/pkg/front_end/testcases/general/final_field_setter.dart.weak.expect
index b2023bc..42ae9ff 100644
--- a/pkg/front_end/testcases/general/final_field_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/general/final_field_setter.dart.weak.expect
@@ -1,28 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  final field core::int* field = 42;
-  synthetic constructor •() → self::Class*
+  final field core::int field = 42;
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  set field(core::int* value) → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  set field(core::int value) → void {}
 }
-static final field core::int* field = 42;
-static set field(core::int* value) → void {}
+static final field core::int field = 42;
+static set field(core::int value) → void {}
 static method main() → dynamic {
   self::field = self::field;
-  self::Class* c = new self::Class::•();
+  self::Class c = new self::Class::•();
   c.{self::Class::field} = self::field;
 }
diff --git a/pkg/front_end/testcases/general/final_field_setter.dart.weak.modular.expect b/pkg/front_end/testcases/general/final_field_setter.dart.weak.modular.expect
index b2023bc..42ae9ff 100644
--- a/pkg/front_end/testcases/general/final_field_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/final_field_setter.dart.weak.modular.expect
@@ -1,28 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  final field core::int* field = 42;
-  synthetic constructor •() → self::Class*
+  final field core::int field = 42;
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  set field(core::int* value) → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  set field(core::int value) → void {}
 }
-static final field core::int* field = 42;
-static set field(core::int* value) → void {}
+static final field core::int field = 42;
+static set field(core::int value) → void {}
 static method main() → dynamic {
   self::field = self::field;
-  self::Class* c = new self::Class::•();
+  self::Class c = new self::Class::•();
   c.{self::Class::field} = self::field;
 }
diff --git a/pkg/front_end/testcases/general/final_field_setter.dart.weak.outline.expect b/pkg/front_end/testcases/general/final_field_setter.dart.weak.outline.expect
index e26476e..801d8e0 100644
--- a/pkg/front_end/testcases/general/final_field_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/final_field_setter.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  final field core::int* field;
-  synthetic constructor •() → self::Class*
+  final field core::int field;
+  synthetic constructor •() → self::Class
     ;
-  set field(core::int* value) → void
+  set field(core::int value) → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static final field core::int* field;
-static set field(core::int* value) → void
+static final field core::int field;
+static set field(core::int value) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/final_field_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/general/final_field_setter.dart.weak.transformed.expect
index b2023bc..42ae9ff 100644
--- a/pkg/front_end/testcases/general/final_field_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/final_field_setter.dart.weak.transformed.expect
@@ -1,28 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  final field core::int* field = 42;
-  synthetic constructor •() → self::Class*
+  final field core::int field = 42;
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  set field(core::int* value) → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  set field(core::int value) → void {}
 }
-static final field core::int* field = 42;
-static set field(core::int* value) → void {}
+static final field core::int field = 42;
+static set field(core::int value) → void {}
 static method main() → dynamic {
   self::field = self::field;
-  self::Class* c = new self::Class::•();
+  self::Class c = new self::Class::•();
   c.{self::Class::field} = self::field;
 }
diff --git a/pkg/front_end/testcases/general/flutter_issue64155.dart b/pkg/front_end/testcases/general/flutter_issue64155.dart
index 4fddf45..e1c1251 100644
--- a/pkg/front_end/testcases/general/flutter_issue64155.dart
+++ b/pkg/front_end/testcases/general/flutter_issue64155.dart
@@ -1,7 +1,9 @@
 // Copyright (c) 2020, 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.
+
 // @dart=2.9
+
 mixin TestMixin<R, T> {
   Future<T> test(Future<R> fetch) async {
     final response = await fetch;
diff --git a/pkg/front_end/testcases/general/for_in_scope.dart b/pkg/front_end/testcases/general/for_in_scope.dart
index 7a453a7..86fb4cf 100644
--- a/pkg/front_end/testcases/general/for_in_scope.dart
+++ b/pkg/front_end/testcases/general/for_in_scope.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2017, 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.
-// @dart=2.9
+
 main(List<String> arguments) {
   for (String arguments in arguments) {
     print(arguments);
diff --git a/pkg/front_end/testcases/general/for_in_scope.dart.textual_outline.expect b/pkg/front_end/testcases/general/for_in_scope.dart.textual_outline.expect
index a3d2c6a..24765f4 100644
--- a/pkg/front_end/testcases/general/for_in_scope.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/for_in_scope.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main(List<String> arguments) {}
diff --git a/pkg/front_end/testcases/general/for_in_scope.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/for_in_scope.dart.textual_outline_modelled.expect
index a3d2c6a..24765f4 100644
--- a/pkg/front_end/testcases/general/for_in_scope.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/for_in_scope.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main(List<String> arguments) {}
diff --git a/pkg/front_end/testcases/general/for_in_scope.dart.weak.expect b/pkg/front_end/testcases/general/for_in_scope.dart.weak.expect
index 78f359e..2fbcf78 100644
--- a/pkg/front_end/testcases/general/for_in_scope.dart.weak.expect
+++ b/pkg/front_end/testcases/general/for_in_scope.dart.weak.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method main(core::List<core::String*>* arguments) → dynamic {
-  for (core::String* arguments in arguments) {
+static method main(core::List<core::String> arguments) → dynamic {
+  for (core::String arguments in arguments) {
     core::print(arguments);
   }
 }
diff --git a/pkg/front_end/testcases/general/for_in_scope.dart.weak.modular.expect b/pkg/front_end/testcases/general/for_in_scope.dart.weak.modular.expect
index 78f359e..2fbcf78 100644
--- a/pkg/front_end/testcases/general/for_in_scope.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/for_in_scope.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method main(core::List<core::String*>* arguments) → dynamic {
-  for (core::String* arguments in arguments) {
+static method main(core::List<core::String> arguments) → dynamic {
+  for (core::String arguments in arguments) {
     core::print(arguments);
   }
 }
diff --git a/pkg/front_end/testcases/general/for_in_scope.dart.weak.outline.expect b/pkg/front_end/testcases/general/for_in_scope.dart.weak.outline.expect
index d20fd29e..fcfe35c 100644
--- a/pkg/front_end/testcases/general/for_in_scope.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/for_in_scope.dart.weak.outline.expect
@@ -1,6 +1,6 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method main(core::List<core::String*>* arguments) → dynamic
+static method main(core::List<core::String> arguments) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/for_in_scope.dart.weak.transformed.expect b/pkg/front_end/testcases/general/for_in_scope.dart.weak.transformed.expect
index 9107472..bdfa0e5 100644
--- a/pkg/front_end/testcases/general/for_in_scope.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/for_in_scope.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method main(core::List<core::String*>* arguments) → dynamic {
+static method main(core::List<core::String> arguments) → dynamic {
   {
-    core::Iterator<core::String*>* :sync-for-iterator = arguments.{core::Iterable::iterator}{core::Iterator<core::String*>*};
+    core::Iterator<core::String> :sync-for-iterator = arguments.{core::Iterable::iterator}{core::Iterator<core::String>};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-      core::String* arguments = :sync-for-iterator.{core::Iterator::current}{core::String*};
+      core::String arguments = :sync-for-iterator.{core::Iterator::current}{core::String};
       {
         core::print(arguments);
       }
diff --git a/pkg/front_end/testcases/general/for_in_without_declaration.dart b/pkg/front_end/testcases/general/for_in_without_declaration.dart
index 4810092..e6c2f23 100644
--- a/pkg/front_end/testcases/general/for_in_without_declaration.dart
+++ b/pkg/front_end/testcases/general/for_in_without_declaration.dart
@@ -1,20 +1,20 @@
 // Copyright (c) 2018, 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.md file.
-// @dart=2.9
-bool topLevelField;
+
+bool topLevelField = true;
 var untypedTopLevelField;
 
 class Super {
-  int superInstanceField;
+  int superInstanceField = 0;
   var untypedSuperInstanceField;
 }
 
 class C extends Super {
-  int instanceField;
+  int instanceField = 0;
   var untypedInstanceField;
 
-  static double staticField;
+  static double staticField = 0.0;
 
   static var untypedStaticField;
 
diff --git a/pkg/front_end/testcases/general/for_in_without_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/general/for_in_without_declaration.dart.textual_outline.expect
index a983431..05606c6 100644
--- a/pkg/front_end/testcases/general/for_in_without_declaration.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/for_in_without_declaration.dart.textual_outline.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
-bool topLevelField;
+bool topLevelField = true;
 var untypedTopLevelField;
 
 class Super {
-  int superInstanceField;
+  int superInstanceField = 0;
   var untypedSuperInstanceField;
 }
 
 class C extends Super {
-  int instanceField;
+  int instanceField = 0;
   var untypedInstanceField;
-  static double staticField;
+  static double staticField = 0.0;
   static var untypedStaticField;
   m() {}
 }
diff --git a/pkg/front_end/testcases/general/for_in_without_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/for_in_without_declaration.dart.textual_outline_modelled.expect
index 8a3599a..5b1b926 100644
--- a/pkg/front_end/testcases/general/for_in_without_declaration.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/for_in_without_declaration.dart.textual_outline_modelled.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
-bool topLevelField;
+bool topLevelField = true;
 
 class C extends Super {
-  int instanceField;
+  int instanceField = 0;
   m() {}
-  static double staticField;
+  static double staticField = 0.0;
   static var untypedStaticField;
   var untypedInstanceField;
 }
 
 class Super {
-  int superInstanceField;
+  int superInstanceField = 0;
   var untypedSuperInstanceField;
 }
 
diff --git a/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.expect b/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.expect
index ba021d0..f71d985 100644
--- a/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.expect
+++ b/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -70,65 +70,55 @@
 import "dart:core" as core;
 
 class Super extends core::Object {
-  field core::int* superInstanceField = null;
+  field core::int superInstanceField = 0;
   field dynamic untypedSuperInstanceField = null;
-  synthetic constructor •() → self::Super*
+  synthetic constructor •() → self::Super
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C extends self::Super {
-  field core::int* instanceField = null;
+  field core::int instanceField = 0;
   field dynamic untypedInstanceField = null;
-  static field core::double* staticField = null;
+  static field core::double staticField = 0.0;
   static field dynamic untypedStaticField = null;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::Super::•()
     ;
   method m() → dynamic {
-    core::String* local;
+    core::String local;
     dynamic untypedLocal;
-    for (final core::String* #t1 in <core::String*>[]) {
+    for (final core::String #t1 in <core::String>[]) {
       local = #t1;
     }
     for (final dynamic #t2 in <dynamic>[]) {
       untypedLocal = #t2;
     }
-    for (final core::int* #t3 in <core::int*>[]) {
+    for (final core::int #t3 in <core::int>[]) {
       this.{self::C::instanceField} = #t3;
     }
     for (final dynamic #t4 in <dynamic>[]) {
       this.{self::C::untypedInstanceField} = #t4;
     }
-    for (final core::double* #t5 in <core::double*>[]) {
+    for (final core::double #t5 in <core::double>[]) {
       self::C::staticField = #t5;
     }
     for (final dynamic #t6 in <dynamic>[]) {
       self::C::untypedStaticField = #t6;
     }
-    for (final core::bool* #t7 in <core::bool*>[]) {
+    for (final core::bool #t7 in <core::bool>[]) {
       self::topLevelField = #t7;
     }
     for (final dynamic #t8 in <dynamic>[]) {
       self::untypedTopLevelField = #t8;
     }
-    for (final core::int* #t9 in <core::int*>[]) {
+    for (final core::int #t9 in <core::int>[]) {
       super.{self::Super::superInstanceField} = #t9;
     }
     for (final dynamic #t10 in <dynamic>[]) {
       super.{self::Super::untypedSuperInstanceField} = #t10;
     }
-    self::C* c = new self::C::•();
-    for (final core::int* #t11 in <core::int*>[]) {
+    self::C c = new self::C::•();
+    for (final core::int #t11 in <core::int>[]) {
       c.{self::C::instanceField} = #t11;
     }
     for (final dynamic #t12 in <dynamic>[]) {
@@ -178,7 +168,7 @@
       invalid-expression "pkg/front_end/testcases/general/for_in_without_declaration.dart:41:10: Error: A for-in loop can't have more than one loop variable.
     for (var x, y in <int>[]) {
          ^^^";
-      for (final core::int* #t17 in <core::int*>[]) {
+      for (final core::int #t17 in <core::int>[]) {
         invalid-expression "pkg/front_end/testcases/general/for_in_without_declaration.dart:41:10: Error: A for-in loop can't have more than one loop variable.
     for (var x, y in <int>[]) {
          ^^^";
@@ -195,6 +185,6 @@
     }
   }
 }
-static field core::bool* topLevelField;
+static field core::bool topLevelField = true;
 static field dynamic untypedTopLevelField;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.modular.expect
index ba021d0..f71d985 100644
--- a/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -70,65 +70,55 @@
 import "dart:core" as core;
 
 class Super extends core::Object {
-  field core::int* superInstanceField = null;
+  field core::int superInstanceField = 0;
   field dynamic untypedSuperInstanceField = null;
-  synthetic constructor •() → self::Super*
+  synthetic constructor •() → self::Super
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C extends self::Super {
-  field core::int* instanceField = null;
+  field core::int instanceField = 0;
   field dynamic untypedInstanceField = null;
-  static field core::double* staticField = null;
+  static field core::double staticField = 0.0;
   static field dynamic untypedStaticField = null;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::Super::•()
     ;
   method m() → dynamic {
-    core::String* local;
+    core::String local;
     dynamic untypedLocal;
-    for (final core::String* #t1 in <core::String*>[]) {
+    for (final core::String #t1 in <core::String>[]) {
       local = #t1;
     }
     for (final dynamic #t2 in <dynamic>[]) {
       untypedLocal = #t2;
     }
-    for (final core::int* #t3 in <core::int*>[]) {
+    for (final core::int #t3 in <core::int>[]) {
       this.{self::C::instanceField} = #t3;
     }
     for (final dynamic #t4 in <dynamic>[]) {
       this.{self::C::untypedInstanceField} = #t4;
     }
-    for (final core::double* #t5 in <core::double*>[]) {
+    for (final core::double #t5 in <core::double>[]) {
       self::C::staticField = #t5;
     }
     for (final dynamic #t6 in <dynamic>[]) {
       self::C::untypedStaticField = #t6;
     }
-    for (final core::bool* #t7 in <core::bool*>[]) {
+    for (final core::bool #t7 in <core::bool>[]) {
       self::topLevelField = #t7;
     }
     for (final dynamic #t8 in <dynamic>[]) {
       self::untypedTopLevelField = #t8;
     }
-    for (final core::int* #t9 in <core::int*>[]) {
+    for (final core::int #t9 in <core::int>[]) {
       super.{self::Super::superInstanceField} = #t9;
     }
     for (final dynamic #t10 in <dynamic>[]) {
       super.{self::Super::untypedSuperInstanceField} = #t10;
     }
-    self::C* c = new self::C::•();
-    for (final core::int* #t11 in <core::int*>[]) {
+    self::C c = new self::C::•();
+    for (final core::int #t11 in <core::int>[]) {
       c.{self::C::instanceField} = #t11;
     }
     for (final dynamic #t12 in <dynamic>[]) {
@@ -178,7 +168,7 @@
       invalid-expression "pkg/front_end/testcases/general/for_in_without_declaration.dart:41:10: Error: A for-in loop can't have more than one loop variable.
     for (var x, y in <int>[]) {
          ^^^";
-      for (final core::int* #t17 in <core::int*>[]) {
+      for (final core::int #t17 in <core::int>[]) {
         invalid-expression "pkg/front_end/testcases/general/for_in_without_declaration.dart:41:10: Error: A for-in loop can't have more than one loop variable.
     for (var x, y in <int>[]) {
          ^^^";
@@ -195,6 +185,6 @@
     }
   }
 }
-static field core::bool* topLevelField;
+static field core::bool topLevelField = true;
 static field dynamic untypedTopLevelField;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.outline.expect
index 549cac9..0936083 100644
--- a/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.outline.expect
@@ -1,34 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Super extends core::Object {
-  field core::int* superInstanceField;
+  field core::int superInstanceField;
   field dynamic untypedSuperInstanceField;
-  synthetic constructor •() → self::Super*
+  synthetic constructor •() → self::Super
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C extends self::Super {
-  field core::int* instanceField;
+  field core::int instanceField;
   field dynamic untypedInstanceField;
-  static field core::double* staticField;
+  static field core::double staticField;
   static field dynamic untypedStaticField;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
   method m() → dynamic
     ;
 }
-static field core::bool* topLevelField;
+static field core::bool topLevelField;
 static field dynamic untypedTopLevelField;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.transformed.expect
index 88f02cf..191d1dc 100644
--- a/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/for_in_without_declaration.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -70,44 +70,34 @@
 import "dart:core" as core;
 
 class Super extends core::Object {
-  field core::int* superInstanceField = null;
+  field core::int superInstanceField = 0;
   field dynamic untypedSuperInstanceField = null;
-  synthetic constructor •() → self::Super*
+  synthetic constructor •() → self::Super
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C extends self::Super {
-  field core::int* instanceField = null;
+  field core::int instanceField = 0;
   field dynamic untypedInstanceField = null;
-  static field core::double* staticField = null;
+  static field core::double staticField = 0.0;
   static field dynamic untypedStaticField = null;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::Super::•()
     ;
   method m() → dynamic {
-    core::String* local;
+    core::String local;
     dynamic untypedLocal;
     {
-      core::Iterator<core::String*>* :sync-for-iterator = core::_GrowableList::•<core::String*>(0).{core::Iterable::iterator}{core::Iterator<core::String*>*};
+      core::Iterator<core::String> :sync-for-iterator = core::_GrowableList::•<core::String>(0).{core::Iterable::iterator}{core::Iterator<core::String>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        final core::String* #t1 = :sync-for-iterator.{core::Iterator::current}{core::String*};
+        final core::String #t1 = :sync-for-iterator.{core::Iterator::current}{core::String};
         {
           local = #t1;
         }
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
         final dynamic #t2 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -116,16 +106,16 @@
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator}{core::Iterator<core::int*>*};
+      core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::•<core::int>(0).{core::Iterable::iterator}{core::Iterator<core::int>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        final core::int* #t3 = :sync-for-iterator.{core::Iterator::current}{core::int*};
+        final core::int #t3 = :sync-for-iterator.{core::Iterator::current}{core::int};
         {
           this.{self::C::instanceField} = #t3;
         }
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
         final dynamic #t4 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -134,16 +124,16 @@
       }
     }
     {
-      core::Iterator<core::double*>* :sync-for-iterator = core::_GrowableList::•<core::double*>(0).{core::Iterable::iterator}{core::Iterator<core::double*>*};
+      core::Iterator<core::double> :sync-for-iterator = core::_GrowableList::•<core::double>(0).{core::Iterable::iterator}{core::Iterator<core::double>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        final core::double* #t5 = :sync-for-iterator.{core::Iterator::current}{core::double*};
+        final core::double #t5 = :sync-for-iterator.{core::Iterator::current}{core::double};
         {
           self::C::staticField = #t5;
         }
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
         final dynamic #t6 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -152,16 +142,16 @@
       }
     }
     {
-      core::Iterator<core::bool*>* :sync-for-iterator = core::_GrowableList::•<core::bool*>(0).{core::Iterable::iterator}{core::Iterator<core::bool*>*};
+      core::Iterator<core::bool> :sync-for-iterator = core::_GrowableList::•<core::bool>(0).{core::Iterable::iterator}{core::Iterator<core::bool>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        final core::bool* #t7 = :sync-for-iterator.{core::Iterator::current}{core::bool*};
+        final core::bool #t7 = :sync-for-iterator.{core::Iterator::current}{core::bool};
         {
           self::topLevelField = #t7;
         }
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
         final dynamic #t8 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -170,16 +160,16 @@
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator}{core::Iterator<core::int*>*};
+      core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::•<core::int>(0).{core::Iterable::iterator}{core::Iterator<core::int>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        final core::int* #t9 = :sync-for-iterator.{core::Iterator::current}{core::int*};
+        final core::int #t9 = :sync-for-iterator.{core::Iterator::current}{core::int};
         {
           super.{self::Super::superInstanceField} = #t9;
         }
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
         final dynamic #t10 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -187,18 +177,18 @@
         }
       }
     }
-    self::C* c = new self::C::•();
+    self::C c = new self::C::•();
     {
-      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator}{core::Iterator<core::int*>*};
+      core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::•<core::int>(0).{core::Iterable::iterator}{core::Iterator<core::int>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        final core::int* #t11 = :sync-for-iterator.{core::Iterator::current}{core::int*};
+        final core::int #t11 = :sync-for-iterator.{core::Iterator::current}{core::int};
         {
           c.{self::C::instanceField} = #t11;
         }
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
         final dynamic #t12 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -207,7 +197,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
         final dynamic #t13 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -224,7 +214,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
         final dynamic #t14 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -237,7 +227,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
         final dynamic #t15 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -258,7 +248,7 @@
     for (main() in []) {}
          ^^^^";
       {
-        core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+        core::Iterator<dynamic> :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
           final dynamic #t16 = :sync-for-iterator.{core::Iterator::current}{dynamic};
           {
@@ -275,9 +265,9 @@
     for (var x, y in <int>[]) {
          ^^^";
       {
-        core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator}{core::Iterator<core::int*>*};
+        core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::•<core::int>(0).{core::Iterable::iterator}{core::Iterator<core::int>};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-          final core::int* #t17 = :sync-for-iterator.{core::Iterator::current}{core::int*};
+          final core::int #t17 = :sync-for-iterator.{core::Iterator::current}{core::int};
           {
             invalid-expression "pkg/front_end/testcases/general/for_in_without_declaration.dart:41:10: Error: A for-in loop can't have more than one loop variable.
     for (var x, y in <int>[]) {
@@ -291,7 +281,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator}{core::Iterator<dynamic>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
         final dynamic #t18 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -303,6 +293,6 @@
     }
   }
 }
-static field core::bool* topLevelField;
+static field core::bool topLevelField = true;
 static field dynamic untypedTopLevelField;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart b/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart
index c3dcc28..0245c54 100644
--- a/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart
+++ b/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart
@@ -2,8 +2,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.
 
-// @dart=2.9
-
 //------------------------------------------------------------------------------
 
 class A {
diff --git a/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.textual_outline.expect b/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.textual_outline.expect
index 9b2316f..c81b41e 100644
--- a/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   dynamic operator +(covariant int a) => null;
 }
diff --git a/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.textual_outline_modelled.expect
index a93a92a..e1eb7ad 100644
--- a/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class C implements A, B {}
 
 class A {
diff --git a/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.expect b/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.expect
index 6b4bf1c..43fade2 100644
--- a/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.expect
+++ b/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.expect
@@ -1,79 +1,39 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator +(covariant-by-declaration core::int* a) → dynamic
+  operator +(covariant-by-declaration core::int a) → dynamic
     return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
   operator +(dynamic b) → dynamic
     return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class C extends core::Object implements self::A, self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   abstract forwarding-stub operator +(covariant-by-declaration dynamic b) → dynamic;
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super core::Object::•()
     ;
   operator +(dynamic d) → dynamic
     return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class E extends self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super self::D::•()
     ;
-  forwarding-stub forwarding-semi-stub operator /* signature-type: (core::int*) →* dynamic */ +(covariant-by-declaration dynamic e) → dynamic
+  forwarding-stub forwarding-semi-stub operator /* signature-type: (core::int) → dynamic */ +(covariant-by-declaration dynamic e) → dynamic
     return super.{self::D::+}(e);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.modular.expect b/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.modular.expect
index 6b4bf1c..43fade2 100644
--- a/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.modular.expect
@@ -1,79 +1,39 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator +(covariant-by-declaration core::int* a) → dynamic
+  operator +(covariant-by-declaration core::int a) → dynamic
     return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
   operator +(dynamic b) → dynamic
     return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class C extends core::Object implements self::A, self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   abstract forwarding-stub operator +(covariant-by-declaration dynamic b) → dynamic;
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super core::Object::•()
     ;
   operator +(dynamic d) → dynamic
     return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class E extends self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super self::D::•()
     ;
-  forwarding-stub forwarding-semi-stub operator /* signature-type: (core::int*) →* dynamic */ +(covariant-by-declaration dynamic e) → dynamic
+  forwarding-stub forwarding-semi-stub operator /* signature-type: (core::int) → dynamic */ +(covariant-by-declaration dynamic e) → dynamic
     return super.{self::D::+}(e);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.outline.expect b/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.outline.expect
index 15ab476..e7de2ac 100644
--- a/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.outline.expect
@@ -1,74 +1,34 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
-  operator +(covariant-by-declaration core::int* a) → dynamic
+  operator +(covariant-by-declaration core::int a) → dynamic
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
   operator +(dynamic b) → dynamic
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class C extends core::Object implements self::A, self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   abstract forwarding-stub operator +(covariant-by-declaration dynamic b) → dynamic;
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
   operator +(dynamic d) → dynamic
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class E extends self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     ;
-  forwarding-stub forwarding-semi-stub operator /* signature-type: (core::int*) →* dynamic */ +(covariant-by-declaration dynamic e) → dynamic
+  forwarding-stub forwarding-semi-stub operator /* signature-type: (core::int) → dynamic */ +(covariant-by-declaration dynamic e) → dynamic
     return super.{self::D::+}(e);
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.transformed.expect b/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.transformed.expect
index 6b4bf1c..43fade2 100644
--- a/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/forwarding_stub_for_operator.dart.weak.transformed.expect
@@ -1,79 +1,39 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator +(covariant-by-declaration core::int* a) → dynamic
+  operator +(covariant-by-declaration core::int a) → dynamic
     return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
   operator +(dynamic b) → dynamic
     return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class C extends core::Object implements self::A, self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   abstract forwarding-stub operator +(covariant-by-declaration dynamic b) → dynamic;
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super core::Object::•()
     ;
   operator +(dynamic d) → dynamic
     return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class E extends self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super self::D::•()
     ;
-  forwarding-stub forwarding-semi-stub operator /* signature-type: (core::int*) →* dynamic */ +(covariant-by-declaration dynamic e) → dynamic
+  forwarding-stub forwarding-semi-stub operator /* signature-type: (core::int) → dynamic */ +(covariant-by-declaration dynamic e) → dynamic
     return super.{self::D::+}(e);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/function_in_field.dart b/pkg/front_end/testcases/general/function_in_field.dart
index ccfa71b..e159579 100644
--- a/pkg/front_end/testcases/general/function_in_field.dart
+++ b/pkg/front_end/testcases/general/function_in_field.dart
@@ -2,8 +2,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.
 
-// @dart=2.9
-
 var x = () {
   var y = 42;
   return y;
diff --git a/pkg/front_end/testcases/general/function_in_field.dart.textual_outline.expect b/pkg/front_end/testcases/general/function_in_field.dart.textual_outline.expect
index 3c1e191..48b83ef 100644
--- a/pkg/front_end/testcases/general/function_in_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/function_in_field.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 var x = () {
   var y = 42;
   return y;
diff --git a/pkg/front_end/testcases/general/function_in_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/function_in_field.dart.textual_outline_modelled.expect
index 729f8ce..dde78ba 100644
--- a/pkg/front_end/testcases/general/function_in_field.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/function_in_field.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 main() {}
 var x = () {
   var y = 42;
diff --git a/pkg/front_end/testcases/general/function_in_field.dart.weak.expect b/pkg/front_end/testcases/general/function_in_field.dart.weak.expect
index a2c6a44..3b09e8e 100644
--- a/pkg/front_end/testcases/general/function_in_field.dart.weak.expect
+++ b/pkg/front_end/testcases/general/function_in_field.dart.weak.expect
@@ -1,11 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static field () →* core::int* x = () → core::int* {
-  core::int* y = 42;
+static field () → core::int x = () → core::int {
+  core::int y = 42;
   return y;
 };
 static method main() → dynamic {
-  core::print(self::x(){() →* core::int*});
+  core::print(self::x(){() → core::int});
 }
diff --git a/pkg/front_end/testcases/general/function_in_field.dart.weak.modular.expect b/pkg/front_end/testcases/general/function_in_field.dart.weak.modular.expect
index a2c6a44..3b09e8e 100644
--- a/pkg/front_end/testcases/general/function_in_field.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/function_in_field.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static field () →* core::int* x = () → core::int* {
-  core::int* y = 42;
+static field () → core::int x = () → core::int {
+  core::int y = 42;
   return y;
 };
 static method main() → dynamic {
-  core::print(self::x(){() →* core::int*});
+  core::print(self::x(){() → core::int});
 }
diff --git a/pkg/front_end/testcases/general/function_in_field.dart.weak.outline.expect b/pkg/front_end/testcases/general/function_in_field.dart.weak.outline.expect
index 9f1148b..78e40bc 100644
--- a/pkg/front_end/testcases/general/function_in_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/function_in_field.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static field () →* core::int* x;
+static field () → core::int x;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/function_in_field.dart.weak.transformed.expect b/pkg/front_end/testcases/general/function_in_field.dart.weak.transformed.expect
index a2c6a44..3b09e8e 100644
--- a/pkg/front_end/testcases/general/function_in_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/function_in_field.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static field () →* core::int* x = () → core::int* {
-  core::int* y = 42;
+static field () → core::int x = () → core::int {
+  core::int y = 42;
   return y;
 };
 static method main() → dynamic {
-  core::print(self::x(){() →* core::int*});
+  core::print(self::x(){() → core::int});
 }
diff --git a/pkg/front_end/testcases/general/function_type_assignments.dart b/pkg/front_end/testcases/general/function_type_assignments.dart
index 366b37a..f6249ea 100644
--- a/pkg/front_end/testcases/general/function_type_assignments.dart
+++ b/pkg/front_end/testcases/general/function_type_assignments.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2018, 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.
-// @dart=2.9
+
 T identity<T>(T t) => t;
 T identityObject<T extends Object>(T t) => t;
 T identityList<T extends List<T>>(T t) => t;
diff --git a/pkg/front_end/testcases/general/function_type_assignments.dart.textual_outline.expect b/pkg/front_end/testcases/general/function_type_assignments.dart.textual_outline.expect
index d549dfc..4e7d345 100644
--- a/pkg/front_end/testcases/general/function_type_assignments.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/function_type_assignments.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 T identity<T>(T t) => t;
 T identityObject<T extends Object>(T t) => t;
 T identityList<T extends List<T>>(T t) => t;
diff --git a/pkg/front_end/testcases/general/function_type_assignments.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/function_type_assignments.dart.textual_outline_modelled.expect
index 98ee311..260816e 100644
--- a/pkg/front_end/testcases/general/function_type_assignments.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/function_type_assignments.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 String x = identity;
 String y = identityObject;
 String z = identityList;
diff --git a/pkg/front_end/testcases/general/function_type_assignments.dart.weak.expect b/pkg/front_end/testcases/general/function_type_assignments.dart.weak.expect
index 0333159..da885e4 100644
--- a/pkg/front_end/testcases/general/function_type_assignments.dart.weak.expect
+++ b/pkg/front_end/testcases/general/function_type_assignments.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,22 +19,22 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::String* x = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:11:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'String'.
+static field core::String x = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:11:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'String'.
 String x = identity; // No bound
-           ^" in #C1 as{TypeError} core::String*;
-static field core::String* y = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:12:12: Error: A value of type 'T Function<T extends Object>(T)' can't be assigned to a variable of type 'String'.
+           ^" in #C1 as{TypeError,ForNonNullableByDefault} core::String;
+static field core::String y = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:12:12: Error: A value of type 'T Function<T extends Object>(T)' can't be assigned to a variable of type 'String'.
  - 'Object' is from 'dart:core'.
 String y = identityObject; // Object bound
-           ^" in #C2 as{TypeError} core::String*;
-static field core::String* z = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:13:12: Error: A value of type 'T Function<T extends List<T>>(T)' can't be assigned to a variable of type 'String'.
+           ^" in #C2 as{TypeError,ForNonNullableByDefault} core::String;
+static field core::String z = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:13:12: Error: A value of type 'T Function<T extends List<T>>(T)' can't be assigned to a variable of type 'String'.
  - 'List' is from 'dart:core'.
 String z = identityList; // List<T> bound
-           ^" in #C3 as{TypeError} core::String*;
-static method identity<T extends core::Object* = dynamic>(self::identity::T* t) → self::identity::T*
+           ^" in #C3 as{TypeError,ForNonNullableByDefault} core::String;
+static method identity<T extends core::Object? = dynamic>(self::identity::T% t) → self::identity::T%
   return t;
-static method identityObject<T extends core::Object*>(self::identityObject::T* t) → self::identityObject::T*
+static method identityObject<T extends core::Object>(self::identityObject::T t) → self::identityObject::T
   return t;
-static method identityList<T extends core::List<self::identityList::T*>* = core::List<dynamic>*>(self::identityList::T* t) → self::identityList::T*
+static method identityList<T extends core::List<self::identityList::T> = core::List<dynamic>>(self::identityList::T t) → self::identityList::T
   return t;
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/general/function_type_assignments.dart.weak.modular.expect b/pkg/front_end/testcases/general/function_type_assignments.dart.weak.modular.expect
index 0333159..da885e4 100644
--- a/pkg/front_end/testcases/general/function_type_assignments.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/function_type_assignments.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,22 +19,22 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::String* x = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:11:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'String'.
+static field core::String x = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:11:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'String'.
 String x = identity; // No bound
-           ^" in #C1 as{TypeError} core::String*;
-static field core::String* y = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:12:12: Error: A value of type 'T Function<T extends Object>(T)' can't be assigned to a variable of type 'String'.
+           ^" in #C1 as{TypeError,ForNonNullableByDefault} core::String;
+static field core::String y = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:12:12: Error: A value of type 'T Function<T extends Object>(T)' can't be assigned to a variable of type 'String'.
  - 'Object' is from 'dart:core'.
 String y = identityObject; // Object bound
-           ^" in #C2 as{TypeError} core::String*;
-static field core::String* z = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:13:12: Error: A value of type 'T Function<T extends List<T>>(T)' can't be assigned to a variable of type 'String'.
+           ^" in #C2 as{TypeError,ForNonNullableByDefault} core::String;
+static field core::String z = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:13:12: Error: A value of type 'T Function<T extends List<T>>(T)' can't be assigned to a variable of type 'String'.
  - 'List' is from 'dart:core'.
 String z = identityList; // List<T> bound
-           ^" in #C3 as{TypeError} core::String*;
-static method identity<T extends core::Object* = dynamic>(self::identity::T* t) → self::identity::T*
+           ^" in #C3 as{TypeError,ForNonNullableByDefault} core::String;
+static method identity<T extends core::Object? = dynamic>(self::identity::T% t) → self::identity::T%
   return t;
-static method identityObject<T extends core::Object*>(self::identityObject::T* t) → self::identityObject::T*
+static method identityObject<T extends core::Object>(self::identityObject::T t) → self::identityObject::T
   return t;
-static method identityList<T extends core::List<self::identityList::T*>* = core::List<dynamic>*>(self::identityList::T* t) → self::identityList::T*
+static method identityList<T extends core::List<self::identityList::T> = core::List<dynamic>>(self::identityList::T t) → self::identityList::T
   return t;
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/general/function_type_assignments.dart.weak.outline.expect b/pkg/front_end/testcases/general/function_type_assignments.dart.weak.outline.expect
index 3d00d77..65fa998 100644
--- a/pkg/front_end/testcases/general/function_type_assignments.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/function_type_assignments.dart.weak.outline.expect
@@ -1,15 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static field core::String* x;
-static field core::String* y;
-static field core::String* z;
-static method identity<T extends core::Object* = dynamic>(self::identity::T* t) → self::identity::T*
+static field core::String x;
+static field core::String y;
+static field core::String z;
+static method identity<T extends core::Object? = dynamic>(self::identity::T% t) → self::identity::T%
   ;
-static method identityObject<T extends core::Object*>(self::identityObject::T* t) → self::identityObject::T*
+static method identityObject<T extends core::Object>(self::identityObject::T t) → self::identityObject::T
   ;
-static method identityList<T extends core::List<self::identityList::T*>* = core::List<dynamic>*>(self::identityList::T* t) → self::identityList::T*
+static method identityList<T extends core::List<self::identityList::T> = core::List<dynamic>>(self::identityList::T t) → self::identityList::T
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/function_type_assignments.dart.weak.transformed.expect b/pkg/front_end/testcases/general/function_type_assignments.dart.weak.transformed.expect
index 0333159..da885e4 100644
--- a/pkg/front_end/testcases/general/function_type_assignments.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/function_type_assignments.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,22 +19,22 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::String* x = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:11:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'String'.
+static field core::String x = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:11:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'String'.
 String x = identity; // No bound
-           ^" in #C1 as{TypeError} core::String*;
-static field core::String* y = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:12:12: Error: A value of type 'T Function<T extends Object>(T)' can't be assigned to a variable of type 'String'.
+           ^" in #C1 as{TypeError,ForNonNullableByDefault} core::String;
+static field core::String y = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:12:12: Error: A value of type 'T Function<T extends Object>(T)' can't be assigned to a variable of type 'String'.
  - 'Object' is from 'dart:core'.
 String y = identityObject; // Object bound
-           ^" in #C2 as{TypeError} core::String*;
-static field core::String* z = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:13:12: Error: A value of type 'T Function<T extends List<T>>(T)' can't be assigned to a variable of type 'String'.
+           ^" in #C2 as{TypeError,ForNonNullableByDefault} core::String;
+static field core::String z = invalid-expression "pkg/front_end/testcases/general/function_type_assignments.dart:13:12: Error: A value of type 'T Function<T extends List<T>>(T)' can't be assigned to a variable of type 'String'.
  - 'List' is from 'dart:core'.
 String z = identityList; // List<T> bound
-           ^" in #C3 as{TypeError} core::String*;
-static method identity<T extends core::Object* = dynamic>(self::identity::T* t) → self::identity::T*
+           ^" in #C3 as{TypeError,ForNonNullableByDefault} core::String;
+static method identity<T extends core::Object? = dynamic>(self::identity::T% t) → self::identity::T%
   return t;
-static method identityObject<T extends core::Object*>(self::identityObject::T* t) → self::identityObject::T*
+static method identityObject<T extends core::Object>(self::identityObject::T t) → self::identityObject::T
   return t;
-static method identityList<T extends core::List<self::identityList::T*>* = core::List<dynamic>*>(self::identityList::T* t) → self::identityList::T*
+static method identityList<T extends core::List<self::identityList::T> = core::List<dynamic>>(self::identityList::T t) → self::identityList::T
   return t;
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/general/function_type_default_value.dart b/pkg/front_end/testcases/general/function_type_default_value.dart
index 9b99d51..c109f8c 100644
--- a/pkg/front_end/testcases/general/function_type_default_value.dart
+++ b/pkg/front_end/testcases/general/function_type_default_value.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2018, 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.
-// @dart=2.9
-void Function({obj: Object}) x;
+
+void Function({obj: Object})? x;
 
 main() {}
diff --git a/pkg/front_end/testcases/general/function_type_default_value.dart.textual_outline.expect b/pkg/front_end/testcases/general/function_type_default_value.dart.textual_outline.expect
index 58d7573..8468740 100644
--- a/pkg/front_end/testcases/general/function_type_default_value.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/function_type_default_value.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
-void Function({obj: Object}) x;
+void Function({obj: Object})? x;
 main() {}
diff --git a/pkg/front_end/testcases/general/function_type_default_value.dart.weak.expect b/pkg/front_end/testcases/general/function_type_default_value.dart.weak.expect
index 37aef15..a1b8413 100644
--- a/pkg/front_end/testcases/general/function_type_default_value.dart.weak.expect
+++ b/pkg/front_end/testcases/general/function_type_default_value.dart.weak.expect
@@ -1,25 +1,25 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:19: Error: Expected an identifier, but got ':'.
 // Try inserting an identifier before ':'.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                   ^
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:19: Error: Can't have a default value in a function type.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                   ^
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:16: Error: Type 'obj' not found.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                ^^^
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:16: Error: 'obj' isn't a type.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                ^^^
 //
 import self as self;
 
-static field () →* void x;
+static field () →? void x;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/function_type_default_value.dart.weak.modular.expect b/pkg/front_end/testcases/general/function_type_default_value.dart.weak.modular.expect
index 37aef15..a1b8413 100644
--- a/pkg/front_end/testcases/general/function_type_default_value.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/function_type_default_value.dart.weak.modular.expect
@@ -1,25 +1,25 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:19: Error: Expected an identifier, but got ':'.
 // Try inserting an identifier before ':'.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                   ^
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:19: Error: Can't have a default value in a function type.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                   ^
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:16: Error: Type 'obj' not found.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                ^^^
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:16: Error: 'obj' isn't a type.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                ^^^
 //
 import self as self;
 
-static field () →* void x;
+static field () →? void x;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/function_type_default_value.dart.weak.outline.expect b/pkg/front_end/testcases/general/function_type_default_value.dart.weak.outline.expect
index a4845bb..73e732a 100644
--- a/pkg/front_end/testcases/general/function_type_default_value.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/function_type_default_value.dart.weak.outline.expect
@@ -1,22 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:19: Error: Expected an identifier, but got ':'.
 // Try inserting an identifier before ':'.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                   ^
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:19: Error: Can't have a default value in a function type.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                   ^
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:16: Error: Type 'obj' not found.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                ^^^
 //
 import self as self;
 
-static field () →* void x;
+static field () →? void x;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/function_type_default_value.dart.weak.transformed.expect b/pkg/front_end/testcases/general/function_type_default_value.dart.weak.transformed.expect
index 37aef15..a1b8413 100644
--- a/pkg/front_end/testcases/general/function_type_default_value.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/function_type_default_value.dart.weak.transformed.expect
@@ -1,25 +1,25 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:19: Error: Expected an identifier, but got ':'.
 // Try inserting an identifier before ':'.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                   ^
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:19: Error: Can't have a default value in a function type.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                   ^
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:16: Error: Type 'obj' not found.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                ^^^
 //
 // pkg/front_end/testcases/general/function_type_default_value.dart:5:16: Error: 'obj' isn't a type.
-// void Function({obj: Object}) x;
+// void Function({obj: Object})? x;
 //                ^^^
 //
 import self as self;
 
-static field () →* void x;
+static field () →? void x;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/function_type_is_check.dart b/pkg/front_end/testcases/general/function_type_is_check.dart
index 57ec0ca..706ac9e 100644
--- a/pkg/front_end/testcases/general/function_type_is_check.dart
+++ b/pkg/front_end/testcases/general/function_type_is_check.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2017, 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.
-// @dart=2.9
+
 import "package:expect/expect.dart" show Expect;
 
 test(f) {
diff --git a/pkg/front_end/testcases/general/function_type_is_check.dart.textual_outline.expect b/pkg/front_end/testcases/general/function_type_is_check.dart.textual_outline.expect
index f102516..0f294ea 100644
--- a/pkg/front_end/testcases/general/function_type_is_check.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/function_type_is_check.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "package:expect/expect.dart" show Expect;
 
 test(f) {}
diff --git a/pkg/front_end/testcases/general/function_type_is_check.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/function_type_is_check.dart.textual_outline_modelled.expect
index 123cad0..22e03b0 100644
--- a/pkg/front_end/testcases/general/function_type_is_check.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/function_type_is_check.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "package:expect/expect.dart" show Expect;
 
 main() {}
diff --git a/pkg/front_end/testcases/general/function_type_is_check.dart.weak.expect b/pkg/front_end/testcases/general/function_type_is_check.dart.weak.expect
index 3994837..3afdee8 100644
--- a/pkg/front_end/testcases/general/function_type_is_check.dart.weak.expect
+++ b/pkg/front_end/testcases/general/function_type_is_check.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "package:expect/expect.dart" as exp;
@@ -6,13 +6,13 @@
 import "package:expect/expect.dart" show Expect;
 
 static method test(dynamic f) → dynamic {
-  if(f is (core::Object*, core::StackTrace*) →* void)
+  if(f is{ForNonNullableByDefault} (core::Object, core::StackTrace) → void)
     return 1;
-  if(f is (core::Object*) →* void)
+  if(f is{ForNonNullableByDefault} (core::Object) → void)
     return 10;
-  if(f is () →* void)
+  if(f is{ForNonNullableByDefault} () → void)
     return 100;
 }
 static method main() → dynamic {
-  exp::Expect::equals(111, self::test(() → Null => null){dynamic}.+(self::test((core::Object* o) → Null => null)){dynamic}.+(self::test((core::Object* o, core::StackTrace* t) → Null => null)));
+  exp::Expect::equals(111, self::test(() → Null => null){dynamic}.+(self::test((core::Object o) → Null => null)){dynamic}.+(self::test((core::Object o, core::StackTrace t) → Null => null)));
 }
diff --git a/pkg/front_end/testcases/general/function_type_is_check.dart.weak.modular.expect b/pkg/front_end/testcases/general/function_type_is_check.dart.weak.modular.expect
index 3994837..3afdee8 100644
--- a/pkg/front_end/testcases/general/function_type_is_check.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/function_type_is_check.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "package:expect/expect.dart" as exp;
@@ -6,13 +6,13 @@
 import "package:expect/expect.dart" show Expect;
 
 static method test(dynamic f) → dynamic {
-  if(f is (core::Object*, core::StackTrace*) →* void)
+  if(f is{ForNonNullableByDefault} (core::Object, core::StackTrace) → void)
     return 1;
-  if(f is (core::Object*) →* void)
+  if(f is{ForNonNullableByDefault} (core::Object) → void)
     return 10;
-  if(f is () →* void)
+  if(f is{ForNonNullableByDefault} () → void)
     return 100;
 }
 static method main() → dynamic {
-  exp::Expect::equals(111, self::test(() → Null => null){dynamic}.+(self::test((core::Object* o) → Null => null)){dynamic}.+(self::test((core::Object* o, core::StackTrace* t) → Null => null)));
+  exp::Expect::equals(111, self::test(() → Null => null){dynamic}.+(self::test((core::Object o) → Null => null)){dynamic}.+(self::test((core::Object o, core::StackTrace t) → Null => null)));
 }
diff --git a/pkg/front_end/testcases/general/function_type_is_check.dart.weak.outline.expect b/pkg/front_end/testcases/general/function_type_is_check.dart.weak.outline.expect
index f49d6de..f5858b2 100644
--- a/pkg/front_end/testcases/general/function_type_is_check.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/function_type_is_check.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "package:expect/expect.dart" show Expect;
diff --git a/pkg/front_end/testcases/general/function_type_is_check.dart.weak.transformed.expect b/pkg/front_end/testcases/general/function_type_is_check.dart.weak.transformed.expect
index 3994837..3afdee8 100644
--- a/pkg/front_end/testcases/general/function_type_is_check.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/function_type_is_check.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "package:expect/expect.dart" as exp;
@@ -6,13 +6,13 @@
 import "package:expect/expect.dart" show Expect;
 
 static method test(dynamic f) → dynamic {
-  if(f is (core::Object*, core::StackTrace*) →* void)
+  if(f is{ForNonNullableByDefault} (core::Object, core::StackTrace) → void)
     return 1;
-  if(f is (core::Object*) →* void)
+  if(f is{ForNonNullableByDefault} (core::Object) → void)
     return 10;
-  if(f is () →* void)
+  if(f is{ForNonNullableByDefault} () → void)
     return 100;
 }
 static method main() → dynamic {
-  exp::Expect::equals(111, self::test(() → Null => null){dynamic}.+(self::test((core::Object* o) → Null => null)){dynamic}.+(self::test((core::Object* o, core::StackTrace* t) → Null => null)));
+  exp::Expect::equals(111, self::test(() → Null => null){dynamic}.+(self::test((core::Object o) → Null => null)){dynamic}.+(self::test((core::Object o, core::StackTrace t) → Null => null)));
 }
diff --git a/pkg/front_end/testcases/general/function_type_recovery.dart b/pkg/front_end/testcases/general/function_type_recovery.dart
index 38637d5..a0c0c45 100644
--- a/pkg/front_end/testcases/general/function_type_recovery.dart
+++ b/pkg/front_end/testcases/general/function_type_recovery.dart
@@ -1,13 +1,13 @@
 // Copyright (c) 2017, 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.
-// @dart=2.9
+
 // Tests that an inline function type inside a `Function` type isn't a
 // parser error.
 
 typedef F = int Function(int f(String x));
 
 main() {
-  F f = null;
-  String Function(String g(int y)) g = null;
+  F? f = null;
+  String Function(String g(int y))? g = null;
 }
diff --git a/pkg/front_end/testcases/general/function_type_recovery.dart.textual_outline.expect b/pkg/front_end/testcases/general/function_type_recovery.dart.textual_outline.expect
index 9e05a8d..2efaae2 100644
--- a/pkg/front_end/testcases/general/function_type_recovery.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/function_type_recovery.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 typedef F = int Function(int f(String x));
 main() {}
diff --git a/pkg/front_end/testcases/general/function_type_recovery.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/function_type_recovery.dart.textual_outline_modelled.expect
index cc18173..a2bb0c0 100644
--- a/pkg/front_end/testcases/general/function_type_recovery.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/function_type_recovery.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
 typedef F = int Function(int f(String x));
diff --git a/pkg/front_end/testcases/general/function_type_recovery.dart.weak.expect b/pkg/front_end/testcases/general/function_type_recovery.dart.weak.expect
index b221bcb..7f6fc7d 100644
--- a/pkg/front_end/testcases/general/function_type_recovery.dart.weak.expect
+++ b/pkg/front_end/testcases/general/function_type_recovery.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,14 +9,14 @@
 //
 // pkg/front_end/testcases/general/function_type_recovery.dart:12:27: Error: Inline function types cannot be used for parameters in a generic function type.
 // Try changing the inline function type (as in 'int f()') to a prefixed function type using the `Function` keyword (as in 'int Function() f').
-//   String Function(String g(int y)) g = null;
+//   String Function(String g(int y))? g = null;
 //                           ^
 //
 import self as self;
 import "dart:core" as core;
 
-typedef F = ((core::String*) →* core::int*) →* core::int*;
+typedef F = ((core::String) → core::int) → core::int;
 static method main() → dynamic {
-  ((core::String*) →* core::int*) →* core::int* f = null;
-  ((core::int*) →* core::String*) →* core::String* g = null;
+  ((core::String) → core::int) →? core::int f = null;
+  ((core::int) → core::String) →? core::String g = null;
 }
diff --git a/pkg/front_end/testcases/general/function_type_recovery.dart.weak.modular.expect b/pkg/front_end/testcases/general/function_type_recovery.dart.weak.modular.expect
index b221bcb..7f6fc7d 100644
--- a/pkg/front_end/testcases/general/function_type_recovery.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/function_type_recovery.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,14 +9,14 @@
 //
 // pkg/front_end/testcases/general/function_type_recovery.dart:12:27: Error: Inline function types cannot be used for parameters in a generic function type.
 // Try changing the inline function type (as in 'int f()') to a prefixed function type using the `Function` keyword (as in 'int Function() f').
-//   String Function(String g(int y)) g = null;
+//   String Function(String g(int y))? g = null;
 //                           ^
 //
 import self as self;
 import "dart:core" as core;
 
-typedef F = ((core::String*) →* core::int*) →* core::int*;
+typedef F = ((core::String) → core::int) → core::int;
 static method main() → dynamic {
-  ((core::String*) →* core::int*) →* core::int* f = null;
-  ((core::int*) →* core::String*) →* core::String* g = null;
+  ((core::String) → core::int) →? core::int f = null;
+  ((core::int) → core::String) →? core::String g = null;
 }
diff --git a/pkg/front_end/testcases/general/function_type_recovery.dart.weak.outline.expect b/pkg/front_end/testcases/general/function_type_recovery.dart.weak.outline.expect
index 56adbb4..3cbaee2 100644
--- a/pkg/front_end/testcases/general/function_type_recovery.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/function_type_recovery.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,6 +10,6 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F = ((core::String*) →* core::int*) →* core::int*;
+typedef F = ((core::String) → core::int) → core::int;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/function_type_recovery.dart.weak.transformed.expect b/pkg/front_end/testcases/general/function_type_recovery.dart.weak.transformed.expect
index b221bcb..7f6fc7d 100644
--- a/pkg/front_end/testcases/general/function_type_recovery.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/function_type_recovery.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,14 +9,14 @@
 //
 // pkg/front_end/testcases/general/function_type_recovery.dart:12:27: Error: Inline function types cannot be used for parameters in a generic function type.
 // Try changing the inline function type (as in 'int f()') to a prefixed function type using the `Function` keyword (as in 'int Function() f').
-//   String Function(String g(int y)) g = null;
+//   String Function(String g(int y))? g = null;
 //                           ^
 //
 import self as self;
 import "dart:core" as core;
 
-typedef F = ((core::String*) →* core::int*) →* core::int*;
+typedef F = ((core::String) → core::int) → core::int;
 static method main() → dynamic {
-  ((core::String*) →* core::int*) →* core::int* f = null;
-  ((core::int*) →* core::String*) →* core::String* g = null;
+  ((core::String) → core::int) →? core::int f = null;
+  ((core::int) → core::String) →? core::String g = null;
 }
diff --git a/pkg/front_end/testcases/general/functions.dart b/pkg/front_end/testcases/general/functions.dart
index 5b3f621..c6d90d6 100644
--- a/pkg/front_end/testcases/general/functions.dart
+++ b/pkg/front_end/testcases/general/functions.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2016, 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.
-// @dart=2.9
+
 main() {
   void local(void f({a})) {
     f(a: "Hello, World");
diff --git a/pkg/front_end/testcases/general/functions.dart.textual_outline.expect b/pkg/front_end/testcases/general/functions.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/functions.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/functions.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/functions.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/functions.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/functions.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/functions.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/functions.dart.weak.expect b/pkg/front_end/testcases/general/functions.dart.weak.expect
index a0fd727..71cf09f 100644
--- a/pkg/front_end/testcases/general/functions.dart.weak.expect
+++ b/pkg/front_end/testcases/general/functions.dart.weak.expect
@@ -1,15 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  function local(({a: dynamic}) →* void f) → void {
-    f(a: "Hello, World"){({a: dynamic}) →* void};
-    f(){({a: dynamic}) →* void};
+  function local(({a: dynamic}) → void f) → void {
+    f(a: "Hello, World"){({a: dynamic}) → void};
+    f(){({a: dynamic}) → void};
   }
-  local(({dynamic a = #C1}) → Null {
+  local(({dynamic a = #C1}) → void {
     core::print(a);
-  }){(({a: dynamic}) →* void) →* void};
+  }){(({a: dynamic}) → void) → void};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/general/functions.dart.weak.modular.expect b/pkg/front_end/testcases/general/functions.dart.weak.modular.expect
index a0fd727..71cf09f 100644
--- a/pkg/front_end/testcases/general/functions.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/functions.dart.weak.modular.expect
@@ -1,15 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  function local(({a: dynamic}) →* void f) → void {
-    f(a: "Hello, World"){({a: dynamic}) →* void};
-    f(){({a: dynamic}) →* void};
+  function local(({a: dynamic}) → void f) → void {
+    f(a: "Hello, World"){({a: dynamic}) → void};
+    f(){({a: dynamic}) → void};
   }
-  local(({dynamic a = #C1}) → Null {
+  local(({dynamic a = #C1}) → void {
     core::print(a);
-  }){(({a: dynamic}) →* void) →* void};
+  }){(({a: dynamic}) → void) → void};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/general/functions.dart.weak.outline.expect b/pkg/front_end/testcases/general/functions.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/general/functions.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/functions.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/functions.dart.weak.transformed.expect b/pkg/front_end/testcases/general/functions.dart.weak.transformed.expect
index a0fd727..71cf09f 100644
--- a/pkg/front_end/testcases/general/functions.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/functions.dart.weak.transformed.expect
@@ -1,15 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  function local(({a: dynamic}) →* void f) → void {
-    f(a: "Hello, World"){({a: dynamic}) →* void};
-    f(){({a: dynamic}) →* void};
+  function local(({a: dynamic}) → void f) → void {
+    f(a: "Hello, World"){({a: dynamic}) → void};
+    f(){({a: dynamic}) → void};
   }
-  local(({dynamic a = #C1}) → Null {
+  local(({dynamic a = #C1}) → void {
     core::print(a);
-  }){(({a: dynamic}) →* void) →* void};
+  }){(({a: dynamic}) → void) → void};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/general/future_or_test.dart b/pkg/front_end/testcases/general/future_or_test.dart
index 3d23e6d..5e60845 100644
--- a/pkg/front_end/testcases/general/future_or_test.dart
+++ b/pkg/front_end/testcases/general/future_or_test.dart
@@ -1,7 +1,9 @@
 // Copyright (c) 2018, 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.
+
 // @dart=2.9
+
 // The test checks that an expression with static type Future<dynamic> is
 // accepted as a return expression of a method with an async body and the
 // declared return type Future<int>.
diff --git a/pkg/front_end/testcases/general/future_return.dart b/pkg/front_end/testcases/general/future_return.dart
index 142d441..aae7105 100644
--- a/pkg/front_end/testcases/general/future_return.dart
+++ b/pkg/front_end/testcases/general/future_return.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2020, 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.
-// @dart=2.9
+
 import 'dart:async';
 
 class Class {}
diff --git a/pkg/front_end/testcases/general/future_return.dart.textual_outline.expect b/pkg/front_end/testcases/general/future_return.dart.textual_outline.expect
index fa953ed..75767f5 100644
--- a/pkg/front_end/testcases/general/future_return.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/future_return.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:async';
 
 class Class {}
diff --git a/pkg/front_end/testcases/general/future_return.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/future_return.dart.textual_outline_modelled.expect
index b89de64..0e7261f 100644
--- a/pkg/front_end/testcases/general/future_return.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/future_return.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:async';
 
 Class returnClass() async => new Class();
diff --git a/pkg/front_end/testcases/general/future_return.dart.weak.expect b/pkg/front_end/testcases/general/future_return.dart.weak.expect
index 3514a60..9ec0f18 100644
--- a/pkg/front_end/testcases/general/future_return.dart.weak.expect
+++ b/pkg/front_end/testcases/general/future_return.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -25,45 +25,35 @@
 import "dart:async";
 
 class Class extends core::Object {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method returnDynamic() → dynamic
   return new self::Class::•();
-static method returnClass() → self::Class* async 
+static method returnClass() → self::Class async 
   return new self::Class::•();
-static method returnFutureClass() → asy::Future<self::Class*>* async 
+static method returnFutureClass() → asy::Future<self::Class> async 
   return new self::Class::•();
-static method returnFutureOrClass() → FutureOr<self::Class*>* async 
+static method returnFutureOrClass() → FutureOr<self::Class> async 
   return new self::Class::•();
-static method returnClassFromDynamic() → self::Class* async 
-  return self::returnDynamic() as{TypeError} FutureOr<self::Class*>*;
-static method returnFutureClassDynamic() → asy::Future<self::Class*>* async 
-  return self::returnDynamic() as{TypeError} FutureOr<self::Class*>*;
-static method returnFutureOrClassDynamic() → FutureOr<self::Class*>* async 
-  return self::returnDynamic() as{TypeError} FutureOr<self::Class*>*;
-static method returnClassFromFutureClass() → self::Class* async 
+static method returnClassFromDynamic() → self::Class async 
+  return self::returnDynamic();
+static method returnFutureClassDynamic() → asy::Future<self::Class> async 
+  return self::returnDynamic() as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<self::Class>;
+static method returnFutureOrClassDynamic() → FutureOr<self::Class> async 
+  return self::returnDynamic() as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<self::Class>;
+static method returnClassFromFutureClass() → self::Class async 
   return self::returnFutureClass();
-static method returnFutureClassFromFutureClass() → asy::Future<self::Class*>* async 
+static method returnFutureClassFromFutureClass() → asy::Future<self::Class> async 
   return self::returnFutureClass();
-static method returnFutureOrClassFromFutureClass() → FutureOr<self::Class*>* async 
+static method returnFutureOrClassFromFutureClass() → FutureOr<self::Class> async 
   return self::returnFutureClass();
-static method returnClassFromFutureOrClass() → self::Class* async 
+static method returnClassFromFutureOrClass() → self::Class async 
   return self::returnFutureOrClass();
-static method returnFutureClassFromFutureOrClass() → asy::Future<self::Class*>* async 
+static method returnFutureClassFromFutureOrClass() → asy::Future<self::Class> async 
   return self::returnFutureOrClass();
-static method returnFutureOrClassFromFutureOrClass() → FutureOr<self::Class*>* async 
+static method returnFutureOrClassFromFutureOrClass() → FutureOr<self::Class> async 
   return self::returnFutureOrClass();
 static method main() → dynamic async {
   await self::returnClass();
diff --git a/pkg/front_end/testcases/general/future_return.dart.weak.modular.expect b/pkg/front_end/testcases/general/future_return.dart.weak.modular.expect
index 3514a60..9ec0f18 100644
--- a/pkg/front_end/testcases/general/future_return.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/future_return.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -25,45 +25,35 @@
 import "dart:async";
 
 class Class extends core::Object {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method returnDynamic() → dynamic
   return new self::Class::•();
-static method returnClass() → self::Class* async 
+static method returnClass() → self::Class async 
   return new self::Class::•();
-static method returnFutureClass() → asy::Future<self::Class*>* async 
+static method returnFutureClass() → asy::Future<self::Class> async 
   return new self::Class::•();
-static method returnFutureOrClass() → FutureOr<self::Class*>* async 
+static method returnFutureOrClass() → FutureOr<self::Class> async 
   return new self::Class::•();
-static method returnClassFromDynamic() → self::Class* async 
-  return self::returnDynamic() as{TypeError} FutureOr<self::Class*>*;
-static method returnFutureClassDynamic() → asy::Future<self::Class*>* async 
-  return self::returnDynamic() as{TypeError} FutureOr<self::Class*>*;
-static method returnFutureOrClassDynamic() → FutureOr<self::Class*>* async 
-  return self::returnDynamic() as{TypeError} FutureOr<self::Class*>*;
-static method returnClassFromFutureClass() → self::Class* async 
+static method returnClassFromDynamic() → self::Class async 
+  return self::returnDynamic();
+static method returnFutureClassDynamic() → asy::Future<self::Class> async 
+  return self::returnDynamic() as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<self::Class>;
+static method returnFutureOrClassDynamic() → FutureOr<self::Class> async 
+  return self::returnDynamic() as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<self::Class>;
+static method returnClassFromFutureClass() → self::Class async 
   return self::returnFutureClass();
-static method returnFutureClassFromFutureClass() → asy::Future<self::Class*>* async 
+static method returnFutureClassFromFutureClass() → asy::Future<self::Class> async 
   return self::returnFutureClass();
-static method returnFutureOrClassFromFutureClass() → FutureOr<self::Class*>* async 
+static method returnFutureOrClassFromFutureClass() → FutureOr<self::Class> async 
   return self::returnFutureClass();
-static method returnClassFromFutureOrClass() → self::Class* async 
+static method returnClassFromFutureOrClass() → self::Class async 
   return self::returnFutureOrClass();
-static method returnFutureClassFromFutureOrClass() → asy::Future<self::Class*>* async 
+static method returnFutureClassFromFutureOrClass() → asy::Future<self::Class> async 
   return self::returnFutureOrClass();
-static method returnFutureOrClassFromFutureOrClass() → FutureOr<self::Class*>* async 
+static method returnFutureOrClassFromFutureOrClass() → FutureOr<self::Class> async 
   return self::returnFutureOrClass();
 static method main() → dynamic async {
   await self::returnClass();
diff --git a/pkg/front_end/testcases/general/future_return.dart.weak.outline.expect b/pkg/front_end/testcases/general/future_return.dart.weak.outline.expect
index 14b9059..4a9a8c1 100644
--- a/pkg/front_end/testcases/general/future_return.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/future_return.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -6,44 +6,34 @@
 import "dart:async";
 
 class Class extends core::Object {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method returnDynamic() → dynamic
   ;
-static method returnClass() → self::Class* async 
+static method returnClass() → self::Class async 
   ;
-static method returnFutureClass() → asy::Future<self::Class*>* async 
+static method returnFutureClass() → asy::Future<self::Class> async 
   ;
-static method returnFutureOrClass() → FutureOr<self::Class*>* async 
+static method returnFutureOrClass() → FutureOr<self::Class> async 
   ;
-static method returnClassFromDynamic() → self::Class* async 
+static method returnClassFromDynamic() → self::Class async 
   ;
-static method returnFutureClassDynamic() → asy::Future<self::Class*>* async 
+static method returnFutureClassDynamic() → asy::Future<self::Class> async 
   ;
-static method returnFutureOrClassDynamic() → FutureOr<self::Class*>* async 
+static method returnFutureOrClassDynamic() → FutureOr<self::Class> async 
   ;
-static method returnClassFromFutureClass() → self::Class* async 
+static method returnClassFromFutureClass() → self::Class async 
   ;
-static method returnFutureClassFromFutureClass() → asy::Future<self::Class*>* async 
+static method returnFutureClassFromFutureClass() → asy::Future<self::Class> async 
   ;
-static method returnFutureOrClassFromFutureClass() → FutureOr<self::Class*>* async 
+static method returnFutureOrClassFromFutureClass() → FutureOr<self::Class> async 
   ;
-static method returnClassFromFutureOrClass() → self::Class* async 
+static method returnClassFromFutureOrClass() → self::Class async 
   ;
-static method returnFutureClassFromFutureOrClass() → asy::Future<self::Class*>* async 
+static method returnFutureClassFromFutureOrClass() → asy::Future<self::Class> async 
   ;
-static method returnFutureOrClassFromFutureOrClass() → FutureOr<self::Class*>* async 
+static method returnFutureOrClassFromFutureOrClass() → FutureOr<self::Class> async 
   ;
 static method main() → dynamic async 
   ;
diff --git a/pkg/front_end/testcases/general/future_return.dart.weak.transformed.expect b/pkg/front_end/testcases/general/future_return.dart.weak.transformed.expect
index 33f08d6..4e5fa39 100644
--- a/pkg/front_end/testcases/general/future_return.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/future_return.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -26,29 +26,19 @@
 import "dart:async";
 
 class Class extends core::Object {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method returnDynamic() → dynamic
   return new self::Class::•();
-static method returnClass() → self::Class* /* originally async */ {
-  final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
+static method returnClass() → self::Class /* originally async */ {
+  final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   dynamic :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
@@ -60,22 +50,22 @@
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method returnFutureClass() → asy::Future<self::Class*>* /* originally async */ {
-  final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
+static method returnFutureClass() → asy::Future<self::Class> /* originally async */ {
+  final asy::_Future<self::Class> :async_future = new asy::_Future::•<self::Class>();
   core::bool* :is_sync = false;
   self::Class? :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
@@ -87,22 +77,22 @@
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method returnFutureOrClass() → FutureOr<self::Class*>* /* originally async */ {
-  final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
+static method returnFutureOrClass() → FutureOr<self::Class> /* originally async */ {
+  final asy::_Future<self::Class> :async_future = new asy::_Future::•<self::Class>();
   core::bool* :is_sync = false;
   self::Class? :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
@@ -114,103 +104,103 @@
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method returnClassFromDynamic() → self::Class* /* originally async */ {
-  final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
+static method returnClassFromDynamic() → self::Class /* originally async */ {
+  final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
-  FutureOr<dynamic>* :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  FutureOr<dynamic>? :return_value;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
       #L4:
       {
-        :return_value = self::returnDynamic() as{TypeError} FutureOr<self::Class*>*;
+        :return_value = self::returnDynamic();
         break #L4;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method returnFutureClassDynamic() → asy::Future<self::Class*>* /* originally async */ {
-  final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
+static method returnFutureClassDynamic() → asy::Future<self::Class> /* originally async */ {
+  final asy::_Future<self::Class> :async_future = new asy::_Future::•<self::Class>();
   core::bool* :is_sync = false;
-  FutureOr<self::Class*>* :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  FutureOr<self::Class>? :return_value;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
       #L5:
       {
-        :return_value = self::returnDynamic() as{TypeError} FutureOr<self::Class*>*;
+        :return_value = self::returnDynamic() as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<self::Class>;
         break #L5;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method returnFutureOrClassDynamic() → FutureOr<self::Class*>* /* originally async */ {
-  final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
+static method returnFutureOrClassDynamic() → FutureOr<self::Class> /* originally async */ {
+  final asy::_Future<self::Class> :async_future = new asy::_Future::•<self::Class>();
   core::bool* :is_sync = false;
-  FutureOr<self::Class*>* :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  FutureOr<self::Class>? :return_value;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
       #L6:
       {
-        :return_value = self::returnDynamic() as{TypeError} FutureOr<self::Class*>*;
+        :return_value = self::returnDynamic() as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<self::Class>;
         break #L6;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method returnClassFromFutureClass() → self::Class* /* originally async */ {
-  final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
+static method returnClassFromFutureClass() → self::Class /* originally async */ {
+  final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
-  FutureOr<dynamic>* :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  FutureOr<dynamic>? :return_value;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
@@ -222,22 +212,22 @@
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method returnFutureClassFromFutureClass() → asy::Future<self::Class*>* /* originally async */ {
-  final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
+static method returnFutureClassFromFutureClass() → asy::Future<self::Class> /* originally async */ {
+  final asy::_Future<self::Class> :async_future = new asy::_Future::•<self::Class>();
   core::bool* :is_sync = false;
-  FutureOr<self::Class*>* :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  FutureOr<self::Class>? :return_value;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
@@ -249,22 +239,22 @@
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method returnFutureOrClassFromFutureClass() → FutureOr<self::Class*>* /* originally async */ {
-  final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
+static method returnFutureOrClassFromFutureClass() → FutureOr<self::Class> /* originally async */ {
+  final asy::_Future<self::Class> :async_future = new asy::_Future::•<self::Class>();
   core::bool* :is_sync = false;
-  FutureOr<self::Class*>* :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  FutureOr<self::Class>? :return_value;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
@@ -276,22 +266,22 @@
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method returnClassFromFutureOrClass() → self::Class* /* originally async */ {
-  final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
+static method returnClassFromFutureOrClass() → self::Class /* originally async */ {
+  final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
-  FutureOr<dynamic>* :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  FutureOr<dynamic>? :return_value;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
@@ -303,22 +293,22 @@
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method returnFutureClassFromFutureOrClass() → asy::Future<self::Class*>* /* originally async */ {
-  final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
+static method returnFutureClassFromFutureOrClass() → asy::Future<self::Class> /* originally async */ {
+  final asy::_Future<self::Class> :async_future = new asy::_Future::•<self::Class>();
   core::bool* :is_sync = false;
-  FutureOr<self::Class*>* :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  FutureOr<self::Class>? :return_value;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
@@ -330,22 +320,22 @@
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method returnFutureOrClassFromFutureOrClass() → FutureOr<self::Class*>* /* originally async */ {
-  final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
+static method returnFutureOrClassFromFutureOrClass() → FutureOr<self::Class> /* originally async */ {
+  final asy::_Future<self::Class> :async_future = new asy::_Future::•<self::Class>();
   core::bool* :is_sync = false;
-  FutureOr<self::Class*>* :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  FutureOr<self::Class>? :return_value;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
@@ -357,22 +347,22 @@
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
 static method main() → dynamic /* originally async */ {
-  final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
+  final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   dynamic :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   dynamic :saved_try_context_var0;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
@@ -380,39 +370,39 @@
       #L13:
       {
         [yield] let dynamic #t1 = asy::_awaitHelper(self::returnClass(), :async_op_then, :async_op_error) in null;
-        _in::unsafeCast<self::Class*>(:result_or_exception);
+        _in::unsafeCast<self::Class>(:result_or_exception);
         [yield] let dynamic #t2 = asy::_awaitHelper(self::returnFutureClass(), :async_op_then, :async_op_error) in null;
-        _in::unsafeCast<self::Class*>(:result_or_exception);
+        _in::unsafeCast<self::Class>(:result_or_exception);
         [yield] let dynamic #t3 = asy::_awaitHelper(self::returnFutureOrClass(), :async_op_then, :async_op_error) in null;
-        _in::unsafeCast<self::Class*>(:result_or_exception);
+        _in::unsafeCast<self::Class>(:result_or_exception);
         [yield] let dynamic #t4 = asy::_awaitHelper(self::returnClassFromDynamic(), :async_op_then, :async_op_error) in null;
-        _in::unsafeCast<self::Class*>(:result_or_exception);
+        _in::unsafeCast<self::Class>(:result_or_exception);
         [yield] let dynamic #t5 = asy::_awaitHelper(self::returnFutureClassDynamic(), :async_op_then, :async_op_error) in null;
-        _in::unsafeCast<self::Class*>(:result_or_exception);
+        _in::unsafeCast<self::Class>(:result_or_exception);
         [yield] let dynamic #t6 = asy::_awaitHelper(self::returnFutureOrClassDynamic(), :async_op_then, :async_op_error) in null;
-        _in::unsafeCast<self::Class*>(:result_or_exception);
+        _in::unsafeCast<self::Class>(:result_or_exception);
         [yield] let dynamic #t7 = asy::_awaitHelper(self::returnClassFromFutureClass(), :async_op_then, :async_op_error) in null;
-        _in::unsafeCast<self::Class*>(:result_or_exception);
+        _in::unsafeCast<self::Class>(:result_or_exception);
         [yield] let dynamic #t8 = asy::_awaitHelper(self::returnFutureClassFromFutureClass(), :async_op_then, :async_op_error) in null;
-        _in::unsafeCast<self::Class*>(:result_or_exception);
+        _in::unsafeCast<self::Class>(:result_or_exception);
         [yield] let dynamic #t9 = asy::_awaitHelper(self::returnFutureOrClassFromFutureClass(), :async_op_then, :async_op_error) in null;
-        _in::unsafeCast<self::Class*>(:result_or_exception);
+        _in::unsafeCast<self::Class>(:result_or_exception);
         [yield] let dynamic #t10 = asy::_awaitHelper(self::returnClassFromFutureOrClass(), :async_op_then, :async_op_error) in null;
-        _in::unsafeCast<self::Class*>(:result_or_exception);
+        _in::unsafeCast<self::Class>(:result_or_exception);
         [yield] let dynamic #t11 = asy::_awaitHelper(self::returnFutureClassFromFutureOrClass(), :async_op_then, :async_op_error) in null;
-        _in::unsafeCast<self::Class*>(:result_or_exception);
+        _in::unsafeCast<self::Class>(:result_or_exception);
         [yield] let dynamic #t12 = asy::_awaitHelper(self::returnFutureOrClassFromFutureOrClass(), :async_op_then, :async_op_error) in null;
-        _in::unsafeCast<self::Class*>(:result_or_exception);
+        _in::unsafeCast<self::Class>(:result_or_exception);
       }
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
diff --git a/pkg/front_end/testcases/general/generic_function_type_in_message.dart b/pkg/front_end/testcases/general/generic_function_type_in_message.dart
index 95d6bd6..e4eaf36 100644
--- a/pkg/front_end/testcases/general/generic_function_type_in_message.dart
+++ b/pkg/front_end/testcases/general/generic_function_type_in_message.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2019, 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.
-// @dart=2.9
+
 num add<A extends num, B extends num>(A a, B b) => a + b;
 
 test() {
diff --git a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.textual_outline.expect b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.textual_outline.expect
index 894e08c..8711ddc 100644
--- a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 num add<A extends num, B extends num>(A a, B b) => a + b;
 test() {}
 main() {}
diff --git a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.textual_outline_modelled.expect
index 744249d..3eb959f 100644
--- a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 main() {}
 num add<A extends num, B extends num>(A a, B b) => a + b;
 test() {}
diff --git a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.expect b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.expect
index 20b824e..bc6078e 100644
--- a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.expect
+++ b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,15 +9,15 @@
 import self as self;
 import "dart:core" as core;
 
-static method add<A extends core::num*, B extends core::num*>(self::add::A* a, self::add::B* b) → core::num*
-  return a.{core::num::+}(b){(core::num*) →* core::num*};
+static method add<A extends core::num, B extends core::num>(self::add::A a, self::add::B b) → core::num
+  return a.{core::num::+}(b){(core::num) → core::num};
 static method test() → dynamic {
-  core::int* x = invalid-expression "pkg/front_end/testcases/general/generic_function_type_in_message.dart:8:11: Error: A value of type 'num Function<A extends num, B extends num>(A, B)' can't be assigned to a variable of type 'int'.
+  core::int x = invalid-expression "pkg/front_end/testcases/general/generic_function_type_in_message.dart:8:11: Error: A value of type 'num Function<A extends num, B extends num>(A, B)' can't be assigned to a variable of type 'int'.
   int x = add;
-          ^" in #C1 as{TypeError} core::int*;
+          ^" in #C1 as{TypeError,ForNonNullableByDefault} core::int;
 }
 static method main() → dynamic {
-  if(self::add<core::int*, core::int*>(1, 2).{core::num::<}(3){(core::num*) →* core::bool*})
+  if(self::add<core::int, core::int>(1, 2).{core::num::<}(3){(core::num) → core::bool})
     self::test();
 }
 
diff --git a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.modular.expect b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.modular.expect
index 20b824e..bc6078e 100644
--- a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,15 +9,15 @@
 import self as self;
 import "dart:core" as core;
 
-static method add<A extends core::num*, B extends core::num*>(self::add::A* a, self::add::B* b) → core::num*
-  return a.{core::num::+}(b){(core::num*) →* core::num*};
+static method add<A extends core::num, B extends core::num>(self::add::A a, self::add::B b) → core::num
+  return a.{core::num::+}(b){(core::num) → core::num};
 static method test() → dynamic {
-  core::int* x = invalid-expression "pkg/front_end/testcases/general/generic_function_type_in_message.dart:8:11: Error: A value of type 'num Function<A extends num, B extends num>(A, B)' can't be assigned to a variable of type 'int'.
+  core::int x = invalid-expression "pkg/front_end/testcases/general/generic_function_type_in_message.dart:8:11: Error: A value of type 'num Function<A extends num, B extends num>(A, B)' can't be assigned to a variable of type 'int'.
   int x = add;
-          ^" in #C1 as{TypeError} core::int*;
+          ^" in #C1 as{TypeError,ForNonNullableByDefault} core::int;
 }
 static method main() → dynamic {
-  if(self::add<core::int*, core::int*>(1, 2).{core::num::<}(3){(core::num*) →* core::bool*})
+  if(self::add<core::int, core::int>(1, 2).{core::num::<}(3){(core::num) → core::bool})
     self::test();
 }
 
diff --git a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.outline.expect b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.outline.expect
index 36becbd..10808eb 100644
--- a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method add<A extends core::num*, B extends core::num*>(self::add::A* a, self::add::B* b) → core::num*
+static method add<A extends core::num, B extends core::num>(self::add::A a, self::add::B b) → core::num
   ;
 static method test() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.transformed.expect b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.transformed.expect
index 20b824e..bc6078e 100644
--- a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,15 +9,15 @@
 import self as self;
 import "dart:core" as core;
 
-static method add<A extends core::num*, B extends core::num*>(self::add::A* a, self::add::B* b) → core::num*
-  return a.{core::num::+}(b){(core::num*) →* core::num*};
+static method add<A extends core::num, B extends core::num>(self::add::A a, self::add::B b) → core::num
+  return a.{core::num::+}(b){(core::num) → core::num};
 static method test() → dynamic {
-  core::int* x = invalid-expression "pkg/front_end/testcases/general/generic_function_type_in_message.dart:8:11: Error: A value of type 'num Function<A extends num, B extends num>(A, B)' can't be assigned to a variable of type 'int'.
+  core::int x = invalid-expression "pkg/front_end/testcases/general/generic_function_type_in_message.dart:8:11: Error: A value of type 'num Function<A extends num, B extends num>(A, B)' can't be assigned to a variable of type 'int'.
   int x = add;
-          ^" in #C1 as{TypeError} core::int*;
+          ^" in #C1 as{TypeError,ForNonNullableByDefault} core::int;
 }
 static method main() → dynamic {
-  if(self::add<core::int*, core::int*>(1, 2).{core::num::<}(3){(core::num*) →* core::bool*})
+  if(self::add<core::int, core::int>(1, 2).{core::num::<}(3){(core::num) → core::bool})
     self::test();
 }
 
diff --git a/pkg/front_end/testcases/general/generic_function_typedef.dart b/pkg/front_end/testcases/general/generic_function_typedef.dart
index 88babaf..526c45b 100644
--- a/pkg/front_end/testcases/general/generic_function_typedef.dart
+++ b/pkg/front_end/testcases/general/generic_function_typedef.dart
@@ -1,7 +1,9 @@
 // Copyright (c) 2020, 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.
+
 // @dart=2.9
+
 typedef E1<T> = void Function();
 typedef E2<T extends num> = void Function();
 typedef E3<T, S> = void Function();
diff --git a/pkg/front_end/testcases/general/generic_function_typedef2.dart b/pkg/front_end/testcases/general/generic_function_typedef2.dart
new file mode 100644
index 0000000..f8d0d8d
--- /dev/null
+++ b/pkg/front_end/testcases/general/generic_function_typedef2.dart
@@ -0,0 +1,41 @@
+// Copyright (c) 2020, 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.
+
+typedef E1<T> = void Function();
+typedef E2<T extends num> = void Function();
+typedef E3<T, S> = void Function();
+typedef E4<T extends num, S extends num> = void Function();
+typedef E5<T extends S, S extends num> = void Function();
+typedef E6<T extends num, S extends T> = void Function();
+
+typedef F1 = void Function<T>();
+typedef F2 = void Function<T extends num>();
+typedef F3 = void Function<T, S>();
+typedef F4 = void Function<T extends num, S extends num>();
+typedef F5 = void Function<T extends S, S extends num>();
+typedef F6 = void Function<T extends num, S extends T>();
+
+typedef G1<X> = void Function<T extends X>();
+typedef G2<X extends num> = void Function<T extends X>();
+typedef G3<X, Y> = void Function<T extends X, S extends Y>();
+typedef G4<X extends num, Y extends num> = void
+    Function<T extends X, S extends Y>();
+typedef G5<X extends num> = void Function<T extends S, S extends X>();
+typedef G6<X extends num> = void Function<T extends X, S extends T>();
+
+typedef H1 = void Function(void Function<T>());
+typedef H2 = void Function(void Function<T extends num>());
+typedef H3 = void Function(void Function<T, S>());
+typedef H4 = void Function(void Function<T extends num, S extends num>());
+typedef H5 = void Function(void Function<T extends S, S extends num>());
+typedef H6 = void Function(void Function<T extends num, S extends T>());
+
+void Function<T>()? f1;
+void Function<T extends num>()? f2;
+void Function<T, S>()? f3;
+void Function<T extends num, S extends num>()? f4;
+void Function<T extends S, S extends num>()? f5;
+void Function<T extends num, S extends T>()? f6;
+
+main() {}
diff --git a/pkg/front_end/testcases/general/generic_function_typedef2.dart.textual_outline.expect b/pkg/front_end/testcases/general/generic_function_typedef2.dart.textual_outline.expect
new file mode 100644
index 0000000..4204509
--- /dev/null
+++ b/pkg/front_end/testcases/general/generic_function_typedef2.dart.textual_outline.expect
@@ -0,0 +1,32 @@
+typedef E1<T> = void Function();
+typedef E2<T extends num> = void Function();
+typedef E3<T, S> = void Function();
+typedef E4<T extends num, S extends num> = void Function();
+typedef E5<T extends S, S extends num> = void Function();
+typedef E6<T extends num, S extends T> = void Function();
+typedef F1 = void Function<T>();
+typedef F2 = void Function<T extends num>();
+typedef F3 = void Function<T, S>();
+typedef F4 = void Function<T extends num, S extends num>();
+typedef F5 = void Function<T extends S, S extends num>();
+typedef F6 = void Function<T extends num, S extends T>();
+typedef G1<X> = void Function<T extends X>();
+typedef G2<X extends num> = void Function<T extends X>();
+typedef G3<X, Y> = void Function<T extends X, S extends Y>();
+typedef G4<X extends num, Y extends num> = void
+    Function<T extends X, S extends Y>();
+typedef G5<X extends num> = void Function<T extends S, S extends X>();
+typedef G6<X extends num> = void Function<T extends X, S extends T>();
+typedef H1 = void Function(void Function<T>());
+typedef H2 = void Function(void Function<T extends num>());
+typedef H3 = void Function(void Function<T, S>());
+typedef H4 = void Function(void Function<T extends num, S extends num>());
+typedef H5 = void Function(void Function<T extends S, S extends num>());
+typedef H6 = void Function(void Function<T extends num, S extends T>());
+void Function<T>()? f1;
+void Function<T extends num>()? f2;
+void Function<T, S>()? f3;
+void Function<T extends num, S extends num>()? f4;
+void Function<T extends S, S extends num>()? f5;
+void Function<T extends num, S extends T>()? f6;
+main() {}
diff --git a/pkg/front_end/testcases/general/generic_function_typedef2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/generic_function_typedef2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..fccfe82
--- /dev/null
+++ b/pkg/front_end/testcases/general/generic_function_typedef2.dart.textual_outline_modelled.expect
@@ -0,0 +1,32 @@
+main() {}
+typedef E1<T> = void Function();
+typedef E2<T extends num> = void Function();
+typedef E3<T, S> = void Function();
+typedef E4<T extends num, S extends num> = void Function();
+typedef E5<T extends S, S extends num> = void Function();
+typedef E6<T extends num, S extends T> = void Function();
+typedef F1 = void Function<T>();
+typedef F2 = void Function<T extends num>();
+typedef F3 = void Function<T, S>();
+typedef F4 = void Function<T extends num, S extends num>();
+typedef F5 = void Function<T extends S, S extends num>();
+typedef F6 = void Function<T extends num, S extends T>();
+typedef G1<X> = void Function<T extends X>();
+typedef G2<X extends num> = void Function<T extends X>();
+typedef G3<X, Y> = void Function<T extends X, S extends Y>();
+typedef G4<X extends num, Y extends num> = void
+    Function<T extends X, S extends Y>();
+typedef G5<X extends num> = void Function<T extends S, S extends X>();
+typedef G6<X extends num> = void Function<T extends X, S extends T>();
+typedef H1 = void Function(void Function<T>());
+typedef H2 = void Function(void Function<T extends num>());
+typedef H3 = void Function(void Function<T, S>());
+typedef H4 = void Function(void Function<T extends num, S extends num>());
+typedef H5 = void Function(void Function<T extends S, S extends num>());
+typedef H6 = void Function(void Function<T extends num, S extends T>());
+void Function<T, S>()? f3;
+void Function<T>()? f1;
+void Function<T extends S, S extends num>()? f5;
+void Function<T extends num, S extends T>()? f6;
+void Function<T extends num, S extends num>()? f4;
+void Function<T extends num>()? f2;
diff --git a/pkg/front_end/testcases/general/generic_function_typedef2.dart.weak.expect b/pkg/front_end/testcases/general/generic_function_typedef2.dart.weak.expect
new file mode 100644
index 0000000..ff1449c
--- /dev/null
+++ b/pkg/front_end/testcases/general/generic_function_typedef2.dart.weak.expect
@@ -0,0 +1,35 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef E1<unrelated T extends core::Object? = dynamic> = () → void;
+typedef E2<unrelated T extends core::num> = () → void;
+typedef E3<unrelated T extends core::Object? = dynamic, unrelated S extends core::Object? = dynamic> = () → void;
+typedef E4<unrelated T extends core::num, unrelated S extends core::num> = () → void;
+typedef E5<unrelated T extends S = core::num, unrelated S extends core::num> = () → void;
+typedef E6<unrelated T extends core::num, unrelated S extends T = core::num> = () → void;
+typedef F1 = <T extends core::Object? = dynamic>() → void;
+typedef F2 = <T extends core::num = dynamic>() → void;
+typedef F3 = <T extends core::Object? = dynamic, S extends core::Object? = dynamic>() → void;
+typedef F4 = <T extends core::num = dynamic, S extends core::num = dynamic>() → void;
+typedef F5 = <T extends S = dynamic, S extends core::num = dynamic>() → void;
+typedef F6 = <T extends core::num = dynamic, S extends T = dynamic>() → void;
+typedef G1<invariant X extends core::Object? = dynamic> = <T extends X% = dynamic>() → void;
+typedef G2<invariant X extends core::num> = <T extends X = dynamic>() → void;
+typedef G3<invariant X extends core::Object? = dynamic, invariant Y extends core::Object? = dynamic> = <T extends X% = dynamic, S extends Y% = dynamic>() → void;
+typedef G4<invariant X extends core::num, invariant Y extends core::num> = <T extends X = dynamic, S extends Y = dynamic>() → void;
+typedef G5<invariant X extends core::num> = <T extends S = dynamic, S extends X = dynamic>() → void;
+typedef G6<invariant X extends core::num> = <T extends X = dynamic, S extends T = dynamic>() → void;
+typedef H1 = (<T extends core::Object? = dynamic>() → void) → void;
+typedef H2 = (<T extends core::num = dynamic>() → void) → void;
+typedef H3 = (<T extends core::Object? = dynamic, S extends core::Object? = dynamic>() → void) → void;
+typedef H4 = (<T extends core::num = dynamic, S extends core::num = dynamic>() → void) → void;
+typedef H5 = (<T extends S = dynamic, S extends core::num = dynamic>() → void) → void;
+typedef H6 = (<T extends core::num = dynamic, S extends T = dynamic>() → void) → void;
+static field <T extends core::Object? = dynamic>() →? void f1;
+static field <T extends core::num = dynamic>() →? void f2;
+static field <T extends core::Object? = dynamic, S extends core::Object? = dynamic>() →? void f3;
+static field <T extends core::num = dynamic, S extends core::num = dynamic>() →? void f4;
+static field <T extends S = dynamic, S extends core::num = dynamic>() →? void f5;
+static field <T extends core::num = dynamic, S extends T = dynamic>() →? void f6;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/generic_function_typedef2.dart.weak.modular.expect b/pkg/front_end/testcases/general/generic_function_typedef2.dart.weak.modular.expect
new file mode 100644
index 0000000..ff1449c
--- /dev/null
+++ b/pkg/front_end/testcases/general/generic_function_typedef2.dart.weak.modular.expect
@@ -0,0 +1,35 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef E1<unrelated T extends core::Object? = dynamic> = () → void;
+typedef E2<unrelated T extends core::num> = () → void;
+typedef E3<unrelated T extends core::Object? = dynamic, unrelated S extends core::Object? = dynamic> = () → void;
+typedef E4<unrelated T extends core::num, unrelated S extends core::num> = () → void;
+typedef E5<unrelated T extends S = core::num, unrelated S extends core::num> = () → void;
+typedef E6<unrelated T extends core::num, unrelated S extends T = core::num> = () → void;
+typedef F1 = <T extends core::Object? = dynamic>() → void;
+typedef F2 = <T extends core::num = dynamic>() → void;
+typedef F3 = <T extends core::Object? = dynamic, S extends core::Object? = dynamic>() → void;
+typedef F4 = <T extends core::num = dynamic, S extends core::num = dynamic>() → void;
+typedef F5 = <T extends S = dynamic, S extends core::num = dynamic>() → void;
+typedef F6 = <T extends core::num = dynamic, S extends T = dynamic>() → void;
+typedef G1<invariant X extends core::Object? = dynamic> = <T extends X% = dynamic>() → void;
+typedef G2<invariant X extends core::num> = <T extends X = dynamic>() → void;
+typedef G3<invariant X extends core::Object? = dynamic, invariant Y extends core::Object? = dynamic> = <T extends X% = dynamic, S extends Y% = dynamic>() → void;
+typedef G4<invariant X extends core::num, invariant Y extends core::num> = <T extends X = dynamic, S extends Y = dynamic>() → void;
+typedef G5<invariant X extends core::num> = <T extends S = dynamic, S extends X = dynamic>() → void;
+typedef G6<invariant X extends core::num> = <T extends X = dynamic, S extends T = dynamic>() → void;
+typedef H1 = (<T extends core::Object? = dynamic>() → void) → void;
+typedef H2 = (<T extends core::num = dynamic>() → void) → void;
+typedef H3 = (<T extends core::Object? = dynamic, S extends core::Object? = dynamic>() → void) → void;
+typedef H4 = (<T extends core::num = dynamic, S extends core::num = dynamic>() → void) → void;
+typedef H5 = (<T extends S = dynamic, S extends core::num = dynamic>() → void) → void;
+typedef H6 = (<T extends core::num = dynamic, S extends T = dynamic>() → void) → void;
+static field <T extends core::Object? = dynamic>() →? void f1;
+static field <T extends core::num = dynamic>() →? void f2;
+static field <T extends core::Object? = dynamic, S extends core::Object? = dynamic>() →? void f3;
+static field <T extends core::num = dynamic, S extends core::num = dynamic>() →? void f4;
+static field <T extends S = dynamic, S extends core::num = dynamic>() →? void f5;
+static field <T extends core::num = dynamic, S extends T = dynamic>() →? void f6;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/generic_function_typedef2.dart.weak.outline.expect b/pkg/front_end/testcases/general/generic_function_typedef2.dart.weak.outline.expect
new file mode 100644
index 0000000..f392fe8
--- /dev/null
+++ b/pkg/front_end/testcases/general/generic_function_typedef2.dart.weak.outline.expect
@@ -0,0 +1,36 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef E1<unrelated T extends core::Object? = dynamic> = () → void;
+typedef E2<unrelated T extends core::num> = () → void;
+typedef E3<unrelated T extends core::Object? = dynamic, unrelated S extends core::Object? = dynamic> = () → void;
+typedef E4<unrelated T extends core::num, unrelated S extends core::num> = () → void;
+typedef E5<unrelated T extends S = core::num, unrelated S extends core::num> = () → void;
+typedef E6<unrelated T extends core::num, unrelated S extends T = core::num> = () → void;
+typedef F1 = <T extends core::Object? = dynamic>() → void;
+typedef F2 = <T extends core::num = dynamic>() → void;
+typedef F3 = <T extends core::Object? = dynamic, S extends core::Object? = dynamic>() → void;
+typedef F4 = <T extends core::num = dynamic, S extends core::num = dynamic>() → void;
+typedef F5 = <T extends S = dynamic, S extends core::num = dynamic>() → void;
+typedef F6 = <T extends core::num = dynamic, S extends T = dynamic>() → void;
+typedef G1<invariant X extends core::Object? = dynamic> = <T extends X% = dynamic>() → void;
+typedef G2<invariant X extends core::num> = <T extends X = dynamic>() → void;
+typedef G3<invariant X extends core::Object? = dynamic, invariant Y extends core::Object? = dynamic> = <T extends X% = dynamic, S extends Y% = dynamic>() → void;
+typedef G4<invariant X extends core::num, invariant Y extends core::num> = <T extends X = dynamic, S extends Y = dynamic>() → void;
+typedef G5<invariant X extends core::num> = <T extends S = dynamic, S extends X = dynamic>() → void;
+typedef G6<invariant X extends core::num> = <T extends X = dynamic, S extends T = dynamic>() → void;
+typedef H1 = (<T extends core::Object? = dynamic>() → void) → void;
+typedef H2 = (<T extends core::num = dynamic>() → void) → void;
+typedef H3 = (<T extends core::Object? = dynamic, S extends core::Object? = dynamic>() → void) → void;
+typedef H4 = (<T extends core::num = dynamic, S extends core::num = dynamic>() → void) → void;
+typedef H5 = (<T extends S = dynamic, S extends core::num = dynamic>() → void) → void;
+typedef H6 = (<T extends core::num = dynamic, S extends T = dynamic>() → void) → void;
+static field <T extends core::Object? = dynamic>() →? void f1;
+static field <T extends core::num = dynamic>() →? void f2;
+static field <T extends core::Object? = dynamic, S extends core::Object? = dynamic>() →? void f3;
+static field <T extends core::num = dynamic, S extends core::num = dynamic>() →? void f4;
+static field <T extends S = dynamic, S extends core::num = dynamic>() →? void f5;
+static field <T extends core::num = dynamic, S extends T = dynamic>() →? void f6;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/general/generic_function_typedef2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/generic_function_typedef2.dart.weak.transformed.expect
new file mode 100644
index 0000000..ff1449c
--- /dev/null
+++ b/pkg/front_end/testcases/general/generic_function_typedef2.dart.weak.transformed.expect
@@ -0,0 +1,35 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef E1<unrelated T extends core::Object? = dynamic> = () → void;
+typedef E2<unrelated T extends core::num> = () → void;
+typedef E3<unrelated T extends core::Object? = dynamic, unrelated S extends core::Object? = dynamic> = () → void;
+typedef E4<unrelated T extends core::num, unrelated S extends core::num> = () → void;
+typedef E5<unrelated T extends S = core::num, unrelated S extends core::num> = () → void;
+typedef E6<unrelated T extends core::num, unrelated S extends T = core::num> = () → void;
+typedef F1 = <T extends core::Object? = dynamic>() → void;
+typedef F2 = <T extends core::num = dynamic>() → void;
+typedef F3 = <T extends core::Object? = dynamic, S extends core::Object? = dynamic>() → void;
+typedef F4 = <T extends core::num = dynamic, S extends core::num = dynamic>() → void;
+typedef F5 = <T extends S = dynamic, S extends core::num = dynamic>() → void;
+typedef F6 = <T extends core::num = dynamic, S extends T = dynamic>() → void;
+typedef G1<invariant X extends core::Object? = dynamic> = <T extends X% = dynamic>() → void;
+typedef G2<invariant X extends core::num> = <T extends X = dynamic>() → void;
+typedef G3<invariant X extends core::Object? = dynamic, invariant Y extends core::Object? = dynamic> = <T extends X% = dynamic, S extends Y% = dynamic>() → void;
+typedef G4<invariant X extends core::num, invariant Y extends core::num> = <T extends X = dynamic, S extends Y = dynamic>() → void;
+typedef G5<invariant X extends core::num> = <T extends S = dynamic, S extends X = dynamic>() → void;
+typedef G6<invariant X extends core::num> = <T extends X = dynamic, S extends T = dynamic>() → void;
+typedef H1 = (<T extends core::Object? = dynamic>() → void) → void;
+typedef H2 = (<T extends core::num = dynamic>() → void) → void;
+typedef H3 = (<T extends core::Object? = dynamic, S extends core::Object? = dynamic>() → void) → void;
+typedef H4 = (<T extends core::num = dynamic, S extends core::num = dynamic>() → void) → void;
+typedef H5 = (<T extends S = dynamic, S extends core::num = dynamic>() → void) → void;
+typedef H6 = (<T extends core::num = dynamic, S extends T = dynamic>() → void) → void;
+static field <T extends core::Object? = dynamic>() →? void f1;
+static field <T extends core::num = dynamic>() →? void f2;
+static field <T extends core::Object? = dynamic, S extends core::Object? = dynamic>() →? void f3;
+static field <T extends core::num = dynamic, S extends core::num = dynamic>() →? void f4;
+static field <T extends S = dynamic, S extends core::num = dynamic>() →? void f5;
+static field <T extends core::num = dynamic, S extends T = dynamic>() →? void f6;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/getter_call.dart b/pkg/front_end/testcases/general/getter_call.dart
index f9ddb1b..e7aa041 100644
--- a/pkg/front_end/testcases/general/getter_call.dart
+++ b/pkg/front_end/testcases/general/getter_call.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2020, 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.
-// @dart=2.9
+
 bool enableRead = true;
 
 int read(int value) => enableRead ? value : -1;
diff --git a/pkg/front_end/testcases/general/getter_call.dart.textual_outline.expect b/pkg/front_end/testcases/general/getter_call.dart.textual_outline.expect
index 52eeaa7..d9d43c9 100644
--- a/pkg/front_end/testcases/general/getter_call.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/getter_call.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 bool enableRead = true;
 int read(int value) => enableRead ? value : -1;
 int method1() => 0;
diff --git a/pkg/front_end/testcases/general/getter_call.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/getter_call.dart.textual_outline_modelled.expect
index 7b9b8af..fafec6e 100644
--- a/pkg/front_end/testcases/general/getter_call.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/getter_call.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 bool enableRead = true;
 callField(Class c) {}
 callGetter(Class c) {}
diff --git a/pkg/front_end/testcases/general/getter_call.dart.weak.expect b/pkg/front_end/testcases/general/getter_call.dart.weak.expect
index bcf489c..89099d1 100644
--- a/pkg/front_end/testcases/general/getter_call.dart.weak.expect
+++ b/pkg/front_end/testcases/general/getter_call.dart.weak.expect
@@ -1,177 +1,167 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  field core::Function* field1a = #C1;
-  field () →* core::int* field1b = #C1;
-  field (core::int*) →* core::int* field2 = #C2;
-  field (core::int*, core::int*) →* core::int* field3 = #C3;
-  field (core::int*, [core::int*]) →* core::int* field4 = #C4;
-  field ([core::int*, core::int*]) →* core::int* field5 = #C5;
-  field (core::int*, {b: core::int*}) →* core::int* field6 = #C6;
-  field ({a: core::int*, b: core::int*}) →* core::int* field7 = #C7;
-  synthetic constructor •() → self::Class*
+  field core::Function field1a = #C1;
+  field () → core::int field1b = #C1;
+  field (core::int) → core::int field2 = #C2;
+  field (core::int, core::int) → core::int field3 = #C3;
+  field (core::int, [core::int]) → core::int field4 = #C4;
+  field ([core::int, core::int]) → core::int field5 = #C5;
+  field (core::int, {b: core::int}) → core::int field6 = #C6;
+  field ({a: core::int, b: core::int}) → core::int field7 = #C7;
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  get getter1a() → core::Function*
+  get getter1a() → core::Function
     return #C1;
-  get getter1b() → () →* core::int*
+  get getter1b() → () → core::int
     return #C1;
-  get getter2() → (core::int*) →* core::int*
+  get getter2() → (core::int) → core::int
     return #C2;
-  get getter3() → (core::int*, core::int*) →* core::int*
+  get getter3() → (core::int, core::int) → core::int
     return #C3;
-  get getter4() → (core::int*, [core::int*]) →* core::int*
+  get getter4() → (core::int, [core::int]) → core::int
     return #C4;
-  get getter5() → ([core::int*, core::int*]) →* core::int*
+  get getter5() → ([core::int, core::int]) → core::int
     return #C5;
-  get getter6() → (core::int*, {b: core::int*}) →* core::int*
+  get getter6() → (core::int, {b: core::int}) → core::int
     return #C6;
-  get getter7() → ({a: core::int*, b: core::int*}) →* core::int*
+  get getter7() → ({a: core::int, b: core::int}) → core::int
     return #C7;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Subclass extends self::Class {
-  synthetic constructor •() → self::Subclass*
+  synthetic constructor •() → self::Subclass
     : super self::Class::•()
     ;
-  get field1a() → core::Function* {
+  get field1a() → core::Function {
     self::enableRead = false;
     return #C1;
   }
-  get field1b() → () →* core::int* {
+  get field1b() → () → core::int {
     self::enableRead = false;
     return #C1;
   }
-  get field2() → (core::int*) →* core::int* {
+  get field2() → (core::int) → core::int {
     self::enableRead = false;
     return #C2;
   }
-  get field3() → (core::int*, core::int*) →* core::int* {
+  get field3() → (core::int, core::int) → core::int {
     self::enableRead = false;
     return #C3;
   }
-  get field4() → (core::int*, [core::int*]) →* core::int* {
+  get field4() → (core::int, [core::int]) → core::int {
     self::enableRead = false;
     return #C4;
   }
-  get field5() → ([core::int*, core::int*]) →* core::int* {
+  get field5() → ([core::int, core::int]) → core::int {
     self::enableRead = false;
     return #C5;
   }
-  get field6() → (core::int*, {b: core::int*}) →* core::int* {
+  get field6() → (core::int, {b: core::int}) → core::int {
     self::enableRead = false;
     return #C6;
   }
-  get field7() → ({a: core::int*, b: core::int*}) →* core::int* {
+  get field7() → ({a: core::int, b: core::int}) → core::int {
     self::enableRead = false;
     return #C7;
   }
-  get getter1a() → core::Function* {
+  get getter1a() → core::Function {
     self::enableRead = false;
     return #C1;
   }
-  get getter1b() → () →* core::int* {
+  get getter1b() → () → core::int {
     self::enableRead = false;
     return #C1;
   }
-  get getter2() → (core::int*) →* core::int* {
+  get getter2() → (core::int) → core::int {
     self::enableRead = false;
     return #C2;
   }
-  get getter3() → (core::int*, core::int*) →* core::int* {
+  get getter3() → (core::int, core::int) → core::int {
     self::enableRead = false;
     return #C3;
   }
-  get getter4() → (core::int*, [core::int*]) →* core::int* {
+  get getter4() → (core::int, [core::int]) → core::int {
     self::enableRead = false;
     return #C4;
   }
-  get getter5() → ([core::int*, core::int*]) →* core::int* {
+  get getter5() → ([core::int, core::int]) → core::int {
     self::enableRead = false;
     return #C5;
   }
-  get getter6() → (core::int*, {b: core::int*}) →* core::int* {
+  get getter6() → (core::int, {b: core::int}) → core::int {
     self::enableRead = false;
     return #C6;
   }
-  get getter7() → ({a: core::int*, b: core::int*}) →* core::int* {
+  get getter7() → ({a: core::int, b: core::int}) → core::int {
     self::enableRead = false;
     return #C7;
   }
 }
-static field core::bool* enableRead = true;
-static method read(core::int* value) → core::int*
-  return self::enableRead ?{core::int*} value : 1.{core::int::unary-}(){() →* core::int*};
-static method method1() → core::int*
+static field core::bool enableRead = true;
+static method read(core::int value) → core::int
+  return self::enableRead ?{core::int} value : 1.{core::int::unary-}(){() → core::int};
+static method method1() → core::int
   return 0;
-static method method2(core::int* a) → core::int*
-  return a.{core::int::unary-}(){() →* core::int*};
-static method method3(core::int* a, core::int* b) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
-static method method4(core::int* a, [core::int* b = #C8]) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
-static method method5([core::int* a = #C8, core::int* b = #C8]) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
-static method method6(core::int* a, {core::int* b = #C8}) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
-static method method7({core::int* a = #C8, core::int* b = #C8}) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
+static method method2(core::int a) → core::int
+  return a.{core::int::unary-}(){() → core::int};
+static method method3(core::int a, core::int b) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
+static method method4(core::int a, [core::int b = #C8]) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
+static method method5([core::int a = #C8, core::int b = #C8]) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
+static method method6(core::int a, {core::int b = #C8}) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
+static method method7({core::int a = #C8, core::int b = #C8}) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
 static method main() → dynamic {
   self::callField(new self::Class::•());
   self::callGetter(new self::Class::•());
   self::callField(new self::Subclass::•());
   self::callGetter(new self::Subclass::•());
 }
-static method callField(self::Class* c) → dynamic {
-  self::expect(0, c.{self::Class::field1a}{core::Function*}());
-  self::expect(0, c.{self::Class::field1b}{() →* core::int*}(){() →* core::int*});
-  self::expect(42.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t1 = c in let final core::int* #t2 = self::read(42) in #t1.{self::Class::field2}{(core::int*) →* core::int*}(#t2){(core::int*) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t3 = c in let final core::int* #t4 = self::read(12) in let final core::int* #t5 = self::read(23) in #t3.{self::Class::field3}{(core::int*, core::int*) →* core::int*}(#t4, #t5){(core::int*, core::int*) →* core::int*});
-  self::expect(12, let final self::Class* #t6 = c in let final core::int* #t7 = self::read(12) in #t6.{self::Class::field4}{(core::int*, [core::int*]) →* core::int*}(#t7){(core::int*, [core::int*]) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t8 = c in let final core::int* #t9 = self::read(12) in let final core::int* #t10 = self::read(23) in #t8.{self::Class::field4}{(core::int*, [core::int*]) →* core::int*}(#t9, #t10){(core::int*, [core::int*]) →* core::int*});
-  self::expect(0, c.{self::Class::field5}{([core::int*, core::int*]) →* core::int*}(){([core::int*, core::int*]) →* core::int*});
-  self::expect(12, let final self::Class* #t11 = c in let final core::int* #t12 = self::read(12) in #t11.{self::Class::field5}{([core::int*, core::int*]) →* core::int*}(#t12){([core::int*, core::int*]) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t13 = c in let final core::int* #t14 = self::read(12) in let final core::int* #t15 = self::read(23) in #t13.{self::Class::field5}{([core::int*, core::int*]) →* core::int*}(#t14, #t15){([core::int*, core::int*]) →* core::int*});
-  self::expect(12, let final self::Class* #t16 = c in let final core::int* #t17 = self::read(12) in #t16.{self::Class::field6}{(core::int*, {b: core::int*}) →* core::int*}(#t17){(core::int*, {b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t18 = c in let final core::int* #t19 = self::read(12) in let final core::int* #t20 = self::read(23) in #t18.{self::Class::field6}{(core::int*, {b: core::int*}) →* core::int*}(#t19, b: #t20){(core::int*, {b: core::int*}) →* core::int*});
-  self::expect(0, c.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(12, let final self::Class* #t21 = c in let final core::int* #t22 = self::read(12) in #t21.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(a: #t22){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(23.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t23 = c in let final core::int* #t24 = self::read(23) in #t23.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(b: #t24){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t25 = c in let final core::int* #t26 = self::read(12) in let final core::int* #t27 = self::read(23) in #t25.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(a: #t26, b: #t27){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t28 = c in let final core::int* #t29 = self::read(23) in let final core::int* #t30 = self::read(12) in #t28.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(b: #t29, a: #t30){({a: core::int*, b: core::int*}) →* core::int*});
+static method callField(self::Class c) → dynamic {
+  self::expect(0, c.{self::Class::field1a}{core::Function}());
+  self::expect(0, c.{self::Class::field1b}{() → core::int}(){() → core::int});
+  self::expect(42.{core::int::unary-}(){() → core::int}, let final self::Class #t1 = c in let final core::int #t2 = self::read(42) in #t1.{self::Class::field2}{(core::int) → core::int}(#t2){(core::int) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t3 = c in let final core::int #t4 = self::read(12) in let final core::int #t5 = self::read(23) in #t3.{self::Class::field3}{(core::int, core::int) → core::int}(#t4, #t5){(core::int, core::int) → core::int});
+  self::expect(12, let final self::Class #t6 = c in let final core::int #t7 = self::read(12) in #t6.{self::Class::field4}{(core::int, [core::int]) → core::int}(#t7){(core::int, [core::int]) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t8 = c in let final core::int #t9 = self::read(12) in let final core::int #t10 = self::read(23) in #t8.{self::Class::field4}{(core::int, [core::int]) → core::int}(#t9, #t10){(core::int, [core::int]) → core::int});
+  self::expect(0, c.{self::Class::field5}{([core::int, core::int]) → core::int}(){([core::int, core::int]) → core::int});
+  self::expect(12, let final self::Class #t11 = c in let final core::int #t12 = self::read(12) in #t11.{self::Class::field5}{([core::int, core::int]) → core::int}(#t12){([core::int, core::int]) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t13 = c in let final core::int #t14 = self::read(12) in let final core::int #t15 = self::read(23) in #t13.{self::Class::field5}{([core::int, core::int]) → core::int}(#t14, #t15){([core::int, core::int]) → core::int});
+  self::expect(12, let final self::Class #t16 = c in let final core::int #t17 = self::read(12) in #t16.{self::Class::field6}{(core::int, {b: core::int}) → core::int}(#t17){(core::int, {b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t18 = c in let final core::int #t19 = self::read(12) in let final core::int #t20 = self::read(23) in #t18.{self::Class::field6}{(core::int, {b: core::int}) → core::int}(#t19, b: #t20){(core::int, {b: core::int}) → core::int});
+  self::expect(0, c.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(){({a: core::int, b: core::int}) → core::int});
+  self::expect(12, let final self::Class #t21 = c in let final core::int #t22 = self::read(12) in #t21.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(a: #t22){({a: core::int, b: core::int}) → core::int});
+  self::expect(23.{core::int::unary-}(){() → core::int}, let final self::Class #t23 = c in let final core::int #t24 = self::read(23) in #t23.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(b: #t24){({a: core::int, b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t25 = c in let final core::int #t26 = self::read(12) in let final core::int #t27 = self::read(23) in #t25.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(a: #t26, b: #t27){({a: core::int, b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t28 = c in let final core::int #t29 = self::read(23) in let final core::int #t30 = self::read(12) in #t28.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(b: #t29, a: #t30){({a: core::int, b: core::int}) → core::int});
 }
-static method callGetter(self::Class* c) → dynamic {
-  self::expect(0, c.{self::Class::getter1a}{core::Function*}());
-  self::expect(0, c.{self::Class::getter1b}{() →* core::int*}(){() →* core::int*});
-  self::expect(42.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t31 = c in let final core::int* #t32 = self::read(42) in #t31.{self::Class::getter2}{(core::int*) →* core::int*}(#t32){(core::int*) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t33 = c in let final core::int* #t34 = self::read(12) in let final core::int* #t35 = self::read(23) in #t33.{self::Class::getter3}{(core::int*, core::int*) →* core::int*}(#t34, #t35){(core::int*, core::int*) →* core::int*});
-  self::expect(12, let final self::Class* #t36 = c in let final core::int* #t37 = self::read(12) in #t36.{self::Class::getter4}{(core::int*, [core::int*]) →* core::int*}(#t37){(core::int*, [core::int*]) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t38 = c in let final core::int* #t39 = self::read(12) in let final core::int* #t40 = self::read(23) in #t38.{self::Class::getter4}{(core::int*, [core::int*]) →* core::int*}(#t39, #t40){(core::int*, [core::int*]) →* core::int*});
-  self::expect(0, c.{self::Class::getter5}{([core::int*, core::int*]) →* core::int*}(){([core::int*, core::int*]) →* core::int*});
-  self::expect(12, let final self::Class* #t41 = c in let final core::int* #t42 = self::read(12) in #t41.{self::Class::getter5}{([core::int*, core::int*]) →* core::int*}(#t42){([core::int*, core::int*]) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t43 = c in let final core::int* #t44 = self::read(12) in let final core::int* #t45 = self::read(23) in #t43.{self::Class::getter5}{([core::int*, core::int*]) →* core::int*}(#t44, #t45){([core::int*, core::int*]) →* core::int*});
-  self::expect(12, let final self::Class* #t46 = c in let final core::int* #t47 = self::read(12) in #t46.{self::Class::getter6}{(core::int*, {b: core::int*}) →* core::int*}(#t47){(core::int*, {b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t48 = c in let final core::int* #t49 = self::read(12) in let final core::int* #t50 = self::read(23) in #t48.{self::Class::getter6}{(core::int*, {b: core::int*}) →* core::int*}(#t49, b: #t50){(core::int*, {b: core::int*}) →* core::int*});
-  self::expect(0, c.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(12, let final self::Class* #t51 = c in let final core::int* #t52 = self::read(12) in #t51.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(a: #t52){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(23.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t53 = c in let final core::int* #t54 = self::read(23) in #t53.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(b: #t54){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t55 = c in let final core::int* #t56 = self::read(12) in let final core::int* #t57 = self::read(23) in #t55.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(a: #t56, b: #t57){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t58 = c in let final core::int* #t59 = self::read(23) in let final core::int* #t60 = self::read(12) in #t58.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(b: #t59, a: #t60){({a: core::int*, b: core::int*}) →* core::int*});
+static method callGetter(self::Class c) → dynamic {
+  self::expect(0, c.{self::Class::getter1a}{core::Function}());
+  self::expect(0, c.{self::Class::getter1b}{() → core::int}(){() → core::int});
+  self::expect(42.{core::int::unary-}(){() → core::int}, let final self::Class #t31 = c in let final core::int #t32 = self::read(42) in #t31.{self::Class::getter2}{(core::int) → core::int}(#t32){(core::int) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t33 = c in let final core::int #t34 = self::read(12) in let final core::int #t35 = self::read(23) in #t33.{self::Class::getter3}{(core::int, core::int) → core::int}(#t34, #t35){(core::int, core::int) → core::int});
+  self::expect(12, let final self::Class #t36 = c in let final core::int #t37 = self::read(12) in #t36.{self::Class::getter4}{(core::int, [core::int]) → core::int}(#t37){(core::int, [core::int]) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t38 = c in let final core::int #t39 = self::read(12) in let final core::int #t40 = self::read(23) in #t38.{self::Class::getter4}{(core::int, [core::int]) → core::int}(#t39, #t40){(core::int, [core::int]) → core::int});
+  self::expect(0, c.{self::Class::getter5}{([core::int, core::int]) → core::int}(){([core::int, core::int]) → core::int});
+  self::expect(12, let final self::Class #t41 = c in let final core::int #t42 = self::read(12) in #t41.{self::Class::getter5}{([core::int, core::int]) → core::int}(#t42){([core::int, core::int]) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t43 = c in let final core::int #t44 = self::read(12) in let final core::int #t45 = self::read(23) in #t43.{self::Class::getter5}{([core::int, core::int]) → core::int}(#t44, #t45){([core::int, core::int]) → core::int});
+  self::expect(12, let final self::Class #t46 = c in let final core::int #t47 = self::read(12) in #t46.{self::Class::getter6}{(core::int, {b: core::int}) → core::int}(#t47){(core::int, {b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t48 = c in let final core::int #t49 = self::read(12) in let final core::int #t50 = self::read(23) in #t48.{self::Class::getter6}{(core::int, {b: core::int}) → core::int}(#t49, b: #t50){(core::int, {b: core::int}) → core::int});
+  self::expect(0, c.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(){({a: core::int, b: core::int}) → core::int});
+  self::expect(12, let final self::Class #t51 = c in let final core::int #t52 = self::read(12) in #t51.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(a: #t52){({a: core::int, b: core::int}) → core::int});
+  self::expect(23.{core::int::unary-}(){() → core::int}, let final self::Class #t53 = c in let final core::int #t54 = self::read(23) in #t53.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(b: #t54){({a: core::int, b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t55 = c in let final core::int #t56 = self::read(12) in let final core::int #t57 = self::read(23) in #t55.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(a: #t56, b: #t57){({a: core::int, b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t58 = c in let final core::int #t59 = self::read(23) in let final core::int #t60 = self::read(12) in #t58.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(b: #t59, a: #t60){({a: core::int, b: core::int}) → core::int});
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
   self::enableRead = true;
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual))
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
     throw "Expected ${expected}, ${actual}";
 }
 
diff --git a/pkg/front_end/testcases/general/getter_call.dart.weak.modular.expect b/pkg/front_end/testcases/general/getter_call.dart.weak.modular.expect
index bcf489c..89099d1 100644
--- a/pkg/front_end/testcases/general/getter_call.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/getter_call.dart.weak.modular.expect
@@ -1,177 +1,167 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  field core::Function* field1a = #C1;
-  field () →* core::int* field1b = #C1;
-  field (core::int*) →* core::int* field2 = #C2;
-  field (core::int*, core::int*) →* core::int* field3 = #C3;
-  field (core::int*, [core::int*]) →* core::int* field4 = #C4;
-  field ([core::int*, core::int*]) →* core::int* field5 = #C5;
-  field (core::int*, {b: core::int*}) →* core::int* field6 = #C6;
-  field ({a: core::int*, b: core::int*}) →* core::int* field7 = #C7;
-  synthetic constructor •() → self::Class*
+  field core::Function field1a = #C1;
+  field () → core::int field1b = #C1;
+  field (core::int) → core::int field2 = #C2;
+  field (core::int, core::int) → core::int field3 = #C3;
+  field (core::int, [core::int]) → core::int field4 = #C4;
+  field ([core::int, core::int]) → core::int field5 = #C5;
+  field (core::int, {b: core::int}) → core::int field6 = #C6;
+  field ({a: core::int, b: core::int}) → core::int field7 = #C7;
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  get getter1a() → core::Function*
+  get getter1a() → core::Function
     return #C1;
-  get getter1b() → () →* core::int*
+  get getter1b() → () → core::int
     return #C1;
-  get getter2() → (core::int*) →* core::int*
+  get getter2() → (core::int) → core::int
     return #C2;
-  get getter3() → (core::int*, core::int*) →* core::int*
+  get getter3() → (core::int, core::int) → core::int
     return #C3;
-  get getter4() → (core::int*, [core::int*]) →* core::int*
+  get getter4() → (core::int, [core::int]) → core::int
     return #C4;
-  get getter5() → ([core::int*, core::int*]) →* core::int*
+  get getter5() → ([core::int, core::int]) → core::int
     return #C5;
-  get getter6() → (core::int*, {b: core::int*}) →* core::int*
+  get getter6() → (core::int, {b: core::int}) → core::int
     return #C6;
-  get getter7() → ({a: core::int*, b: core::int*}) →* core::int*
+  get getter7() → ({a: core::int, b: core::int}) → core::int
     return #C7;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Subclass extends self::Class {
-  synthetic constructor •() → self::Subclass*
+  synthetic constructor •() → self::Subclass
     : super self::Class::•()
     ;
-  get field1a() → core::Function* {
+  get field1a() → core::Function {
     self::enableRead = false;
     return #C1;
   }
-  get field1b() → () →* core::int* {
+  get field1b() → () → core::int {
     self::enableRead = false;
     return #C1;
   }
-  get field2() → (core::int*) →* core::int* {
+  get field2() → (core::int) → core::int {
     self::enableRead = false;
     return #C2;
   }
-  get field3() → (core::int*, core::int*) →* core::int* {
+  get field3() → (core::int, core::int) → core::int {
     self::enableRead = false;
     return #C3;
   }
-  get field4() → (core::int*, [core::int*]) →* core::int* {
+  get field4() → (core::int, [core::int]) → core::int {
     self::enableRead = false;
     return #C4;
   }
-  get field5() → ([core::int*, core::int*]) →* core::int* {
+  get field5() → ([core::int, core::int]) → core::int {
     self::enableRead = false;
     return #C5;
   }
-  get field6() → (core::int*, {b: core::int*}) →* core::int* {
+  get field6() → (core::int, {b: core::int}) → core::int {
     self::enableRead = false;
     return #C6;
   }
-  get field7() → ({a: core::int*, b: core::int*}) →* core::int* {
+  get field7() → ({a: core::int, b: core::int}) → core::int {
     self::enableRead = false;
     return #C7;
   }
-  get getter1a() → core::Function* {
+  get getter1a() → core::Function {
     self::enableRead = false;
     return #C1;
   }
-  get getter1b() → () →* core::int* {
+  get getter1b() → () → core::int {
     self::enableRead = false;
     return #C1;
   }
-  get getter2() → (core::int*) →* core::int* {
+  get getter2() → (core::int) → core::int {
     self::enableRead = false;
     return #C2;
   }
-  get getter3() → (core::int*, core::int*) →* core::int* {
+  get getter3() → (core::int, core::int) → core::int {
     self::enableRead = false;
     return #C3;
   }
-  get getter4() → (core::int*, [core::int*]) →* core::int* {
+  get getter4() → (core::int, [core::int]) → core::int {
     self::enableRead = false;
     return #C4;
   }
-  get getter5() → ([core::int*, core::int*]) →* core::int* {
+  get getter5() → ([core::int, core::int]) → core::int {
     self::enableRead = false;
     return #C5;
   }
-  get getter6() → (core::int*, {b: core::int*}) →* core::int* {
+  get getter6() → (core::int, {b: core::int}) → core::int {
     self::enableRead = false;
     return #C6;
   }
-  get getter7() → ({a: core::int*, b: core::int*}) →* core::int* {
+  get getter7() → ({a: core::int, b: core::int}) → core::int {
     self::enableRead = false;
     return #C7;
   }
 }
-static field core::bool* enableRead = true;
-static method read(core::int* value) → core::int*
-  return self::enableRead ?{core::int*} value : 1.{core::int::unary-}(){() →* core::int*};
-static method method1() → core::int*
+static field core::bool enableRead = true;
+static method read(core::int value) → core::int
+  return self::enableRead ?{core::int} value : 1.{core::int::unary-}(){() → core::int};
+static method method1() → core::int
   return 0;
-static method method2(core::int* a) → core::int*
-  return a.{core::int::unary-}(){() →* core::int*};
-static method method3(core::int* a, core::int* b) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
-static method method4(core::int* a, [core::int* b = #C8]) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
-static method method5([core::int* a = #C8, core::int* b = #C8]) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
-static method method6(core::int* a, {core::int* b = #C8}) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
-static method method7({core::int* a = #C8, core::int* b = #C8}) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
+static method method2(core::int a) → core::int
+  return a.{core::int::unary-}(){() → core::int};
+static method method3(core::int a, core::int b) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
+static method method4(core::int a, [core::int b = #C8]) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
+static method method5([core::int a = #C8, core::int b = #C8]) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
+static method method6(core::int a, {core::int b = #C8}) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
+static method method7({core::int a = #C8, core::int b = #C8}) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
 static method main() → dynamic {
   self::callField(new self::Class::•());
   self::callGetter(new self::Class::•());
   self::callField(new self::Subclass::•());
   self::callGetter(new self::Subclass::•());
 }
-static method callField(self::Class* c) → dynamic {
-  self::expect(0, c.{self::Class::field1a}{core::Function*}());
-  self::expect(0, c.{self::Class::field1b}{() →* core::int*}(){() →* core::int*});
-  self::expect(42.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t1 = c in let final core::int* #t2 = self::read(42) in #t1.{self::Class::field2}{(core::int*) →* core::int*}(#t2){(core::int*) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t3 = c in let final core::int* #t4 = self::read(12) in let final core::int* #t5 = self::read(23) in #t3.{self::Class::field3}{(core::int*, core::int*) →* core::int*}(#t4, #t5){(core::int*, core::int*) →* core::int*});
-  self::expect(12, let final self::Class* #t6 = c in let final core::int* #t7 = self::read(12) in #t6.{self::Class::field4}{(core::int*, [core::int*]) →* core::int*}(#t7){(core::int*, [core::int*]) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t8 = c in let final core::int* #t9 = self::read(12) in let final core::int* #t10 = self::read(23) in #t8.{self::Class::field4}{(core::int*, [core::int*]) →* core::int*}(#t9, #t10){(core::int*, [core::int*]) →* core::int*});
-  self::expect(0, c.{self::Class::field5}{([core::int*, core::int*]) →* core::int*}(){([core::int*, core::int*]) →* core::int*});
-  self::expect(12, let final self::Class* #t11 = c in let final core::int* #t12 = self::read(12) in #t11.{self::Class::field5}{([core::int*, core::int*]) →* core::int*}(#t12){([core::int*, core::int*]) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t13 = c in let final core::int* #t14 = self::read(12) in let final core::int* #t15 = self::read(23) in #t13.{self::Class::field5}{([core::int*, core::int*]) →* core::int*}(#t14, #t15){([core::int*, core::int*]) →* core::int*});
-  self::expect(12, let final self::Class* #t16 = c in let final core::int* #t17 = self::read(12) in #t16.{self::Class::field6}{(core::int*, {b: core::int*}) →* core::int*}(#t17){(core::int*, {b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t18 = c in let final core::int* #t19 = self::read(12) in let final core::int* #t20 = self::read(23) in #t18.{self::Class::field6}{(core::int*, {b: core::int*}) →* core::int*}(#t19, b: #t20){(core::int*, {b: core::int*}) →* core::int*});
-  self::expect(0, c.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(12, let final self::Class* #t21 = c in let final core::int* #t22 = self::read(12) in #t21.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(a: #t22){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(23.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t23 = c in let final core::int* #t24 = self::read(23) in #t23.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(b: #t24){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t25 = c in let final core::int* #t26 = self::read(12) in let final core::int* #t27 = self::read(23) in #t25.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(a: #t26, b: #t27){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t28 = c in let final core::int* #t29 = self::read(23) in let final core::int* #t30 = self::read(12) in #t28.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(b: #t29, a: #t30){({a: core::int*, b: core::int*}) →* core::int*});
+static method callField(self::Class c) → dynamic {
+  self::expect(0, c.{self::Class::field1a}{core::Function}());
+  self::expect(0, c.{self::Class::field1b}{() → core::int}(){() → core::int});
+  self::expect(42.{core::int::unary-}(){() → core::int}, let final self::Class #t1 = c in let final core::int #t2 = self::read(42) in #t1.{self::Class::field2}{(core::int) → core::int}(#t2){(core::int) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t3 = c in let final core::int #t4 = self::read(12) in let final core::int #t5 = self::read(23) in #t3.{self::Class::field3}{(core::int, core::int) → core::int}(#t4, #t5){(core::int, core::int) → core::int});
+  self::expect(12, let final self::Class #t6 = c in let final core::int #t7 = self::read(12) in #t6.{self::Class::field4}{(core::int, [core::int]) → core::int}(#t7){(core::int, [core::int]) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t8 = c in let final core::int #t9 = self::read(12) in let final core::int #t10 = self::read(23) in #t8.{self::Class::field4}{(core::int, [core::int]) → core::int}(#t9, #t10){(core::int, [core::int]) → core::int});
+  self::expect(0, c.{self::Class::field5}{([core::int, core::int]) → core::int}(){([core::int, core::int]) → core::int});
+  self::expect(12, let final self::Class #t11 = c in let final core::int #t12 = self::read(12) in #t11.{self::Class::field5}{([core::int, core::int]) → core::int}(#t12){([core::int, core::int]) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t13 = c in let final core::int #t14 = self::read(12) in let final core::int #t15 = self::read(23) in #t13.{self::Class::field5}{([core::int, core::int]) → core::int}(#t14, #t15){([core::int, core::int]) → core::int});
+  self::expect(12, let final self::Class #t16 = c in let final core::int #t17 = self::read(12) in #t16.{self::Class::field6}{(core::int, {b: core::int}) → core::int}(#t17){(core::int, {b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t18 = c in let final core::int #t19 = self::read(12) in let final core::int #t20 = self::read(23) in #t18.{self::Class::field6}{(core::int, {b: core::int}) → core::int}(#t19, b: #t20){(core::int, {b: core::int}) → core::int});
+  self::expect(0, c.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(){({a: core::int, b: core::int}) → core::int});
+  self::expect(12, let final self::Class #t21 = c in let final core::int #t22 = self::read(12) in #t21.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(a: #t22){({a: core::int, b: core::int}) → core::int});
+  self::expect(23.{core::int::unary-}(){() → core::int}, let final self::Class #t23 = c in let final core::int #t24 = self::read(23) in #t23.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(b: #t24){({a: core::int, b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t25 = c in let final core::int #t26 = self::read(12) in let final core::int #t27 = self::read(23) in #t25.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(a: #t26, b: #t27){({a: core::int, b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t28 = c in let final core::int #t29 = self::read(23) in let final core::int #t30 = self::read(12) in #t28.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(b: #t29, a: #t30){({a: core::int, b: core::int}) → core::int});
 }
-static method callGetter(self::Class* c) → dynamic {
-  self::expect(0, c.{self::Class::getter1a}{core::Function*}());
-  self::expect(0, c.{self::Class::getter1b}{() →* core::int*}(){() →* core::int*});
-  self::expect(42.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t31 = c in let final core::int* #t32 = self::read(42) in #t31.{self::Class::getter2}{(core::int*) →* core::int*}(#t32){(core::int*) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t33 = c in let final core::int* #t34 = self::read(12) in let final core::int* #t35 = self::read(23) in #t33.{self::Class::getter3}{(core::int*, core::int*) →* core::int*}(#t34, #t35){(core::int*, core::int*) →* core::int*});
-  self::expect(12, let final self::Class* #t36 = c in let final core::int* #t37 = self::read(12) in #t36.{self::Class::getter4}{(core::int*, [core::int*]) →* core::int*}(#t37){(core::int*, [core::int*]) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t38 = c in let final core::int* #t39 = self::read(12) in let final core::int* #t40 = self::read(23) in #t38.{self::Class::getter4}{(core::int*, [core::int*]) →* core::int*}(#t39, #t40){(core::int*, [core::int*]) →* core::int*});
-  self::expect(0, c.{self::Class::getter5}{([core::int*, core::int*]) →* core::int*}(){([core::int*, core::int*]) →* core::int*});
-  self::expect(12, let final self::Class* #t41 = c in let final core::int* #t42 = self::read(12) in #t41.{self::Class::getter5}{([core::int*, core::int*]) →* core::int*}(#t42){([core::int*, core::int*]) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t43 = c in let final core::int* #t44 = self::read(12) in let final core::int* #t45 = self::read(23) in #t43.{self::Class::getter5}{([core::int*, core::int*]) →* core::int*}(#t44, #t45){([core::int*, core::int*]) →* core::int*});
-  self::expect(12, let final self::Class* #t46 = c in let final core::int* #t47 = self::read(12) in #t46.{self::Class::getter6}{(core::int*, {b: core::int*}) →* core::int*}(#t47){(core::int*, {b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t48 = c in let final core::int* #t49 = self::read(12) in let final core::int* #t50 = self::read(23) in #t48.{self::Class::getter6}{(core::int*, {b: core::int*}) →* core::int*}(#t49, b: #t50){(core::int*, {b: core::int*}) →* core::int*});
-  self::expect(0, c.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(12, let final self::Class* #t51 = c in let final core::int* #t52 = self::read(12) in #t51.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(a: #t52){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(23.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t53 = c in let final core::int* #t54 = self::read(23) in #t53.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(b: #t54){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t55 = c in let final core::int* #t56 = self::read(12) in let final core::int* #t57 = self::read(23) in #t55.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(a: #t56, b: #t57){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t58 = c in let final core::int* #t59 = self::read(23) in let final core::int* #t60 = self::read(12) in #t58.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(b: #t59, a: #t60){({a: core::int*, b: core::int*}) →* core::int*});
+static method callGetter(self::Class c) → dynamic {
+  self::expect(0, c.{self::Class::getter1a}{core::Function}());
+  self::expect(0, c.{self::Class::getter1b}{() → core::int}(){() → core::int});
+  self::expect(42.{core::int::unary-}(){() → core::int}, let final self::Class #t31 = c in let final core::int #t32 = self::read(42) in #t31.{self::Class::getter2}{(core::int) → core::int}(#t32){(core::int) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t33 = c in let final core::int #t34 = self::read(12) in let final core::int #t35 = self::read(23) in #t33.{self::Class::getter3}{(core::int, core::int) → core::int}(#t34, #t35){(core::int, core::int) → core::int});
+  self::expect(12, let final self::Class #t36 = c in let final core::int #t37 = self::read(12) in #t36.{self::Class::getter4}{(core::int, [core::int]) → core::int}(#t37){(core::int, [core::int]) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t38 = c in let final core::int #t39 = self::read(12) in let final core::int #t40 = self::read(23) in #t38.{self::Class::getter4}{(core::int, [core::int]) → core::int}(#t39, #t40){(core::int, [core::int]) → core::int});
+  self::expect(0, c.{self::Class::getter5}{([core::int, core::int]) → core::int}(){([core::int, core::int]) → core::int});
+  self::expect(12, let final self::Class #t41 = c in let final core::int #t42 = self::read(12) in #t41.{self::Class::getter5}{([core::int, core::int]) → core::int}(#t42){([core::int, core::int]) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t43 = c in let final core::int #t44 = self::read(12) in let final core::int #t45 = self::read(23) in #t43.{self::Class::getter5}{([core::int, core::int]) → core::int}(#t44, #t45){([core::int, core::int]) → core::int});
+  self::expect(12, let final self::Class #t46 = c in let final core::int #t47 = self::read(12) in #t46.{self::Class::getter6}{(core::int, {b: core::int}) → core::int}(#t47){(core::int, {b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t48 = c in let final core::int #t49 = self::read(12) in let final core::int #t50 = self::read(23) in #t48.{self::Class::getter6}{(core::int, {b: core::int}) → core::int}(#t49, b: #t50){(core::int, {b: core::int}) → core::int});
+  self::expect(0, c.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(){({a: core::int, b: core::int}) → core::int});
+  self::expect(12, let final self::Class #t51 = c in let final core::int #t52 = self::read(12) in #t51.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(a: #t52){({a: core::int, b: core::int}) → core::int});
+  self::expect(23.{core::int::unary-}(){() → core::int}, let final self::Class #t53 = c in let final core::int #t54 = self::read(23) in #t53.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(b: #t54){({a: core::int, b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t55 = c in let final core::int #t56 = self::read(12) in let final core::int #t57 = self::read(23) in #t55.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(a: #t56, b: #t57){({a: core::int, b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t58 = c in let final core::int #t59 = self::read(23) in let final core::int #t60 = self::read(12) in #t58.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(b: #t59, a: #t60){({a: core::int, b: core::int}) → core::int});
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
   self::enableRead = true;
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual))
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
     throw "Expected ${expected}, ${actual}";
 }
 
diff --git a/pkg/front_end/testcases/general/getter_call.dart.weak.outline.expect b/pkg/front_end/testcases/general/getter_call.dart.weak.outline.expect
index f25cc63..9152257 100644
--- a/pkg/front_end/testcases/general/getter_call.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/getter_call.dart.weak.outline.expect
@@ -1,103 +1,93 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  field core::Function* field1a;
-  field () →* core::int* field1b;
-  field (core::int*) →* core::int* field2;
-  field (core::int*, core::int*) →* core::int* field3;
-  field (core::int*, [core::int*]) →* core::int* field4;
-  field ([core::int*, core::int*]) →* core::int* field5;
-  field (core::int*, {b: core::int*}) →* core::int* field6;
-  field ({a: core::int*, b: core::int*}) →* core::int* field7;
-  synthetic constructor •() → self::Class*
+  field core::Function field1a;
+  field () → core::int field1b;
+  field (core::int) → core::int field2;
+  field (core::int, core::int) → core::int field3;
+  field (core::int, [core::int]) → core::int field4;
+  field ([core::int, core::int]) → core::int field5;
+  field (core::int, {b: core::int}) → core::int field6;
+  field ({a: core::int, b: core::int}) → core::int field7;
+  synthetic constructor •() → self::Class
     ;
-  get getter1a() → core::Function*
+  get getter1a() → core::Function
     ;
-  get getter1b() → () →* core::int*
+  get getter1b() → () → core::int
     ;
-  get getter2() → (core::int*) →* core::int*
+  get getter2() → (core::int) → core::int
     ;
-  get getter3() → (core::int*, core::int*) →* core::int*
+  get getter3() → (core::int, core::int) → core::int
     ;
-  get getter4() → (core::int*, [core::int*]) →* core::int*
+  get getter4() → (core::int, [core::int]) → core::int
     ;
-  get getter5() → ([core::int*, core::int*]) →* core::int*
+  get getter5() → ([core::int, core::int]) → core::int
     ;
-  get getter6() → (core::int*, {b: core::int*}) →* core::int*
+  get getter6() → (core::int, {b: core::int}) → core::int
     ;
-  get getter7() → ({a: core::int*, b: core::int*}) →* core::int*
+  get getter7() → ({a: core::int, b: core::int}) → core::int
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Subclass extends self::Class {
-  synthetic constructor •() → self::Subclass*
+  synthetic constructor •() → self::Subclass
     ;
-  get field1a() → core::Function*
+  get field1a() → core::Function
     ;
-  get field1b() → () →* core::int*
+  get field1b() → () → core::int
     ;
-  get field2() → (core::int*) →* core::int*
+  get field2() → (core::int) → core::int
     ;
-  get field3() → (core::int*, core::int*) →* core::int*
+  get field3() → (core::int, core::int) → core::int
     ;
-  get field4() → (core::int*, [core::int*]) →* core::int*
+  get field4() → (core::int, [core::int]) → core::int
     ;
-  get field5() → ([core::int*, core::int*]) →* core::int*
+  get field5() → ([core::int, core::int]) → core::int
     ;
-  get field6() → (core::int*, {b: core::int*}) →* core::int*
+  get field6() → (core::int, {b: core::int}) → core::int
     ;
-  get field7() → ({a: core::int*, b: core::int*}) →* core::int*
+  get field7() → ({a: core::int, b: core::int}) → core::int
     ;
-  get getter1a() → core::Function*
+  get getter1a() → core::Function
     ;
-  get getter1b() → () →* core::int*
+  get getter1b() → () → core::int
     ;
-  get getter2() → (core::int*) →* core::int*
+  get getter2() → (core::int) → core::int
     ;
-  get getter3() → (core::int*, core::int*) →* core::int*
+  get getter3() → (core::int, core::int) → core::int
     ;
-  get getter4() → (core::int*, [core::int*]) →* core::int*
+  get getter4() → (core::int, [core::int]) → core::int
     ;
-  get getter5() → ([core::int*, core::int*]) →* core::int*
+  get getter5() → ([core::int, core::int]) → core::int
     ;
-  get getter6() → (core::int*, {b: core::int*}) →* core::int*
+  get getter6() → (core::int, {b: core::int}) → core::int
     ;
-  get getter7() → ({a: core::int*, b: core::int*}) →* core::int*
+  get getter7() → ({a: core::int, b: core::int}) → core::int
     ;
 }
-static field core::bool* enableRead;
-static method read(core::int* value) → core::int*
+static field core::bool enableRead;
+static method read(core::int value) → core::int
   ;
-static method method1() → core::int*
+static method method1() → core::int
   ;
-static method method2(core::int* a) → core::int*
+static method method2(core::int a) → core::int
   ;
-static method method3(core::int* a, core::int* b) → core::int*
+static method method3(core::int a, core::int b) → core::int
   ;
-static method method4(core::int* a, [core::int* b]) → core::int*
+static method method4(core::int a, [core::int b]) → core::int
   ;
-static method method5([core::int* a, core::int* b]) → core::int*
+static method method5([core::int a, core::int b]) → core::int
   ;
-static method method6(core::int* a, {core::int* b}) → core::int*
+static method method6(core::int a, {core::int b}) → core::int
   ;
-static method method7({core::int* a, core::int* b}) → core::int*
+static method method7({core::int a, core::int b}) → core::int
   ;
 static method main() → dynamic
   ;
-static method callField(self::Class* c) → dynamic
+static method callField(self::Class c) → dynamic
   ;
-static method callGetter(self::Class* c) → dynamic
+static method callGetter(self::Class c) → dynamic
   ;
 static method expect(dynamic expected, dynamic actual) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/getter_call.dart.weak.transformed.expect b/pkg/front_end/testcases/general/getter_call.dart.weak.transformed.expect
index 1ff1cbc..5739678 100644
--- a/pkg/front_end/testcases/general/getter_call.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/getter_call.dart.weak.transformed.expect
@@ -1,177 +1,167 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  field core::Function* field1a = #C1;
-  field () →* core::int* field1b = #C1;
-  field (core::int*) →* core::int* field2 = #C2;
-  field (core::int*, core::int*) →* core::int* field3 = #C3;
-  field (core::int*, [core::int*]) →* core::int* field4 = #C4;
-  field ([core::int*, core::int*]) →* core::int* field5 = #C5;
-  field (core::int*, {b: core::int*}) →* core::int* field6 = #C6;
-  field ({a: core::int*, b: core::int*}) →* core::int* field7 = #C7;
-  synthetic constructor •() → self::Class*
+  field core::Function field1a = #C1;
+  field () → core::int field1b = #C1;
+  field (core::int) → core::int field2 = #C2;
+  field (core::int, core::int) → core::int field3 = #C3;
+  field (core::int, [core::int]) → core::int field4 = #C4;
+  field ([core::int, core::int]) → core::int field5 = #C5;
+  field (core::int, {b: core::int}) → core::int field6 = #C6;
+  field ({a: core::int, b: core::int}) → core::int field7 = #C7;
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  get getter1a() → core::Function*
+  get getter1a() → core::Function
     return #C1;
-  get getter1b() → () →* core::int*
+  get getter1b() → () → core::int
     return #C1;
-  get getter2() → (core::int*) →* core::int*
+  get getter2() → (core::int) → core::int
     return #C2;
-  get getter3() → (core::int*, core::int*) →* core::int*
+  get getter3() → (core::int, core::int) → core::int
     return #C3;
-  get getter4() → (core::int*, [core::int*]) →* core::int*
+  get getter4() → (core::int, [core::int]) → core::int
     return #C4;
-  get getter5() → ([core::int*, core::int*]) →* core::int*
+  get getter5() → ([core::int, core::int]) → core::int
     return #C5;
-  get getter6() → (core::int*, {b: core::int*}) →* core::int*
+  get getter6() → (core::int, {b: core::int}) → core::int
     return #C6;
-  get getter7() → ({a: core::int*, b: core::int*}) →* core::int*
+  get getter7() → ({a: core::int, b: core::int}) → core::int
     return #C7;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Subclass extends self::Class {
-  synthetic constructor •() → self::Subclass*
+  synthetic constructor •() → self::Subclass
     : super self::Class::•()
     ;
-  get field1a() → core::Function* {
+  get field1a() → core::Function {
     self::enableRead = false;
     return #C1;
   }
-  get field1b() → () →* core::int* {
+  get field1b() → () → core::int {
     self::enableRead = false;
     return #C1;
   }
-  get field2() → (core::int*) →* core::int* {
+  get field2() → (core::int) → core::int {
     self::enableRead = false;
     return #C2;
   }
-  get field3() → (core::int*, core::int*) →* core::int* {
+  get field3() → (core::int, core::int) → core::int {
     self::enableRead = false;
     return #C3;
   }
-  get field4() → (core::int*, [core::int*]) →* core::int* {
+  get field4() → (core::int, [core::int]) → core::int {
     self::enableRead = false;
     return #C4;
   }
-  get field5() → ([core::int*, core::int*]) →* core::int* {
+  get field5() → ([core::int, core::int]) → core::int {
     self::enableRead = false;
     return #C5;
   }
-  get field6() → (core::int*, {b: core::int*}) →* core::int* {
+  get field6() → (core::int, {b: core::int}) → core::int {
     self::enableRead = false;
     return #C6;
   }
-  get field7() → ({a: core::int*, b: core::int*}) →* core::int* {
+  get field7() → ({a: core::int, b: core::int}) → core::int {
     self::enableRead = false;
     return #C7;
   }
-  get getter1a() → core::Function* {
+  get getter1a() → core::Function {
     self::enableRead = false;
     return #C1;
   }
-  get getter1b() → () →* core::int* {
+  get getter1b() → () → core::int {
     self::enableRead = false;
     return #C1;
   }
-  get getter2() → (core::int*) →* core::int* {
+  get getter2() → (core::int) → core::int {
     self::enableRead = false;
     return #C2;
   }
-  get getter3() → (core::int*, core::int*) →* core::int* {
+  get getter3() → (core::int, core::int) → core::int {
     self::enableRead = false;
     return #C3;
   }
-  get getter4() → (core::int*, [core::int*]) →* core::int* {
+  get getter4() → (core::int, [core::int]) → core::int {
     self::enableRead = false;
     return #C4;
   }
-  get getter5() → ([core::int*, core::int*]) →* core::int* {
+  get getter5() → ([core::int, core::int]) → core::int {
     self::enableRead = false;
     return #C5;
   }
-  get getter6() → (core::int*, {b: core::int*}) →* core::int* {
+  get getter6() → (core::int, {b: core::int}) → core::int {
     self::enableRead = false;
     return #C6;
   }
-  get getter7() → ({a: core::int*, b: core::int*}) →* core::int* {
+  get getter7() → ({a: core::int, b: core::int}) → core::int {
     self::enableRead = false;
     return #C7;
   }
 }
-static field core::bool* enableRead = true;
-static method read(core::int* value) → core::int*
-  return self::enableRead ?{core::int*} value : 1.{core::int::unary-}(){() →* core::int*};
-static method method1() → core::int*
+static field core::bool enableRead = true;
+static method read(core::int value) → core::int
+  return self::enableRead ?{core::int} value : 1.{core::int::unary-}(){() → core::int};
+static method method1() → core::int
   return 0;
-static method method2(core::int* a) → core::int*
-  return a.{core::int::unary-}(){() →* core::int*};
-static method method3(core::int* a, core::int* b) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
-static method method4(core::int* a, [core::int* b = #C8]) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
-static method method5([core::int* a = #C8, core::int* b = #C8]) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
-static method method6(core::int* a, {core::int* b = #C8}) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
-static method method7({core::int* a = #C8, core::int* b = #C8}) → core::int*
-  return a.{core::num::-}(b){(core::num*) →* core::int*};
+static method method2(core::int a) → core::int
+  return a.{core::int::unary-}(){() → core::int};
+static method method3(core::int a, core::int b) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
+static method method4(core::int a, [core::int b = #C8]) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
+static method method5([core::int a = #C8, core::int b = #C8]) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
+static method method6(core::int a, {core::int b = #C8}) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
+static method method7({core::int a = #C8, core::int b = #C8}) → core::int
+  return a.{core::num::-}(b){(core::num) → core::int};
 static method main() → dynamic {
   self::callField(new self::Class::•());
   self::callGetter(new self::Class::•());
   self::callField(new self::Subclass::•());
   self::callGetter(new self::Subclass::•());
 }
-static method callField(self::Class* c) → dynamic {
-  self::expect(0, c.{self::Class::field1a}{core::Function*}());
-  self::expect(0, c.{self::Class::field1b}{() →* core::int*}(){() →* core::int*});
-  self::expect(42.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t1 = c in let final core::int* #t2 = self::read(42) in #t1.{self::Class::field2}{(core::int*) →* core::int*}(#t2){(core::int*) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t3 = c in let final core::int* #t4 = self::read(12) in let final core::int* #t5 = self::read(23) in #t3.{self::Class::field3}{(core::int*, core::int*) →* core::int*}(#t4, #t5){(core::int*, core::int*) →* core::int*});
-  self::expect(12, let final self::Class* #t6 = c in let final core::int* #t7 = self::read(12) in #t6.{self::Class::field4}{(core::int*, [core::int*]) →* core::int*}(#t7){(core::int*, [core::int*]) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t8 = c in let final core::int* #t9 = self::read(12) in let final core::int* #t10 = self::read(23) in #t8.{self::Class::field4}{(core::int*, [core::int*]) →* core::int*}(#t9, #t10){(core::int*, [core::int*]) →* core::int*});
-  self::expect(0, c.{self::Class::field5}{([core::int*, core::int*]) →* core::int*}(){([core::int*, core::int*]) →* core::int*});
-  self::expect(12, let final self::Class* #t11 = c in let final core::int* #t12 = self::read(12) in #t11.{self::Class::field5}{([core::int*, core::int*]) →* core::int*}(#t12){([core::int*, core::int*]) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t13 = c in let final core::int* #t14 = self::read(12) in let final core::int* #t15 = self::read(23) in #t13.{self::Class::field5}{([core::int*, core::int*]) →* core::int*}(#t14, #t15){([core::int*, core::int*]) →* core::int*});
-  self::expect(12, let final self::Class* #t16 = c in let final core::int* #t17 = self::read(12) in #t16.{self::Class::field6}{(core::int*, {b: core::int*}) →* core::int*}(#t17){(core::int*, {b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t18 = c in let final core::int* #t19 = self::read(12) in let final core::int* #t20 = self::read(23) in #t18.{self::Class::field6}{(core::int*, {b: core::int*}) →* core::int*}(#t19, b: #t20){(core::int*, {b: core::int*}) →* core::int*});
-  self::expect(0, c.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(12, let final self::Class* #t21 = c in let final core::int* #t22 = self::read(12) in #t21.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(a: #t22){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(23.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t23 = c in let final core::int* #t24 = self::read(23) in #t23.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(b: #t24){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t25 = c in let final core::int* #t26 = self::read(12) in let final core::int* #t27 = self::read(23) in #t25.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(a: #t26, b: #t27){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t28 = c in let final core::int* #t29 = self::read(23) in let final core::int* #t30 = self::read(12) in #t28.{self::Class::field7}{({a: core::int*, b: core::int*}) →* core::int*}(b: #t29, a: #t30){({a: core::int*, b: core::int*}) →* core::int*});
+static method callField(self::Class c) → dynamic {
+  self::expect(0, c.{self::Class::field1a}{core::Function}());
+  self::expect(0, c.{self::Class::field1b}{() → core::int}(){() → core::int});
+  self::expect(42.{core::int::unary-}(){() → core::int}, let final self::Class #t1 = c in let final core::int #t2 = self::read(42) in #t1.{self::Class::field2}{(core::int) → core::int}(#t2){(core::int) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t3 = c in let final core::int #t4 = self::read(12) in let final core::int #t5 = self::read(23) in #t3.{self::Class::field3}{(core::int, core::int) → core::int}(#t4, #t5){(core::int, core::int) → core::int});
+  self::expect(12, let final self::Class #t6 = c in let final core::int #t7 = self::read(12) in #t6.{self::Class::field4}{(core::int, [core::int]) → core::int}(#t7){(core::int, [core::int]) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t8 = c in let final core::int #t9 = self::read(12) in let final core::int #t10 = self::read(23) in #t8.{self::Class::field4}{(core::int, [core::int]) → core::int}(#t9, #t10){(core::int, [core::int]) → core::int});
+  self::expect(0, c.{self::Class::field5}{([core::int, core::int]) → core::int}(){([core::int, core::int]) → core::int});
+  self::expect(12, let final self::Class #t11 = c in let final core::int #t12 = self::read(12) in #t11.{self::Class::field5}{([core::int, core::int]) → core::int}(#t12){([core::int, core::int]) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t13 = c in let final core::int #t14 = self::read(12) in let final core::int #t15 = self::read(23) in #t13.{self::Class::field5}{([core::int, core::int]) → core::int}(#t14, #t15){([core::int, core::int]) → core::int});
+  self::expect(12, let final self::Class #t16 = c in let final core::int #t17 = self::read(12) in #t16.{self::Class::field6}{(core::int, {b: core::int}) → core::int}(#t17){(core::int, {b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t18 = c in let final core::int #t19 = self::read(12) in let final core::int #t20 = self::read(23) in #t18.{self::Class::field6}{(core::int, {b: core::int}) → core::int}(#t19, b: #t20){(core::int, {b: core::int}) → core::int});
+  self::expect(0, c.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(){({a: core::int, b: core::int}) → core::int});
+  self::expect(12, let final self::Class #t21 = c in let final core::int #t22 = self::read(12) in #t21.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(a: #t22){({a: core::int, b: core::int}) → core::int});
+  self::expect(23.{core::int::unary-}(){() → core::int}, let final self::Class #t23 = c in let final core::int #t24 = self::read(23) in #t23.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(b: #t24){({a: core::int, b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t25 = c in let final core::int #t26 = self::read(12) in let final core::int #t27 = self::read(23) in #t25.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(a: #t26, b: #t27){({a: core::int, b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t28 = c in let final core::int #t29 = self::read(23) in let final core::int #t30 = self::read(12) in #t28.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(b: #t29, a: #t30){({a: core::int, b: core::int}) → core::int});
 }
-static method callGetter(self::Class* c) → dynamic {
-  self::expect(0, c.{self::Class::getter1a}{core::Function*}());
-  self::expect(0, c.{self::Class::getter1b}{() →* core::int*}(){() →* core::int*});
-  self::expect(42.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t31 = c in let final core::int* #t32 = self::read(42) in #t31.{self::Class::getter2}{(core::int*) →* core::int*}(#t32){(core::int*) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t33 = c in let final core::int* #t34 = self::read(12) in let final core::int* #t35 = self::read(23) in #t33.{self::Class::getter3}{(core::int*, core::int*) →* core::int*}(#t34, #t35){(core::int*, core::int*) →* core::int*});
-  self::expect(12, let final self::Class* #t36 = c in let final core::int* #t37 = self::read(12) in #t36.{self::Class::getter4}{(core::int*, [core::int*]) →* core::int*}(#t37){(core::int*, [core::int*]) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t38 = c in let final core::int* #t39 = self::read(12) in let final core::int* #t40 = self::read(23) in #t38.{self::Class::getter4}{(core::int*, [core::int*]) →* core::int*}(#t39, #t40){(core::int*, [core::int*]) →* core::int*});
-  self::expect(0, c.{self::Class::getter5}{([core::int*, core::int*]) →* core::int*}(){([core::int*, core::int*]) →* core::int*});
-  self::expect(12, let final self::Class* #t41 = c in let final core::int* #t42 = self::read(12) in #t41.{self::Class::getter5}{([core::int*, core::int*]) →* core::int*}(#t42){([core::int*, core::int*]) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t43 = c in let final core::int* #t44 = self::read(12) in let final core::int* #t45 = self::read(23) in #t43.{self::Class::getter5}{([core::int*, core::int*]) →* core::int*}(#t44, #t45){([core::int*, core::int*]) →* core::int*});
-  self::expect(12, let final self::Class* #t46 = c in let final core::int* #t47 = self::read(12) in #t46.{self::Class::getter6}{(core::int*, {b: core::int*}) →* core::int*}(#t47){(core::int*, {b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t48 = c in let final core::int* #t49 = self::read(12) in let final core::int* #t50 = self::read(23) in #t48.{self::Class::getter6}{(core::int*, {b: core::int*}) →* core::int*}(#t49, b: #t50){(core::int*, {b: core::int*}) →* core::int*});
-  self::expect(0, c.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(12, let final self::Class* #t51 = c in let final core::int* #t52 = self::read(12) in #t51.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(a: #t52){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(23.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t53 = c in let final core::int* #t54 = self::read(23) in #t53.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(b: #t54){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t55 = c in let final core::int* #t56 = self::read(12) in let final core::int* #t57 = self::read(23) in #t55.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(a: #t56, b: #t57){({a: core::int*, b: core::int*}) →* core::int*});
-  self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t58 = c in let final core::int* #t59 = self::read(23) in let final core::int* #t60 = self::read(12) in #t58.{self::Class::getter7}{({a: core::int*, b: core::int*}) →* core::int*}(b: #t59, a: #t60){({a: core::int*, b: core::int*}) →* core::int*});
+static method callGetter(self::Class c) → dynamic {
+  self::expect(0, c.{self::Class::getter1a}{core::Function}());
+  self::expect(0, c.{self::Class::getter1b}{() → core::int}(){() → core::int});
+  self::expect(42.{core::int::unary-}(){() → core::int}, let final self::Class #t31 = c in let final core::int #t32 = self::read(42) in #t31.{self::Class::getter2}{(core::int) → core::int}(#t32){(core::int) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t33 = c in let final core::int #t34 = self::read(12) in let final core::int #t35 = self::read(23) in #t33.{self::Class::getter3}{(core::int, core::int) → core::int}(#t34, #t35){(core::int, core::int) → core::int});
+  self::expect(12, let final self::Class #t36 = c in let final core::int #t37 = self::read(12) in #t36.{self::Class::getter4}{(core::int, [core::int]) → core::int}(#t37){(core::int, [core::int]) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t38 = c in let final core::int #t39 = self::read(12) in let final core::int #t40 = self::read(23) in #t38.{self::Class::getter4}{(core::int, [core::int]) → core::int}(#t39, #t40){(core::int, [core::int]) → core::int});
+  self::expect(0, c.{self::Class::getter5}{([core::int, core::int]) → core::int}(){([core::int, core::int]) → core::int});
+  self::expect(12, let final self::Class #t41 = c in let final core::int #t42 = self::read(12) in #t41.{self::Class::getter5}{([core::int, core::int]) → core::int}(#t42){([core::int, core::int]) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t43 = c in let final core::int #t44 = self::read(12) in let final core::int #t45 = self::read(23) in #t43.{self::Class::getter5}{([core::int, core::int]) → core::int}(#t44, #t45){([core::int, core::int]) → core::int});
+  self::expect(12, let final self::Class #t46 = c in let final core::int #t47 = self::read(12) in #t46.{self::Class::getter6}{(core::int, {b: core::int}) → core::int}(#t47){(core::int, {b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t48 = c in let final core::int #t49 = self::read(12) in let final core::int #t50 = self::read(23) in #t48.{self::Class::getter6}{(core::int, {b: core::int}) → core::int}(#t49, b: #t50){(core::int, {b: core::int}) → core::int});
+  self::expect(0, c.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(){({a: core::int, b: core::int}) → core::int});
+  self::expect(12, let final self::Class #t51 = c in let final core::int #t52 = self::read(12) in #t51.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(a: #t52){({a: core::int, b: core::int}) → core::int});
+  self::expect(23.{core::int::unary-}(){() → core::int}, let final self::Class #t53 = c in let final core::int #t54 = self::read(23) in #t53.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(b: #t54){({a: core::int, b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t55 = c in let final core::int #t56 = self::read(12) in let final core::int #t57 = self::read(23) in #t55.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(a: #t56, b: #t57){({a: core::int, b: core::int}) → core::int});
+  self::expect(11.{core::int::unary-}(){() → core::int}, let final self::Class #t58 = c in let final core::int #t59 = self::read(23) in let final core::int #t60 = self::read(12) in #t58.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(b: #t59, a: #t60){({a: core::int, b: core::int}) → core::int});
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
   self::enableRead = true;
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual))
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
     throw "Expected ${expected}, ${actual}";
 }
 
diff --git a/pkg/front_end/testcases/general/getter_vs_setter_type.dart b/pkg/front_end/testcases/general/getter_vs_setter_type.dart
index 42b228d..49c2cf5 100644
--- a/pkg/front_end/testcases/general/getter_vs_setter_type.dart
+++ b/pkg/front_end/testcases/general/getter_vs_setter_type.dart
@@ -1,7 +1,9 @@
 // Copyright (c) 2020, 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.
+
 // @dart=2.9
+
 abstract class A {
   int get property1; // ok
   void set property1(int i);
diff --git a/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.expect b/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.expect
index e38d7f0..49bf798 100644
--- a/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.expect
+++ b/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.expect
@@ -2,162 +2,162 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:15:14: Error: The type 'String' of the getter 'A.property3' is not assignable to the type 'int' of the setter 'A.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:17:14: Error: The type 'String' of the getter 'A.property3' is not assignable to the type 'int' of the setter 'A.property3'.
 //   String get property3; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:16:12: Context: This is the declaration of the setter 'A.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:18:12: Context: This is the declaration of the setter 'A.property3'.
 //   void set property3(int i);
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:33:18: Error: The type 'num' of the getter 'A.property9' is not assignable to the type 'String' of the setter 'A.property9'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:35:18: Error: The type 'num' of the getter 'A.property9' is not assignable to the type 'String' of the setter 'A.property9'.
 //   static num get property9 => 0; // error
 //                  ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:34:19: Context: This is the declaration of the setter 'A.property9'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:36:19: Context: This is the declaration of the setter 'A.property9'.
 //   static void set property9(String value) {}
 //                   ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:56:12: Error: The type 'int' of the inherited getter 'B1.property2' is not assignable to the type 'String' of the setter 'B2.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:58:12: Error: The type 'int' of the inherited getter 'B1.property2' is not assignable to the type 'String' of the setter 'B2.property2'.
 //   void set property2(String i); // error
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:40:11: Context: This is the declaration of the getter 'B1.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:42:11: Context: This is the declaration of the getter 'B1.property2'.
 //   int get property2;
 //           ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:58:12: Error: The type 'String' of the inherited getter 'B1.property3' is not assignable to the type 'int' of the setter 'B2.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:60:12: Error: The type 'String' of the inherited getter 'B1.property3' is not assignable to the type 'int' of the setter 'B2.property3'.
 //   void set property3(int i); // error
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:42:14: Context: This is the declaration of the getter 'B1.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:44:14: Context: This is the declaration of the getter 'B1.property3'.
 //   String get property3;
 //              ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:62:12: Error: The type 'int' of the inherited field 'B1.property5' is not assignable to the type 'String' of the setter 'B2.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:64:12: Error: The type 'int' of the inherited field 'B1.property5' is not assignable to the type 'String' of the setter 'B2.property5'.
 //   void set property5(String i); // error
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:46:13: Context: This is the declaration of the field 'B1.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:48:13: Context: This is the declaration of the field 'B1.property5'.
 //   final int property5;
 //             ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:64:12: Error: The type 'String' of the inherited field 'B1.property6' is not assignable to the type 'int' of the setter 'B2.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:66:12: Error: The type 'String' of the inherited field 'B1.property6' is not assignable to the type 'int' of the setter 'B2.property6'.
 //   void set property6(int i); // error
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:48:16: Context: This is the declaration of the field 'B1.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:50:16: Context: This is the declaration of the field 'B1.property6'.
 //   final String property6;
 //                ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:84:11: Error: The type 'int' of the getter 'C2.property2' is not assignable to the type 'String' of the inherited setter 'C1.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:86:11: Error: The type 'int' of the getter 'C2.property2' is not assignable to the type 'String' of the inherited setter 'C1.property2'.
 //   int get property2; // error
 //           ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:70:12: Context: This is the declaration of the setter 'C1.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:72:12: Context: This is the declaration of the setter 'C1.property2'.
 //   void set property2(String i);
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:86:14: Error: The type 'String' of the getter 'C2.property3' is not assignable to the type 'int' of the inherited setter 'C1.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:88:14: Error: The type 'String' of the getter 'C2.property3' is not assignable to the type 'int' of the inherited setter 'C1.property3'.
 //   String get property3; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:72:12: Context: This is the declaration of the setter 'C1.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:74:12: Context: This is the declaration of the setter 'C1.property3'.
 //   void set property3(int i);
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:92:11: Error: The type 'int' of the getter 'C2.property5' is not assignable to the type 'String' of the inherited setter 'C1.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:94:11: Error: The type 'int' of the getter 'C2.property5' is not assignable to the type 'String' of the inherited setter 'C1.property5'.
 //   int get property5; // error
 //           ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:76:10: Context: This is the declaration of the setter 'C1.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:78:10: Context: This is the declaration of the setter 'C1.property5'.
 //   String property5;
 //          ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:96:14: Error: The type 'String' of the getter 'C2.property6' is not assignable to the type 'int' of the inherited setter 'C1.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:98:14: Error: The type 'String' of the getter 'C2.property6' is not assignable to the type 'int' of the inherited setter 'C1.property6'.
 //   String get property6; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:78:7: Context: This is the declaration of the setter 'C1.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:80:7: Context: This is the declaration of the setter 'C1.property6'.
 //   int property6;
 //       ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:92:11: Error: The return type of the method 'C2.property5' is 'int', which does not match the return type, 'String', of the overridden method, 'C1.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:94:11: Error: The return type of the method 'C2.property5' is 'int', which does not match the return type, 'String', of the overridden method, 'C1.property5'.
 // Change to a subtype of 'String'.
 //   int get property5; // error
 //           ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:76:10: Context: This is the overridden method ('property5').
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:78:10: Context: This is the overridden method ('property5').
 //   String property5;
 //          ^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:96:14: Error: The return type of the method 'C2.property6' is 'String', which does not match the return type, 'int', of the overridden method, 'C1.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:98:14: Error: The return type of the method 'C2.property6' is 'String', which does not match the return type, 'int', of the overridden method, 'C1.property6'.
 // Change to a subtype of 'int'.
 //   String get property6; // error
 //              ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:78:7: Context: This is the overridden method ('property6').
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:80:7: Context: This is the overridden method ('property6').
 //   int property6;
 //       ^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:115:16: Error: The type 'int' of the inherited getter 'D1.property2' is not assignable to the type 'String' of the inherited setter 'D2.property2'.
-// abstract class D3 implements D1, D2 /* error on property2 and property3 */ {}
-//                ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:102:11: Context: This is the declaration of the getter 'D1.property2'.
-//   int get property2;
-//           ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:110:12: Context: This is the declaration of the setter 'D2.property2'.
-//   void set property2(String i);
-//            ^^^^^^^^^
-//
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:115:16: Error: The type 'String' of the inherited getter 'D1.property3' is not assignable to the type 'int' of the inherited setter 'D2.property3'.
-// abstract class D3 implements D1, D2 /* error on property2 and property3 */ {}
-//                ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:104:14: Context: This is the declaration of the getter 'D1.property3'.
-//   String get property3;
-//              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:112:12: Context: This is the declaration of the setter 'D2.property3'.
-//   void set property3(int i);
-//            ^^^^^^^^^
-//
 // pkg/front_end/testcases/general/getter_vs_setter_type.dart:117:16: Error: The type 'int' of the inherited getter 'D1.property2' is not assignable to the type 'String' of the inherited setter 'D2.property2'.
-// abstract class D4
+// abstract class D3 implements D1, D2 /* error on property2 and property3 */ {}
 //                ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:102:11: Context: This is the declaration of the getter 'D1.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:104:11: Context: This is the declaration of the getter 'D1.property2'.
 //   int get property2;
 //           ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:110:12: Context: This is the declaration of the setter 'D2.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:112:12: Context: This is the declaration of the setter 'D2.property2'.
 //   void set property2(String i);
 //            ^^^^^^^^^
 //
 // pkg/front_end/testcases/general/getter_vs_setter_type.dart:117:16: Error: The type 'String' of the inherited getter 'D1.property3' is not assignable to the type 'int' of the inherited setter 'D2.property3'.
-// abstract class D4
+// abstract class D3 implements D1, D2 /* error on property2 and property3 */ {}
 //                ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:104:14: Context: This is the declaration of the getter 'D1.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:106:14: Context: This is the declaration of the getter 'D1.property3'.
 //   String get property3;
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:112:12: Context: This is the declaration of the setter 'D2.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:114:12: Context: This is the declaration of the setter 'D2.property3'.
 //   void set property3(int i);
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:130:14: Error: The type 'String' of the getter 'property3' is not assignable to the type 'int' of the setter 'property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:119:16: Error: The type 'int' of the inherited getter 'D1.property2' is not assignable to the type 'String' of the inherited setter 'D2.property2'.
+// abstract class D4
+//                ^
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:104:11: Context: This is the declaration of the getter 'D1.property2'.
+//   int get property2;
+//           ^^^^^^^^^
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:112:12: Context: This is the declaration of the setter 'D2.property2'.
+//   void set property2(String i);
+//            ^^^^^^^^^
+//
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:119:16: Error: The type 'String' of the inherited getter 'D1.property3' is not assignable to the type 'int' of the inherited setter 'D2.property3'.
+// abstract class D4
+//                ^
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:106:14: Context: This is the declaration of the getter 'D1.property3'.
+//   String get property3;
+//              ^^^^^^^^^
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:114:12: Context: This is the declaration of the setter 'D2.property3'.
+//   void set property3(int i);
+//            ^^^^^^^^^
+//
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:132:14: Error: The type 'String' of the getter 'property3' is not assignable to the type 'int' of the setter 'property3'.
 //   String get property3 => ''; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:131:12: Context: This is the declaration of the setter 'property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:133:12: Context: This is the declaration of the setter 'property3'.
 //   void set property3(int i) {}
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:142:14: Error: The type 'String' of the getter 'property6' is not assignable to the type 'S' of the setter 'property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:144:14: Error: The type 'String' of the getter 'property6' is not assignable to the type 'S' of the setter 'property6'.
 //   String get property6 => ''; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:143:12: Context: This is the declaration of the setter 'property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:145:12: Context: This is the declaration of the setter 'property6'.
 //   void set property6(S i) {}
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:154:18: Error: The type 'num' of the getter 'property9' is not assignable to the type 'String' of the setter 'property9'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:156:18: Error: The type 'num' of the getter 'property9' is not assignable to the type 'String' of the setter 'property9'.
 //   static num get property9 => 0; // error
 //                  ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:155:19: Context: This is the declaration of the setter 'property9'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:157:19: Context: This is the declaration of the setter 'property9'.
 //   static void set property9(String value) {}
 //                   ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:133:22: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:135:22: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
 //   S get property4 => 0; // ok
 //                      ^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:136:23: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:138:23: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
 //   S get property5a => 0; // ok
 //                       ^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:139:23: Error: A value of type 'int' can't be assigned to a variable of type 'T'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:141:23: Error: A value of type 'int' can't be assigned to a variable of type 'T'.
 //   T get property5b => 0; // ok
 //                       ^
 //
@@ -391,17 +391,17 @@
   return "";
 static method Extension|set#property3<T extends core::num*, S extends self::Extension|set#property3::T* = core::num*>(lowered final core::int* #this, core::int* i) → void {}
 static method Extension|get#property4<T extends core::num*, S extends self::Extension|get#property4::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property4::S*
-  return invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:133:22: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
+  return invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:135:22: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
   S get property4 => 0; // ok
                      ^" in 0 as{TypeError} Never;
 static method Extension|set#property4<T extends core::num*, S extends self::Extension|set#property4::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property4::S* i) → void {}
 static method Extension|get#property5a<T extends core::num*, S extends self::Extension|get#property5a::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5a::S*
-  return invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:136:23: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
+  return invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:138:23: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
   S get property5a => 0; // ok
                       ^" in 0 as{TypeError} Never;
 static method Extension|set#property5a<T extends core::num*, S extends self::Extension|set#property5a::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5a::T* i) → void {}
 static method Extension|get#property5b<T extends core::num*, S extends self::Extension|get#property5b::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5b::T*
-  return invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:139:23: Error: A value of type 'int' can't be assigned to a variable of type 'T'.
+  return invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:141:23: Error: A value of type 'int' can't be assigned to a variable of type 'T'.
   T get property5b => 0; // ok
                       ^" in 0 as{TypeError} Never;
 static method Extension|set#property5b<T extends core::num*, S extends self::Extension|set#property5b::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5b::S* i) → void {}
diff --git a/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.modular.expect b/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.modular.expect
index e38d7f0..49bf798 100644
--- a/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.modular.expect
@@ -2,162 +2,162 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:15:14: Error: The type 'String' of the getter 'A.property3' is not assignable to the type 'int' of the setter 'A.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:17:14: Error: The type 'String' of the getter 'A.property3' is not assignable to the type 'int' of the setter 'A.property3'.
 //   String get property3; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:16:12: Context: This is the declaration of the setter 'A.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:18:12: Context: This is the declaration of the setter 'A.property3'.
 //   void set property3(int i);
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:33:18: Error: The type 'num' of the getter 'A.property9' is not assignable to the type 'String' of the setter 'A.property9'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:35:18: Error: The type 'num' of the getter 'A.property9' is not assignable to the type 'String' of the setter 'A.property9'.
 //   static num get property9 => 0; // error
 //                  ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:34:19: Context: This is the declaration of the setter 'A.property9'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:36:19: Context: This is the declaration of the setter 'A.property9'.
 //   static void set property9(String value) {}
 //                   ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:56:12: Error: The type 'int' of the inherited getter 'B1.property2' is not assignable to the type 'String' of the setter 'B2.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:58:12: Error: The type 'int' of the inherited getter 'B1.property2' is not assignable to the type 'String' of the setter 'B2.property2'.
 //   void set property2(String i); // error
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:40:11: Context: This is the declaration of the getter 'B1.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:42:11: Context: This is the declaration of the getter 'B1.property2'.
 //   int get property2;
 //           ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:58:12: Error: The type 'String' of the inherited getter 'B1.property3' is not assignable to the type 'int' of the setter 'B2.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:60:12: Error: The type 'String' of the inherited getter 'B1.property3' is not assignable to the type 'int' of the setter 'B2.property3'.
 //   void set property3(int i); // error
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:42:14: Context: This is the declaration of the getter 'B1.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:44:14: Context: This is the declaration of the getter 'B1.property3'.
 //   String get property3;
 //              ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:62:12: Error: The type 'int' of the inherited field 'B1.property5' is not assignable to the type 'String' of the setter 'B2.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:64:12: Error: The type 'int' of the inherited field 'B1.property5' is not assignable to the type 'String' of the setter 'B2.property5'.
 //   void set property5(String i); // error
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:46:13: Context: This is the declaration of the field 'B1.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:48:13: Context: This is the declaration of the field 'B1.property5'.
 //   final int property5;
 //             ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:64:12: Error: The type 'String' of the inherited field 'B1.property6' is not assignable to the type 'int' of the setter 'B2.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:66:12: Error: The type 'String' of the inherited field 'B1.property6' is not assignable to the type 'int' of the setter 'B2.property6'.
 //   void set property6(int i); // error
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:48:16: Context: This is the declaration of the field 'B1.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:50:16: Context: This is the declaration of the field 'B1.property6'.
 //   final String property6;
 //                ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:84:11: Error: The type 'int' of the getter 'C2.property2' is not assignable to the type 'String' of the inherited setter 'C1.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:86:11: Error: The type 'int' of the getter 'C2.property2' is not assignable to the type 'String' of the inherited setter 'C1.property2'.
 //   int get property2; // error
 //           ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:70:12: Context: This is the declaration of the setter 'C1.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:72:12: Context: This is the declaration of the setter 'C1.property2'.
 //   void set property2(String i);
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:86:14: Error: The type 'String' of the getter 'C2.property3' is not assignable to the type 'int' of the inherited setter 'C1.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:88:14: Error: The type 'String' of the getter 'C2.property3' is not assignable to the type 'int' of the inherited setter 'C1.property3'.
 //   String get property3; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:72:12: Context: This is the declaration of the setter 'C1.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:74:12: Context: This is the declaration of the setter 'C1.property3'.
 //   void set property3(int i);
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:92:11: Error: The type 'int' of the getter 'C2.property5' is not assignable to the type 'String' of the inherited setter 'C1.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:94:11: Error: The type 'int' of the getter 'C2.property5' is not assignable to the type 'String' of the inherited setter 'C1.property5'.
 //   int get property5; // error
 //           ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:76:10: Context: This is the declaration of the setter 'C1.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:78:10: Context: This is the declaration of the setter 'C1.property5'.
 //   String property5;
 //          ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:96:14: Error: The type 'String' of the getter 'C2.property6' is not assignable to the type 'int' of the inherited setter 'C1.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:98:14: Error: The type 'String' of the getter 'C2.property6' is not assignable to the type 'int' of the inherited setter 'C1.property6'.
 //   String get property6; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:78:7: Context: This is the declaration of the setter 'C1.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:80:7: Context: This is the declaration of the setter 'C1.property6'.
 //   int property6;
 //       ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:92:11: Error: The return type of the method 'C2.property5' is 'int', which does not match the return type, 'String', of the overridden method, 'C1.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:94:11: Error: The return type of the method 'C2.property5' is 'int', which does not match the return type, 'String', of the overridden method, 'C1.property5'.
 // Change to a subtype of 'String'.
 //   int get property5; // error
 //           ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:76:10: Context: This is the overridden method ('property5').
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:78:10: Context: This is the overridden method ('property5').
 //   String property5;
 //          ^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:96:14: Error: The return type of the method 'C2.property6' is 'String', which does not match the return type, 'int', of the overridden method, 'C1.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:98:14: Error: The return type of the method 'C2.property6' is 'String', which does not match the return type, 'int', of the overridden method, 'C1.property6'.
 // Change to a subtype of 'int'.
 //   String get property6; // error
 //              ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:78:7: Context: This is the overridden method ('property6').
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:80:7: Context: This is the overridden method ('property6').
 //   int property6;
 //       ^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:115:16: Error: The type 'int' of the inherited getter 'D1.property2' is not assignable to the type 'String' of the inherited setter 'D2.property2'.
-// abstract class D3 implements D1, D2 /* error on property2 and property3 */ {}
-//                ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:102:11: Context: This is the declaration of the getter 'D1.property2'.
-//   int get property2;
-//           ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:110:12: Context: This is the declaration of the setter 'D2.property2'.
-//   void set property2(String i);
-//            ^^^^^^^^^
-//
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:115:16: Error: The type 'String' of the inherited getter 'D1.property3' is not assignable to the type 'int' of the inherited setter 'D2.property3'.
-// abstract class D3 implements D1, D2 /* error on property2 and property3 */ {}
-//                ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:104:14: Context: This is the declaration of the getter 'D1.property3'.
-//   String get property3;
-//              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:112:12: Context: This is the declaration of the setter 'D2.property3'.
-//   void set property3(int i);
-//            ^^^^^^^^^
-//
 // pkg/front_end/testcases/general/getter_vs_setter_type.dart:117:16: Error: The type 'int' of the inherited getter 'D1.property2' is not assignable to the type 'String' of the inherited setter 'D2.property2'.
-// abstract class D4
+// abstract class D3 implements D1, D2 /* error on property2 and property3 */ {}
 //                ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:102:11: Context: This is the declaration of the getter 'D1.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:104:11: Context: This is the declaration of the getter 'D1.property2'.
 //   int get property2;
 //           ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:110:12: Context: This is the declaration of the setter 'D2.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:112:12: Context: This is the declaration of the setter 'D2.property2'.
 //   void set property2(String i);
 //            ^^^^^^^^^
 //
 // pkg/front_end/testcases/general/getter_vs_setter_type.dart:117:16: Error: The type 'String' of the inherited getter 'D1.property3' is not assignable to the type 'int' of the inherited setter 'D2.property3'.
-// abstract class D4
+// abstract class D3 implements D1, D2 /* error on property2 and property3 */ {}
 //                ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:104:14: Context: This is the declaration of the getter 'D1.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:106:14: Context: This is the declaration of the getter 'D1.property3'.
 //   String get property3;
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:112:12: Context: This is the declaration of the setter 'D2.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:114:12: Context: This is the declaration of the setter 'D2.property3'.
 //   void set property3(int i);
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:130:14: Error: The type 'String' of the getter 'property3' is not assignable to the type 'int' of the setter 'property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:119:16: Error: The type 'int' of the inherited getter 'D1.property2' is not assignable to the type 'String' of the inherited setter 'D2.property2'.
+// abstract class D4
+//                ^
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:104:11: Context: This is the declaration of the getter 'D1.property2'.
+//   int get property2;
+//           ^^^^^^^^^
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:112:12: Context: This is the declaration of the setter 'D2.property2'.
+//   void set property2(String i);
+//            ^^^^^^^^^
+//
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:119:16: Error: The type 'String' of the inherited getter 'D1.property3' is not assignable to the type 'int' of the inherited setter 'D2.property3'.
+// abstract class D4
+//                ^
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:106:14: Context: This is the declaration of the getter 'D1.property3'.
+//   String get property3;
+//              ^^^^^^^^^
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:114:12: Context: This is the declaration of the setter 'D2.property3'.
+//   void set property3(int i);
+//            ^^^^^^^^^
+//
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:132:14: Error: The type 'String' of the getter 'property3' is not assignable to the type 'int' of the setter 'property3'.
 //   String get property3 => ''; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:131:12: Context: This is the declaration of the setter 'property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:133:12: Context: This is the declaration of the setter 'property3'.
 //   void set property3(int i) {}
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:142:14: Error: The type 'String' of the getter 'property6' is not assignable to the type 'S' of the setter 'property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:144:14: Error: The type 'String' of the getter 'property6' is not assignable to the type 'S' of the setter 'property6'.
 //   String get property6 => ''; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:143:12: Context: This is the declaration of the setter 'property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:145:12: Context: This is the declaration of the setter 'property6'.
 //   void set property6(S i) {}
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:154:18: Error: The type 'num' of the getter 'property9' is not assignable to the type 'String' of the setter 'property9'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:156:18: Error: The type 'num' of the getter 'property9' is not assignable to the type 'String' of the setter 'property9'.
 //   static num get property9 => 0; // error
 //                  ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:155:19: Context: This is the declaration of the setter 'property9'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:157:19: Context: This is the declaration of the setter 'property9'.
 //   static void set property9(String value) {}
 //                   ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:133:22: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:135:22: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
 //   S get property4 => 0; // ok
 //                      ^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:136:23: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:138:23: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
 //   S get property5a => 0; // ok
 //                       ^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:139:23: Error: A value of type 'int' can't be assigned to a variable of type 'T'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:141:23: Error: A value of type 'int' can't be assigned to a variable of type 'T'.
 //   T get property5b => 0; // ok
 //                       ^
 //
@@ -391,17 +391,17 @@
   return "";
 static method Extension|set#property3<T extends core::num*, S extends self::Extension|set#property3::T* = core::num*>(lowered final core::int* #this, core::int* i) → void {}
 static method Extension|get#property4<T extends core::num*, S extends self::Extension|get#property4::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property4::S*
-  return invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:133:22: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
+  return invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:135:22: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
   S get property4 => 0; // ok
                      ^" in 0 as{TypeError} Never;
 static method Extension|set#property4<T extends core::num*, S extends self::Extension|set#property4::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property4::S* i) → void {}
 static method Extension|get#property5a<T extends core::num*, S extends self::Extension|get#property5a::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5a::S*
-  return invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:136:23: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
+  return invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:138:23: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
   S get property5a => 0; // ok
                       ^" in 0 as{TypeError} Never;
 static method Extension|set#property5a<T extends core::num*, S extends self::Extension|set#property5a::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5a::T* i) → void {}
 static method Extension|get#property5b<T extends core::num*, S extends self::Extension|get#property5b::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5b::T*
-  return invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:139:23: Error: A value of type 'int' can't be assigned to a variable of type 'T'.
+  return invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:141:23: Error: A value of type 'int' can't be assigned to a variable of type 'T'.
   T get property5b => 0; // ok
                       ^" in 0 as{TypeError} Never;
 static method Extension|set#property5b<T extends core::num*, S extends self::Extension|set#property5b::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5b::S* i) → void {}
diff --git a/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.outline.expect b/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.outline.expect
index 360523b..df2714e 100644
--- a/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.outline.expect
@@ -2,150 +2,150 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:15:14: Error: The type 'String' of the getter 'A.property3' is not assignable to the type 'int' of the setter 'A.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:17:14: Error: The type 'String' of the getter 'A.property3' is not assignable to the type 'int' of the setter 'A.property3'.
 //   String get property3; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:16:12: Context: This is the declaration of the setter 'A.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:18:12: Context: This is the declaration of the setter 'A.property3'.
 //   void set property3(int i);
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:33:18: Error: The type 'num' of the getter 'A.property9' is not assignable to the type 'String' of the setter 'A.property9'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:35:18: Error: The type 'num' of the getter 'A.property9' is not assignable to the type 'String' of the setter 'A.property9'.
 //   static num get property9 => 0; // error
 //                  ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:34:19: Context: This is the declaration of the setter 'A.property9'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:36:19: Context: This is the declaration of the setter 'A.property9'.
 //   static void set property9(String value) {}
 //                   ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:56:12: Error: The type 'int' of the inherited getter 'B1.property2' is not assignable to the type 'String' of the setter 'B2.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:58:12: Error: The type 'int' of the inherited getter 'B1.property2' is not assignable to the type 'String' of the setter 'B2.property2'.
 //   void set property2(String i); // error
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:40:11: Context: This is the declaration of the getter 'B1.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:42:11: Context: This is the declaration of the getter 'B1.property2'.
 //   int get property2;
 //           ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:58:12: Error: The type 'String' of the inherited getter 'B1.property3' is not assignable to the type 'int' of the setter 'B2.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:60:12: Error: The type 'String' of the inherited getter 'B1.property3' is not assignable to the type 'int' of the setter 'B2.property3'.
 //   void set property3(int i); // error
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:42:14: Context: This is the declaration of the getter 'B1.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:44:14: Context: This is the declaration of the getter 'B1.property3'.
 //   String get property3;
 //              ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:62:12: Error: The type 'int' of the inherited field 'B1.property5' is not assignable to the type 'String' of the setter 'B2.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:64:12: Error: The type 'int' of the inherited field 'B1.property5' is not assignable to the type 'String' of the setter 'B2.property5'.
 //   void set property5(String i); // error
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:46:13: Context: This is the declaration of the field 'B1.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:48:13: Context: This is the declaration of the field 'B1.property5'.
 //   final int property5;
 //             ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:64:12: Error: The type 'String' of the inherited field 'B1.property6' is not assignable to the type 'int' of the setter 'B2.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:66:12: Error: The type 'String' of the inherited field 'B1.property6' is not assignable to the type 'int' of the setter 'B2.property6'.
 //   void set property6(int i); // error
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:48:16: Context: This is the declaration of the field 'B1.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:50:16: Context: This is the declaration of the field 'B1.property6'.
 //   final String property6;
 //                ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:84:11: Error: The type 'int' of the getter 'C2.property2' is not assignable to the type 'String' of the inherited setter 'C1.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:86:11: Error: The type 'int' of the getter 'C2.property2' is not assignable to the type 'String' of the inherited setter 'C1.property2'.
 //   int get property2; // error
 //           ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:70:12: Context: This is the declaration of the setter 'C1.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:72:12: Context: This is the declaration of the setter 'C1.property2'.
 //   void set property2(String i);
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:86:14: Error: The type 'String' of the getter 'C2.property3' is not assignable to the type 'int' of the inherited setter 'C1.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:88:14: Error: The type 'String' of the getter 'C2.property3' is not assignable to the type 'int' of the inherited setter 'C1.property3'.
 //   String get property3; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:72:12: Context: This is the declaration of the setter 'C1.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:74:12: Context: This is the declaration of the setter 'C1.property3'.
 //   void set property3(int i);
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:92:11: Error: The type 'int' of the getter 'C2.property5' is not assignable to the type 'String' of the inherited setter 'C1.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:94:11: Error: The type 'int' of the getter 'C2.property5' is not assignable to the type 'String' of the inherited setter 'C1.property5'.
 //   int get property5; // error
 //           ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:76:10: Context: This is the declaration of the setter 'C1.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:78:10: Context: This is the declaration of the setter 'C1.property5'.
 //   String property5;
 //          ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:96:14: Error: The type 'String' of the getter 'C2.property6' is not assignable to the type 'int' of the inherited setter 'C1.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:98:14: Error: The type 'String' of the getter 'C2.property6' is not assignable to the type 'int' of the inherited setter 'C1.property6'.
 //   String get property6; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:78:7: Context: This is the declaration of the setter 'C1.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:80:7: Context: This is the declaration of the setter 'C1.property6'.
 //   int property6;
 //       ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:92:11: Error: The return type of the method 'C2.property5' is 'int', which does not match the return type, 'String', of the overridden method, 'C1.property5'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:94:11: Error: The return type of the method 'C2.property5' is 'int', which does not match the return type, 'String', of the overridden method, 'C1.property5'.
 // Change to a subtype of 'String'.
 //   int get property5; // error
 //           ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:76:10: Context: This is the overridden method ('property5').
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:78:10: Context: This is the overridden method ('property5').
 //   String property5;
 //          ^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:96:14: Error: The return type of the method 'C2.property6' is 'String', which does not match the return type, 'int', of the overridden method, 'C1.property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:98:14: Error: The return type of the method 'C2.property6' is 'String', which does not match the return type, 'int', of the overridden method, 'C1.property6'.
 // Change to a subtype of 'int'.
 //   String get property6; // error
 //              ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:78:7: Context: This is the overridden method ('property6').
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:80:7: Context: This is the overridden method ('property6').
 //   int property6;
 //       ^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:115:16: Error: The type 'int' of the inherited getter 'D1.property2' is not assignable to the type 'String' of the inherited setter 'D2.property2'.
-// abstract class D3 implements D1, D2 /* error on property2 and property3 */ {}
-//                ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:102:11: Context: This is the declaration of the getter 'D1.property2'.
-//   int get property2;
-//           ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:110:12: Context: This is the declaration of the setter 'D2.property2'.
-//   void set property2(String i);
-//            ^^^^^^^^^
-//
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:115:16: Error: The type 'String' of the inherited getter 'D1.property3' is not assignable to the type 'int' of the inherited setter 'D2.property3'.
-// abstract class D3 implements D1, D2 /* error on property2 and property3 */ {}
-//                ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:104:14: Context: This is the declaration of the getter 'D1.property3'.
-//   String get property3;
-//              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:112:12: Context: This is the declaration of the setter 'D2.property3'.
-//   void set property3(int i);
-//            ^^^^^^^^^
-//
 // pkg/front_end/testcases/general/getter_vs_setter_type.dart:117:16: Error: The type 'int' of the inherited getter 'D1.property2' is not assignable to the type 'String' of the inherited setter 'D2.property2'.
-// abstract class D4
+// abstract class D3 implements D1, D2 /* error on property2 and property3 */ {}
 //                ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:102:11: Context: This is the declaration of the getter 'D1.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:104:11: Context: This is the declaration of the getter 'D1.property2'.
 //   int get property2;
 //           ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:110:12: Context: This is the declaration of the setter 'D2.property2'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:112:12: Context: This is the declaration of the setter 'D2.property2'.
 //   void set property2(String i);
 //            ^^^^^^^^^
 //
 // pkg/front_end/testcases/general/getter_vs_setter_type.dart:117:16: Error: The type 'String' of the inherited getter 'D1.property3' is not assignable to the type 'int' of the inherited setter 'D2.property3'.
-// abstract class D4
+// abstract class D3 implements D1, D2 /* error on property2 and property3 */ {}
 //                ^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:104:14: Context: This is the declaration of the getter 'D1.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:106:14: Context: This is the declaration of the getter 'D1.property3'.
 //   String get property3;
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:112:12: Context: This is the declaration of the setter 'D2.property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:114:12: Context: This is the declaration of the setter 'D2.property3'.
 //   void set property3(int i);
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:130:14: Error: The type 'String' of the getter 'property3' is not assignable to the type 'int' of the setter 'property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:119:16: Error: The type 'int' of the inherited getter 'D1.property2' is not assignable to the type 'String' of the inherited setter 'D2.property2'.
+// abstract class D4
+//                ^
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:104:11: Context: This is the declaration of the getter 'D1.property2'.
+//   int get property2;
+//           ^^^^^^^^^
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:112:12: Context: This is the declaration of the setter 'D2.property2'.
+//   void set property2(String i);
+//            ^^^^^^^^^
+//
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:119:16: Error: The type 'String' of the inherited getter 'D1.property3' is not assignable to the type 'int' of the inherited setter 'D2.property3'.
+// abstract class D4
+//                ^
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:106:14: Context: This is the declaration of the getter 'D1.property3'.
+//   String get property3;
+//              ^^^^^^^^^
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:114:12: Context: This is the declaration of the setter 'D2.property3'.
+//   void set property3(int i);
+//            ^^^^^^^^^
+//
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:132:14: Error: The type 'String' of the getter 'property3' is not assignable to the type 'int' of the setter 'property3'.
 //   String get property3 => ''; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:131:12: Context: This is the declaration of the setter 'property3'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:133:12: Context: This is the declaration of the setter 'property3'.
 //   void set property3(int i) {}
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:142:14: Error: The type 'String' of the getter 'property6' is not assignable to the type 'S' of the setter 'property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:144:14: Error: The type 'String' of the getter 'property6' is not assignable to the type 'S' of the setter 'property6'.
 //   String get property6 => ''; // error
 //              ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:143:12: Context: This is the declaration of the setter 'property6'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:145:12: Context: This is the declaration of the setter 'property6'.
 //   void set property6(S i) {}
 //            ^^^^^^^^^
 //
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:154:18: Error: The type 'num' of the getter 'property9' is not assignable to the type 'String' of the setter 'property9'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:156:18: Error: The type 'num' of the getter 'property9' is not assignable to the type 'String' of the setter 'property9'.
 //   static num get property9 => 0; // error
 //                  ^^^^^^^^^
-// pkg/front_end/testcases/general/getter_vs_setter_type.dart:155:19: Context: This is the declaration of the setter 'property9'.
+// pkg/front_end/testcases/general/getter_vs_setter_type.dart:157:19: Context: This is the declaration of the setter 'property9'.
 //   static void set property9(String value) {}
 //                   ^^^^^^^^^
 //
diff --git a/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart b/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart
index 1d6250a..ef30a9b 100644
--- a/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart
+++ b/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart
@@ -2,8 +2,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.
 
-// @dart=2.9
-
 @Foo
 part 'having_part_with_part_and_annotation_lib1.dart';
 
diff --git a/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.textual_outline.expect b/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.textual_outline.expect
index b4e21de..b2d893c 100644
--- a/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 @Foo
 part 'having_part_with_part_and_annotation_lib1.dart';
 
diff --git a/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.textual_outline_modelled.expect
index 2f0c5fc..4ce86ce 100644
--- a/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 @Foo
 part 'having_part_with_part_and_annotation_lib1.dart';
 
diff --git a/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.expect b/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.expect
index 5744ee3..2d68fe5 100644
--- a/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.expect
+++ b/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib1.dart:10:6: Error: A file that's a part of a library can't have parts itself.
+// pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib1.dart:8:6: Error: A file that's a part of a library can't have parts itself.
 // Try moving the 'part' declaration to the containing library.
 // part 'having_part_with_part_and_annotation_lib2.dart';
 //      ^
@@ -13,8 +13,8 @@
 
 @#C1
 part having_part_with_part_and_annotation_lib1.dart;
-static const field core::int* Foo = #C1;
-static const field core::int* Bar = #C2 /* from org-dartlang-testcase:///having_part_with_part_and_annotation_lib1.dart */;
+static const field core::int Foo = #C1;
+static const field core::int Bar = #C2 /* from org-dartlang-testcase:///having_part_with_part_and_annotation_lib1.dart */;
 static method fromMain() → void {}
 static method main() → dynamic {}
 static method /* from org-dartlang-testcase:///having_part_with_part_and_annotation_lib1.dart */ fromLib1() → void {}
diff --git a/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.modular.expect b/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.modular.expect
index 5744ee3..2d68fe5 100644
--- a/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib1.dart:10:6: Error: A file that's a part of a library can't have parts itself.
+// pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib1.dart:8:6: Error: A file that's a part of a library can't have parts itself.
 // Try moving the 'part' declaration to the containing library.
 // part 'having_part_with_part_and_annotation_lib2.dart';
 //      ^
@@ -13,8 +13,8 @@
 
 @#C1
 part having_part_with_part_and_annotation_lib1.dart;
-static const field core::int* Foo = #C1;
-static const field core::int* Bar = #C2 /* from org-dartlang-testcase:///having_part_with_part_and_annotation_lib1.dart */;
+static const field core::int Foo = #C1;
+static const field core::int Bar = #C2 /* from org-dartlang-testcase:///having_part_with_part_and_annotation_lib1.dart */;
 static method fromMain() → void {}
 static method main() → dynamic {}
 static method /* from org-dartlang-testcase:///having_part_with_part_and_annotation_lib1.dart */ fromLib1() → void {}
diff --git a/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.outline.expect b/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.outline.expect
index e2f8b6b..8a27d8f 100644
--- a/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib1.dart:10:6: Error: A file that's a part of a library can't have parts itself.
+// pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib1.dart:8:6: Error: A file that's a part of a library can't have parts itself.
 // Try moving the 'part' declaration to the containing library.
 // part 'having_part_with_part_and_annotation_lib2.dart';
 //      ^
@@ -12,8 +12,8 @@
 import "dart:core" as core;
 
 part having_part_with_part_and_annotation_lib1.dart;
-static const field core::int* Foo = 42;
-static const field core::int* Bar = 43 /* from org-dartlang-testcase:///having_part_with_part_and_annotation_lib1.dart */;
+static const field core::int Foo = 42;
+static const field core::int Bar = 43 /* from org-dartlang-testcase:///having_part_with_part_and_annotation_lib1.dart */;
 static method fromMain() → void
   ;
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.transformed.expect b/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.transformed.expect
index 5744ee3..2d68fe5 100644
--- a/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/having_part_with_part_and_annotation.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib1.dart:10:6: Error: A file that's a part of a library can't have parts itself.
+// pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib1.dart:8:6: Error: A file that's a part of a library can't have parts itself.
 // Try moving the 'part' declaration to the containing library.
 // part 'having_part_with_part_and_annotation_lib2.dart';
 //      ^
@@ -13,8 +13,8 @@
 
 @#C1
 part having_part_with_part_and_annotation_lib1.dart;
-static const field core::int* Foo = #C1;
-static const field core::int* Bar = #C2 /* from org-dartlang-testcase:///having_part_with_part_and_annotation_lib1.dart */;
+static const field core::int Foo = #C1;
+static const field core::int Bar = #C2 /* from org-dartlang-testcase:///having_part_with_part_and_annotation_lib1.dart */;
 static method fromMain() → void {}
 static method main() → dynamic {}
 static method /* from org-dartlang-testcase:///having_part_with_part_and_annotation_lib1.dart */ fromLib1() → void {}
diff --git a/pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib1.dart b/pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib1.dart
index c7d4d5d..4aff0bb 100644
--- a/pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib1.dart
+++ b/pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib1.dart
@@ -2,8 +2,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.
 
-// @dart=2.9
-
 part of 'having_part_with_part_and_annotation.dart';
 
 @Bar
diff --git a/pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib2.dart b/pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib2.dart
index e92c214..b61dce8 100644
--- a/pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib2.dart
+++ b/pkg/front_end/testcases/general/having_part_with_part_and_annotation_lib2.dart
@@ -2,8 +2,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.
 
-// @dart=2.9
-
 part of 'having_part_with_part_and_annotation_lib1.dart';
 
 void fromLib2() {}
diff --git a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart
index a0ea7f5..4db6727 100644
--- a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart
+++ b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2019, 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.
-// @dart=2.9
+
 @Foo
 part 'having_part_with_parts_and_annotation_lib1.dart';
 
diff --git a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.textual_outline.expect b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.textual_outline.expect
index 0395dc8..24ca63b 100644
--- a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 @Foo
 part 'having_part_with_parts_and_annotation_lib1.dart';
 
diff --git a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.textual_outline_modelled.expect
index 54885d0..754ba3f 100644
--- a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 @Foo
 part 'having_part_with_parts_and_annotation_lib1.dart';
 
diff --git a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.expect b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.expect
index 9054021..ee96063 100644
--- a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.expect
+++ b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.expect
@@ -1,21 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart:6:6: Error: The language version override has to be the same in the library and its part(s).
-// part 'having_part_with_parts_and_annotation_lib1.dart';
-//      ^
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart:4:1: Context: This is language version annotation in the library.
-// // @dart=2.9
-// ^^^^^^^^^^^^
-//
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:4:6: Error: A file that's a part of a library can't have parts itself.
+// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:3:6: Error: A file that's a part of a library can't have parts itself.
 // Try moving the 'part' declaration to the containing library.
 // part 'having_part_with_parts_and_annotation_lib2.dart';
 //      ^
 // pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart: Context: This is the containing library.
 //
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:6:6: Error: A file that's a part of a library can't have parts itself.
+// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:5:6: Error: A file that's a part of a library can't have parts itself.
 // Try moving the 'part' declaration to the containing library.
 // part 'having_part_with_parts_and_annotation_lib2.dart';
 //      ^
@@ -26,12 +19,12 @@
 
 @#C1
 part having_part_with_parts_and_annotation_lib1.dart;
-static const field core::int* Foo = #C1;
-static const field core::int* Bar = #C2 /*isNonNullableByDefault, from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
-static const field core::int* Baz = #C3 /*isNonNullableByDefault, from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
+static const field core::int Foo = #C1;
+static const field core::int Bar = #C2 /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
+static const field core::int Baz = #C3 /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
 static method fromMain() → void {}
 static method main() → dynamic {}
-static method /*isNonNullableByDefault, from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */ fromLib1() → void {}
+static method /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */ fromLib1() → void {}
 
 constants  {
   #C1 = 42
diff --git a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.modular.expect b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.modular.expect
index 9054021..ee96063 100644
--- a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.modular.expect
@@ -1,21 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart:6:6: Error: The language version override has to be the same in the library and its part(s).
-// part 'having_part_with_parts_and_annotation_lib1.dart';
-//      ^
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart:4:1: Context: This is language version annotation in the library.
-// // @dart=2.9
-// ^^^^^^^^^^^^
-//
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:4:6: Error: A file that's a part of a library can't have parts itself.
+// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:3:6: Error: A file that's a part of a library can't have parts itself.
 // Try moving the 'part' declaration to the containing library.
 // part 'having_part_with_parts_and_annotation_lib2.dart';
 //      ^
 // pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart: Context: This is the containing library.
 //
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:6:6: Error: A file that's a part of a library can't have parts itself.
+// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:5:6: Error: A file that's a part of a library can't have parts itself.
 // Try moving the 'part' declaration to the containing library.
 // part 'having_part_with_parts_and_annotation_lib2.dart';
 //      ^
@@ -26,12 +19,12 @@
 
 @#C1
 part having_part_with_parts_and_annotation_lib1.dart;
-static const field core::int* Foo = #C1;
-static const field core::int* Bar = #C2 /*isNonNullableByDefault, from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
-static const field core::int* Baz = #C3 /*isNonNullableByDefault, from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
+static const field core::int Foo = #C1;
+static const field core::int Bar = #C2 /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
+static const field core::int Baz = #C3 /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
 static method fromMain() → void {}
 static method main() → dynamic {}
-static method /*isNonNullableByDefault, from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */ fromLib1() → void {}
+static method /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */ fromLib1() → void {}
 
 constants  {
   #C1 = 42
diff --git a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.outline.expect b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.outline.expect
index 7d7ae36..f33c792 100644
--- a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.outline.expect
@@ -1,21 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart:6:6: Error: The language version override has to be the same in the library and its part(s).
-// part 'having_part_with_parts_and_annotation_lib1.dart';
-//      ^
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart:4:1: Context: This is language version annotation in the library.
-// // @dart=2.9
-// ^^^^^^^^^^^^
-//
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:4:6: Error: A file that's a part of a library can't have parts itself.
+// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:3:6: Error: A file that's a part of a library can't have parts itself.
 // Try moving the 'part' declaration to the containing library.
 // part 'having_part_with_parts_and_annotation_lib2.dart';
 //      ^
 // pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart: Context: This is the containing library.
 //
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:6:6: Error: A file that's a part of a library can't have parts itself.
+// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:5:6: Error: A file that's a part of a library can't have parts itself.
 // Try moving the 'part' declaration to the containing library.
 // part 'having_part_with_parts_and_annotation_lib2.dart';
 //      ^
@@ -25,12 +18,12 @@
 import "dart:core" as core;
 
 part having_part_with_parts_and_annotation_lib1.dart;
-static const field core::int* Foo = 42;
-static const field core::int* Bar = 43 /*isNonNullableByDefault, from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
-static const field core::int* Baz = 44 /*isNonNullableByDefault, from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
+static const field core::int Foo = 42;
+static const field core::int Bar = 43 /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
+static const field core::int Baz = 44 /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
 static method fromMain() → void
   ;
 static method main() → dynamic
   ;
-static method /*isNonNullableByDefault, from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */ fromLib1() → void
+static method /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */ fromLib1() → void
   ;
diff --git a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.transformed.expect b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.transformed.expect
index 9054021..ee96063 100644
--- a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart.weak.transformed.expect
@@ -1,21 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart:6:6: Error: The language version override has to be the same in the library and its part(s).
-// part 'having_part_with_parts_and_annotation_lib1.dart';
-//      ^
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart:4:1: Context: This is language version annotation in the library.
-// // @dart=2.9
-// ^^^^^^^^^^^^
-//
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:4:6: Error: A file that's a part of a library can't have parts itself.
+// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:3:6: Error: A file that's a part of a library can't have parts itself.
 // Try moving the 'part' declaration to the containing library.
 // part 'having_part_with_parts_and_annotation_lib2.dart';
 //      ^
 // pkg/front_end/testcases/general/having_part_with_parts_and_annotation.dart: Context: This is the containing library.
 //
-// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:6:6: Error: A file that's a part of a library can't have parts itself.
+// pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart:5:6: Error: A file that's a part of a library can't have parts itself.
 // Try moving the 'part' declaration to the containing library.
 // part 'having_part_with_parts_and_annotation_lib2.dart';
 //      ^
@@ -26,12 +19,12 @@
 
 @#C1
 part having_part_with_parts_and_annotation_lib1.dart;
-static const field core::int* Foo = #C1;
-static const field core::int* Bar = #C2 /*isNonNullableByDefault, from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
-static const field core::int* Baz = #C3 /*isNonNullableByDefault, from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
+static const field core::int Foo = #C1;
+static const field core::int Bar = #C2 /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
+static const field core::int Baz = #C3 /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */;
 static method fromMain() → void {}
 static method main() → dynamic {}
-static method /*isNonNullableByDefault, from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */ fromLib1() → void {}
+static method /* from org-dartlang-testcase:///having_part_with_parts_and_annotation_lib1.dart */ fromLib1() → void {}
 
 constants  {
   #C1 = 42
diff --git a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart
index b80296e..e640da4 100644
--- a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart
+++ b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib1.dart
@@ -1,5 +1,4 @@
 part of 'having_part_with_parts_and_annotation.dart';
-// @dart=2.9
 @Bar
 part 'having_part_with_parts_and_annotation_lib2.dart';
 @Baz
diff --git a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib2.dart b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib2.dart
index cc6767a..f5c6150 100644
--- a/pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib2.dart
+++ b/pkg/front_end/testcases/general/having_part_with_parts_and_annotation_lib2.dart
@@ -1,4 +1,3 @@
 part of 'having_part_with_parts_and_annotation_lib1.dart';
 
-// @dart=2.9
 void fromLib2() {}
diff --git a/pkg/front_end/testcases/general/hierarchy.dart b/pkg/front_end/testcases/general/hierarchy.dart
index 241e463..8c4f658 100644
--- a/pkg/front_end/testcases/general/hierarchy.dart
+++ b/pkg/front_end/testcases/general/hierarchy.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2020, 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.
-// @dart=2.9
+
 abstract class A1 {
   void extendedClassMember() {}
   void extendedInterfaceMember();
diff --git a/pkg/front_end/testcases/general/hierarchy.dart.textual_outline.expect b/pkg/front_end/testcases/general/hierarchy.dart.textual_outline.expect
index 7e60bdc..15a7cc5 100644
--- a/pkg/front_end/testcases/general/hierarchy.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/hierarchy.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class A1 {
   void extendedClassMember() {}
   void extendedInterfaceMember();
diff --git a/pkg/front_end/testcases/general/hierarchy.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/hierarchy.dart.textual_outline_modelled.expect
index 0a7db26..916bcc2 100644
--- a/pkg/front_end/testcases/general/hierarchy.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/hierarchy.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class A1 {
   void extendedClassMember() {}
   void extendedInterfaceMember();
diff --git a/pkg/front_end/testcases/general/hierarchy.dart.weak.expect b/pkg/front_end/testcases/general/hierarchy.dart.weak.expect
index 42fb0ba..6b21ed8 100644
--- a/pkg/front_end/testcases/general/hierarchy.dart.weak.expect
+++ b/pkg/front_end/testcases/general/hierarchy.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -97,41 +97,21 @@
 import "dart:core" as core;
 
 abstract class A1 extends core::Object {
-  synthetic constructor •() → self::A1*
+  synthetic constructor •() → self::A1
     : super core::Object::•()
     ;
   method extendedClassMember() → void {}
   abstract method extendedInterfaceMember() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class A2 extends core::Object {
-  synthetic constructor •() → self::A2*
+  synthetic constructor •() → self::A2
     : super core::Object::•()
     ;
   method mixedInClassMember() → void {}
   abstract method mixedInInterfaceMember() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class _A3&A1&A2 = self::A1 with self::A2 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_A3&A1&A2*
+  synthetic constructor •() → self::_A3&A1&A2
     : super self::A1::•()
     ;
   mixin-super-stub method mixedInClassMember() → void
@@ -139,14 +119,14 @@
   abstract mixin-stub method mixedInInterfaceMember() → void; -> self::A2::mixedInInterfaceMember
 }
 abstract class A3 extends self::_A3&A1&A2 {
-  synthetic constructor •() → self::A3*
+  synthetic constructor •() → self::A3
     : super self::_A3&A1&A2::•()
     ;
   method declaredClassMember() → void {}
   abstract method declaredInterfaceMember() → void;
 }
 abstract class A4 = self::A1 with self::A2 {
-  synthetic constructor •() → self::A4*
+  synthetic constructor •() → self::A4
     : super self::A1::•()
     ;
   mixin-super-stub method mixedInClassMember() → void
@@ -154,171 +134,91 @@
   abstract mixin-stub method mixedInInterfaceMember() → void; -> self::A2::mixedInInterfaceMember
 }
 abstract class A5 extends core::Object implements self::A1 {
-  synthetic constructor •() → self::A5*
+  synthetic constructor •() → self::A5
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class A6 extends self::A1 implements self::A1 {
-  synthetic constructor •() → self::A6*
+  synthetic constructor •() → self::A6
     : super self::A1::•()
     ;
 }
 abstract class B1 extends core::Object {
-  synthetic constructor •() → self::B1*
+  synthetic constructor •() → self::B1
     : super core::Object::•()
     ;
   method twiceInterfaceMember() → void {}
   method extendedAndImplementedMember() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class B2 extends core::Object {
-  synthetic constructor •() → self::B2*
+  synthetic constructor •() → self::B2
     : super core::Object::•()
     ;
   method twiceInterfaceMember() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class B3 extends core::Object {
-  synthetic constructor •() → self::B3*
+  synthetic constructor •() → self::B3
     : super core::Object::•()
     ;
   method extendedAndImplementedMember() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class B4 extends self::B3 implements self::B1, self::B2 {
-  synthetic constructor •() → self::B4*
+  synthetic constructor •() → self::B4
     : super self::B3::•()
     ;
 }
 class B5 extends self::B4 {
-  synthetic constructor •() → self::B5*
+  synthetic constructor •() → self::B5
     : super self::B4::•()
     ;
 }
 class B6 extends self::B3 implements self::B1, self::B2 {
-  synthetic constructor •() → self::B6*
+  synthetic constructor •() → self::B6
     : super self::B3::•()
     ;
 }
 abstract class C1 extends core::Object {
-  synthetic constructor •() → self::C1*
+  synthetic constructor •() → self::C1
     : super core::Object::•()
     ;
   method mixedInAndImplementedClassMember() → void {}
   abstract method mixedInAndImplementedInterfaceMember() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C2 extends core::Object {
-  synthetic constructor •() → self::C2*
+  synthetic constructor •() → self::C2
     : super core::Object::•()
     ;
   method mixedInAndImplementedClassMember() → void {}
   method mixedInAndImplementedInterfaceMember() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class _C3&Object&C1 = core::Object with self::C1 /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_C3&Object&C1*
+  const synthetic constructor •() → self::_C3&Object&C1
     : super core::Object::•()
     ;
   mixin-super-stub method mixedInAndImplementedClassMember() → void
     return super.{self::C1::mixedInAndImplementedClassMember}();
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   abstract mixin-stub method mixedInAndImplementedInterfaceMember() → void; -> self::C1::mixedInAndImplementedInterfaceMember
 }
 abstract class C3 extends self::_C3&Object&C1 implements self::C2 {
-  synthetic constructor •() → self::C3*
+  synthetic constructor •() → self::C3
     : super self::_C3&Object&C1::•()
     ;
 }
 class C4 extends self::C3 {
-  synthetic constructor •() → self::C4*
+  synthetic constructor •() → self::C4
     : super self::C3::•()
     ;
 }
 abstract class _C5&Object&C1 = core::Object with self::C1 /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_C5&Object&C1*
+  const synthetic constructor •() → self::_C5&Object&C1
     : super core::Object::•()
     ;
   mixin-super-stub method mixedInAndImplementedClassMember() → void
     return super.{self::C1::mixedInAndImplementedClassMember}();
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   abstract mixin-stub method mixedInAndImplementedInterfaceMember() → void; -> self::C1::mixedInAndImplementedInterfaceMember
 }
 class C5 extends self::_C5&Object&C1 implements self::C2 {
-  synthetic constructor •() → self::C5*
+  synthetic constructor •() → self::C5
     : super self::_C5&Object&C1::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/hierarchy.dart.weak.modular.expect b/pkg/front_end/testcases/general/hierarchy.dart.weak.modular.expect
index 42fb0ba..6b21ed8 100644
--- a/pkg/front_end/testcases/general/hierarchy.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/hierarchy.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -97,41 +97,21 @@
 import "dart:core" as core;
 
 abstract class A1 extends core::Object {
-  synthetic constructor •() → self::A1*
+  synthetic constructor •() → self::A1
     : super core::Object::•()
     ;
   method extendedClassMember() → void {}
   abstract method extendedInterfaceMember() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class A2 extends core::Object {
-  synthetic constructor •() → self::A2*
+  synthetic constructor •() → self::A2
     : super core::Object::•()
     ;
   method mixedInClassMember() → void {}
   abstract method mixedInInterfaceMember() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class _A3&A1&A2 = self::A1 with self::A2 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_A3&A1&A2*
+  synthetic constructor •() → self::_A3&A1&A2
     : super self::A1::•()
     ;
   mixin-super-stub method mixedInClassMember() → void
@@ -139,14 +119,14 @@
   abstract mixin-stub method mixedInInterfaceMember() → void; -> self::A2::mixedInInterfaceMember
 }
 abstract class A3 extends self::_A3&A1&A2 {
-  synthetic constructor •() → self::A3*
+  synthetic constructor •() → self::A3
     : super self::_A3&A1&A2::•()
     ;
   method declaredClassMember() → void {}
   abstract method declaredInterfaceMember() → void;
 }
 abstract class A4 = self::A1 with self::A2 {
-  synthetic constructor •() → self::A4*
+  synthetic constructor •() → self::A4
     : super self::A1::•()
     ;
   mixin-super-stub method mixedInClassMember() → void
@@ -154,171 +134,91 @@
   abstract mixin-stub method mixedInInterfaceMember() → void; -> self::A2::mixedInInterfaceMember
 }
 abstract class A5 extends core::Object implements self::A1 {
-  synthetic constructor •() → self::A5*
+  synthetic constructor •() → self::A5
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class A6 extends self::A1 implements self::A1 {
-  synthetic constructor •() → self::A6*
+  synthetic constructor •() → self::A6
     : super self::A1::•()
     ;
 }
 abstract class B1 extends core::Object {
-  synthetic constructor •() → self::B1*
+  synthetic constructor •() → self::B1
     : super core::Object::•()
     ;
   method twiceInterfaceMember() → void {}
   method extendedAndImplementedMember() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class B2 extends core::Object {
-  synthetic constructor •() → self::B2*
+  synthetic constructor •() → self::B2
     : super core::Object::•()
     ;
   method twiceInterfaceMember() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class B3 extends core::Object {
-  synthetic constructor •() → self::B3*
+  synthetic constructor •() → self::B3
     : super core::Object::•()
     ;
   method extendedAndImplementedMember() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class B4 extends self::B3 implements self::B1, self::B2 {
-  synthetic constructor •() → self::B4*
+  synthetic constructor •() → self::B4
     : super self::B3::•()
     ;
 }
 class B5 extends self::B4 {
-  synthetic constructor •() → self::B5*
+  synthetic constructor •() → self::B5
     : super self::B4::•()
     ;
 }
 class B6 extends self::B3 implements self::B1, self::B2 {
-  synthetic constructor •() → self::B6*
+  synthetic constructor •() → self::B6
     : super self::B3::•()
     ;
 }
 abstract class C1 extends core::Object {
-  synthetic constructor •() → self::C1*
+  synthetic constructor •() → self::C1
     : super core::Object::•()
     ;
   method mixedInAndImplementedClassMember() → void {}
   abstract method mixedInAndImplementedInterfaceMember() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C2 extends core::Object {
-  synthetic constructor •() → self::C2*
+  synthetic constructor •() → self::C2
     : super core::Object::•()
     ;
   method mixedInAndImplementedClassMember() → void {}
   method mixedInAndImplementedInterfaceMember() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class _C3&Object&C1 = core::Object with self::C1 /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_C3&Object&C1*
+  const synthetic constructor •() → self::_C3&Object&C1
     : super core::Object::•()
     ;
   mixin-super-stub method mixedInAndImplementedClassMember() → void
     return super.{self::C1::mixedInAndImplementedClassMember}();
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   abstract mixin-stub method mixedInAndImplementedInterfaceMember() → void; -> self::C1::mixedInAndImplementedInterfaceMember
 }
 abstract class C3 extends self::_C3&Object&C1 implements self::C2 {
-  synthetic constructor •() → self::C3*
+  synthetic constructor •() → self::C3
     : super self::_C3&Object&C1::•()
     ;
 }
 class C4 extends self::C3 {
-  synthetic constructor •() → self::C4*
+  synthetic constructor •() → self::C4
     : super self::C3::•()
     ;
 }
 abstract class _C5&Object&C1 = core::Object with self::C1 /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_C5&Object&C1*
+  const synthetic constructor •() → self::_C5&Object&C1
     : super core::Object::•()
     ;
   mixin-super-stub method mixedInAndImplementedClassMember() → void
     return super.{self::C1::mixedInAndImplementedClassMember}();
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   abstract mixin-stub method mixedInAndImplementedInterfaceMember() → void; -> self::C1::mixedInAndImplementedInterfaceMember
 }
 class C5 extends self::_C5&Object&C1 implements self::C2 {
-  synthetic constructor •() → self::C5*
+  synthetic constructor •() → self::C5
     : super self::_C5&Object&C1::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/hierarchy.dart.weak.outline.expect b/pkg/front_end/testcases/general/hierarchy.dart.weak.outline.expect
index f96deda..7b80967 100644
--- a/pkg/front_end/testcases/general/hierarchy.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/hierarchy.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -97,41 +97,21 @@
 import "dart:core" as core;
 
 abstract class A1 extends core::Object {
-  synthetic constructor •() → self::A1*
+  synthetic constructor •() → self::A1
     ;
   method extendedClassMember() → void
     ;
   abstract method extendedInterfaceMember() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class A2 extends core::Object {
-  synthetic constructor •() → self::A2*
+  synthetic constructor •() → self::A2
     ;
   method mixedInClassMember() → void
     ;
   abstract method mixedInInterfaceMember() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class _A3&A1&A2 = self::A1 with self::A2 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_A3&A1&A2*
+  synthetic constructor •() → self::_A3&A1&A2
     : super self::A1::•()
     ;
   mixin-super-stub method mixedInClassMember() → void
@@ -139,14 +119,14 @@
   abstract mixin-stub method mixedInInterfaceMember() → void; -> self::A2::mixedInInterfaceMember
 }
 abstract class A3 extends self::_A3&A1&A2 {
-  synthetic constructor •() → self::A3*
+  synthetic constructor •() → self::A3
     ;
   method declaredClassMember() → void
     ;
   abstract method declaredInterfaceMember() → void;
 }
 abstract class A4 = self::A1 with self::A2 {
-  synthetic constructor •() → self::A4*
+  synthetic constructor •() → self::A4
     : super self::A1::•()
     ;
   mixin-super-stub method mixedInClassMember() → void
@@ -154,166 +134,86 @@
   abstract mixin-stub method mixedInInterfaceMember() → void; -> self::A2::mixedInInterfaceMember
 }
 abstract class A5 extends core::Object implements self::A1 {
-  synthetic constructor •() → self::A5*
+  synthetic constructor •() → self::A5
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class A6 extends self::A1 implements self::A1 {
-  synthetic constructor •() → self::A6*
+  synthetic constructor •() → self::A6
     ;
 }
 abstract class B1 extends core::Object {
-  synthetic constructor •() → self::B1*
+  synthetic constructor •() → self::B1
     ;
   method twiceInterfaceMember() → void
     ;
   method extendedAndImplementedMember() → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class B2 extends core::Object {
-  synthetic constructor •() → self::B2*
+  synthetic constructor •() → self::B2
     ;
   method twiceInterfaceMember() → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class B3 extends core::Object {
-  synthetic constructor •() → self::B3*
+  synthetic constructor •() → self::B3
     ;
   method extendedAndImplementedMember() → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class B4 extends self::B3 implements self::B1, self::B2 {
-  synthetic constructor •() → self::B4*
+  synthetic constructor •() → self::B4
     ;
 }
 class B5 extends self::B4 {
-  synthetic constructor •() → self::B5*
+  synthetic constructor •() → self::B5
     ;
 }
 class B6 extends self::B3 implements self::B1, self::B2 {
-  synthetic constructor •() → self::B6*
+  synthetic constructor •() → self::B6
     ;
 }
 abstract class C1 extends core::Object {
-  synthetic constructor •() → self::C1*
+  synthetic constructor •() → self::C1
     ;
   method mixedInAndImplementedClassMember() → void
     ;
   abstract method mixedInAndImplementedInterfaceMember() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C2 extends core::Object {
-  synthetic constructor •() → self::C2*
+  synthetic constructor •() → self::C2
     ;
   method mixedInAndImplementedClassMember() → void
     ;
   method mixedInAndImplementedInterfaceMember() → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class _C3&Object&C1 = core::Object with self::C1 /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_C3&Object&C1*
+  const synthetic constructor •() → self::_C3&Object&C1
     : super core::Object::•()
     ;
   mixin-super-stub method mixedInAndImplementedClassMember() → void
     return super.{self::C1::mixedInAndImplementedClassMember}();
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   abstract mixin-stub method mixedInAndImplementedInterfaceMember() → void; -> self::C1::mixedInAndImplementedInterfaceMember
 }
 abstract class C3 extends self::_C3&Object&C1 implements self::C2 {
-  synthetic constructor •() → self::C3*
+  synthetic constructor •() → self::C3
     ;
 }
 class C4 extends self::C3 {
-  synthetic constructor •() → self::C4*
+  synthetic constructor •() → self::C4
     ;
 }
 abstract class _C5&Object&C1 = core::Object with self::C1 /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_C5&Object&C1*
+  const synthetic constructor •() → self::_C5&Object&C1
     : super core::Object::•()
     ;
   mixin-super-stub method mixedInAndImplementedClassMember() → void
     return super.{self::C1::mixedInAndImplementedClassMember}();
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   abstract mixin-stub method mixedInAndImplementedInterfaceMember() → void; -> self::C1::mixedInAndImplementedInterfaceMember
 }
 class C5 extends self::_C5&Object&C1 implements self::C2 {
-  synthetic constructor •() → self::C5*
+  synthetic constructor •() → self::C5
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/hierarchy.dart.weak.transformed.expect b/pkg/front_end/testcases/general/hierarchy.dart.weak.transformed.expect
index 1b21721..42bebee 100644
--- a/pkg/front_end/testcases/general/hierarchy.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/hierarchy.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -97,224 +97,124 @@
 import "dart:core" as core;
 
 abstract class A1 extends core::Object {
-  synthetic constructor •() → self::A1*
+  synthetic constructor •() → self::A1
     : super core::Object::•()
     ;
   method extendedClassMember() → void {}
   abstract method extendedInterfaceMember() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class A2 extends core::Object {
-  synthetic constructor •() → self::A2*
+  synthetic constructor •() → self::A2
     : super core::Object::•()
     ;
   method mixedInClassMember() → void {}
   abstract method mixedInInterfaceMember() → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class _A3&A1&A2 extends self::A1 implements self::A2 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_A3&A1&A2*
+  synthetic constructor •() → self::_A3&A1&A2
     : super self::A1::•()
     ;
   method mixedInClassMember() → void {}
   abstract method mixedInInterfaceMember() → void;
 }
 abstract class A3 extends self::_A3&A1&A2 {
-  synthetic constructor •() → self::A3*
+  synthetic constructor •() → self::A3
     : super self::_A3&A1&A2::•()
     ;
   method declaredClassMember() → void {}
   abstract method declaredInterfaceMember() → void;
 }
 abstract class A4 extends self::A1 implements self::A2 /*isEliminatedMixin*/  {
-  synthetic constructor •() → self::A4*
+  synthetic constructor •() → self::A4
     : super self::A1::•()
     ;
   method mixedInClassMember() → void {}
   abstract method mixedInInterfaceMember() → void;
 }
 abstract class A5 extends core::Object implements self::A1 {
-  synthetic constructor •() → self::A5*
+  synthetic constructor •() → self::A5
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class A6 extends self::A1 implements self::A1 {
-  synthetic constructor •() → self::A6*
+  synthetic constructor •() → self::A6
     : super self::A1::•()
     ;
 }
 abstract class B1 extends core::Object {
-  synthetic constructor •() → self::B1*
+  synthetic constructor •() → self::B1
     : super core::Object: