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::•()
     ;
   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 extends core::Object implements self::C1 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_C3&Object&C1*
+  const synthetic constructor •() → self::_C3&Object&C1
     : super core::Object::•()
     ;
   method mixedInAndImplementedClassMember() → 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 method mixedInAndImplementedInterfaceMember() → void;
 }
 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 extends core::Object implements self::C1 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_C5&Object&C1*
+  const synthetic constructor •() → self::_C5&Object&C1
     : super core::Object::•()
     ;
   method mixedInAndImplementedClassMember() → 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 method mixedInAndImplementedInterfaceMember() → void;
 }
 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/if_null_in_cascade.dart b/pkg/front_end/testcases/general/if_null_in_cascade.dart
index 28ade66..00b1c61 100644
--- a/pkg/front_end/testcases/general/if_null_in_cascade.dart
+++ b/pkg/front_end/testcases/general/if_null_in_cascade.dart
@@ -1,13 +1,13 @@
 // 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
+
 class Class {
   method() {}
 }
 
 main() {
-  Class a;
+  Class? a;
   Class b = new Class();
   a ?? b
     ..method();
diff --git a/pkg/front_end/testcases/general/if_null_in_cascade.dart.textual_outline.expect b/pkg/front_end/testcases/general/if_null_in_cascade.dart.textual_outline.expect
index a758356..c83fa07 100644
--- a/pkg/front_end/testcases/general/if_null_in_cascade.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/if_null_in_cascade.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Class {
   method() {}
 }
diff --git a/pkg/front_end/testcases/general/if_null_in_cascade.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/if_null_in_cascade.dart.textual_outline_modelled.expect
index a758356..c83fa07 100644
--- a/pkg/front_end/testcases/general/if_null_in_cascade.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/if_null_in_cascade.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Class {
   method() {}
 }
diff --git a/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.expect b/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.expect
index 9873ac0..2ff4b75 100644
--- a/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.expect
+++ b/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.expect
@@ -1,27 +1,17 @@
-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::•()
     ;
   method method() → 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
 }
 static method main() → dynamic {
-  self::Class* a;
-  self::Class* b = new self::Class::•();
-  let final self::Class* #t1 = let final self::Class* #t2 = a in #t2 == null ?{self::Class*} b : #t2 in block {
-    #t1.{self::Class::method}(){() →* dynamic};
+  self::Class? a;
+  self::Class b = new self::Class::•();
+  let final self::Class #t1 = let final self::Class? #t2 = a in #t2 == null ?{self::Class} b : #t2{self::Class} in block {
+    #t1.{self::Class::method}(){() → dynamic};
   } =>#t1;
 }
diff --git a/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.modular.expect b/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.modular.expect
index 9873ac0..2ff4b75 100644
--- a/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-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::•()
     ;
   method method() → 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
 }
 static method main() → dynamic {
-  self::Class* a;
-  self::Class* b = new self::Class::•();
-  let final self::Class* #t1 = let final self::Class* #t2 = a in #t2 == null ?{self::Class*} b : #t2 in block {
-    #t1.{self::Class::method}(){() →* dynamic};
+  self::Class? a;
+  self::Class b = new self::Class::•();
+  let final self::Class #t1 = let final self::Class? #t2 = a in #t2 == null ?{self::Class} b : #t2{self::Class} in block {
+    #t1.{self::Class::method}(){() → dynamic};
   } =>#t1;
 }
diff --git a/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.outline.expect b/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.outline.expect
index aec3c89..4bd6c21 100644
--- a/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.outline.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
     ;
   method method() → 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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.transformed.expect b/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.transformed.expect
index 9873ac0..2ff4b75 100644
--- a/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/if_null_in_cascade.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-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::•()
     ;
   method method() → 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
 }
 static method main() → dynamic {
-  self::Class* a;
-  self::Class* b = new self::Class::•();
-  let final self::Class* #t1 = let final self::Class* #t2 = a in #t2 == null ?{self::Class*} b : #t2 in block {
-    #t1.{self::Class::method}(){() →* dynamic};
+  self::Class? a;
+  self::Class b = new self::Class::•();
+  let final self::Class #t1 = let final self::Class? #t2 = a in #t2 == null ?{self::Class} b : #t2{self::Class} in block {
+    #t1.{self::Class::method}(){() → dynamic};
   } =>#t1;
 }
diff --git a/pkg/front_end/testcases/general/if_null_in_list_literal.dart b/pkg/front_end/testcases/general/if_null_in_list_literal.dart
index 2e5832b..b8c9e92 100644
--- a/pkg/front_end/testcases/general/if_null_in_list_literal.dart
+++ b/pkg/front_end/testcases/general/if_null_in_list_literal.dart
@@ -1,8 +1,8 @@
 // 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
+
 main() {
-  Object a, b;
+  Object? a, b;
   return [a ?? b];
 }
diff --git a/pkg/front_end/testcases/general/if_null_in_list_literal.dart.textual_outline.expect b/pkg/front_end/testcases/general/if_null_in_list_literal.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/if_null_in_list_literal.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/if_null_in_list_literal.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/if_null_in_list_literal.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/if_null_in_list_literal.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/if_null_in_list_literal.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/if_null_in_list_literal.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/if_null_in_list_literal.dart.weak.expect b/pkg/front_end/testcases/general/if_null_in_list_literal.dart.weak.expect
index e781dcd..5f6dd7b 100644
--- a/pkg/front_end/testcases/general/if_null_in_list_literal.dart.weak.expect
+++ b/pkg/front_end/testcases/general/if_null_in_list_literal.dart.weak.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::Object* a;
-  core::Object* b;
-  return <core::Object*>[let final core::Object* #t1 = a in #t1 == null ?{core::Object*} b : #t1];
+  core::Object? a;
+  core::Object? b;
+  return <core::Object?>[let final core::Object? #t1 = a in #t1 == null ?{core::Object?} b : #t1{core::Object}];
 }
diff --git a/pkg/front_end/testcases/general/if_null_in_list_literal.dart.weak.modular.expect b/pkg/front_end/testcases/general/if_null_in_list_literal.dart.weak.modular.expect
index e781dcd..5f6dd7b 100644
--- a/pkg/front_end/testcases/general/if_null_in_list_literal.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/if_null_in_list_literal.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::Object* a;
-  core::Object* b;
-  return <core::Object*>[let final core::Object* #t1 = a in #t1 == null ?{core::Object*} b : #t1];
+  core::Object? a;
+  core::Object? b;
+  return <core::Object?>[let final core::Object? #t1 = a in #t1 == null ?{core::Object?} b : #t1{core::Object}];
 }
diff --git a/pkg/front_end/testcases/general/if_null_in_list_literal.dart.weak.outline.expect b/pkg/front_end/testcases/general/if_null_in_list_literal.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/general/if_null_in_list_literal.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/if_null_in_list_literal.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/if_null_in_list_literal.dart.weak.transformed.expect b/pkg/front_end/testcases/general/if_null_in_list_literal.dart.weak.transformed.expect
index 607d0f5..ca46a17 100644
--- a/pkg/front_end/testcases/general/if_null_in_list_literal.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/if_null_in_list_literal.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::Object* a;
-  core::Object* b;
-  return core::_GrowableList::_literal1<core::Object*>(let final core::Object* #t1 = a in #t1 == null ?{core::Object*} b : #t1);
+  core::Object? a;
+  core::Object? b;
+  return core::_GrowableList::_literal1<core::Object?>(let final core::Object? #t1 = a in #t1 == null ?{core::Object?} b : #t1{core::Object});
 }
diff --git a/pkg/front_end/testcases/general/if_null_in_set_literal.dart b/pkg/front_end/testcases/general/if_null_in_set_literal.dart
index 3fd7cbe..39688a3 100644
--- a/pkg/front_end/testcases/general/if_null_in_set_literal.dart
+++ b/pkg/front_end/testcases/general/if_null_in_set_literal.dart
@@ -1,8 +1,8 @@
 // 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
+
 main() {
-  Object a, b;
+  Object? a, b;
   return {a ?? b};
 }
diff --git a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.textual_outline.expect b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.expect b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.expect
index cc17e25..cb700ae 100644
--- a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.expect
+++ b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.expect
@@ -1,13 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:collection" as col;
 
 static method main() → dynamic {
-  core::Object* a;
-  core::Object* b;
+  core::Object? a;
+  core::Object? b;
   return block {
-    final core::Set<core::Object*>* #t1 = col::LinkedHashSet::•<core::Object*>();
-    #t1.{core::Set::add}{Invariant}(let final core::Object* #t2 = a in #t2 == null ?{core::Object*} b : #t2){(core::Object*) →* core::bool*};
+    final core::Set<core::Object?> #t1 = col::LinkedHashSet::•<core::Object?>();
+    #t1.{core::Set::add}{Invariant}(let final core::Object? #t2 = a in #t2 == null ?{core::Object?} b : #t2{core::Object}){(core::Object?) → core::bool};
   } =>#t1;
 }
diff --git a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.modular.expect b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.modular.expect
index cc17e25..cb700ae 100644
--- a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:collection" as col;
 
 static method main() → dynamic {
-  core::Object* a;
-  core::Object* b;
+  core::Object? a;
+  core::Object? b;
   return block {
-    final core::Set<core::Object*>* #t1 = col::LinkedHashSet::•<core::Object*>();
-    #t1.{core::Set::add}{Invariant}(let final core::Object* #t2 = a in #t2 == null ?{core::Object*} b : #t2){(core::Object*) →* core::bool*};
+    final core::Set<core::Object?> #t1 = col::LinkedHashSet::•<core::Object?>();
+    #t1.{core::Set::add}{Invariant}(let final core::Object? #t2 = a in #t2 == null ?{core::Object?} b : #t2{core::Object}){(core::Object?) → core::bool};
   } =>#t1;
 }
diff --git a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.outline.expect b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/if_null_in_set_literal.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/if_null_in_set_literal.dart.weak.transformed.expect b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.transformed.expect
index f6734712..ba90659 100644
--- a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.transformed.expect
@@ -1,13 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:collection" as col;
 
 static method main() → dynamic {
-  core::Object* a;
-  core::Object* b;
+  core::Object? a;
+  core::Object? b;
   return block {
-    final core::Set<core::Object*>* #t1 = new col::_CompactLinkedHashSet::•<core::Object*>();
-    #t1.{core::Set::add}{Invariant}(let final core::Object* #t2 = a in #t2 == null ?{core::Object*} b : #t2){(core::Object*) →* core::bool*};
+    final core::Set<core::Object?> #t1 = new col::_CompactLinkedHashSet::•<core::Object?>();
+    #t1.{core::Set::add}{Invariant}(let final core::Object? #t2 = a in #t2 == null ?{core::Object?} b : #t2{core::Object}){(core::Object?) → core::bool};
   } =>#t1;
 }
diff --git a/pkg/front_end/testcases/general/ignore_function.dart b/pkg/front_end/testcases/general/ignore_function.dart
index 2e61179..b06cf23 100644
--- a/pkg/front_end/testcases/general/ignore_function.dart
+++ b/pkg/front_end/testcases/general/ignore_function.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
+
 import "dart:core" as core;
 
 class A implements core.Function {
diff --git a/pkg/front_end/testcases/general/ignore_function.dart.textual_outline.expect b/pkg/front_end/testcases/general/ignore_function.dart.textual_outline.expect
index 74f997b..81dde83 100644
--- a/pkg/front_end/testcases/general/ignore_function.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/ignore_function.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "dart:core" as core;
 
 class A implements core.Function {
diff --git a/pkg/front_end/testcases/general/ignore_function.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/ignore_function.dart.textual_outline_modelled.expect
index 74f997b..81dde83 100644
--- a/pkg/front_end/testcases/general/ignore_function.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/ignore_function.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "dart:core" as core;
 
 class A implements core.Function {
diff --git a/pkg/front_end/testcases/general/ignore_function.dart.weak.expect b/pkg/front_end/testcases/general/ignore_function.dart.weak.expect
index 004e6cc..4524d99 100644
--- a/pkg/front_end/testcases/general/ignore_function.dart.weak.expect
+++ b/pkg/front_end/testcases/general/ignore_function.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,51 +12,24 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → 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 B extends core::Object implements self::Function {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → 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 Function extends core::Object {
-  synthetic constructor •() → self::Function*
+  synthetic constructor •() → self::Function
     : super core::Object::•()
     ;
-  operator ==(core::Object* other) → core::bool*
+  operator ==(core::Object other) → 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
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/ignore_function.dart.weak.modular.expect b/pkg/front_end/testcases/general/ignore_function.dart.weak.modular.expect
index 004e6cc..4524d99 100644
--- a/pkg/front_end/testcases/general/ignore_function.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/ignore_function.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,51 +12,24 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → 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 B extends core::Object implements self::Function {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → 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 Function extends core::Object {
-  synthetic constructor •() → self::Function*
+  synthetic constructor •() → self::Function
     : super core::Object::•()
     ;
-  operator ==(core::Object* other) → core::bool*
+  operator ==(core::Object other) → 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
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/ignore_function.dart.weak.outline.expect b/pkg/front_end/testcases/general/ignore_function.dart.weak.outline.expect
index 7b3df99..d0e86be 100644
--- a/pkg/front_end/testcases/general/ignore_function.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/ignore_function.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,49 +12,22 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → 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 B extends core::Object implements self::Function {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → 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 Function extends core::Object {
-  synthetic constructor •() → self::Function*
+  synthetic constructor •() → self::Function
     ;
-  operator ==(core::Object* other) → core::bool*
+  operator ==(core::Object other) → 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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/ignore_function.dart.weak.transformed.expect b/pkg/front_end/testcases/general/ignore_function.dart.weak.transformed.expect
index 004e6cc..4524d99 100644
--- a/pkg/front_end/testcases/general/ignore_function.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/ignore_function.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,51 +12,24 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → 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 B extends core::Object implements self::Function {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → 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 Function extends core::Object {
-  synthetic constructor •() → self::Function*
+  synthetic constructor •() → self::Function
     : super core::Object::•()
     ;
-  operator ==(core::Object* other) → core::bool*
+  operator ==(core::Object other) → 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
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression.dart b/pkg/front_end/testcases/general/illegal_named_function_expression.dart
index 2571785..ac09db3 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression.dart
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression.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() {
   var x = void f<T>(T t) {};
   print(x.runtimeType);
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.textual_outline.expect b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.weak.expect b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.weak.expect
index 96419b3..812ba6f 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.weak.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,7 +14,7 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  <T extends core::Object* = dynamic>(T*) →* Null x = let final <T extends core::Object* = dynamic>(T*) →* Null f = <T extends core::Object* = dynamic>(T* t) → Null {} in f;
-  core::print(x.{core::Object::runtimeType}{core::Type*});
-  core::print(let final <T extends core::Object* = dynamic>(T*) →* Null g = <T extends core::Object* = dynamic>(T* t) → Null {} in g);
+  <T extends core::Object? = dynamic>(T%) → Null x = let final <T extends core::Object? = dynamic>(T%) → Null f = <T extends core::Object? = dynamic>(T% t) → Null {} in f;
+  core::print(x.{core::Object::runtimeType}{core::Type});
+  core::print(let final <T extends core::Object? = dynamic>(T%) → Null g = <T extends core::Object? = dynamic>(T% t) → Null {} in g);
 }
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.weak.modular.expect b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.weak.modular.expect
index 96419b3..812ba6f 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,7 +14,7 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  <T extends core::Object* = dynamic>(T*) →* Null x = let final <T extends core::Object* = dynamic>(T*) →* Null f = <T extends core::Object* = dynamic>(T* t) → Null {} in f;
-  core::print(x.{core::Object::runtimeType}{core::Type*});
-  core::print(let final <T extends core::Object* = dynamic>(T*) →* Null g = <T extends core::Object* = dynamic>(T* t) → Null {} in g);
+  <T extends core::Object? = dynamic>(T%) → Null x = let final <T extends core::Object? = dynamic>(T%) → Null f = <T extends core::Object? = dynamic>(T% t) → Null {} in f;
+  core::print(x.{core::Object::runtimeType}{core::Type});
+  core::print(let final <T extends core::Object? = dynamic>(T%) → Null g = <T extends core::Object? = dynamic>(T% t) → Null {} in g);
 }
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.weak.outline.expect b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression.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/illegal_named_function_expression.dart.weak.transformed.expect b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.weak.transformed.expect
index 96419b3..812ba6f 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,7 +14,7 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  <T extends core::Object* = dynamic>(T*) →* Null x = let final <T extends core::Object* = dynamic>(T*) →* Null f = <T extends core::Object* = dynamic>(T* t) → Null {} in f;
-  core::print(x.{core::Object::runtimeType}{core::Type*});
-  core::print(let final <T extends core::Object* = dynamic>(T*) →* Null g = <T extends core::Object* = dynamic>(T* t) → Null {} in g);
+  <T extends core::Object? = dynamic>(T%) → Null x = let final <T extends core::Object? = dynamic>(T%) → Null f = <T extends core::Object? = dynamic>(T% t) → Null {} in f;
+  core::print(x.{core::Object::runtimeType}{core::Type});
+  core::print(let final <T extends core::Object? = dynamic>(T%) → Null g = <T extends core::Object? = dynamic>(T% t) → Null {} in g);
 }
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart
index 1b0e211..2b3df38 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression_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() {
   void f() {}
   print(void f() {});
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.textual_outline.expect b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.weak.expect b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.weak.expect
index 63bcf5a..470f8b7 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.weak.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,5 +11,5 @@
 
 static method main() → dynamic {
   function f() → void {}
-  core::print(let final () →* Null f = () → Null {} in f);
+  core::print(let final () → Null f = () → Null {} in f);
 }
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.weak.modular.expect b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.weak.modular.expect
index 63bcf5a..470f8b7 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,5 +11,5 @@
 
 static method main() → dynamic {
   function f() → void {}
-  core::print(let final () →* Null f = () → Null {} in f);
+  core::print(let final () → Null f = () → Null {} in f);
 }
diff --git a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.weak.outline.expect b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.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/illegal_named_function_expression_scope.dart.weak.transformed.expect b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.weak.transformed.expect
index 63bcf5a..470f8b7 100644
--- a/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/illegal_named_function_expression_scope.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,5 +11,5 @@
 
 static method main() → dynamic {
   function f() → void {}
-  core::print(let final () →* Null f = () → Null {} in f);
+  core::print(let final () → Null f = () → Null {} in f);
 }
diff --git a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart
index 87a1c6c..f5a8e03 100644
--- a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart
+++ b/pkg/front_end/testcases/general/implicit_const_with_static_fields.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
+
 const constTopLevelField = 42;
 
 class C {
diff --git a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.textual_outline.expect b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.textual_outline.expect
index 0d643b9..31deaf6 100644
--- a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 const constTopLevelField = 42;
 
 class C {
diff --git a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.textual_outline_modelled.expect
index fb623f8..7a87544 100644
--- a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   const C(x);
   static const constField = 87;
diff --git a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.expect b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.expect
index 93d939a..9577415 100644
--- a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.expect
+++ b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.expect
@@ -1,24 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  static const field core::int* constField = #C1;
-  const constructor •(dynamic x) → self::C*
+  static const field core::int constField = #C1;
+  const constructor •(dynamic x) → 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
 }
-static const field core::int* constTopLevelField = #C2;
+static const field core::int constTopLevelField = #C2;
 static method main() → dynamic {
   new self::C::•(#C1);
   new self::C::•(#C2);
diff --git a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.modular.expect b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.modular.expect
index 93d939a..9577415 100644
--- a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.modular.expect
@@ -1,24 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  static const field core::int* constField = #C1;
-  const constructor •(dynamic x) → self::C*
+  static const field core::int constField = #C1;
+  const constructor •(dynamic x) → 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
 }
-static const field core::int* constTopLevelField = #C2;
+static const field core::int constTopLevelField = #C2;
 static method main() → dynamic {
   new self::C::•(#C1);
   new self::C::•(#C2);
diff --git a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.outline.expect b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.outline.expect
index d89b87a..cacf45f 100644
--- a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  static const field core::int* constField = 87;
-  const constructor •(dynamic x) → self::C*
+  static const field core::int constField = 87;
+  const constructor •(dynamic x) → 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
 }
-static const field core::int* constTopLevelField = 42;
+static const field core::int constTopLevelField = 42;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.transformed.expect b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.transformed.expect
index 93d939a..9577415 100644
--- a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.weak.transformed.expect
@@ -1,24 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  static const field core::int* constField = #C1;
-  const constructor •(dynamic x) → self::C*
+  static const field core::int constField = #C1;
+  const constructor •(dynamic x) → 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
 }
-static const field core::int* constTopLevelField = #C2;
+static const field core::int constTopLevelField = #C2;
 static method main() → dynamic {
   new self::C::•(#C1);
   new self::C::•(#C2);
diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart b/pkg/front_end/testcases/general/implicit_constructor_02.dart
index 6e6421f..818c138 100644
--- a/pkg/front_end/testcases/general/implicit_constructor_02.dart
+++ b/pkg/front_end/testcases/general/implicit_constructor_02.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
+
 // Derived from co19/Language/Mixins/Mixin_Application/implicit_constructor_t02
 
 class A {
diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline.expect b/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline.expect
index 2b9d581..9b741d7 100644
--- a/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   bool v1;
   num v2;
diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline_modelled.expect
index 73848df..fca520a 100644
--- a/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A(bool this.v1, num this.v2);
   bool v1;
diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.expect b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.expect
index febd66a..d6dff2e 100644
--- a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.expect
+++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.expect
@@ -1,55 +1,35 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::bool* v1;
-  field core::num* v2;
-  constructor •(core::bool* v1, core::num* v2) → self::A*
+  field core::bool v1;
+  field core::num v2;
+  constructor •(core::bool v1, core::num v2) → self::A
     : self::A::v1 = v1, self::A::v2 = v2, 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 M1 extends core::Object {
-  field core::num* v2 = 1.{core::int::unary-}(){() →* core::int*};
-  synthetic constructor •() → self::M1*
+  field core::num v2 = 1.{core::int::unary-}(){() → core::int};
+  synthetic constructor •() → self::M1
     : 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 = self::A with self::M1 {
-  synthetic constructor •(core::bool* v1, core::num* v2) → self::C*
+  synthetic constructor •(core::bool v1, core::num v2) → self::C
     : super self::A::•(v1, v2)
     ;
-  mixin-super-stub get v2() → core::num*
+  mixin-super-stub get v2() → core::num
     return super.{self::M1::v2};
-  mixin-super-stub set v2(core::num* value) → void
+  mixin-super-stub set v2(core::num value) → void
     return super.{self::M1::v2} = value;
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•(true, 2);
-  self::expect(true, c.{self::A::v1}{core::bool*});
-  self::expect(1.{core::int::unary-}(){() →* core::int*}, c.{self::C::v2}{core::num*});
+  self::C c = new self::C::•(true, 2);
+  self::expect(true, c.{self::A::v1}{core::bool});
+  self::expect(1.{core::int::unary-}(){() → core::int}, c.{self::C::v2}{core::num});
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual))
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
     throw "Expected ${expected}, actual ${actual}";
 }
diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.modular.expect b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.modular.expect
index febd66a..d6dff2e 100644
--- a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.modular.expect
@@ -1,55 +1,35 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::bool* v1;
-  field core::num* v2;
-  constructor •(core::bool* v1, core::num* v2) → self::A*
+  field core::bool v1;
+  field core::num v2;
+  constructor •(core::bool v1, core::num v2) → self::A
     : self::A::v1 = v1, self::A::v2 = v2, 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 M1 extends core::Object {
-  field core::num* v2 = 1.{core::int::unary-}(){() →* core::int*};
-  synthetic constructor •() → self::M1*
+  field core::num v2 = 1.{core::int::unary-}(){() → core::int};
+  synthetic constructor •() → self::M1
     : 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 = self::A with self::M1 {
-  synthetic constructor •(core::bool* v1, core::num* v2) → self::C*
+  synthetic constructor •(core::bool v1, core::num v2) → self::C
     : super self::A::•(v1, v2)
     ;
-  mixin-super-stub get v2() → core::num*
+  mixin-super-stub get v2() → core::num
     return super.{self::M1::v2};
-  mixin-super-stub set v2(core::num* value) → void
+  mixin-super-stub set v2(core::num value) → void
     return super.{self::M1::v2} = value;
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•(true, 2);
-  self::expect(true, c.{self::A::v1}{core::bool*});
-  self::expect(1.{core::int::unary-}(){() →* core::int*}, c.{self::C::v2}{core::num*});
+  self::C c = new self::C::•(true, 2);
+  self::expect(true, c.{self::A::v1}{core::bool});
+  self::expect(1.{core::int::unary-}(){() → core::int}, c.{self::C::v2}{core::num});
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual))
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
     throw "Expected ${expected}, actual ${actual}";
 }
diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.outline.expect b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.outline.expect
index eee145b..e5fe3d6 100644
--- a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.outline.expect
@@ -1,45 +1,25 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::bool* v1;
-  field core::num* v2;
-  constructor •(core::bool* v1, core::num* v2) → self::A*
+  field core::bool v1;
+  field core::num v2;
+  constructor •(core::bool v1, core::num v2) → 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 M1 extends core::Object {
-  field core::num* v2;
-  synthetic constructor •() → self::M1*
+  field core::num v2;
+  synthetic constructor •() → self::M1
     ;
-  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 = self::A with self::M1 {
-  synthetic constructor •(core::bool* v1, core::num* v2) → self::C*
+  synthetic constructor •(core::bool v1, core::num v2) → self::C
     : super self::A::•(v1, v2)
     ;
-  mixin-super-stub get v2() → core::num*
+  mixin-super-stub get v2() → core::num
     return super.{self::M1::v2};
-  mixin-super-stub set v2(core::num* value) → void
+  mixin-super-stub set v2(core::num value) → void
     return super.{self::M1::v2} = value;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.transformed.expect b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.transformed.expect
index 2bee5f5..e48e2b7 100644
--- a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.transformed.expect
@@ -1,53 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::bool* v1;
-  field core::num* v2;
-  constructor •(core::bool* v1, core::num* v2) → self::A*
+  field core::bool v1;
+  field core::num v2;
+  constructor •(core::bool v1, core::num v2) → self::A
     : self::A::v1 = v1, self::A::v2 = v2, 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 M1 extends core::Object {
-  field core::num* v2 = 1.{core::int::unary-}(){() →* core::int*};
-  synthetic constructor •() → self::M1*
+  field core::num v2 = 1.{core::int::unary-}(){() → core::int};
+  synthetic constructor •() → self::M1
     : 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::A implements self::M1 /*isEliminatedMixin*/  {
-  field core::num* v2 = 1.{core::int::unary-}(){() →* core::int*};
-  synthetic constructor •(core::bool* v1, core::num* v2) → self::C*
+  field core::num v2 = 1.{core::int::unary-}(){() → core::int};
+  synthetic constructor •(core::bool v1, core::num v2) → self::C
     : super self::A::•(v1, v2)
     ;
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•(true, 2);
-  self::expect(true, c.{self::A::v1}{core::bool*});
-  self::expect(1.{core::int::unary-}(){() →* core::int*}, c.{self::C::v2}{core::num*});
+  self::C c = new self::C::•(true, 2);
+  self::expect(true, c.{self::A::v1}{core::bool});
+  self::expect(1.{core::int::unary-}(){() → core::int}, c.{self::C::v2}{core::num});
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual))
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
     throw "Expected ${expected}, actual ${actual}";
 }
 
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart b/pkg/front_end/testcases/general/implicit_covariance.dart
index 09d9876..90b9dfc 100644
--- a/pkg/front_end/testcases/general/implicit_covariance.dart
+++ b/pkg/front_end/testcases/general/implicit_covariance.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 A<T> {
   foo(T x);
 }
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline.expect
index bf4edd7..764181a 100644
--- a/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class A<T> {
   foo(T x);
 }
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline_modelled.expect
index bf4edd7..764181a 100644
--- a/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class A<T> {
   foo(T x);
 }
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.expect
index 3fd3297..771e48d 100644
--- a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.expect
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.expect
@@ -1,71 +1,41 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T%>
     : super core::Object::•()
     ;
-  abstract method foo(covariant-by-class self::A::T* x) → 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 method foo(covariant-by-class self::A::T% x) → dynamic;
 }
-abstract class B<T extends core::Object* = dynamic> extends core::Object implements self::A<self::B::T*> {
-  synthetic constructor •() → self::B<self::B::T*>*
+abstract class B<T extends core::Object? = dynamic> extends core::Object implements self::A<self::B::T%> {
+  synthetic constructor •() → self::B<self::B::T%>
     : 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::•()
     ;
-  method foo(core::num* x) → 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
+  method foo(core::num x) → dynamic {}
 }
-abstract class _D&C&B<T extends core::num*> = self::C with self::B<self::_D&C&B::T*> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_D&C&B<self::_D&C&B::T*>*
+abstract class _D&C&B<T extends core::num> = self::C with self::B<self::_D&C&B::T> /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_D&C&B<self::_D&C&B::T>
     : super self::C::•()
     ;
-  forwarding-stub method foo(covariant-by-class core::num* x) → dynamic
+  forwarding-stub method foo(covariant-by-class core::num x) → dynamic
     return super.{self::C::foo}(x);
 }
-class D<T extends core::num*> extends self::_D&C&B<self::D::T*> {
-  synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::num> extends self::_D&C&B<self::D::T> {
+  synthetic constructor •() → self::D<self::D::T>
     : super self::_D&C&B::•()
     ;
 }
-class E<T extends core::num*> = self::C with self::B<self::E::T*> {
-  synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::num> = self::C with self::B<self::E::T> {
+  synthetic constructor •() → self::E<self::E::T>
     : super self::C::•()
     ;
-  forwarding-stub method foo(covariant-by-class core::num* x) → dynamic
+  forwarding-stub method foo(covariant-by-class core::num x) → dynamic
     return super.{self::C::foo}(x);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.modular.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.modular.expect
index 3fd3297..771e48d 100644
--- a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.modular.expect
@@ -1,71 +1,41 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T%>
     : super core::Object::•()
     ;
-  abstract method foo(covariant-by-class self::A::T* x) → 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 method foo(covariant-by-class self::A::T% x) → dynamic;
 }
-abstract class B<T extends core::Object* = dynamic> extends core::Object implements self::A<self::B::T*> {
-  synthetic constructor •() → self::B<self::B::T*>*
+abstract class B<T extends core::Object? = dynamic> extends core::Object implements self::A<self::B::T%> {
+  synthetic constructor •() → self::B<self::B::T%>
     : 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::•()
     ;
-  method foo(core::num* x) → 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
+  method foo(core::num x) → dynamic {}
 }
-abstract class _D&C&B<T extends core::num*> = self::C with self::B<self::_D&C&B::T*> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_D&C&B<self::_D&C&B::T*>*
+abstract class _D&C&B<T extends core::num> = self::C with self::B<self::_D&C&B::T> /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_D&C&B<self::_D&C&B::T>
     : super self::C::•()
     ;
-  forwarding-stub method foo(covariant-by-class core::num* x) → dynamic
+  forwarding-stub method foo(covariant-by-class core::num x) → dynamic
     return super.{self::C::foo}(x);
 }
-class D<T extends core::num*> extends self::_D&C&B<self::D::T*> {
-  synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::num> extends self::_D&C&B<self::D::T> {
+  synthetic constructor •() → self::D<self::D::T>
     : super self::_D&C&B::•()
     ;
 }
-class E<T extends core::num*> = self::C with self::B<self::E::T*> {
-  synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::num> = self::C with self::B<self::E::T> {
+  synthetic constructor •() → self::E<self::E::T>
     : super self::C::•()
     ;
-  forwarding-stub method foo(covariant-by-class core::num* x) → dynamic
+  forwarding-stub method foo(covariant-by-class core::num x) → dynamic
     return super.{self::C::foo}(x);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.outline.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.outline.expect
index 19af3b7..5a74619 100644
--- a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.outline.expect
@@ -1,68 +1,38 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T%>
     ;
-  abstract method foo(covariant-by-class self::A::T* x) → 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 method foo(covariant-by-class self::A::T% x) → dynamic;
 }
-abstract class B<T extends core::Object* = dynamic> extends core::Object implements self::A<self::B::T*> {
-  synthetic constructor •() → self::B<self::B::T*>*
+abstract class B<T extends core::Object? = dynamic> extends core::Object implements self::A<self::B::T%> {
+  synthetic constructor •() → self::B<self::B::T%>
     ;
-  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
     ;
-  method foo(core::num* x) → dynamic
+  method foo(core::num x) → 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 _D&C&B<T extends core::num*> = self::C with self::B<self::_D&C&B::T*> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_D&C&B<self::_D&C&B::T*>*
+abstract class _D&C&B<T extends core::num> = self::C with self::B<self::_D&C&B::T> /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_D&C&B<self::_D&C&B::T>
     : super self::C::•()
     ;
-  forwarding-stub method foo(covariant-by-class core::num* x) → dynamic
+  forwarding-stub method foo(covariant-by-class core::num x) → dynamic
     return super.{self::C::foo}(x);
 }
-class D<T extends core::num*> extends self::_D&C&B<self::D::T*> {
-  synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::num> extends self::_D&C&B<self::D::T> {
+  synthetic constructor •() → self::D<self::D::T>
     ;
 }
-class E<T extends core::num*> = self::C with self::B<self::E::T*> {
-  synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::num> = self::C with self::B<self::E::T> {
+  synthetic constructor •() → self::E<self::E::T>
     : super self::C::•()
     ;
-  forwarding-stub method foo(covariant-by-class core::num* x) → dynamic
+  forwarding-stub method foo(covariant-by-class core::num x) → dynamic
     return super.{self::C::foo}(x);
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.transformed.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.transformed.expect
index 0d94a2c..e51ef1e 100644
--- a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.transformed.expect
@@ -1,71 +1,41 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T%>
     : super core::Object::•()
     ;
-  abstract method foo(covariant-by-class self::A::T* x) → 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 method foo(covariant-by-class self::A::T% x) → dynamic;
 }
-abstract class B<T extends core::Object* = dynamic> extends core::Object implements self::A<self::B::T*> {
-  synthetic constructor •() → self::B<self::B::T*>*
+abstract class B<T extends core::Object? = dynamic> extends core::Object implements self::A<self::B::T%> {
+  synthetic constructor •() → self::B<self::B::T%>
     : 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::•()
     ;
-  method foo(core::num* x) → 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
+  method foo(core::num x) → dynamic {}
 }
-abstract class _D&C&B<T extends core::num*> extends self::C implements self::B<self::_D&C&B::T*> /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_D&C&B<self::_D&C&B::T*>*
+abstract class _D&C&B<T extends core::num> extends self::C implements self::B<self::_D&C&B::T> /*isAnonymousMixin,isEliminatedMixin*/  {
+  synthetic constructor •() → self::_D&C&B<self::_D&C&B::T>
     : super self::C::•()
     ;
-  forwarding-stub method foo(covariant-by-class core::num* x) → dynamic
+  forwarding-stub method foo(covariant-by-class core::num x) → dynamic
     return super.{self::C::foo}(x);
 }
-class D<T extends core::num*> extends self::_D&C&B<self::D::T*> {
-  synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::num> extends self::_D&C&B<self::D::T> {
+  synthetic constructor •() → self::D<self::D::T>
     : super self::_D&C&B::•()
     ;
 }
-class E<T extends core::num*> extends self::C implements self::B<self::E::T*> /*isEliminatedMixin*/  {
-  synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::num> extends self::C implements self::B<self::E::T> /*isEliminatedMixin*/  {
+  synthetic constructor •() → self::E<self::E::T>
     : super self::C::•()
     ;
-  forwarding-stub method foo(covariant-by-class core::num* x) → dynamic
+  forwarding-stub method foo(covariant-by-class core::num x) → dynamic
     return super.{self::C::foo}(x);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/implicit_new.dart b/pkg/front_end/testcases/general/implicit_new.dart
index f39dba1..d10629f 100644
--- a/pkg/front_end/testcases/general/implicit_new.dart
+++ b/pkg/front_end/testcases/general/implicit_new.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
+
 import "implicit_new.dart" as prefix;
 
 class Foo {
diff --git a/pkg/front_end/testcases/general/implicit_new.dart.textual_outline.expect b/pkg/front_end/testcases/general/implicit_new.dart.textual_outline.expect
index 5b045ab..c3f5004 100644
--- a/pkg/front_end/testcases/general/implicit_new.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/implicit_new.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "implicit_new.dart" as prefix;
 
 class Foo {
diff --git a/pkg/front_end/testcases/general/implicit_new.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/implicit_new.dart.textual_outline_modelled.expect
index f68c2a5..72ae030 100644
--- a/pkg/front_end/testcases/general/implicit_new.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/implicit_new.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "implicit_new.dart" as prefix;
 
 class Bar {
diff --git a/pkg/front_end/testcases/general/implicit_new.dart.weak.expect b/pkg/front_end/testcases/general/implicit_new.dart.weak.expect
index 908fc59..d5d53c8 100644
--- a/pkg/front_end/testcases/general/implicit_new.dart.weak.expect
+++ b/pkg/front_end/testcases/general/implicit_new.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,56 +16,26 @@
 import "org-dartlang-testcase:///implicit_new.dart" as prefix;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : super core::Object::•()
     ;
   operator +(dynamic other) → 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 Bar extends core::Object {
-  constructor named() → self::Bar*
+  constructor named() → self::Bar
     : super core::Object::•()
     ;
   operator +(dynamic other) → 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 IndexTester extends core::Object {
-  synthetic constructor •() → self::IndexTester*
+  synthetic constructor •() → self::IndexTester
     : super core::Object::•()
     ;
   operator [](dynamic _) → dynamic
     return null;
   operator []=(dynamic _a, dynamic _b) → 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 method testNSM() → dynamic {
   invalid-type y = invalid-expression "pkg/front_end/testcases/general/implicit_new.dart:18:18: Error: Couldn't find constructor 'Bar'.
@@ -78,29 +48,29 @@
 static method f(dynamic x) → dynamic
   return x;
 static method main() → dynamic {
-  self::Foo* x = new self::Foo::•();
+  self::Foo x = new self::Foo::•();
   x = new self::Foo::•();
-  self::Bar* z = new self::Bar::named();
+  self::Bar z = new self::Bar::named();
   z = new self::Bar::named();
   self::f(new self::Foo::•());
   self::f(new self::Foo::•());
   self::f(new self::Bar::named());
   self::f(new self::Bar::named());
-  core::List<core::Object*>* l = <core::Object*>[new self::Foo::•(), new self::Bar::named()];
-  l = <core::Object*>[new self::Foo::•(), new self::Bar::named()];
-  core::Map<core::String*, core::Object*>* m = <core::String*, core::Object*>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
-  m = <core::String*, core::Object*>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
-  self::IndexTester* i = new self::IndexTester::•();
-  i.{self::IndexTester::[]}(new self::Foo::•()){(dynamic) →* dynamic};
-  i.{self::IndexTester::[]}(new self::Foo::•()){(dynamic) →* dynamic};
-  i.{self::IndexTester::[]}(new self::Bar::named()){(dynamic) →* dynamic};
-  i.{self::IndexTester::[]}(new self::Bar::named()){(dynamic) →* dynamic};
-  i.{self::IndexTester::[]=}(new self::Foo::•(), null){(dynamic, dynamic) →* void};
-  i.{self::IndexTester::[]=}(new self::Foo::•(), null){(dynamic, dynamic) →* void};
-  i.{self::IndexTester::[]=}(new self::Bar::named(), null){(dynamic, dynamic) →* void};
-  i.{self::IndexTester::[]=}(new self::Bar::named(), null){(dynamic, dynamic) →* void};
-  new self::Foo::•().{self::Foo::+}(new self::Bar::named()){(dynamic) →* dynamic};
-  new self::Foo::•().{self::Foo::+}(new self::Bar::named()){(dynamic) →* dynamic};
-  new self::Bar::named().{self::Bar::+}(new self::Foo::•()){(dynamic) →* dynamic};
-  new self::Bar::named().{self::Bar::+}(new self::Foo::•()){(dynamic) →* dynamic};
+  core::List<core::Object> l = <core::Object>[new self::Foo::•(), new self::Bar::named()];
+  l = <core::Object>[new self::Foo::•(), new self::Bar::named()];
+  core::Map<core::String, core::Object> m = <core::String, core::Object>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
+  m = <core::String, core::Object>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
+  self::IndexTester i = new self::IndexTester::•();
+  i.{self::IndexTester::[]}(new self::Foo::•()){(dynamic) → dynamic};
+  i.{self::IndexTester::[]}(new self::Foo::•()){(dynamic) → dynamic};
+  i.{self::IndexTester::[]}(new self::Bar::named()){(dynamic) → dynamic};
+  i.{self::IndexTester::[]}(new self::Bar::named()){(dynamic) → dynamic};
+  i.{self::IndexTester::[]=}(new self::Foo::•(), null){(dynamic, dynamic) → void};
+  i.{self::IndexTester::[]=}(new self::Foo::•(), null){(dynamic, dynamic) → void};
+  i.{self::IndexTester::[]=}(new self::Bar::named(), null){(dynamic, dynamic) → void};
+  i.{self::IndexTester::[]=}(new self::Bar::named(), null){(dynamic, dynamic) → void};
+  new self::Foo::•().{self::Foo::+}(new self::Bar::named()){(dynamic) → dynamic};
+  new self::Foo::•().{self::Foo::+}(new self::Bar::named()){(dynamic) → dynamic};
+  new self::Bar::named().{self::Bar::+}(new self::Foo::•()){(dynamic) → dynamic};
+  new self::Bar::named().{self::Bar::+}(new self::Foo::•()){(dynamic) → dynamic};
 }
diff --git a/pkg/front_end/testcases/general/implicit_new.dart.weak.modular.expect b/pkg/front_end/testcases/general/implicit_new.dart.weak.modular.expect
index 908fc59..d5d53c8 100644
--- a/pkg/front_end/testcases/general/implicit_new.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/implicit_new.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,56 +16,26 @@
 import "org-dartlang-testcase:///implicit_new.dart" as prefix;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : super core::Object::•()
     ;
   operator +(dynamic other) → 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 Bar extends core::Object {
-  constructor named() → self::Bar*
+  constructor named() → self::Bar
     : super core::Object::•()
     ;
   operator +(dynamic other) → 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 IndexTester extends core::Object {
-  synthetic constructor •() → self::IndexTester*
+  synthetic constructor •() → self::IndexTester
     : super core::Object::•()
     ;
   operator [](dynamic _) → dynamic
     return null;
   operator []=(dynamic _a, dynamic _b) → 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 method testNSM() → dynamic {
   invalid-type y = invalid-expression "pkg/front_end/testcases/general/implicit_new.dart:18:18: Error: Couldn't find constructor 'Bar'.
@@ -78,29 +48,29 @@
 static method f(dynamic x) → dynamic
   return x;
 static method main() → dynamic {
-  self::Foo* x = new self::Foo::•();
+  self::Foo x = new self::Foo::•();
   x = new self::Foo::•();
-  self::Bar* z = new self::Bar::named();
+  self::Bar z = new self::Bar::named();
   z = new self::Bar::named();
   self::f(new self::Foo::•());
   self::f(new self::Foo::•());
   self::f(new self::Bar::named());
   self::f(new self::Bar::named());
-  core::List<core::Object*>* l = <core::Object*>[new self::Foo::•(), new self::Bar::named()];
-  l = <core::Object*>[new self::Foo::•(), new self::Bar::named()];
-  core::Map<core::String*, core::Object*>* m = <core::String*, core::Object*>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
-  m = <core::String*, core::Object*>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
-  self::IndexTester* i = new self::IndexTester::•();
-  i.{self::IndexTester::[]}(new self::Foo::•()){(dynamic) →* dynamic};
-  i.{self::IndexTester::[]}(new self::Foo::•()){(dynamic) →* dynamic};
-  i.{self::IndexTester::[]}(new self::Bar::named()){(dynamic) →* dynamic};
-  i.{self::IndexTester::[]}(new self::Bar::named()){(dynamic) →* dynamic};
-  i.{self::IndexTester::[]=}(new self::Foo::•(), null){(dynamic, dynamic) →* void};
-  i.{self::IndexTester::[]=}(new self::Foo::•(), null){(dynamic, dynamic) →* void};
-  i.{self::IndexTester::[]=}(new self::Bar::named(), null){(dynamic, dynamic) →* void};
-  i.{self::IndexTester::[]=}(new self::Bar::named(), null){(dynamic, dynamic) →* void};
-  new self::Foo::•().{self::Foo::+}(new self::Bar::named()){(dynamic) →* dynamic};
-  new self::Foo::•().{self::Foo::+}(new self::Bar::named()){(dynamic) →* dynamic};
-  new self::Bar::named().{self::Bar::+}(new self::Foo::•()){(dynamic) →* dynamic};
-  new self::Bar::named().{self::Bar::+}(new self::Foo::•()){(dynamic) →* dynamic};
+  core::List<core::Object> l = <core::Object>[new self::Foo::•(), new self::Bar::named()];
+  l = <core::Object>[new self::Foo::•(), new self::Bar::named()];
+  core::Map<core::String, core::Object> m = <core::String, core::Object>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
+  m = <core::String, core::Object>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
+  self::IndexTester i = new self::IndexTester::•();
+  i.{self::IndexTester::[]}(new self::Foo::•()){(dynamic) → dynamic};
+  i.{self::IndexTester::[]}(new self::Foo::•()){(dynamic) → dynamic};
+  i.{self::IndexTester::[]}(new self::Bar::named()){(dynamic) → dynamic};
+  i.{self::IndexTester::[]}(new self::Bar::named()){(dynamic) → dynamic};
+  i.{self::IndexTester::[]=}(new self::Foo::•(), null){(dynamic, dynamic) → void};
+  i.{self::IndexTester::[]=}(new self::Foo::•(), null){(dynamic, dynamic) → void};
+  i.{self::IndexTester::[]=}(new self::Bar::named(), null){(dynamic, dynamic) → void};
+  i.{self::IndexTester::[]=}(new self::Bar::named(), null){(dynamic, dynamic) → void};
+  new self::Foo::•().{self::Foo::+}(new self::Bar::named()){(dynamic) → dynamic};
+  new self::Foo::•().{self::Foo::+}(new self::Bar::named()){(dynamic) → dynamic};
+  new self::Bar::named().{self::Bar::+}(new self::Foo::•()){(dynamic) → dynamic};
+  new self::Bar::named().{self::Bar::+}(new self::Foo::•()){(dynamic) → dynamic};
 }
diff --git a/pkg/front_end/testcases/general/implicit_new.dart.weak.outline.expect b/pkg/front_end/testcases/general/implicit_new.dart.weak.outline.expect
index 9eab8b7..f9e081a 100644
--- a/pkg/front_end/testcases/general/implicit_new.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/implicit_new.dart.weak.outline.expect
@@ -1,58 +1,28 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "org-dartlang-testcase:///implicit_new.dart" as prefix;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     ;
   operator +(dynamic other) → 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 Bar extends core::Object {
-  constructor named() → self::Bar*
+  constructor named() → self::Bar
     ;
   operator +(dynamic other) → 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 IndexTester extends core::Object {
-  synthetic constructor •() → self::IndexTester*
+  synthetic constructor •() → self::IndexTester
     ;
   operator [](dynamic _) → dynamic
     ;
   operator []=(dynamic _a, dynamic _b) → 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 method testNSM() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/implicit_new.dart.weak.transformed.expect b/pkg/front_end/testcases/general/implicit_new.dart.weak.transformed.expect
index 3e77916..a0e4d0a 100644
--- a/pkg/front_end/testcases/general/implicit_new.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/implicit_new.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,56 +16,26 @@
 import "org-dartlang-testcase:///implicit_new.dart" as prefix;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : super core::Object::•()
     ;
   operator +(dynamic other) → 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 Bar extends core::Object {
-  constructor named() → self::Bar*
+  constructor named() → self::Bar
     : super core::Object::•()
     ;
   operator +(dynamic other) → 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 IndexTester extends core::Object {
-  synthetic constructor •() → self::IndexTester*
+  synthetic constructor •() → self::IndexTester
     : super core::Object::•()
     ;
   operator [](dynamic _) → dynamic
     return null;
   operator []=(dynamic _a, dynamic _b) → 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 method testNSM() → dynamic {
   invalid-type y = invalid-expression "pkg/front_end/testcases/general/implicit_new.dart:18:18: Error: Couldn't find constructor 'Bar'.
@@ -78,29 +48,29 @@
 static method f(dynamic x) → dynamic
   return x;
 static method main() → dynamic {
-  self::Foo* x = new self::Foo::•();
+  self::Foo x = new self::Foo::•();
   x = new self::Foo::•();
-  self::Bar* z = new self::Bar::named();
+  self::Bar z = new self::Bar::named();
   z = new self::Bar::named();
   self::f(new self::Foo::•());
   self::f(new self::Foo::•());
   self::f(new self::Bar::named());
   self::f(new self::Bar::named());
-  core::List<core::Object*>* l = core::_GrowableList::_literal2<core::Object*>(new self::Foo::•(), new self::Bar::named());
-  l = core::_GrowableList::_literal2<core::Object*>(new self::Foo::•(), new self::Bar::named());
-  core::Map<core::String*, core::Object*>* m = <core::String*, core::Object*>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
-  m = <core::String*, core::Object*>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
-  self::IndexTester* i = new self::IndexTester::•();
-  i.{self::IndexTester::[]}(new self::Foo::•()){(dynamic) →* dynamic};
-  i.{self::IndexTester::[]}(new self::Foo::•()){(dynamic) →* dynamic};
-  i.{self::IndexTester::[]}(new self::Bar::named()){(dynamic) →* dynamic};
-  i.{self::IndexTester::[]}(new self::Bar::named()){(dynamic) →* dynamic};
-  i.{self::IndexTester::[]=}(new self::Foo::•(), null){(dynamic, dynamic) →* void};
-  i.{self::IndexTester::[]=}(new self::Foo::•(), null){(dynamic, dynamic) →* void};
-  i.{self::IndexTester::[]=}(new self::Bar::named(), null){(dynamic, dynamic) →* void};
-  i.{self::IndexTester::[]=}(new self::Bar::named(), null){(dynamic, dynamic) →* void};
-  new self::Foo::•().{self::Foo::+}(new self::Bar::named()){(dynamic) →* dynamic};
-  new self::Foo::•().{self::Foo::+}(new self::Bar::named()){(dynamic) →* dynamic};
-  new self::Bar::named().{self::Bar::+}(new self::Foo::•()){(dynamic) →* dynamic};
-  new self::Bar::named().{self::Bar::+}(new self::Foo::•()){(dynamic) →* dynamic};
+  core::List<core::Object> l = core::_GrowableList::_literal2<core::Object>(new self::Foo::•(), new self::Bar::named());
+  l = core::_GrowableList::_literal2<core::Object>(new self::Foo::•(), new self::Bar::named());
+  core::Map<core::String, core::Object> m = <core::String, core::Object>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
+  m = <core::String, core::Object>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
+  self::IndexTester i = new self::IndexTester::•();
+  i.{self::IndexTester::[]}(new self::Foo::•()){(dynamic) → dynamic};
+  i.{self::IndexTester::[]}(new self::Foo::•()){(dynamic) → dynamic};
+  i.{self::IndexTester::[]}(new self::Bar::named()){(dynamic) → dynamic};
+  i.{self::IndexTester::[]}(new self::Bar::named()){(dynamic) → dynamic};
+  i.{self::IndexTester::[]=}(new self::Foo::•(), null){(dynamic, dynamic) → void};
+  i.{self::IndexTester::[]=}(new self::Foo::•(), null){(dynamic, dynamic) → void};
+  i.{self::IndexTester::[]=}(new self::Bar::named(), null){(dynamic, dynamic) → void};
+  i.{self::IndexTester::[]=}(new self::Bar::named(), null){(dynamic, dynamic) → void};
+  new self::Foo::•().{self::Foo::+}(new self::Bar::named()){(dynamic) → dynamic};
+  new self::Foo::•().{self::Foo::+}(new self::Bar::named()){(dynamic) → dynamic};
+  new self::Bar::named().{self::Bar::+}(new self::Foo::•()){(dynamic) → dynamic};
+  new self::Bar::named().{self::Bar::+}(new self::Foo::•()){(dynamic) → dynamic};
 }
diff --git a/pkg/front_end/testcases/general/implicit_scope_test.dart b/pkg/front_end/testcases/general/implicit_scope_test.dart
index 3da69fc..f612532 100644
--- a/pkg/front_end/testcases/general/implicit_scope_test.dart
+++ b/pkg/front_end/testcases/general/implicit_scope_test.dart
@@ -1,9 +1,10 @@
 // Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
+
 // Test that if, while etc create an implicit scope if the body
 // is not a compound statement.
-// @dart=2.9
+
 import "package:expect/expect.dart";
 
 class ImplicitScopeTest {
diff --git a/pkg/front_end/testcases/general/implicit_scope_test.dart.textual_outline.expect b/pkg/front_end/testcases/general/implicit_scope_test.dart.textual_outline.expect
index 3ac254a..ea2f363 100644
--- a/pkg/front_end/testcases/general/implicit_scope_test.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/implicit_scope_test.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "package:expect/expect.dart";
 
 class ImplicitScopeTest {
diff --git a/pkg/front_end/testcases/general/implicit_scope_test.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/implicit_scope_test.dart.textual_outline_modelled.expect
index 3ac254a..ea2f363 100644
--- a/pkg/front_end/testcases/general/implicit_scope_test.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/implicit_scope_test.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "package:expect/expect.dart";
 
 class ImplicitScopeTest {
diff --git a/pkg/front_end/testcases/general/implicit_scope_test.dart.weak.expect b/pkg/front_end/testcases/general/implicit_scope_test.dart.weak.expect
index ef54b52..6bbb002 100644
--- a/pkg/front_end/testcases/general/implicit_scope_test.dart.weak.expect
+++ b/pkg/front_end/testcases/general/implicit_scope_test.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,53 +6,43 @@
 import "package:expect/expect.dart";
 
 class ImplicitScopeTest extends core::Object {
-  synthetic constructor •() → self::ImplicitScopeTest*
+  synthetic constructor •() → self::ImplicitScopeTest
     : super core::Object::•()
     ;
-  static method alwaysTrue() → core::bool* {
-    return 1.{core::num::+}(1){(core::num*) →* core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 2;
+  static method alwaysTrue() → core::bool {
+    return 1.{core::num::+}(1){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 2;
   }
   static method testMain() → dynamic {
-    core::String* a = "foo";
+    core::String a = "foo";
     dynamic b;
     if(self::ImplicitScopeTest::alwaysTrue()) {
-      core::String* a = "bar";
+      core::String a = "bar";
     }
     else {
-      core::String* b = a;
+      core::String b = a;
     }
     exp::Expect::equals("foo", a);
     exp::Expect::equals(null, b);
     while (!self::ImplicitScopeTest::alwaysTrue()) {
-      core::String* a = "bar";
-      core::String* b = "baz";
+      core::String a = "bar";
+      core::String b = "baz";
     }
     exp::Expect::equals("foo", a);
     exp::Expect::equals(null, b);
-    for (core::int* i = 0; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-      core::String* a = "bar";
-      core::String* b = "baz";
+    for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      core::String a = "bar";
+      core::String b = "baz";
     }
     exp::Expect::equals("foo", a);
     exp::Expect::equals(null, b);
     do {
-      core::String* a = "bar";
-      core::String* b = "baz";
+      core::String a = "bar";
+      core::String b = "baz";
     }
-    while ("black" =={core::String::==}{(core::Object*) →* core::bool*} "white")
+    while ("black" =={core::String::==}{(core::Object) → core::bool} "white")
     exp::Expect::equals("foo", a);
     exp::Expect::equals(null, 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
 }
 static method main() → dynamic {
   self::ImplicitScopeTest::testMain();
diff --git a/pkg/front_end/testcases/general/implicit_scope_test.dart.weak.modular.expect b/pkg/front_end/testcases/general/implicit_scope_test.dart.weak.modular.expect
index ef54b52..6bbb002 100644
--- a/pkg/front_end/testcases/general/implicit_scope_test.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/implicit_scope_test.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,53 +6,43 @@
 import "package:expect/expect.dart";
 
 class ImplicitScopeTest extends core::Object {
-  synthetic constructor •() → self::ImplicitScopeTest*
+  synthetic constructor •() → self::ImplicitScopeTest
     : super core::Object::•()
     ;
-  static method alwaysTrue() → core::bool* {
-    return 1.{core::num::+}(1){(core::num*) →* core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 2;
+  static method alwaysTrue() → core::bool {
+    return 1.{core::num::+}(1){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 2;
   }
   static method testMain() → dynamic {
-    core::String* a = "foo";
+    core::String a = "foo";
     dynamic b;
     if(self::ImplicitScopeTest::alwaysTrue()) {
-      core::String* a = "bar";
+      core::String a = "bar";
     }
     else {
-      core::String* b = a;
+      core::String b = a;
     }
     exp::Expect::equals("foo", a);
     exp::Expect::equals(null, b);
     while (!self::ImplicitScopeTest::alwaysTrue()) {
-      core::String* a = "bar";
-      core::String* b = "baz";
+      core::String a = "bar";
+      core::String b = "baz";
     }
     exp::Expect::equals("foo", a);
     exp::Expect::equals(null, b);
-    for (core::int* i = 0; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-      core::String* a = "bar";
-      core::String* b = "baz";
+    for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      core::String a = "bar";
+      core::String b = "baz";
     }
     exp::Expect::equals("foo", a);
     exp::Expect::equals(null, b);
     do {
-      core::String* a = "bar";
-      core::String* b = "baz";
+      core::String a = "bar";
+      core::String b = "baz";
     }
-    while ("black" =={core::String::==}{(core::Object*) →* core::bool*} "white")
+    while ("black" =={core::String::==}{(core::Object) → core::bool} "white")
     exp::Expect::equals("foo", a);
     exp::Expect::equals(null, 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
 }
 static method main() → dynamic {
   self::ImplicitScopeTest::testMain();
diff --git a/pkg/front_end/testcases/general/implicit_scope_test.dart.weak.outline.expect b/pkg/front_end/testcases/general/implicit_scope_test.dart.weak.outline.expect
index a3bc6ba..f42d113 100644
--- a/pkg/front_end/testcases/general/implicit_scope_test.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/implicit_scope_test.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "package:expect/expect.dart";
 
 class ImplicitScopeTest extends core::Object {
-  synthetic constructor •() → self::ImplicitScopeTest*
+  synthetic constructor •() → self::ImplicitScopeTest
     ;
-  static method alwaysTrue() → core::bool*
+  static method alwaysTrue() → core::bool
     ;
   static method testMain() → 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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/implicit_scope_test.dart.weak.transformed.expect b/pkg/front_end/testcases/general/implicit_scope_test.dart.weak.transformed.expect
index 444893e..0c189c3 100644
--- a/pkg/front_end/testcases/general/implicit_scope_test.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/implicit_scope_test.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,53 +6,43 @@
 import "package:expect/expect.dart";
 
 class ImplicitScopeTest extends core::Object {
-  synthetic constructor •() → self::ImplicitScopeTest*
+  synthetic constructor •() → self::ImplicitScopeTest
     : super core::Object::•()
     ;
-  static method alwaysTrue() → core::bool* {
-    return 1.{core::num::+}(1){(core::num*) →* core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 2;
+  static method alwaysTrue() → core::bool {
+    return 1.{core::num::+}(1){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 2;
   }
   static method testMain() → dynamic {
-    core::String* a = "foo";
+    core::String a = "foo";
     dynamic b;
     if(self::ImplicitScopeTest::alwaysTrue()) {
-      core::String* a = "bar";
+      core::String a = "bar";
     }
     else {
-      core::String* b = a;
+      core::String b = a;
     }
     exp::Expect::equals("foo", a);
     exp::Expect::equals(null, b);
     while (!self::ImplicitScopeTest::alwaysTrue()) {
-      core::String* a = "bar";
-      core::String* b = "baz";
+      core::String a = "bar";
+      core::String b = "baz";
     }
     exp::Expect::equals("foo", a);
     exp::Expect::equals(null, b);
-    for (core::int* i = 0; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-      core::String* a = "bar";
-      core::String* b = "baz";
+    for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      core::String a = "bar";
+      core::String b = "baz";
     }
     exp::Expect::equals("foo", a);
     exp::Expect::equals(null, b);
     do {
-      core::String* a = "bar";
-      core::String* b = "baz";
+      core::String a = "bar";
+      core::String b = "baz";
     }
-    while ("black" =={core::String::==}{(core::Object*) →* core::bool*} "white")
+    while ("black" =={core::String::==}{(core::Object) → core::bool} "white")
     exp::Expect::equals("foo", a);
     exp::Expect::equals(null, 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
 }
 static method main() → dynamic {
   self::ImplicitScopeTest::testMain();
@@ -60,6 +50,6 @@
 
 
 Extra constant evaluation status:
-Evaluated: EqualsCall @ org-dartlang-testcase:///implicit_scope_test.dart:11:18 -> BoolConstant(true)
-Evaluated: EqualsCall @ org-dartlang-testcase:///implicit_scope_test.dart:32:49 -> BoolConstant(false)
+Evaluated: EqualsCall @ org-dartlang-testcase:///implicit_scope_test.dart:12:18 -> BoolConstant(true)
+Evaluated: EqualsCall @ org-dartlang-testcase:///implicit_scope_test.dart:33:49 -> BoolConstant(false)
 Extra constant evaluation: evaluated: 28, effectively constant: 2
diff --git a/pkg/front_end/testcases/general/implicit_this.dart b/pkg/front_end/testcases/general/implicit_this.dart
index 289b962..ed2a435 100644
--- a/pkg/front_end/testcases/general/implicit_this.dart
+++ b/pkg/front_end/testcases/general/implicit_this.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 C {
   m() {
     print("Called m");
diff --git a/pkg/front_end/testcases/general/implicit_this.dart.textual_outline.expect b/pkg/front_end/testcases/general/implicit_this.dart.textual_outline.expect
index a3fe55a..663566a 100644
--- a/pkg/front_end/testcases/general/implicit_this.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/implicit_this.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   m() {}
   testC() {}
diff --git a/pkg/front_end/testcases/general/implicit_this.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/implicit_this.dart.textual_outline_modelled.expect
index a3fe55a..663566a 100644
--- a/pkg/front_end/testcases/general/implicit_this.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/implicit_this.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   m() {}
   testC() {}
diff --git a/pkg/front_end/testcases/general/implicit_this.dart.weak.expect b/pkg/front_end/testcases/general/implicit_this.dart.weak.expect
index 23d7a44..28fdb2a 100644
--- a/pkg/front_end/testcases/general/implicit_this.dart.weak.expect
+++ b/pkg/front_end/testcases/general/implicit_this.dart.weak.expect
@@ -1,37 +1,27 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   method m() → dynamic {
     core::print("Called m");
   }
   method testC() → dynamic {
-    this.{self::C::m}(){() →* dynamic};
+    this.{self::C::m}(){() → 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 D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
   method testD() → dynamic {
-    this.{self::C::m}(){() →* dynamic};
+    this.{self::C::m}(){() → dynamic};
   }
 }
 static method main() → dynamic {
-  new self::C::•().{self::C::testC}(){() →* dynamic};
-  new self::D::•().{self::D::testD}(){() →* dynamic};
+  new self::C::•().{self::C::testC}(){() → dynamic};
+  new self::D::•().{self::D::testD}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/general/implicit_this.dart.weak.modular.expect b/pkg/front_end/testcases/general/implicit_this.dart.weak.modular.expect
index 23d7a44..28fdb2a 100644
--- a/pkg/front_end/testcases/general/implicit_this.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/implicit_this.dart.weak.modular.expect
@@ -1,37 +1,27 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   method m() → dynamic {
     core::print("Called m");
   }
   method testC() → dynamic {
-    this.{self::C::m}(){() →* dynamic};
+    this.{self::C::m}(){() → 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 D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
   method testD() → dynamic {
-    this.{self::C::m}(){() →* dynamic};
+    this.{self::C::m}(){() → dynamic};
   }
 }
 static method main() → dynamic {
-  new self::C::•().{self::C::testC}(){() →* dynamic};
-  new self::D::•().{self::D::testD}(){() →* dynamic};
+  new self::C::•().{self::C::testC}(){() → dynamic};
+  new self::D::•().{self::D::testD}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/general/implicit_this.dart.weak.outline.expect b/pkg/front_end/testcases/general/implicit_this.dart.weak.outline.expect
index 1a47f4d..485c6e9 100644
--- a/pkg/front_end/testcases/general/implicit_this.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/implicit_this.dart.weak.outline.expect
@@ -1,27 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
   method m() → dynamic
     ;
   method testC() → 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 D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
   method testD() → dynamic
     ;
diff --git a/pkg/front_end/testcases/general/implicit_this.dart.weak.transformed.expect b/pkg/front_end/testcases/general/implicit_this.dart.weak.transformed.expect
index 23d7a44..28fdb2a 100644
--- a/pkg/front_end/testcases/general/implicit_this.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/implicit_this.dart.weak.transformed.expect
@@ -1,37 +1,27 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   method m() → dynamic {
     core::print("Called m");
   }
   method testC() → dynamic {
-    this.{self::C::m}(){() →* dynamic};
+    this.{self::C::m}(){() → 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 D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
   method testD() → dynamic {
-    this.{self::C::m}(){() →* dynamic};
+    this.{self::C::m}(){() → dynamic};
   }
 }
 static method main() → dynamic {
-  new self::C::•().{self::C::testC}(){() →* dynamic};
-  new self::D::•().{self::D::testD}(){() →* dynamic};
+  new self::C::•().{self::C::testC}(){() → dynamic};
+  new self::D::•().{self::D::testD}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/general/import_conflicting_getters.dart b/pkg/front_end/testcases/general/import_conflicting_getters.dart
index 3d6400b..cc3bc26 100644
--- a/pkg/front_end/testcases/general/import_conflicting_getters.dart
+++ b/pkg/front_end/testcases/general/import_conflicting_getters.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
+
 import 'import_conflicting_getters_lib1.dart';
 import 'import_conflicting_getters_lib2.dart';
 
diff --git a/pkg/front_end/testcases/general/import_conflicting_getters.dart.textual_outline.expect b/pkg/front_end/testcases/general/import_conflicting_getters.dart.textual_outline.expect
index a48d255..4e8aa56 100644
--- a/pkg/front_end/testcases/general/import_conflicting_getters.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_getters.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'import_conflicting_getters_lib1.dart';
 import 'import_conflicting_getters_lib2.dart';
 
diff --git a/pkg/front_end/testcases/general/import_conflicting_getters.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/import_conflicting_getters.dart.textual_outline_modelled.expect
index 7294c5c..2c010bc 100644
--- a/pkg/front_end/testcases/general/import_conflicting_getters.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_getters.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'import_conflicting_getters_lib1.dart';
 import 'import_conflicting_getters_lib2.dart';
 
diff --git a/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.expect b/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.expect
index 14ee367..3c3aadf 100644
--- a/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,16 +19,16 @@
         ^^^");
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
-static get foo() → core::int*
+static get foo() → core::int
   return 42;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
-static get foo() → core::int*
+static get foo() → core::int
   return 87;
diff --git a/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.modular.expect b/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.modular.expect
index 14ee367..3c3aadf 100644
--- a/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,16 +19,16 @@
         ^^^");
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
-static get foo() → core::int*
+static get foo() → core::int
   return 42;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
-static get foo() → core::int*
+static get foo() → core::int
   return 87;
diff --git a/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.outline.expect b/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.outline.expect
index a6a70a1..17bf3fb 100644
--- a/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "org-dartlang-testcase:///import_conflicting_getters_lib1.dart";
@@ -9,16 +9,16 @@
 static method errors() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
-static get foo() → core::int*
+static get foo() → core::int
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
-static get foo() → core::int*
+static get foo() → core::int
   ;
diff --git a/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.transformed.expect b/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.transformed.expect
index 14ee367..3c3aadf 100644
--- a/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_getters.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,16 +19,16 @@
         ^^^");
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
-static get foo() → core::int*
+static get foo() → core::int
   return 42;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
-static get foo() → core::int*
+static get foo() → core::int
   return 87;
diff --git a/pkg/front_end/testcases/general/import_conflicting_getters_lib1.dart b/pkg/front_end/testcases/general/import_conflicting_getters_lib1.dart
index 9dc57c0..1891fee 100644
--- a/pkg/front_end/testcases/general/import_conflicting_getters_lib1.dart
+++ b/pkg/front_end/testcases/general/import_conflicting_getters_lib1.dart
@@ -1,5 +1,5 @@
 // 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
+
 int get foo => 42;
diff --git a/pkg/front_end/testcases/general/import_conflicting_getters_lib2.dart b/pkg/front_end/testcases/general/import_conflicting_getters_lib2.dart
index c8a21ba..906c788 100644
--- a/pkg/front_end/testcases/general/import_conflicting_getters_lib2.dart
+++ b/pkg/front_end/testcases/general/import_conflicting_getters_lib2.dart
@@ -1,5 +1,5 @@
 // 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
+
 int get foo => 87;
diff --git a/pkg/front_end/testcases/general/import_conflicting_setters.dart b/pkg/front_end/testcases/general/import_conflicting_setters.dart
index 4fb3d63..e9e730c 100644
--- a/pkg/front_end/testcases/general/import_conflicting_setters.dart
+++ b/pkg/front_end/testcases/general/import_conflicting_setters.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
+
 import 'import_conflicting_setters_lib1.dart';
 import 'import_conflicting_setters_lib2.dart';
 
diff --git a/pkg/front_end/testcases/general/import_conflicting_setters.dart.textual_outline.expect b/pkg/front_end/testcases/general/import_conflicting_setters.dart.textual_outline.expect
index de6e574..9f1f251 100644
--- a/pkg/front_end/testcases/general/import_conflicting_setters.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_setters.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'import_conflicting_setters_lib1.dart';
 import 'import_conflicting_setters_lib2.dart';
 
diff --git a/pkg/front_end/testcases/general/import_conflicting_setters.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/import_conflicting_setters.dart.textual_outline_modelled.expect
index 9c670c0..4bc9bf2 100644
--- a/pkg/front_end/testcases/general/import_conflicting_setters.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_setters.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'import_conflicting_setters_lib1.dart';
 import 'import_conflicting_setters_lib2.dart';
 
diff --git a/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.expect b/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.expect
index 26d7537..807305c 100644
--- a/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,14 +18,14 @@
   ^^^";
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
-static set foo(core::int* value) → void {}
+static set foo(core::int value) → void {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
-static set foo(core::int* value) → void {}
+static set foo(core::int value) → void {}
diff --git a/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.modular.expect b/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.modular.expect
index 26d7537..807305c 100644
--- a/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,14 +18,14 @@
   ^^^";
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
-static set foo(core::int* value) → void {}
+static set foo(core::int value) → void {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
-static set foo(core::int* value) → void {}
+static set foo(core::int value) → void {}
diff --git a/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.outline.expect b/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.outline.expect
index 11fc2b6..312f068 100644
--- a/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "org-dartlang-testcase:///import_conflicting_setters_lib1.dart";
@@ -9,16 +9,16 @@
 static method errors() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
-static set foo(core::int* value) → void
+static set foo(core::int value) → void
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
-static set foo(core::int* value) → void
+static set foo(core::int value) → void
   ;
diff --git a/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.transformed.expect b/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.transformed.expect
index 26d7537..807305c 100644
--- a/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_setters.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,14 +18,14 @@
   ^^^";
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
-static set foo(core::int* value) → void {}
+static set foo(core::int value) → void {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
-static set foo(core::int* value) → void {}
+static set foo(core::int value) → void {}
diff --git a/pkg/front_end/testcases/general/import_conflicting_setters_lib1.dart b/pkg/front_end/testcases/general/import_conflicting_setters_lib1.dart
index b292152..ddcf836 100644
--- a/pkg/front_end/testcases/general/import_conflicting_setters_lib1.dart
+++ b/pkg/front_end/testcases/general/import_conflicting_setters_lib1.dart
@@ -1,5 +1,5 @@
 // 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
+
 void set foo(int value) {}
diff --git a/pkg/front_end/testcases/general/import_conflicting_setters_lib2.dart b/pkg/front_end/testcases/general/import_conflicting_setters_lib2.dart
index b292152..ddcf836 100644
--- a/pkg/front_end/testcases/general/import_conflicting_setters_lib2.dart
+++ b/pkg/front_end/testcases/general/import_conflicting_setters_lib2.dart
@@ -1,5 +1,5 @@
 // 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
+
 void set foo(int value) {}
diff --git a/pkg/front_end/testcases/general/import_conflicting_type_member.dart b/pkg/front_end/testcases/general/import_conflicting_type_member.dart
index 7d9525b..9173fee 100644
--- a/pkg/front_end/testcases/general/import_conflicting_type_member.dart
+++ b/pkg/front_end/testcases/general/import_conflicting_type_member.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
+
 import 'import_conflicting_type_member_lib1.dart';
 import 'import_conflicting_type_member_lib2.dart';
 
diff --git a/pkg/front_end/testcases/general/import_conflicting_type_member.dart.textual_outline.expect b/pkg/front_end/testcases/general/import_conflicting_type_member.dart.textual_outline.expect
index 1b63cbc..5f91bbc 100644
--- a/pkg/front_end/testcases/general/import_conflicting_type_member.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_type_member.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'import_conflicting_type_member_lib1.dart';
 import 'import_conflicting_type_member_lib2.dart';
 
diff --git a/pkg/front_end/testcases/general/import_conflicting_type_member.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/import_conflicting_type_member.dart.textual_outline_modelled.expect
index 2b4d5e8..4574f84 100644
--- a/pkg/front_end/testcases/general/import_conflicting_type_member.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_type_member.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'import_conflicting_type_member_lib1.dart';
 import 'import_conflicting_type_member_lib2.dart';
 
diff --git a/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.expect b/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.expect
index d883515..d605b20 100644
--- a/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -23,27 +23,17 @@
   ^^^";
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self2::Foo*
+  synthetic constructor •() → self2::Foo
     : 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
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 
 static method Foo() → dynamic {}
diff --git a/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.modular.expect b/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.modular.expect
index d883515..d605b20 100644
--- a/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -23,27 +23,17 @@
   ^^^";
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self2::Foo*
+  synthetic constructor •() → self2::Foo
     : 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
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 
 static method Foo() → dynamic {}
diff --git a/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.outline.expect b/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.outline.expect
index d2b0c91..be34d94 100644
--- a/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "org-dartlang-testcase:///import_conflicting_type_member_lib1.dart";
@@ -9,26 +9,16 @@
 static method errors() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self2::Foo*
+  synthetic constructor •() → self2::Foo
     ;
-  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
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 
 static method Foo() → dynamic
diff --git a/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.transformed.expect b/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.transformed.expect
index d883515..d605b20 100644
--- a/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_type_member.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -23,27 +23,17 @@
   ^^^";
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self2::Foo*
+  synthetic constructor •() → self2::Foo
     : 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
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 
 static method Foo() → dynamic {}
diff --git a/pkg/front_end/testcases/general/import_conflicting_type_member_lib1.dart b/pkg/front_end/testcases/general/import_conflicting_type_member_lib1.dart
index fdcef7f..cbb7d07 100644
--- a/pkg/front_end/testcases/general/import_conflicting_type_member_lib1.dart
+++ b/pkg/front_end/testcases/general/import_conflicting_type_member_lib1.dart
@@ -1,5 +1,5 @@
 // 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
+
 class Foo {}
diff --git a/pkg/front_end/testcases/general/import_conflicting_type_member_lib2.dart b/pkg/front_end/testcases/general/import_conflicting_type_member_lib2.dart
index 1a4623e..ccaec3c 100644
--- a/pkg/front_end/testcases/general/import_conflicting_type_member_lib2.dart
+++ b/pkg/front_end/testcases/general/import_conflicting_type_member_lib2.dart
@@ -1,5 +1,5 @@
 // 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() {}
diff --git a/pkg/front_end/testcases/general/import_conflicting_types.dart b/pkg/front_end/testcases/general/import_conflicting_types.dart
index 8a8869d..1f34f02 100644
--- a/pkg/front_end/testcases/general/import_conflicting_types.dart
+++ b/pkg/front_end/testcases/general/import_conflicting_types.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
+
 import 'import_conflicting_types_lib1.dart';
 import 'import_conflicting_types_lib2.dart';
 
diff --git a/pkg/front_end/testcases/general/import_conflicting_types.dart.textual_outline.expect b/pkg/front_end/testcases/general/import_conflicting_types.dart.textual_outline.expect
index 612856d..1d6b54a 100644
--- a/pkg/front_end/testcases/general/import_conflicting_types.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_types.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'import_conflicting_types_lib1.dart';
 import 'import_conflicting_types_lib2.dart';
 
diff --git a/pkg/front_end/testcases/general/import_conflicting_types.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/import_conflicting_types.dart.textual_outline_modelled.expect
index 662cbba..8b0c6e4 100644
--- a/pkg/front_end/testcases/general/import_conflicting_types.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_types.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'import_conflicting_types_lib1.dart';
 import 'import_conflicting_types_lib2.dart';
 
diff --git a/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.expect b/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.expect
index 6154f37..3e5af7b 100644
--- a/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,42 +16,22 @@
   invalid-type foo;
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self2::Foo*
+  synthetic constructor •() → self2::Foo
     : 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
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self3::Foo*
+  synthetic constructor •() → self3::Foo
     : 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
 }
diff --git a/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.modular.expect b/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.modular.expect
index 6154f37..3e5af7b 100644
--- a/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,42 +16,22 @@
   invalid-type foo;
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self2::Foo*
+  synthetic constructor •() → self2::Foo
     : 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
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self3::Foo*
+  synthetic constructor •() → self3::Foo
     : 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
 }
diff --git a/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.outline.expect b/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.outline.expect
index 5963c0d..36b00c4 100644
--- a/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "org-dartlang-testcase:///import_conflicting_types_lib1.dart";
@@ -9,40 +9,20 @@
 static method errors() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self2::Foo*
+  synthetic constructor •() → self2::Foo
     ;
-  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
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self3::Foo*
+  synthetic constructor •() → self3::Foo
     ;
-  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
 }
diff --git a/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.transformed.expect b/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.transformed.expect
index 6154f37..3e5af7b 100644
--- a/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/import_conflicting_types.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,42 +16,22 @@
   invalid-type foo;
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self2::Foo*
+  synthetic constructor •() → self2::Foo
     : 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
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self3::Foo*
+  synthetic constructor •() → self3::Foo
     : 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
 }
diff --git a/pkg/front_end/testcases/general/import_conflicting_types_lib1.dart b/pkg/front_end/testcases/general/import_conflicting_types_lib1.dart
index fdcef7f..cbb7d07 100644
--- a/pkg/front_end/testcases/general/import_conflicting_types_lib1.dart
+++ b/pkg/front_end/testcases/general/import_conflicting_types_lib1.dart
@@ -1,5 +1,5 @@
 // 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
+
 class Foo {}
diff --git a/pkg/front_end/testcases/general/import_conflicting_types_lib2.dart b/pkg/front_end/testcases/general/import_conflicting_types_lib2.dart
index fdcef7f..cbb7d07 100644
--- a/pkg/front_end/testcases/general/import_conflicting_types_lib2.dart
+++ b/pkg/front_end/testcases/general/import_conflicting_types_lib2.dart
@@ -1,5 +1,5 @@
 // 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
+
 class Foo {}
diff --git a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart
index 2be1450..e174922 100644
--- a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart
+++ b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.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 C {
   C.a(this);
   C.b(this.);
diff --git a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.textual_outline.expect b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.textual_outline.expect
index 2795d4c..09932c3 100644
--- a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   C.a(this);
   C.b(this.);
diff --git a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.expect b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.expect
index 2967d68..4929abf 100644
--- a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.expect
+++ b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -26,26 +26,16 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor a(dynamic this) → self::C*
+  constructor a(dynamic this) → self::C
     : super core::Object::•()
     ;
-  constructor b() → self::C*
+  constructor b() → self::C
     : super core::Object::•()
     ;
-  constructor c(dynamic this, dynamic p) → self::C*
+  constructor c(dynamic this, dynamic p) → self::C
     : super core::Object::•()
     ;
-  constructor d() → self::C*
+  constructor d() → 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
 }
diff --git a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.modular.expect b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.modular.expect
index 2967d68..4929abf 100644
--- a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -26,26 +26,16 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor a(dynamic this) → self::C*
+  constructor a(dynamic this) → self::C
     : super core::Object::•()
     ;
-  constructor b() → self::C*
+  constructor b() → self::C
     : super core::Object::•()
     ;
-  constructor c(dynamic this, dynamic p) → self::C*
+  constructor c(dynamic this, dynamic p) → self::C
     : super core::Object::•()
     ;
-  constructor d() → self::C*
+  constructor d() → 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
 }
diff --git a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.outline.expect b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.outline.expect
index c23e2de..6fb2920 100644
--- a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -26,22 +26,12 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor a(dynamic this) → self::C*
+  constructor a(dynamic this) → self::C
     ;
-  constructor b() → self::C*
+  constructor b() → self::C
     ;
-  constructor c(dynamic this, dynamic p) → self::C*
+  constructor c(dynamic this, dynamic p) → self::C
     ;
-  constructor d() → self::C*
+  constructor d() → 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
 }
diff --git a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.transformed.expect b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.transformed.expect
index 2967d68..4929abf 100644
--- a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -26,26 +26,16 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor a(dynamic this) → self::C*
+  constructor a(dynamic this) → self::C
     : super core::Object::•()
     ;
-  constructor b() → self::C*
+  constructor b() → self::C
     : super core::Object::•()
     ;
-  constructor c(dynamic this, dynamic p) → self::C*
+  constructor c(dynamic this, dynamic p) → self::C
     : super core::Object::•()
     ;
-  constructor d() → self::C*
+  constructor d() → 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
 }
diff --git a/pkg/front_end/testcases/general/infer_equals.dart b/pkg/front_end/testcases/general/infer_equals.dart
index 12aa6e7..cbf2c19 100644
--- a/pkg/front_end/testcases/general/infer_equals.dart
+++ b/pkg/front_end/testcases/general/infer_equals.dart
@@ -1,8 +1,6 @@
 // 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
-// @dart=2.6
 
 class Class {
   var field;
diff --git a/pkg/front_end/testcases/general/infer_equals.dart.textual_outline.expect b/pkg/front_end/testcases/general/infer_equals.dart.textual_outline.expect
index ad1ebf1..d24ff23 100644
--- a/pkg/front_end/testcases/general/infer_equals.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/infer_equals.dart.textual_outline.expect
@@ -1,5 +1,3 @@
-// @dart = 2.9
-// @dart = 2.6
 class Class {
   var field;
   operator ==(o) {}
diff --git a/pkg/front_end/testcases/general/infer_equals.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/infer_equals.dart.textual_outline_modelled.expect
index 7cc0fedd..4e10c6f 100644
--- a/pkg/front_end/testcases/general/infer_equals.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/infer_equals.dart.textual_outline_modelled.expect
@@ -1,5 +1,3 @@
-// @dart = 2.9
-// @dart = 2.6
 class Class {
   operator ==(o) {}
   var field;
diff --git a/pkg/front_end/testcases/general/infer_equals.dart.weak.expect b/pkg/front_end/testcases/general/infer_equals.dart.weak.expect
index 4b8aa53e..d1873a6 100644
--- a/pkg/front_end/testcases/general/infer_equals.dart.weak.expect
+++ b/pkg/front_end/testcases/general/infer_equals.dart.weak.expect
@@ -1,25 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  operator ==(dynamic o) → core::bool* {
-    if(!(o is self::Class*))
+  operator ==(core::Object o) → core::bool {
+    if(!(o is{ForNonNullableByDefault} self::Class))
       return false;
-    return this.{self::Class::field}{dynamic} =={core::Object::==}{(core::Object*) →* core::bool*} o{dynamic}.field;
+    return this.{self::Class::field}{dynamic} =={core::Object::==}{(core::Object) → core::bool} o{self::Class}.{self::Class::field}{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 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/infer_equals.dart.weak.modular.expect b/pkg/front_end/testcases/general/infer_equals.dart.weak.modular.expect
index 4b8aa53e..d1873a6 100644
--- a/pkg/front_end/testcases/general/infer_equals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/infer_equals.dart.weak.modular.expect
@@ -1,25 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  operator ==(dynamic o) → core::bool* {
-    if(!(o is self::Class*))
+  operator ==(core::Object o) → core::bool {
+    if(!(o is{ForNonNullableByDefault} self::Class))
       return false;
-    return this.{self::Class::field}{dynamic} =={core::Object::==}{(core::Object*) →* core::bool*} o{dynamic}.field;
+    return this.{self::Class::field}{dynamic} =={core::Object::==}{(core::Object) → core::bool} o{self::Class}.{self::Class::field}{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 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/infer_equals.dart.weak.outline.expect b/pkg/front_end/testcases/general/infer_equals.dart.weak.outline.expect
index 1e4df77..5b69de1 100644
--- a/pkg/front_end/testcases/general/infer_equals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/infer_equals.dart.weak.outline.expect
@@ -1,22 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
   field dynamic field;
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     ;
-  operator ==(dynamic o) → core::bool*
+  operator ==(core::Object o) → 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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/infer_equals.dart.weak.transformed.expect b/pkg/front_end/testcases/general/infer_equals.dart.weak.transformed.expect
index 4b8aa53e..d1873a6 100644
--- a/pkg/front_end/testcases/general/infer_equals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/infer_equals.dart.weak.transformed.expect
@@ -1,25 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super core::Object::•()
     ;
-  operator ==(dynamic o) → core::bool* {
-    if(!(o is self::Class*))
+  operator ==(core::Object o) → core::bool {
+    if(!(o is{ForNonNullableByDefault} self::Class))
       return false;
-    return this.{self::Class::field}{dynamic} =={core::Object::==}{(core::Object*) →* core::bool*} o{dynamic}.field;
+    return this.{self::Class::field}{dynamic} =={core::Object::==}{(core::Object) → core::bool} o{self::Class}.{self::Class::field}{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 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/infer_field_from_multiple.dart b/pkg/front_end/testcases/general/infer_field_from_multiple.dart
index dd2a974..be05cdc 100644
--- a/pkg/front_end/testcases/general/infer_field_from_multiple.dart
+++ b/pkg/front_end/testcases/general/infer_field_from_multiple.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
+
 class A<T> {
   var field1 = 0;
   var field2 = 0;
diff --git a/pkg/front_end/testcases/general/infer_field_from_multiple.dart.weak.expect b/pkg/front_end/testcases/general/infer_field_from_multiple.dart.weak.expect
index 4796a9b..31fa66b 100644
--- a/pkg/front_end/testcases/general/infer_field_from_multiple.dart.weak.expect
+++ b/pkg/front_end/testcases/general/infer_field_from_multiple.dart.weak.expect
@@ -2,161 +2,161 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:49:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:51:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field2; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:7:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:9:7: Context: This is one of the overridden members.
 //   var field2 = 0;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:28:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:30:7: Context: This is one of the overridden members.
 //   var field2 = '';
 //       ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:51:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:53:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field4 = 0; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:9:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:11:7: Context: This is one of the overridden members.
 //   var field4 = 0;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:30:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:32:7: Context: This is one of the overridden members.
 //   var field4 = '';
 //       ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:53:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:55:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field6; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:11:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:13:7: Context: This is one of the overridden members.
 //   int field6;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:32:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:34:10: Context: This is one of the overridden members.
 //   String field6;
 //          ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:55:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:57:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field8 = 0; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:13:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:15:7: Context: This is one of the overridden members.
 //   int field8;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:34:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:36:10: Context: This is one of the overridden members.
 //   String field8;
 //          ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:58:7: Error: Can't infer a type for 'field11' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:60:7: Error: Can't infer a type for 'field11' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field11; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:16:5: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:18:5: Context: This is one of the overridden members.
 //   T field11;
 //     ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:37:5: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:39:5: Context: This is one of the overridden members.
 //   S field11;
 //     ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:64:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:66:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field17; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:22:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:24:7: Context: This is one of the overridden members.
 //   var field17 = 0;
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:43:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:45:10: Context: This is one of the overridden members.
 //   String field17;
 //          ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:65:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:67:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field18; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:23:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:25:7: Context: This is one of the overridden members.
 //   int field18;
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:44:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:46:7: Context: This is one of the overridden members.
 //   var field18 = '';
 //       ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:90:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:92:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field2; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:7:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:9:7: Context: This is one of the overridden members.
 //   var field2 = 0;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:28:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:30:7: Context: This is one of the overridden members.
 //   var field2 = '';
 //       ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:92:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:94:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field4 = 0; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:9:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:11:7: Context: This is one of the overridden members.
 //   var field4 = 0;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:30:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:32:7: Context: This is one of the overridden members.
 //   var field4 = '';
 //       ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:94:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:96:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field6; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:11:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:13:7: Context: This is one of the overridden members.
 //   int field6;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:32:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:34:10: Context: This is one of the overridden members.
 //   String field6;
 //          ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:96:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:98:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field8 = 0; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:13:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:15:7: Context: This is one of the overridden members.
 //   int field8;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:34:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:36:10: Context: This is one of the overridden members.
 //   String field8;
 //          ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:105:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:107:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field17; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:22:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:24:7: Context: This is one of the overridden members.
 //   var field17 = 0;
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:43:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:45:10: Context: This is one of the overridden members.
 //   String field17;
 //          ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:106:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:108:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field18; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:23:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:25:7: Context: This is one of the overridden members.
 //   int field18;
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:44:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:46:7: Context: This is one of the overridden members.
 //   var field18 = '';
 //       ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:61:7: Error: The return type of the method 'C.field14' is 'int', which does not match the return type, 'String', of the overridden method, 'B.field14'.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:63:7: Error: The return type of the method 'C.field14' is 'int', which does not match the return type, 'String', of the overridden method, 'B.field14'.
 // Change to a subtype of 'String'.
 //   int field14; // error
 //       ^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:40:5: Context: This is the overridden method ('field14').
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:42:5: Context: This is the overridden method ('field14').
 //   S field14;
 //     ^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:61:7: Error: The field 'C.field14' has type 'int', which does not match the corresponding type, 'String', in the overridden setter, 'B.field14'.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:63:7: Error: The field 'C.field14' has type 'int', which does not match the corresponding type, 'String', in the overridden setter, 'B.field14'.
 //   int field14; // error
 //       ^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:40:5: Context: This is the overridden method ('field14').
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:42:5: Context: This is the overridden method ('field14').
 //   S field14;
 //     ^
 //
diff --git a/pkg/front_end/testcases/general/infer_field_from_multiple.dart.weak.modular.expect b/pkg/front_end/testcases/general/infer_field_from_multiple.dart.weak.modular.expect
index 4796a9b..31fa66b 100644
--- a/pkg/front_end/testcases/general/infer_field_from_multiple.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/infer_field_from_multiple.dart.weak.modular.expect
@@ -2,161 +2,161 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:49:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:51:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field2; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:7:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:9:7: Context: This is one of the overridden members.
 //   var field2 = 0;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:28:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:30:7: Context: This is one of the overridden members.
 //   var field2 = '';
 //       ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:51:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:53:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field4 = 0; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:9:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:11:7: Context: This is one of the overridden members.
 //   var field4 = 0;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:30:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:32:7: Context: This is one of the overridden members.
 //   var field4 = '';
 //       ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:53:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:55:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field6; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:11:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:13:7: Context: This is one of the overridden members.
 //   int field6;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:32:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:34:10: Context: This is one of the overridden members.
 //   String field6;
 //          ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:55:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:57:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field8 = 0; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:13:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:15:7: Context: This is one of the overridden members.
 //   int field8;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:34:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:36:10: Context: This is one of the overridden members.
 //   String field8;
 //          ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:58:7: Error: Can't infer a type for 'field11' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:60:7: Error: Can't infer a type for 'field11' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field11; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:16:5: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:18:5: Context: This is one of the overridden members.
 //   T field11;
 //     ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:37:5: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:39:5: Context: This is one of the overridden members.
 //   S field11;
 //     ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:64:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:66:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field17; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:22:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:24:7: Context: This is one of the overridden members.
 //   var field17 = 0;
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:43:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:45:10: Context: This is one of the overridden members.
 //   String field17;
 //          ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:65:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:67:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field18; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:23:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:25:7: Context: This is one of the overridden members.
 //   int field18;
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:44:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:46:7: Context: This is one of the overridden members.
 //   var field18 = '';
 //       ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:90:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:92:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field2; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:7:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:9:7: Context: This is one of the overridden members.
 //   var field2 = 0;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:28:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:30:7: Context: This is one of the overridden members.
 //   var field2 = '';
 //       ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:92:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:94:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field4 = 0; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:9:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:11:7: Context: This is one of the overridden members.
 //   var field4 = 0;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:30:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:32:7: Context: This is one of the overridden members.
 //   var field4 = '';
 //       ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:94:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:96:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field6; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:11:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:13:7: Context: This is one of the overridden members.
 //   int field6;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:32:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:34:10: Context: This is one of the overridden members.
 //   String field6;
 //          ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:96:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:98:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field8 = 0; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:13:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:15:7: Context: This is one of the overridden members.
 //   int field8;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:34:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:36:10: Context: This is one of the overridden members.
 //   String field8;
 //          ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:105:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:107:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field17; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:22:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:24:7: Context: This is one of the overridden members.
 //   var field17 = 0;
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:43:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:45:10: Context: This is one of the overridden members.
 //   String field17;
 //          ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:106:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:108:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field18; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:23:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:25:7: Context: This is one of the overridden members.
 //   int field18;
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:44:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:46:7: Context: This is one of the overridden members.
 //   var field18 = '';
 //       ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:61:7: Error: The return type of the method 'C.field14' is 'int', which does not match the return type, 'String', of the overridden method, 'B.field14'.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:63:7: Error: The return type of the method 'C.field14' is 'int', which does not match the return type, 'String', of the overridden method, 'B.field14'.
 // Change to a subtype of 'String'.
 //   int field14; // error
 //       ^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:40:5: Context: This is the overridden method ('field14').
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:42:5: Context: This is the overridden method ('field14').
 //   S field14;
 //     ^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:61:7: Error: The field 'C.field14' has type 'int', which does not match the corresponding type, 'String', in the overridden setter, 'B.field14'.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:63:7: Error: The field 'C.field14' has type 'int', which does not match the corresponding type, 'String', in the overridden setter, 'B.field14'.
 //   int field14; // error
 //       ^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:40:5: Context: This is the overridden method ('field14').
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:42:5: Context: This is the overridden method ('field14').
 //   S field14;
 //     ^
 //
diff --git a/pkg/front_end/testcases/general/infer_field_from_multiple.dart.weak.outline.expect b/pkg/front_end/testcases/general/infer_field_from_multiple.dart.weak.outline.expect
index e59bd1f..01365f2 100644
--- a/pkg/front_end/testcases/general/infer_field_from_multiple.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/infer_field_from_multiple.dart.weak.outline.expect
@@ -2,161 +2,161 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:49:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:51:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field2; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:7:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:9:7: Context: This is one of the overridden members.
 //   var field2 = 0;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:28:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:30:7: Context: This is one of the overridden members.
 //   var field2 = '';
 //       ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:51:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:53:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field4 = 0; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:9:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:11:7: Context: This is one of the overridden members.
 //   var field4 = 0;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:30:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:32:7: Context: This is one of the overridden members.
 //   var field4 = '';
 //       ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:53:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:55:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field6; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:11:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:13:7: Context: This is one of the overridden members.
 //   int field6;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:32:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:34:10: Context: This is one of the overridden members.
 //   String field6;
 //          ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:55:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:57:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field8 = 0; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:13:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:15:7: Context: This is one of the overridden members.
 //   int field8;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:34:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:36:10: Context: This is one of the overridden members.
 //   String field8;
 //          ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:58:7: Error: Can't infer a type for 'field11' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:60:7: Error: Can't infer a type for 'field11' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field11; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:16:5: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:18:5: Context: This is one of the overridden members.
 //   T field11;
 //     ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:37:5: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:39:5: Context: This is one of the overridden members.
 //   S field11;
 //     ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:64:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:66:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field17; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:22:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:24:7: Context: This is one of the overridden members.
 //   var field17 = 0;
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:43:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:45:10: Context: This is one of the overridden members.
 //   String field17;
 //          ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:65:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:67:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field18; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:23:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:25:7: Context: This is one of the overridden members.
 //   int field18;
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:44:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:46:7: Context: This is one of the overridden members.
 //   var field18 = '';
 //       ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:90:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:92:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field2; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:7:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:9:7: Context: This is one of the overridden members.
 //   var field2 = 0;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:28:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:30:7: Context: This is one of the overridden members.
 //   var field2 = '';
 //       ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:92:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:94:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field4 = 0; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:9:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:11:7: Context: This is one of the overridden members.
 //   var field4 = 0;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:30:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:32:7: Context: This is one of the overridden members.
 //   var field4 = '';
 //       ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:94:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:96:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field6; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:11:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:13:7: Context: This is one of the overridden members.
 //   int field6;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:32:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:34:10: Context: This is one of the overridden members.
 //   String field6;
 //          ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:96:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:98:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field8 = 0; // error
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:13:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:15:7: Context: This is one of the overridden members.
 //   int field8;
 //       ^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:34:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:36:10: Context: This is one of the overridden members.
 //   String field8;
 //          ^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:105:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:107:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field17; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:22:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:24:7: Context: This is one of the overridden members.
 //   var field17 = 0;
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:43:10: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:45:10: Context: This is one of the overridden members.
 //   String field17;
 //          ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:106:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:108:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
 // Try adding an explicit type.
 //   var field18; // error
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:23:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:25:7: Context: This is one of the overridden members.
 //   int field18;
 //       ^^^^^^^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:44:7: Context: This is one of the overridden members.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:46:7: Context: This is one of the overridden members.
 //   var field18 = '';
 //       ^^^^^^^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:61:7: Error: The return type of the method 'C.field14' is 'int', which does not match the return type, 'String', of the overridden method, 'B.field14'.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:63:7: Error: The return type of the method 'C.field14' is 'int', which does not match the return type, 'String', of the overridden method, 'B.field14'.
 // Change to a subtype of 'String'.
 //   int field14; // error
 //       ^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:40:5: Context: This is the overridden method ('field14').
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:42:5: Context: This is the overridden method ('field14').
 //   S field14;
 //     ^
 //
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:61:7: Error: The field 'C.field14' has type 'int', which does not match the corresponding type, 'String', in the overridden setter, 'B.field14'.
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:63:7: Error: The field 'C.field14' has type 'int', which does not match the corresponding type, 'String', in the overridden setter, 'B.field14'.
 //   int field14; // error
 //       ^
-// pkg/front_end/testcases/general/infer_field_from_multiple.dart:40:5: Context: This is the overridden method ('field14').
+// pkg/front_end/testcases/general/infer_field_from_multiple.dart:42:5: Context: This is the overridden method ('field14').
 //   S field14;
 //     ^
 //
diff --git a/pkg/front_end/testcases/general/infer_field_from_multiple2.dart b/pkg/front_end/testcases/general/infer_field_from_multiple2.dart
new file mode 100644
index 0000000..58f6b9fd
--- /dev/null
+++ b/pkg/front_end/testcases/general/infer_field_from_multiple2.dart
@@ -0,0 +1,131 @@
+// 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.
+
+class A<T> {
+  var field1 = 0;
+  var field2 = 0;
+  var field3 = 0;
+  var field4 = 0;
+  int? field5;
+  int? field6;
+  int? field7;
+  int? field8;
+  var field9;
+  T field10;
+  T field11;
+  T field12;
+  T field13;
+  T field14;
+  var field15 = 0;
+  int? field16;
+  var field17 = 0;
+  int? field18;
+
+  A(this.field10, this.field11, this.field12, this.field13, this.field14);
+}
+
+class B<T, S> {
+  var field1 = 1;
+  var field2 = '';
+  var field3 = 1;
+  var field4 = '';
+  int? field5;
+  String? field6;
+  int? field7;
+  String? field8;
+  var field9;
+  T field10;
+  S field11;
+  T field12;
+  T field13;
+  S field14;
+  int? field15;
+  var field16 = 0;
+  String? field17;
+  var field18 = '';
+
+  B(this.field10, this.field11, this.field12, this.field13, this.field14);
+}
+
+class C implements A<int>, B<int, String> {
+  var field1;
+  var field2; // error
+  var field3 = 0;
+  var field4 = 0; // error
+  var field5;
+  var field6; // error
+  var field7 = 0;
+  var field8 = 0; // error
+  var field9;
+  var field10;
+  var field11; // error
+  int? field12;
+  var field13 = 0;
+  int? field14; // error
+  var field15;
+  var field16;
+  var field17; // error
+  var field18; // error
+
+  C(
+      this.field1,
+      this.field2,
+      this.field3,
+      this.field4,
+      this.field5,
+      this.field6,
+      this.field7,
+      this.field8,
+      this.field9,
+      this.field10,
+      this.field11,
+      this.field12,
+      this.field13,
+      this.field14,
+      this.field15,
+      this.field16,
+      this.field17,
+      this.field18);
+}
+
+class D<T> implements A<T>, B<T, T> {
+  var field1;
+  var field2; // error
+  var field3 = 0;
+  var field4 = 0; // error
+  var field5;
+  var field6; // error
+  var field7 = 0;
+  var field8 = 0; // error
+  var field9;
+  var field10;
+  var field11;
+  T field12;
+  var field13 = null; // error
+  T field14;
+  var field15;
+  var field16;
+  var field17; // error
+  var field18; // error
+
+  D(
+      this.field1,
+      this.field2,
+      this.field3,
+      this.field4,
+      this.field5,
+      this.field6,
+      this.field7,
+      this.field8,
+      this.field9,
+      this.field10,
+      this.field11,
+      this.field12,
+      this.field13,
+      this.field14,
+      this.field15,
+      this.field16,
+      this.field17,
+      this.field18);
+}
diff --git a/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.textual_outline.expect b/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.textual_outline.expect
new file mode 100644
index 0000000..d64f84c
--- /dev/null
+++ b/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.textual_outline.expect
@@ -0,0 +1,123 @@
+class A<T> {
+  var field1 = 0;
+  var field2 = 0;
+  var field3 = 0;
+  var field4 = 0;
+  int? field5;
+  int? field6;
+  int? field7;
+  int? field8;
+  var field9;
+  T field10;
+  T field11;
+  T field12;
+  T field13;
+  T field14;
+  var field15 = 0;
+  int? field16;
+  var field17 = 0;
+  int? field18;
+  A(this.field10, this.field11, this.field12, this.field13, this.field14);
+}
+
+class B<T, S> {
+  var field1 = 1;
+  var field2 = '';
+  var field3 = 1;
+  var field4 = '';
+  int? field5;
+  String? field6;
+  int? field7;
+  String? field8;
+  var field9;
+  T field10;
+  S field11;
+  T field12;
+  T field13;
+  S field14;
+  int? field15;
+  var field16 = 0;
+  String? field17;
+  var field18 = '';
+  B(this.field10, this.field11, this.field12, this.field13, this.field14);
+}
+
+class C implements A<int>, B<int, String> {
+  var field1;
+  var field2;
+  var field3 = 0;
+  var field4 = 0;
+  var field5;
+  var field6;
+  var field7 = 0;
+  var field8 = 0;
+  var field9;
+  var field10;
+  var field11;
+  int? field12;
+  var field13 = 0;
+  int? field14;
+  var field15;
+  var field16;
+  var field17;
+  var field18;
+  C(
+      this.field1,
+      this.field2,
+      this.field3,
+      this.field4,
+      this.field5,
+      this.field6,
+      this.field7,
+      this.field8,
+      this.field9,
+      this.field10,
+      this.field11,
+      this.field12,
+      this.field13,
+      this.field14,
+      this.field15,
+      this.field16,
+      this.field17,
+      this.field18);
+}
+
+class D<T> implements A<T>, B<T, T> {
+  var field1;
+  var field2;
+  var field3 = 0;
+  var field4 = 0;
+  var field5;
+  var field6;
+  var field7 = 0;
+  var field8 = 0;
+  var field9;
+  var field10;
+  var field11;
+  T field12;
+  var field13 = null;
+  T field14;
+  var field15;
+  var field16;
+  var field17;
+  var field18;
+  D(
+      this.field1,
+      this.field2,
+      this.field3,
+      this.field4,
+      this.field5,
+      this.field6,
+      this.field7,
+      this.field8,
+      this.field9,
+      this.field10,
+      this.field11,
+      this.field12,
+      this.field13,
+      this.field14,
+      this.field15,
+      this.field16,
+      this.field17,
+      this.field18);
+}
diff --git a/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..4e0b59f
--- /dev/null
+++ b/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.textual_outline_modelled.expect
@@ -0,0 +1,123 @@
+class A<T> {
+  A(this.field10, this.field11, this.field12, this.field13, this.field14);
+  T field10;
+  T field11;
+  T field12;
+  T field13;
+  T field14;
+  int? field16;
+  int? field18;
+  int? field5;
+  int? field6;
+  int? field7;
+  int? field8;
+  var field1 = 0;
+  var field15 = 0;
+  var field17 = 0;
+  var field2 = 0;
+  var field3 = 0;
+  var field4 = 0;
+  var field9;
+}
+
+class B<T, S> {
+  B(this.field10, this.field11, this.field12, this.field13, this.field14);
+  S field11;
+  S field14;
+  String? field17;
+  String? field6;
+  String? field8;
+  T field10;
+  T field12;
+  T field13;
+  int? field15;
+  int? field5;
+  int? field7;
+  var field1 = 1;
+  var field16 = 0;
+  var field18 = '';
+  var field2 = '';
+  var field3 = 1;
+  var field4 = '';
+  var field9;
+}
+
+class C implements A<int>, B<int, String> {
+  C(
+      this.field1,
+      this.field2,
+      this.field3,
+      this.field4,
+      this.field5,
+      this.field6,
+      this.field7,
+      this.field8,
+      this.field9,
+      this.field10,
+      this.field11,
+      this.field12,
+      this.field13,
+      this.field14,
+      this.field15,
+      this.field16,
+      this.field17,
+      this.field18);
+  int? field12;
+  int? field14;
+  var field1;
+  var field10;
+  var field11;
+  var field13 = 0;
+  var field15;
+  var field16;
+  var field17;
+  var field18;
+  var field2;
+  var field3 = 0;
+  var field4 = 0;
+  var field5;
+  var field6;
+  var field7 = 0;
+  var field8 = 0;
+  var field9;
+}
+
+class D<T> implements A<T>, B<T, T> {
+  D(
+      this.field1,
+      this.field2,
+      this.field3,
+      this.field4,
+      this.field5,
+      this.field6,
+      this.field7,
+      this.field8,
+      this.field9,
+      this.field10,
+      this.field11,
+      this.field12,
+      this.field13,
+      this.field14,
+      this.field15,
+      this.field16,
+      this.field17,
+      this.field18);
+  T field12;
+  T field14;
+  var field1;
+  var field10;
+  var field11;
+  var field13 = null;
+  var field15;
+  var field16;
+  var field17;
+  var field18;
+  var field2;
+  var field3 = 0;
+  var field4 = 0;
+  var field5;
+  var field6;
+  var field7 = 0;
+  var field8 = 0;
+  var field9;
+}
diff --git a/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.weak.expect b/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.weak.expect
new file mode 100644
index 0000000..8a56297
--- /dev/null
+++ b/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.weak.expect
@@ -0,0 +1,331 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:53:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field2; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:7:7: Context: This is one of the overridden members.
+//   var field2 = 0;
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:30:7: Context: This is one of the overridden members.
+//   var field2 = '';
+//       ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:55:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field4 = 0; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:9:7: Context: This is one of the overridden members.
+//   var field4 = 0;
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:32:7: Context: This is one of the overridden members.
+//   var field4 = '';
+//       ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:57:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field6; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:11:8: Context: This is one of the overridden members.
+//   int? field6;
+//        ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:34:11: Context: This is one of the overridden members.
+//   String? field6;
+//           ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:59:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field8 = 0; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:13:8: Context: This is one of the overridden members.
+//   int? field8;
+//        ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:36:11: Context: This is one of the overridden members.
+//   String? field8;
+//           ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:62:7: Error: Can't infer a type for 'field11' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field11; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:16:5: Context: This is one of the overridden members.
+//   T field11;
+//     ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:39:5: Context: This is one of the overridden members.
+//   S field11;
+//     ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:66:7: Error: Can't infer a type for 'field15' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field15;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:20:7: Context: This is one of the overridden members.
+//   var field15 = 0;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:43:8: Context: This is one of the overridden members.
+//   int? field15;
+//        ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:67:7: Error: Can't infer a type for 'field16' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field16;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:21:8: Context: This is one of the overridden members.
+//   int? field16;
+//        ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:44:7: Context: This is one of the overridden members.
+//   var field16 = 0;
+//       ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:68:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field17; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:22:7: Context: This is one of the overridden members.
+//   var field17 = 0;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:45:11: Context: This is one of the overridden members.
+//   String? field17;
+//           ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:69:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field18; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:23:8: Context: This is one of the overridden members.
+//   int? field18;
+//        ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:46:7: Context: This is one of the overridden members.
+//   var field18 = '';
+//       ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:94:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field2; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:7:7: Context: This is one of the overridden members.
+//   var field2 = 0;
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:30:7: Context: This is one of the overridden members.
+//   var field2 = '';
+//       ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:96:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field4 = 0; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:9:7: Context: This is one of the overridden members.
+//   var field4 = 0;
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:32:7: Context: This is one of the overridden members.
+//   var field4 = '';
+//       ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:98:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field6; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:11:8: Context: This is one of the overridden members.
+//   int? field6;
+//        ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:34:11: Context: This is one of the overridden members.
+//   String? field6;
+//           ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:100:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field8 = 0; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:13:8: Context: This is one of the overridden members.
+//   int? field8;
+//        ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:36:11: Context: This is one of the overridden members.
+//   String? field8;
+//           ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:107:7: Error: Can't infer a type for 'field15' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field15;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:20:7: Context: This is one of the overridden members.
+//   var field15 = 0;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:43:8: Context: This is one of the overridden members.
+//   int? field15;
+//        ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:108:7: Error: Can't infer a type for 'field16' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field16;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:21:8: Context: This is one of the overridden members.
+//   int? field16;
+//        ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:44:7: Context: This is one of the overridden members.
+//   var field16 = 0;
+//       ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:109:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field17; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:22:7: Context: This is one of the overridden members.
+//   var field17 = 0;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:45:11: Context: This is one of the overridden members.
+//   String? field17;
+//           ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:110:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field18; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:23:8: Context: This is one of the overridden members.
+//   int? field18;
+//        ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:46:7: Context: This is one of the overridden members.
+//   var field18 = '';
+//       ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:63:8: Error: The return type of the method 'C.field12' is 'int?', which does not match the return type, 'int', of the overridden method, 'A.field12'.
+// Change to a subtype of 'int'.
+//   int? field12;
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:17:5: Context: This is the overridden method ('field12').
+//   T field12;
+//     ^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:63:8: Error: The return type of the method 'C.field12' is 'int?', which does not match the return type, 'int', of the overridden method, 'B.field12'.
+// Change to a subtype of 'int'.
+//   int? field12;
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:40:5: Context: This is the overridden method ('field12').
+//   T field12;
+//     ^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:65:8: Error: The return type of the method 'C.field14' is 'int?', which does not match the return type, 'int', of the overridden method, 'A.field14'.
+// Change to a subtype of 'int'.
+//   int? field14; // error
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:19:5: Context: This is the overridden method ('field14').
+//   T field14;
+//     ^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:65:8: Error: The return type of the method 'C.field14' is 'int?', which does not match the return type, 'String', of the overridden method, 'B.field14'.
+// Change to a subtype of 'String'.
+//   int? field14; // error
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:42:5: Context: This is the overridden method ('field14').
+//   S field14;
+//     ^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:65:8: Error: The field 'C.field14' has type 'int?', which does not match the corresponding type, 'String', in the overridden setter, 'B.field14'.
+//   int? field14; // error
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:42:5: Context: This is the overridden method ('field14').
+//   S field14;
+//     ^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:105:17: Error: The value 'null' can't be assigned to a variable of type 'T' because 'T' is not nullable.
+//   var field13 = null; // error
+//                 ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A<T extends core::Object? = dynamic> extends core::Object {
+  field core::int field1 = 0;
+  field core::int field2 = 0;
+  field core::int field3 = 0;
+  field core::int field4 = 0;
+  field core::int? field5 = null;
+  field core::int? field6 = null;
+  field core::int? field7 = null;
+  field core::int? field8 = null;
+  field dynamic field9 = null;
+  covariant-by-class field self::A::T% field10;
+  covariant-by-class field self::A::T% field11;
+  covariant-by-class field self::A::T% field12;
+  covariant-by-class field self::A::T% field13;
+  covariant-by-class field self::A::T% field14;
+  field core::int field15 = 0;
+  field core::int? field16 = null;
+  field core::int field17 = 0;
+  field core::int? field18 = null;
+  constructor •(self::A::T% field10, self::A::T% field11, self::A::T% field12, self::A::T% field13, self::A::T% field14) → self::A<self::A::T%>
+    : self::A::field10 = field10, self::A::field11 = field11, self::A::field12 = field12, self::A::field13 = field13, self::A::field14 = field14, super core::Object::•()
+    ;
+}
+class B<T extends core::Object? = dynamic, S extends core::Object? = dynamic> extends core::Object {
+  field core::int field1 = 1;
+  field core::String field2 = "";
+  field core::int field3 = 1;
+  field core::String field4 = "";
+  field core::int? field5 = null;
+  field core::String? field6 = null;
+  field core::int? field7 = null;
+  field core::String? field8 = null;
+  field dynamic field9 = null;
+  covariant-by-class field self::B::T% field10;
+  covariant-by-class field self::B::S% field11;
+  covariant-by-class field self::B::T% field12;
+  covariant-by-class field self::B::T% field13;
+  covariant-by-class field self::B::S% field14;
+  field core::int? field15 = null;
+  field core::int field16 = 0;
+  field core::String? field17 = null;
+  field core::String field18 = "";
+  constructor •(self::B::T% field10, self::B::S% field11, self::B::T% field12, self::B::T% field13, self::B::S% field14) → self::B<self::B::T%, self::B::S%>
+    : self::B::field10 = field10, self::B::field11 = field11, self::B::field12 = field12, self::B::field13 = field13, self::B::field14 = field14, super core::Object::•()
+    ;
+}
+class C extends core::Object implements self::A<core::int>, self::B<core::int, core::String> {
+  field core::int field1;
+  field invalid-type field2;
+  field core::int field3 = 0;
+  field invalid-type field4 = 0;
+  field core::int? field5;
+  field invalid-type field6;
+  field core::int? field7 = 0;
+  field invalid-type field8 = 0;
+  field dynamic field9;
+  covariant-by-class field core::int field10;
+  covariant-by-class field invalid-type field11;
+  covariant-by-class field core::int? field12;
+  covariant-by-class field core::int field13 = 0;
+  covariant-by-class field core::int? field14;
+  field invalid-type field15;
+  field invalid-type field16;
+  field invalid-type field17;
+  field invalid-type field18;
+  constructor •(core::int field1, invalid-type field2, core::int field3, invalid-type field4, core::int? field5, invalid-type field6, core::int? field7, invalid-type field8, dynamic field9, core::int field10, invalid-type field11, core::int? field12, core::int field13, core::int? field14, invalid-type field15, invalid-type field16, invalid-type field17, invalid-type field18) → self::C
+    : self::C::field1 = field1, self::C::field2 = field2, self::C::field3 = field3, self::C::field4 = field4, self::C::field5 = field5, self::C::field6 = field6, self::C::field7 = field7, self::C::field8 = field8, self::C::field9 = field9, self::C::field10 = field10, self::C::field11 = field11, self::C::field12 = field12, self::C::field13 = field13, self::C::field14 = field14, self::C::field15 = field15, self::C::field16 = field16, self::C::field17 = field17, self::C::field18 = field18, super core::Object::•()
+    ;
+}
+class D<T extends core::Object? = dynamic> extends core::Object implements self::A<self::D::T%>, self::B<self::D::T%, self::D::T%> {
+  field core::int field1;
+  field invalid-type field2;
+  field core::int field3 = 0;
+  field invalid-type field4 = 0;
+  field core::int? field5;
+  field invalid-type field6;
+  field core::int? field7 = 0;
+  field invalid-type field8 = 0;
+  field dynamic field9;
+  covariant-by-class field self::D::T% field10;
+  covariant-by-class field self::D::T% field11;
+  covariant-by-class field self::D::T% field12;
+  covariant-by-class field self::D::T% field13 = invalid-expression "pkg/front_end/testcases/general/infer_field_from_multiple2.dart:105:17: Error: The value 'null' can't be assigned to a variable of type 'T' because 'T' is not nullable.
+  var field13 = null; // error
+                ^" in null as{TypeError,ForNonNullableByDefault} Never;
+  covariant-by-class field self::D::T% field14;
+  field invalid-type field15;
+  field invalid-type field16;
+  field invalid-type field17;
+  field invalid-type field18;
+  constructor •(core::int field1, invalid-type field2, core::int field3, invalid-type field4, core::int? field5, invalid-type field6, core::int? field7, invalid-type field8, dynamic field9, self::D::T% field10, self::D::T% field11, self::D::T% field12, self::D::T% field13, self::D::T% field14, invalid-type field15, invalid-type field16, invalid-type field17, invalid-type field18) → self::D<self::D::T%>
+    : self::D::field1 = field1, self::D::field2 = field2, self::D::field3 = field3, self::D::field4 = field4, self::D::field5 = field5, self::D::field6 = field6, self::D::field7 = field7, self::D::field8 = field8, self::D::field9 = field9, self::D::field10 = field10, self::D::field11 = field11, self::D::field12 = field12, self::D::field13 = field13, self::D::field14 = field14, self::D::field15 = field15, self::D::field16 = field16, self::D::field17 = field17, self::D::field18 = field18, super core::Object::•()
+    ;
+}
diff --git a/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.weak.modular.expect b/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.weak.modular.expect
new file mode 100644
index 0000000..8a56297
--- /dev/null
+++ b/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.weak.modular.expect
@@ -0,0 +1,331 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:53:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field2; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:7:7: Context: This is one of the overridden members.
+//   var field2 = 0;
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:30:7: Context: This is one of the overridden members.
+//   var field2 = '';
+//       ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:55:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field4 = 0; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:9:7: Context: This is one of the overridden members.
+//   var field4 = 0;
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:32:7: Context: This is one of the overridden members.
+//   var field4 = '';
+//       ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:57:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field6; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:11:8: Context: This is one of the overridden members.
+//   int? field6;
+//        ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:34:11: Context: This is one of the overridden members.
+//   String? field6;
+//           ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:59:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field8 = 0; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:13:8: Context: This is one of the overridden members.
+//   int? field8;
+//        ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:36:11: Context: This is one of the overridden members.
+//   String? field8;
+//           ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:62:7: Error: Can't infer a type for 'field11' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field11; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:16:5: Context: This is one of the overridden members.
+//   T field11;
+//     ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:39:5: Context: This is one of the overridden members.
+//   S field11;
+//     ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:66:7: Error: Can't infer a type for 'field15' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field15;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:20:7: Context: This is one of the overridden members.
+//   var field15 = 0;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:43:8: Context: This is one of the overridden members.
+//   int? field15;
+//        ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:67:7: Error: Can't infer a type for 'field16' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field16;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:21:8: Context: This is one of the overridden members.
+//   int? field16;
+//        ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:44:7: Context: This is one of the overridden members.
+//   var field16 = 0;
+//       ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:68:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field17; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:22:7: Context: This is one of the overridden members.
+//   var field17 = 0;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:45:11: Context: This is one of the overridden members.
+//   String? field17;
+//           ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:69:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field18; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:23:8: Context: This is one of the overridden members.
+//   int? field18;
+//        ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:46:7: Context: This is one of the overridden members.
+//   var field18 = '';
+//       ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:94:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field2; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:7:7: Context: This is one of the overridden members.
+//   var field2 = 0;
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:30:7: Context: This is one of the overridden members.
+//   var field2 = '';
+//       ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:96:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field4 = 0; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:9:7: Context: This is one of the overridden members.
+//   var field4 = 0;
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:32:7: Context: This is one of the overridden members.
+//   var field4 = '';
+//       ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:98:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field6; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:11:8: Context: This is one of the overridden members.
+//   int? field6;
+//        ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:34:11: Context: This is one of the overridden members.
+//   String? field6;
+//           ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:100:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field8 = 0; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:13:8: Context: This is one of the overridden members.
+//   int? field8;
+//        ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:36:11: Context: This is one of the overridden members.
+//   String? field8;
+//           ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:107:7: Error: Can't infer a type for 'field15' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field15;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:20:7: Context: This is one of the overridden members.
+//   var field15 = 0;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:43:8: Context: This is one of the overridden members.
+//   int? field15;
+//        ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:108:7: Error: Can't infer a type for 'field16' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field16;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:21:8: Context: This is one of the overridden members.
+//   int? field16;
+//        ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:44:7: Context: This is one of the overridden members.
+//   var field16 = 0;
+//       ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:109:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field17; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:22:7: Context: This is one of the overridden members.
+//   var field17 = 0;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:45:11: Context: This is one of the overridden members.
+//   String? field17;
+//           ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:110:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field18; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:23:8: Context: This is one of the overridden members.
+//   int? field18;
+//        ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:46:7: Context: This is one of the overridden members.
+//   var field18 = '';
+//       ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:63:8: Error: The return type of the method 'C.field12' is 'int?', which does not match the return type, 'int', of the overridden method, 'A.field12'.
+// Change to a subtype of 'int'.
+//   int? field12;
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:17:5: Context: This is the overridden method ('field12').
+//   T field12;
+//     ^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:63:8: Error: The return type of the method 'C.field12' is 'int?', which does not match the return type, 'int', of the overridden method, 'B.field12'.
+// Change to a subtype of 'int'.
+//   int? field12;
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:40:5: Context: This is the overridden method ('field12').
+//   T field12;
+//     ^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:65:8: Error: The return type of the method 'C.field14' is 'int?', which does not match the return type, 'int', of the overridden method, 'A.field14'.
+// Change to a subtype of 'int'.
+//   int? field14; // error
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:19:5: Context: This is the overridden method ('field14').
+//   T field14;
+//     ^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:65:8: Error: The return type of the method 'C.field14' is 'int?', which does not match the return type, 'String', of the overridden method, 'B.field14'.
+// Change to a subtype of 'String'.
+//   int? field14; // error
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:42:5: Context: This is the overridden method ('field14').
+//   S field14;
+//     ^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:65:8: Error: The field 'C.field14' has type 'int?', which does not match the corresponding type, 'String', in the overridden setter, 'B.field14'.
+//   int? field14; // error
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:42:5: Context: This is the overridden method ('field14').
+//   S field14;
+//     ^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:105:17: Error: The value 'null' can't be assigned to a variable of type 'T' because 'T' is not nullable.
+//   var field13 = null; // error
+//                 ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A<T extends core::Object? = dynamic> extends core::Object {
+  field core::int field1 = 0;
+  field core::int field2 = 0;
+  field core::int field3 = 0;
+  field core::int field4 = 0;
+  field core::int? field5 = null;
+  field core::int? field6 = null;
+  field core::int? field7 = null;
+  field core::int? field8 = null;
+  field dynamic field9 = null;
+  covariant-by-class field self::A::T% field10;
+  covariant-by-class field self::A::T% field11;
+  covariant-by-class field self::A::T% field12;
+  covariant-by-class field self::A::T% field13;
+  covariant-by-class field self::A::T% field14;
+  field core::int field15 = 0;
+  field core::int? field16 = null;
+  field core::int field17 = 0;
+  field core::int? field18 = null;
+  constructor •(self::A::T% field10, self::A::T% field11, self::A::T% field12, self::A::T% field13, self::A::T% field14) → self::A<self::A::T%>
+    : self::A::field10 = field10, self::A::field11 = field11, self::A::field12 = field12, self::A::field13 = field13, self::A::field14 = field14, super core::Object::•()
+    ;
+}
+class B<T extends core::Object? = dynamic, S extends core::Object? = dynamic> extends core::Object {
+  field core::int field1 = 1;
+  field core::String field2 = "";
+  field core::int field3 = 1;
+  field core::String field4 = "";
+  field core::int? field5 = null;
+  field core::String? field6 = null;
+  field core::int? field7 = null;
+  field core::String? field8 = null;
+  field dynamic field9 = null;
+  covariant-by-class field self::B::T% field10;
+  covariant-by-class field self::B::S% field11;
+  covariant-by-class field self::B::T% field12;
+  covariant-by-class field self::B::T% field13;
+  covariant-by-class field self::B::S% field14;
+  field core::int? field15 = null;
+  field core::int field16 = 0;
+  field core::String? field17 = null;
+  field core::String field18 = "";
+  constructor •(self::B::T% field10, self::B::S% field11, self::B::T% field12, self::B::T% field13, self::B::S% field14) → self::B<self::B::T%, self::B::S%>
+    : self::B::field10 = field10, self::B::field11 = field11, self::B::field12 = field12, self::B::field13 = field13, self::B::field14 = field14, super core::Object::•()
+    ;
+}
+class C extends core::Object implements self::A<core::int>, self::B<core::int, core::String> {
+  field core::int field1;
+  field invalid-type field2;
+  field core::int field3 = 0;
+  field invalid-type field4 = 0;
+  field core::int? field5;
+  field invalid-type field6;
+  field core::int? field7 = 0;
+  field invalid-type field8 = 0;
+  field dynamic field9;
+  covariant-by-class field core::int field10;
+  covariant-by-class field invalid-type field11;
+  covariant-by-class field core::int? field12;
+  covariant-by-class field core::int field13 = 0;
+  covariant-by-class field core::int? field14;
+  field invalid-type field15;
+  field invalid-type field16;
+  field invalid-type field17;
+  field invalid-type field18;
+  constructor •(core::int field1, invalid-type field2, core::int field3, invalid-type field4, core::int? field5, invalid-type field6, core::int? field7, invalid-type field8, dynamic field9, core::int field10, invalid-type field11, core::int? field12, core::int field13, core::int? field14, invalid-type field15, invalid-type field16, invalid-type field17, invalid-type field18) → self::C
+    : self::C::field1 = field1, self::C::field2 = field2, self::C::field3 = field3, self::C::field4 = field4, self::C::field5 = field5, self::C::field6 = field6, self::C::field7 = field7, self::C::field8 = field8, self::C::field9 = field9, self::C::field10 = field10, self::C::field11 = field11, self::C::field12 = field12, self::C::field13 = field13, self::C::field14 = field14, self::C::field15 = field15, self::C::field16 = field16, self::C::field17 = field17, self::C::field18 = field18, super core::Object::•()
+    ;
+}
+class D<T extends core::Object? = dynamic> extends core::Object implements self::A<self::D::T%>, self::B<self::D::T%, self::D::T%> {
+  field core::int field1;
+  field invalid-type field2;
+  field core::int field3 = 0;
+  field invalid-type field4 = 0;
+  field core::int? field5;
+  field invalid-type field6;
+  field core::int? field7 = 0;
+  field invalid-type field8 = 0;
+  field dynamic field9;
+  covariant-by-class field self::D::T% field10;
+  covariant-by-class field self::D::T% field11;
+  covariant-by-class field self::D::T% field12;
+  covariant-by-class field self::D::T% field13 = invalid-expression "pkg/front_end/testcases/general/infer_field_from_multiple2.dart:105:17: Error: The value 'null' can't be assigned to a variable of type 'T' because 'T' is not nullable.
+  var field13 = null; // error
+                ^" in null as{TypeError,ForNonNullableByDefault} Never;
+  covariant-by-class field self::D::T% field14;
+  field invalid-type field15;
+  field invalid-type field16;
+  field invalid-type field17;
+  field invalid-type field18;
+  constructor •(core::int field1, invalid-type field2, core::int field3, invalid-type field4, core::int? field5, invalid-type field6, core::int? field7, invalid-type field8, dynamic field9, self::D::T% field10, self::D::T% field11, self::D::T% field12, self::D::T% field13, self::D::T% field14, invalid-type field15, invalid-type field16, invalid-type field17, invalid-type field18) → self::D<self::D::T%>
+    : self::D::field1 = field1, self::D::field2 = field2, self::D::field3 = field3, self::D::field4 = field4, self::D::field5 = field5, self::D::field6 = field6, self::D::field7 = field7, self::D::field8 = field8, self::D::field9 = field9, self::D::field10 = field10, self::D::field11 = field11, self::D::field12 = field12, self::D::field13 = field13, self::D::field14 = field14, self::D::field15 = field15, self::D::field16 = field16, self::D::field17 = field17, self::D::field18 = field18, super core::Object::•()
+    ;
+}
diff --git a/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.weak.outline.expect b/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.weak.outline.expect
new file mode 100644
index 0000000..1c79589
--- /dev/null
+++ b/pkg/front_end/testcases/general/infer_field_from_multiple2.dart.weak.outline.expect
@@ -0,0 +1,321 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:53:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field2; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:7:7: Context: This is one of the overridden members.
+//   var field2 = 0;
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:30:7: Context: This is one of the overridden members.
+//   var field2 = '';
+//       ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:55:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field4 = 0; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:9:7: Context: This is one of the overridden members.
+//   var field4 = 0;
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:32:7: Context: This is one of the overridden members.
+//   var field4 = '';
+//       ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:57:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field6; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:11:8: Context: This is one of the overridden members.
+//   int? field6;
+//        ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:34:11: Context: This is one of the overridden members.
+//   String? field6;
+//           ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:59:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field8 = 0; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:13:8: Context: This is one of the overridden members.
+//   int? field8;
+//        ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:36:11: Context: This is one of the overridden members.
+//   String? field8;
+//           ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:62:7: Error: Can't infer a type for 'field11' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field11; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:16:5: Context: This is one of the overridden members.
+//   T field11;
+//     ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:39:5: Context: This is one of the overridden members.
+//   S field11;
+//     ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:66:7: Error: Can't infer a type for 'field15' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field15;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:20:7: Context: This is one of the overridden members.
+//   var field15 = 0;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:43:8: Context: This is one of the overridden members.
+//   int? field15;
+//        ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:67:7: Error: Can't infer a type for 'field16' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field16;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:21:8: Context: This is one of the overridden members.
+//   int? field16;
+//        ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:44:7: Context: This is one of the overridden members.
+//   var field16 = 0;
+//       ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:68:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field17; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:22:7: Context: This is one of the overridden members.
+//   var field17 = 0;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:45:11: Context: This is one of the overridden members.
+//   String? field17;
+//           ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:69:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field18; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:23:8: Context: This is one of the overridden members.
+//   int? field18;
+//        ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:46:7: Context: This is one of the overridden members.
+//   var field18 = '';
+//       ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:94:7: Error: Can't infer a type for 'field2' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field2; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:7:7: Context: This is one of the overridden members.
+//   var field2 = 0;
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:30:7: Context: This is one of the overridden members.
+//   var field2 = '';
+//       ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:96:7: Error: Can't infer a type for 'field4' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field4 = 0; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:9:7: Context: This is one of the overridden members.
+//   var field4 = 0;
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:32:7: Context: This is one of the overridden members.
+//   var field4 = '';
+//       ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:98:7: Error: Can't infer a type for 'field6' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field6; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:11:8: Context: This is one of the overridden members.
+//   int? field6;
+//        ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:34:11: Context: This is one of the overridden members.
+//   String? field6;
+//           ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:100:7: Error: Can't infer a type for 'field8' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field8 = 0; // error
+//       ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:13:8: Context: This is one of the overridden members.
+//   int? field8;
+//        ^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:36:11: Context: This is one of the overridden members.
+//   String? field8;
+//           ^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:107:7: Error: Can't infer a type for 'field15' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field15;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:20:7: Context: This is one of the overridden members.
+//   var field15 = 0;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:43:8: Context: This is one of the overridden members.
+//   int? field15;
+//        ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:108:7: Error: Can't infer a type for 'field16' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field16;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:21:8: Context: This is one of the overridden members.
+//   int? field16;
+//        ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:44:7: Context: This is one of the overridden members.
+//   var field16 = 0;
+//       ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:109:7: Error: Can't infer a type for 'field17' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field17; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:22:7: Context: This is one of the overridden members.
+//   var field17 = 0;
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:45:11: Context: This is one of the overridden members.
+//   String? field17;
+//           ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:110:7: Error: Can't infer a type for 'field18' as the overridden members don't have a combined signature.
+// Try adding an explicit type.
+//   var field18; // error
+//       ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:23:8: Context: This is one of the overridden members.
+//   int? field18;
+//        ^^^^^^^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:46:7: Context: This is one of the overridden members.
+//   var field18 = '';
+//       ^^^^^^^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:63:8: Error: The return type of the method 'C.field12' is 'int?', which does not match the return type, 'int', of the overridden method, 'A.field12'.
+// Change to a subtype of 'int'.
+//   int? field12;
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:17:5: Context: This is the overridden method ('field12').
+//   T field12;
+//     ^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:63:8: Error: The return type of the method 'C.field12' is 'int?', which does not match the return type, 'int', of the overridden method, 'B.field12'.
+// Change to a subtype of 'int'.
+//   int? field12;
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:40:5: Context: This is the overridden method ('field12').
+//   T field12;
+//     ^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:65:8: Error: The return type of the method 'C.field14' is 'int?', which does not match the return type, 'int', of the overridden method, 'A.field14'.
+// Change to a subtype of 'int'.
+//   int? field14; // error
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:19:5: Context: This is the overridden method ('field14').
+//   T field14;
+//     ^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:65:8: Error: The return type of the method 'C.field14' is 'int?', which does not match the return type, 'String', of the overridden method, 'B.field14'.
+// Change to a subtype of 'String'.
+//   int? field14; // error
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:42:5: Context: This is the overridden method ('field14').
+//   S field14;
+//     ^
+//
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:65:8: Error: The field 'C.field14' has type 'int?', which does not match the corresponding type, 'String', in the overridden setter, 'B.field14'.
+//   int? field14; // error
+//        ^
+// pkg/front_end/testcases/general/infer_field_from_multiple2.dart:42:5: Context: This is the overridden method ('field14').
+//   S field14;
+//     ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A<T extends core::Object? = dynamic> extends core::Object {
+  field core::int field1;
+  field core::int field2;
+  field core::int field3;
+  field core::int field4;
+  field core::int? field5;
+  field core::int? field6;
+  field core::int? field7;
+  field core::int? field8;
+  field dynamic field9;
+  covariant-by-class field self::A::T% field10;
+  covariant-by-class field self::A::T% field11;
+  covariant-by-class field self::A::T% field12;
+  covariant-by-class field self::A::T% field13;
+  covariant-by-class field self::A::T% field14;
+  field core::int field15;
+  field core::int? field16;
+  field core::int field17;
+  field core::int? field18;
+  constructor •(self::A::T% field10, self::A::T% field11, self::A::T% field12, self::A::T% field13, self::A::T% field14) → self::A<self::A::T%>
+    ;
+}
+class B<T extends core::Object? = dynamic, S extends core::Object? = dynamic> extends core::Object {
+  field core::int field1;
+  field core::String field2;
+  field core::int field3;
+  field core::String field4;
+  field core::int? field5;
+  field core::String? field6;
+  field core::int? field7;
+  field core::String? field8;
+  field dynamic field9;
+  covariant-by-class field self::B::T% field10;
+  covariant-by-class field self::B::S% field11;
+  covariant-by-class field self::B::T% field12;
+  covariant-by-class field self::B::T% field13;
+  covariant-by-class field self::B::S% field14;
+  field core::int? field15;
+  field core::int field16;
+  field core::String? field17;
+  field core::String field18;
+  constructor •(self::B::T% field10, self::B::S% field11, self::B::T% field12, self::B::T% field13, self::B::S% field14) → self::B<self::B::T%, self::B::S%>
+    ;
+}
+class C extends core::Object implements self::A<core::int>, self::B<core::int, core::String> {
+  field core::int field1;
+  field invalid-type field2;
+  field core::int field3;
+  field invalid-type field4;
+  field core::int? field5;
+  field invalid-type field6;
+  field core::int? field7;
+  field invalid-type field8;
+  field dynamic field9;
+  covariant-by-class field core::int field10;
+  covariant-by-class field invalid-type field11;
+  covariant-by-class field core::int? field12;
+  covariant-by-class field core::int field13;
+  covariant-by-class field core::int? field14;
+  field invalid-type field15;
+  field invalid-type field16;
+  field invalid-type field17;
+  field invalid-type field18;
+  constructor •(core::int field1, invalid-type field2, core::int field3, invalid-type field4, core::int? field5, invalid-type field6, core::int? field7, invalid-type field8, dynamic field9, core::int field10, invalid-type field11, core::int? field12, core::int field13, core::int? field14, invalid-type field15, invalid-type field16, invalid-type field17, invalid-type field18) → self::C
+    ;
+}
+class D<T extends core::Object? = dynamic> extends core::Object implements self::A<self::D::T%>, self::B<self::D::T%, self::D::T%> {
+  field core::int field1;
+  field invalid-type field2;
+  field core::int field3;
+  field invalid-type field4;
+  field core::int? field5;
+  field invalid-type field6;
+  field core::int? field7;
+  field invalid-type field8;
+  field dynamic field9;
+  covariant-by-class field self::D::T% field10;
+  covariant-by-class field self::D::T% field11;
+  covariant-by-class field self::D::T% field12;
+  covariant-by-class field self::D::T% field13;
+  covariant-by-class field self::D::T% field14;
+  field invalid-type field15;
+  field invalid-type field16;
+  field invalid-type field17;
+  field invalid-type field18;
+  constructor •(core::int field1, invalid-type field2, core::int field3, invalid-type field4, core::int? field5, invalid-type field6, core::int? field7, invalid-type field8, dynamic field9, self::D::T% field10, self::D::T% field11, self::D::T% field12, self::D::T% field13, self::D::T% field14, invalid-type field15, invalid-type field16, invalid-type field17, invalid-type field18) → self::D<self::D::T%>
+    ;
+}
diff --git a/pkg/front_end/testcases/general/infer_field_type.dart b/pkg/front_end/testcases/general/infer_field_type.dart
index 0a8bda7..9e95479 100644
--- a/pkg/front_end/testcases/general/infer_field_type.dart
+++ b/pkg/front_end/testcases/general/infer_field_type.dart
@@ -1,22 +1,24 @@
 // 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 C extends B {
   var field;
 }
 
 class B extends A {
-  get field => null;
+  get field => throw '';
   set field(value) {}
 }
 
 class A {
-  var field = 0;
+  var field = method();
 }
 
 var topLevelFieldFromA = new A().field;
 var topLevelFieldFromB = new B().field;
 var topLevelFieldFromC = new C().field;
 
+int? method() => 0;
+
 main() {}
diff --git a/pkg/front_end/testcases/general/infer_field_type.dart.textual_outline.expect b/pkg/front_end/testcases/general/infer_field_type.dart.textual_outline.expect
index 8861596..9c4bee6 100644
--- a/pkg/front_end/testcases/general/infer_field_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/infer_field_type.dart.textual_outline.expect
@@ -1,18 +1,18 @@
-// @dart = 2.9
 class C extends B {
   var field;
 }
 
 class B extends A {
-  get field => null;
+  get field => throw '';
   set field(value) {}
 }
 
 class A {
-  var field = 0;
+  var field = method();
 }
 
 var topLevelFieldFromA = new A().field;
 var topLevelFieldFromB = new B().field;
 var topLevelFieldFromC = new C().field;
+int? method() => 0;
 main() {}
diff --git a/pkg/front_end/testcases/general/infer_field_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/infer_field_type.dart.textual_outline_modelled.expect
index 4255787..7186771 100644
--- a/pkg/front_end/testcases/general/infer_field_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/infer_field_type.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 class A {
-  var field = 0;
+  var field = method();
 }
 
 class B extends A {
-  get field => null;
+  get field => throw '';
   set field(value) {}
 }
 
@@ -12,6 +11,7 @@
   var field;
 }
 
+int? method() => 0;
 main() {}
 var topLevelFieldFromA = new A().field;
 var topLevelFieldFromB = new B().field;
diff --git a/pkg/front_end/testcases/general/infer_field_type.dart.weak.expect b/pkg/front_end/testcases/general/infer_field_type.dart.weak.expect
index aa6a7e49..b597464 100644
--- a/pkg/front_end/testcases/general/infer_field_type.dart.weak.expect
+++ b/pkg/front_end/testcases/general/infer_field_type.dart.weak.expect
@@ -1,38 +1,30 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends self::B {
-  field core::int* field = null;
-  synthetic constructor •() → self::C*
+  field core::int? field = null;
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  get field() → core::int*
-    return null;
-  set field(core::int* value) → void {}
+  get field() → core::int?
+    return throw "";
+  set field(core::int? value) → void {}
 }
 class A extends core::Object {
-  field core::int* field = 0;
-  synthetic constructor •() → self::A*
+  field core::int? field = self::method();
+  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
 }
-static field core::int* topLevelFieldFromA = new self::A::•().{self::A::field}{core::int*};
-static field core::int* topLevelFieldFromB = new self::B::•().{self::B::field}{core::int*};
-static field core::int* topLevelFieldFromC = new self::C::•().{self::C::field}{core::int*};
+static field core::int? topLevelFieldFromA = new self::A::•().{self::A::field}{core::int?};
+static field core::int? topLevelFieldFromB = new self::B::•().{self::B::field}{core::int?};
+static field core::int? topLevelFieldFromC = new self::C::•().{self::C::field}{core::int?};
+static method method() → core::int?
+  return 0;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/infer_field_type.dart.weak.modular.expect b/pkg/front_end/testcases/general/infer_field_type.dart.weak.modular.expect
index aa6a7e49..b597464 100644
--- a/pkg/front_end/testcases/general/infer_field_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/infer_field_type.dart.weak.modular.expect
@@ -1,38 +1,30 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends self::B {
-  field core::int* field = null;
-  synthetic constructor •() → self::C*
+  field core::int? field = null;
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  get field() → core::int*
-    return null;
-  set field(core::int* value) → void {}
+  get field() → core::int?
+    return throw "";
+  set field(core::int? value) → void {}
 }
 class A extends core::Object {
-  field core::int* field = 0;
-  synthetic constructor •() → self::A*
+  field core::int? field = self::method();
+  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
 }
-static field core::int* topLevelFieldFromA = new self::A::•().{self::A::field}{core::int*};
-static field core::int* topLevelFieldFromB = new self::B::•().{self::B::field}{core::int*};
-static field core::int* topLevelFieldFromC = new self::C::•().{self::C::field}{core::int*};
+static field core::int? topLevelFieldFromA = new self::A::•().{self::A::field}{core::int?};
+static field core::int? topLevelFieldFromB = new self::B::•().{self::B::field}{core::int?};
+static field core::int? topLevelFieldFromC = new self::C::•().{self::C::field}{core::int?};
+static method method() → core::int?
+  return 0;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/infer_field_type.dart.weak.outline.expect b/pkg/front_end/testcases/general/infer_field_type.dart.weak.outline.expect
index ce88df0..a28fe22 100644
--- a/pkg/front_end/testcases/general/infer_field_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/infer_field_type.dart.weak.outline.expect
@@ -1,37 +1,29 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends self::B {
-  field core::int* field;
-  synthetic constructor •() → self::C*
+  field core::int? field;
+  synthetic constructor •() → self::C
     ;
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  get field() → core::int*
+  get field() → core::int?
     ;
-  set field(core::int* value) → void
+  set field(core::int? value) → void
     ;
 }
 class A extends core::Object {
-  field core::int* field;
-  synthetic constructor •() → self::A*
+  field core::int? field;
+  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
 }
-static field core::int* topLevelFieldFromA;
-static field core::int* topLevelFieldFromB;
-static field core::int* topLevelFieldFromC;
+static field core::int? topLevelFieldFromA;
+static field core::int? topLevelFieldFromB;
+static field core::int? topLevelFieldFromC;
+static method method() → core::int?
+  ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/infer_field_type.dart.weak.transformed.expect b/pkg/front_end/testcases/general/infer_field_type.dart.weak.transformed.expect
index aa6a7e49..b597464 100644
--- a/pkg/front_end/testcases/general/infer_field_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/infer_field_type.dart.weak.transformed.expect
@@ -1,38 +1,30 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends self::B {
-  field core::int* field = null;
-  synthetic constructor •() → self::C*
+  field core::int? field = null;
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  get field() → core::int*
-    return null;
-  set field(core::int* value) → void {}
+  get field() → core::int?
+    return throw "";
+  set field(core::int? value) → void {}
 }
 class A extends core::Object {
-  field core::int* field = 0;
-  synthetic constructor •() → self::A*
+  field core::int? field = self::method();
+  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
 }
-static field core::int* topLevelFieldFromA = new self::A::•().{self::A::field}{core::int*};
-static field core::int* topLevelFieldFromB = new self::B::•().{self::B::field}{core::int*};
-static field core::int* topLevelFieldFromC = new self::C::•().{self::C::field}{core::int*};
+static field core::int? topLevelFieldFromA = new self::A::•().{self::A::field}{core::int?};
+static field core::int? topLevelFieldFromB = new self::B::•().{self::B::field}{core::int?};
+static field core::int? topLevelFieldFromC = new self::C::•().{self::C::field}{core::int?};
+static method method() → core::int?
+  return 0;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart
index cb84d8e..d10fb48 100644
--- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart
+++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.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 Base {}
 
 abstract class MixinA<T> {
diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline.expect b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline.expect
index e83d7c9..b5af5e7 100644
--- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class Base {}
 
 abstract class MixinA<T> {
diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline_modelled.expect
index bf1ed7b..e13a164 100644
--- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class Base {}
 
 abstract class Class extends Base with MixinA {
diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.expect b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.expect
index bf294a6..931f844 100644
--- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.expect
+++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.expect
@@ -1,127 +1,67 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class Base extends core::Object {
-  synthetic constructor •() → self::Base*
+  synthetic constructor •() → self::Base
     : 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 MixinA<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::MixinA<self::MixinA::T*>*
+abstract class MixinA<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::MixinA<self::MixinA::T%>
     : super core::Object::•()
     ;
-  abstract method method(core::Object* t) → self::MixinA::T*;
-  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 method method(core::Object t) → self::MixinA::T%;
 }
 abstract class _Class&Base&MixinA = self::Base with self::MixinA<dynamic> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Base&MixinA*
+  synthetic constructor •() → self::_Class&Base&MixinA
     : super self::Base::•()
     ;
-  abstract mixin-stub method method(core::Object* t) → dynamic; -> self::MixinA::method
+  abstract mixin-stub method method(core::Object t) → dynamic; -> self::MixinA::method
 }
 abstract class Class extends self::_Class&Base&MixinA {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super self::_Class&Base&MixinA::•()
     ;
-  method method(core::Object* t) → dynamic {}
+  method method(core::Object t) → dynamic {}
 }
 abstract class YamlNode extends core::Object {
-  synthetic constructor •() → self::YamlNode*
+  synthetic constructor •() → self::YamlNode
     : 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 Map<K extends core::Object* = dynamic, V extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Map<self::Map::K*, self::Map::V*>*
+abstract class Map<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Map<self::Map::K%, self::Map::V%>
     : super core::Object::•()
     ;
-  abstract operator [](core::Object* key) → self::Map::V*;
-  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 operator [](core::Object key) → self::Map::V%;
 }
-abstract class MapMixin<K extends core::Object* = dynamic, V extends core::Object* = dynamic> extends core::Object implements self::Map<self::MapMixin::K*, self::MapMixin::V*> {
-  synthetic constructor •() → self::MapMixin<self::MapMixin::K*, self::MapMixin::V*>*
+abstract class MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object implements self::Map<self::MapMixin::K%, self::MapMixin::V%> {
+  synthetic constructor •() → self::MapMixin<self::MapMixin::K%, self::MapMixin::V%>
     : super core::Object::•()
     ;
-  abstract operator [](core::Object* key) → self::MapMixin::V*;
-  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 operator [](core::Object key) → self::MapMixin::V%;
 }
-abstract class UnmodifiableMapMixin<K extends core::Object* = dynamic, V extends core::Object* = dynamic> extends core::Object implements self::Map<self::UnmodifiableMapMixin::K*, self::UnmodifiableMapMixin::V*> {
-  synthetic constructor •() → self::UnmodifiableMapMixin<self::UnmodifiableMapMixin::K*, self::UnmodifiableMapMixin::V*>*
+abstract class UnmodifiableMapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object implements self::Map<self::UnmodifiableMapMixin::K%, self::UnmodifiableMapMixin::V%> {
+  synthetic constructor •() → self::UnmodifiableMapMixin<self::UnmodifiableMapMixin::K%, self::UnmodifiableMapMixin::V%>
     : 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 _YamlMap&YamlNode&MapMixin = self::YamlNode with self::MapMixin<dynamic, dynamic> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin*
+  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin
     : super self::YamlNode::•()
     ;
-  abstract mixin-stub operator [](core::Object* key) → dynamic; -> self::MapMixin::[]
+  abstract mixin-stub operator [](core::Object key) → dynamic; -> self::MapMixin::[]
 }
 abstract class _YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin = self::_YamlMap&YamlNode&MapMixin with self::UnmodifiableMapMixin<dynamic, dynamic> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin*
+  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin
     : super self::_YamlMap&YamlNode&MapMixin::•()
     ;
 }
 class YamlMap extends self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin {
-  synthetic constructor •() → self::YamlMap*
+  synthetic constructor •() → self::YamlMap
     : super self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin::•()
     ;
-  operator [](core::Object* key) → dynamic {}
+  operator [](core::Object key) → dynamic {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.modular.expect b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.modular.expect
index bf294a6..931f844 100644
--- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.modular.expect
@@ -1,127 +1,67 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class Base extends core::Object {
-  synthetic constructor •() → self::Base*
+  synthetic constructor •() → self::Base
     : 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 MixinA<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::MixinA<self::MixinA::T*>*
+abstract class MixinA<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::MixinA<self::MixinA::T%>
     : super core::Object::•()
     ;
-  abstract method method(core::Object* t) → self::MixinA::T*;
-  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 method method(core::Object t) → self::MixinA::T%;
 }
 abstract class _Class&Base&MixinA = self::Base with self::MixinA<dynamic> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Base&MixinA*
+  synthetic constructor •() → self::_Class&Base&MixinA
     : super self::Base::•()
     ;
-  abstract mixin-stub method method(core::Object* t) → dynamic; -> self::MixinA::method
+  abstract mixin-stub method method(core::Object t) → dynamic; -> self::MixinA::method
 }
 abstract class Class extends self::_Class&Base&MixinA {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super self::_Class&Base&MixinA::•()
     ;
-  method method(core::Object* t) → dynamic {}
+  method method(core::Object t) → dynamic {}
 }
 abstract class YamlNode extends core::Object {
-  synthetic constructor •() → self::YamlNode*
+  synthetic constructor •() → self::YamlNode
     : 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 Map<K extends core::Object* = dynamic, V extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Map<self::Map::K*, self::Map::V*>*
+abstract class Map<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Map<self::Map::K%, self::Map::V%>
     : super core::Object::•()
     ;
-  abstract operator [](core::Object* key) → self::Map::V*;
-  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 operator [](core::Object key) → self::Map::V%;
 }
-abstract class MapMixin<K extends core::Object* = dynamic, V extends core::Object* = dynamic> extends core::Object implements self::Map<self::MapMixin::K*, self::MapMixin::V*> {
-  synthetic constructor •() → self::MapMixin<self::MapMixin::K*, self::MapMixin::V*>*
+abstract class MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object implements self::Map<self::MapMixin::K%, self::MapMixin::V%> {
+  synthetic constructor •() → self::MapMixin<self::MapMixin::K%, self::MapMixin::V%>
     : super core::Object::•()
     ;
-  abstract operator [](core::Object* key) → self::MapMixin::V*;
-  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 operator [](core::Object key) → self::MapMixin::V%;
 }
-abstract class UnmodifiableMapMixin<K extends core::Object* = dynamic, V extends core::Object* = dynamic> extends core::Object implements self::Map<self::UnmodifiableMapMixin::K*, self::UnmodifiableMapMixin::V*> {
-  synthetic constructor •() → self::UnmodifiableMapMixin<self::UnmodifiableMapMixin::K*, self::UnmodifiableMapMixin::V*>*
+abstract class UnmodifiableMapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object implements self::Map<self::UnmodifiableMapMixin::K%, self::UnmodifiableMapMixin::V%> {
+  synthetic constructor •() → self::UnmodifiableMapMixin<self::UnmodifiableMapMixin::K%, self::UnmodifiableMapMixin::V%>
     : 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 _YamlMap&YamlNode&MapMixin = self::YamlNode with self::MapMixin<dynamic, dynamic> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin*
+  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin
     : super self::YamlNode::•()
     ;
-  abstract mixin-stub operator [](core::Object* key) → dynamic; -> self::MapMixin::[]
+  abstract mixin-stub operator [](core::Object key) → dynamic; -> self::MapMixin::[]
 }
 abstract class _YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin = self::_YamlMap&YamlNode&MapMixin with self::UnmodifiableMapMixin<dynamic, dynamic> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin*
+  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin
     : super self::_YamlMap&YamlNode&MapMixin::•()
     ;
 }
 class YamlMap extends self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin {
-  synthetic constructor •() → self::YamlMap*
+  synthetic constructor •() → self::YamlMap
     : super self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin::•()
     ;
-  operator [](core::Object* key) → dynamic {}
+  operator [](core::Object key) → dynamic {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.outline.expect b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.outline.expect
index 2bf067c..141c5ec 100644
--- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.outline.expect
@@ -1,121 +1,61 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class Base extends core::Object {
-  synthetic constructor •() → self::Base*
+  synthetic constructor •() → self::Base
     ;
-  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 MixinA<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::MixinA<self::MixinA::T*>*
+abstract class MixinA<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::MixinA<self::MixinA::T%>
     ;
-  abstract method method(core::Object* t) → self::MixinA::T*;
-  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 method method(core::Object t) → self::MixinA::T%;
 }
 abstract class _Class&Base&MixinA = self::Base with self::MixinA<dynamic> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Base&MixinA*
+  synthetic constructor •() → self::_Class&Base&MixinA
     : super self::Base::•()
     ;
-  abstract mixin-stub method method(core::Object* t) → dynamic; -> self::MixinA::method
+  abstract mixin-stub method method(core::Object t) → dynamic; -> self::MixinA::method
 }
 abstract class Class extends self::_Class&Base&MixinA {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     ;
-  method method(core::Object* t) → dynamic
+  method method(core::Object t) → dynamic
     ;
 }
 abstract class YamlNode extends core::Object {
-  synthetic constructor •() → self::YamlNode*
+  synthetic constructor •() → self::YamlNode
     ;
-  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 Map<K extends core::Object* = dynamic, V extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Map<self::Map::K*, self::Map::V*>*
+abstract class Map<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Map<self::Map::K%, self::Map::V%>
     ;
-  abstract operator [](core::Object* key) → self::Map::V*;
-  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 operator [](core::Object key) → self::Map::V%;
 }
-abstract class MapMixin<K extends core::Object* = dynamic, V extends core::Object* = dynamic> extends core::Object implements self::Map<self::MapMixin::K*, self::MapMixin::V*> {
-  synthetic constructor •() → self::MapMixin<self::MapMixin::K*, self::MapMixin::V*>*
+abstract class MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object implements self::Map<self::MapMixin::K%, self::MapMixin::V%> {
+  synthetic constructor •() → self::MapMixin<self::MapMixin::K%, self::MapMixin::V%>
     ;
-  abstract operator [](core::Object* key) → self::MapMixin::V*;
-  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 operator [](core::Object key) → self::MapMixin::V%;
 }
-abstract class UnmodifiableMapMixin<K extends core::Object* = dynamic, V extends core::Object* = dynamic> extends core::Object implements self::Map<self::UnmodifiableMapMixin::K*, self::UnmodifiableMapMixin::V*> {
-  synthetic constructor •() → self::UnmodifiableMapMixin<self::UnmodifiableMapMixin::K*, self::UnmodifiableMapMixin::V*>*
+abstract class UnmodifiableMapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object implements self::Map<self::UnmodifiableMapMixin::K%, self::UnmodifiableMapMixin::V%> {
+  synthetic constructor •() → self::UnmodifiableMapMixin<self::UnmodifiableMapMixin::K%, self::UnmodifiableMapMixin::V%>
     ;
-  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 _YamlMap&YamlNode&MapMixin = self::YamlNode with self::MapMixin<dynamic, dynamic> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin*
+  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin
     : super self::YamlNode::•()
     ;
-  abstract mixin-stub operator [](core::Object* key) → dynamic; -> self::MapMixin::[]
+  abstract mixin-stub operator [](core::Object key) → dynamic; -> self::MapMixin::[]
 }
 abstract class _YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin = self::_YamlMap&YamlNode&MapMixin with self::UnmodifiableMapMixin<dynamic, dynamic> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin*
+  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin
     : super self::_YamlMap&YamlNode&MapMixin::•()
     ;
 }
 class YamlMap extends self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin {
-  synthetic constructor •() → self::YamlMap*
+  synthetic constructor •() → self::YamlMap
     ;
-  operator [](core::Object* key) → dynamic
+  operator [](core::Object key) → dynamic
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.transformed.expect b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.transformed.expect
index 1dcdd07..608c41a 100644
--- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.transformed.expect
@@ -1,127 +1,67 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class Base extends core::Object {
-  synthetic constructor •() → self::Base*
+  synthetic constructor •() → self::Base
     : 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 MixinA<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::MixinA<self::MixinA::T*>*
+abstract class MixinA<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::MixinA<self::MixinA::T%>
     : super core::Object::•()
     ;
-  abstract method method(core::Object* t) → self::MixinA::T*;
-  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 method method(core::Object t) → self::MixinA::T%;
 }
 abstract class _Class&Base&MixinA extends self::Base implements self::MixinA<dynamic> /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Base&MixinA*
+  synthetic constructor •() → self::_Class&Base&MixinA
     : super self::Base::•()
     ;
-  abstract method method(core::Object* t) → dynamic;
+  abstract method method(core::Object t) → dynamic;
 }
 abstract class Class extends self::_Class&Base&MixinA {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super self::_Class&Base&MixinA::•()
     ;
-  method method(core::Object* t) → dynamic {}
+  method method(core::Object t) → dynamic {}
 }
 abstract class YamlNode extends core::Object {
-  synthetic constructor •() → self::YamlNode*
+  synthetic constructor •() → self::YamlNode
     : 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 Map<K extends core::Object* = dynamic, V extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Map<self::Map::K*, self::Map::V*>*
+abstract class Map<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Map<self::Map::K%, self::Map::V%>
     : super core::Object::•()
     ;
-  abstract operator [](core::Object* key) → self::Map::V*;
-  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 operator [](core::Object key) → self::Map::V%;
 }
-abstract class MapMixin<K extends core::Object* = dynamic, V extends core::Object* = dynamic> extends core::Object implements self::Map<self::MapMixin::K*, self::MapMixin::V*> {
-  synthetic constructor •() → self::MapMixin<self::MapMixin::K*, self::MapMixin::V*>*
+abstract class MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object implements self::Map<self::MapMixin::K%, self::MapMixin::V%> {
+  synthetic constructor •() → self::MapMixin<self::MapMixin::K%, self::MapMixin::V%>
     : super core::Object::•()
     ;
-  abstract operator [](core::Object* key) → self::MapMixin::V*;
-  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 operator [](core::Object key) → self::MapMixin::V%;
 }
-abstract class UnmodifiableMapMixin<K extends core::Object* = dynamic, V extends core::Object* = dynamic> extends core::Object implements self::Map<self::UnmodifiableMapMixin::K*, self::UnmodifiableMapMixin::V*> {
-  synthetic constructor •() → self::UnmodifiableMapMixin<self::UnmodifiableMapMixin::K*, self::UnmodifiableMapMixin::V*>*
+abstract class UnmodifiableMapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object implements self::Map<self::UnmodifiableMapMixin::K%, self::UnmodifiableMapMixin::V%> {
+  synthetic constructor •() → self::UnmodifiableMapMixin<self::UnmodifiableMapMixin::K%, self::UnmodifiableMapMixin::V%>
     : 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 _YamlMap&YamlNode&MapMixin extends self::YamlNode implements self::MapMixin<dynamic, dynamic> /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin*
+  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin
     : super self::YamlNode::•()
     ;
-  abstract operator [](core::Object* key) → dynamic;
+  abstract operator [](core::Object key) → dynamic;
 }
 abstract class _YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin extends self::_YamlMap&YamlNode&MapMixin implements self::UnmodifiableMapMixin<dynamic, dynamic> /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin*
+  synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin
     : super self::_YamlMap&YamlNode&MapMixin::•()
     ;
 }
 class YamlMap extends self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin {
-  synthetic constructor •() → self::YamlMap*
+  synthetic constructor •() → self::YamlMap
     : super self::_YamlMap&YamlNode&MapMixin&UnmodifiableMapMixin::•()
     ;
-  operator [](core::Object* key) → dynamic {}
+  operator [](core::Object key) → dynamic {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart b/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart
index 4b4e481..813754f 100644
--- a/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart
+++ b/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.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 F<T> = T Function(T, T);
 
 test1() {
diff --git a/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart.weak.expect b/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart.weak.expect
index 4574621..1371ebe 100644
--- a/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart.weak.expect
+++ b/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart.weak.expect
@@ -2,39 +2,39 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:9:10: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:11:10: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(S a, S b) => a;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:15:7: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:17:7: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = f;
 //       ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:20:10: Error: A value of type 'dynamic Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:22:10: Error: A value of type 'dynamic Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a, S b) => a;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:25:10: Error: A value of type 'S Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:27:10: Error: A value of type 'S Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a, S b) => b;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:30:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:32:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a, b) => a;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:35:7: Error: A value of type 'int Function(int, int, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:37:7: Error: A value of type 'int Function(int, int, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = (a, b, c) => a;
 //       ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:40:7: Error: A value of type 'int Function(int)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:42:7: Error: A value of type 'int Function(int)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = (a) => a;
 //       ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:45:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:47:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a, b, c) => a;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:50:10: Error: A value of type 'dynamic Function<S>(dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:52:10: Error: A value of type 'dynamic Function<S>(dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a) => a;
 //          ^
 //
@@ -44,56 +44,56 @@
 typedef F<invariant T extends core::Object* = dynamic> = (T*, T*) →* T*;
 static method test1() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:9:10: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:11:10: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(S a, S b) => a;
          ^" in (<S extends core::Object* = dynamic>(S* a, S* b) → S* => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test2() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
   <S extends core::Object* = dynamic>(S*, S*) →* S* f = <S extends core::Object* = dynamic>(S* a, S* b) → S* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:15:7: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:17:7: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = f;
       ^" in f as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test3a() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:20:10: Error: A value of type 'dynamic Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:22:10: Error: A value of type 'dynamic Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a, S b) => a;
          ^" in (<S extends core::Object* = dynamic>(dynamic a, S* b) → dynamic => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test3b() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:25:10: Error: A value of type 'S Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:27:10: Error: A value of type 'S Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a, S b) => b;
          ^" in (<S extends core::Object* = dynamic>(dynamic a, S* b) → S* => b) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test4() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:30:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:32:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a, b) => a;
          ^" in (<S extends core::Object* = dynamic>(dynamic a, dynamic b) → dynamic => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test5() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:35:7: Error: A value of type 'int Function(int, int, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:37:7: Error: A value of type 'int Function(int, int, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = (a, b, c) => a;
       ^" in ((core::int* a, core::int* b, dynamic c) → core::int* => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test6() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:40:7: Error: A value of type 'int Function(int)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:42:7: Error: A value of type 'int Function(int)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = (a) => a;
       ^" in ((core::int* a) → core::int* => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test7() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:45:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:47:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a, b, c) => a;
          ^" in (<S extends core::Object* = dynamic>(dynamic a, dynamic b, dynamic c) → dynamic => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test8() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:50:10: Error: A value of type 'dynamic Function<S>(dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:52:10: Error: A value of type 'dynamic Function<S>(dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a) => a;
          ^" in (<S extends core::Object* = dynamic>(dynamic a) → dynamic => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
diff --git a/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart.weak.modular.expect b/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart.weak.modular.expect
index 4574621..1371ebe 100644
--- a/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart.weak.modular.expect
@@ -2,39 +2,39 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:9:10: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:11:10: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(S a, S b) => a;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:15:7: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:17:7: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = f;
 //       ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:20:10: Error: A value of type 'dynamic Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:22:10: Error: A value of type 'dynamic Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a, S b) => a;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:25:10: Error: A value of type 'S Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:27:10: Error: A value of type 'S Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a, S b) => b;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:30:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:32:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a, b) => a;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:35:7: Error: A value of type 'int Function(int, int, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:37:7: Error: A value of type 'int Function(int, int, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = (a, b, c) => a;
 //       ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:40:7: Error: A value of type 'int Function(int)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:42:7: Error: A value of type 'int Function(int)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = (a) => a;
 //       ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:45:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:47:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a, b, c) => a;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:50:10: Error: A value of type 'dynamic Function<S>(dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:52:10: Error: A value of type 'dynamic Function<S>(dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a) => a;
 //          ^
 //
@@ -44,56 +44,56 @@
 typedef F<invariant T extends core::Object* = dynamic> = (T*, T*) →* T*;
 static method test1() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:9:10: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:11:10: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(S a, S b) => a;
          ^" in (<S extends core::Object* = dynamic>(S* a, S* b) → S* => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test2() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
   <S extends core::Object* = dynamic>(S*, S*) →* S* f = <S extends core::Object* = dynamic>(S* a, S* b) → S* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:15:7: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:17:7: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = f;
       ^" in f as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test3a() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:20:10: Error: A value of type 'dynamic Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:22:10: Error: A value of type 'dynamic Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a, S b) => a;
          ^" in (<S extends core::Object* = dynamic>(dynamic a, S* b) → dynamic => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test3b() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:25:10: Error: A value of type 'S Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:27:10: Error: A value of type 'S Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a, S b) => b;
          ^" in (<S extends core::Object* = dynamic>(dynamic a, S* b) → S* => b) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test4() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:30:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:32:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a, b) => a;
          ^" in (<S extends core::Object* = dynamic>(dynamic a, dynamic b) → dynamic => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test5() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:35:7: Error: A value of type 'int Function(int, int, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:37:7: Error: A value of type 'int Function(int, int, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = (a, b, c) => a;
       ^" in ((core::int* a, core::int* b, dynamic c) → core::int* => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test6() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:40:7: Error: A value of type 'int Function(int)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:42:7: Error: A value of type 'int Function(int)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = (a) => a;
       ^" in ((core::int* a) → core::int* => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test7() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:45:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:47:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a, b, c) => a;
          ^" in (<S extends core::Object* = dynamic>(dynamic a, dynamic b, dynamic c) → dynamic => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test8() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:50:10: Error: A value of type 'dynamic Function<S>(dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:52:10: Error: A value of type 'dynamic Function<S>(dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a) => a;
          ^" in (<S extends core::Object* = dynamic>(dynamic a) → dynamic => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
diff --git a/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart.weak.transformed.expect b/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart.weak.transformed.expect
index 4574621..1371ebe 100644
--- a/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart.weak.transformed.expect
@@ -2,39 +2,39 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:9:10: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:11:10: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(S a, S b) => a;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:15:7: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:17:7: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = f;
 //       ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:20:10: Error: A value of type 'dynamic Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:22:10: Error: A value of type 'dynamic Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a, S b) => a;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:25:10: Error: A value of type 'S Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:27:10: Error: A value of type 'S Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a, S b) => b;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:30:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:32:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a, b) => a;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:35:7: Error: A value of type 'int Function(int, int, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:37:7: Error: A value of type 'int Function(int, int, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = (a, b, c) => a;
 //       ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:40:7: Error: A value of type 'int Function(int)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:42:7: Error: A value of type 'int Function(int)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = (a) => a;
 //       ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:45:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:47:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a, b, c) => a;
 //          ^
 //
-// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:50:10: Error: A value of type 'dynamic Function<S>(dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+// pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:52:10: Error: A value of type 'dynamic Function<S>(dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
 //   d = <S>(a) => a;
 //          ^
 //
@@ -44,56 +44,56 @@
 typedef F<invariant T extends core::Object* = dynamic> = (T*, T*) →* T*;
 static method test1() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:9:10: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:11:10: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(S a, S b) => a;
          ^" in (<S extends core::Object* = dynamic>(S* a, S* b) → S* => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test2() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
   <S extends core::Object* = dynamic>(S*, S*) →* S* f = <S extends core::Object* = dynamic>(S* a, S* b) → S* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:15:7: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:17:7: Error: A value of type 'S Function<S>(S, S)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = f;
       ^" in f as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test3a() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:20:10: Error: A value of type 'dynamic Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:22:10: Error: A value of type 'dynamic Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a, S b) => a;
          ^" in (<S extends core::Object* = dynamic>(dynamic a, S* b) → dynamic => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test3b() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:25:10: Error: A value of type 'S Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:27:10: Error: A value of type 'S Function<S>(dynamic, S)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a, S b) => b;
          ^" in (<S extends core::Object* = dynamic>(dynamic a, S* b) → S* => b) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test4() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:30:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:32:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a, b) => a;
          ^" in (<S extends core::Object* = dynamic>(dynamic a, dynamic b) → dynamic => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test5() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:35:7: Error: A value of type 'int Function(int, int, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:37:7: Error: A value of type 'int Function(int, int, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = (a, b, c) => a;
       ^" in ((core::int* a, core::int* b, dynamic c) → core::int* => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test6() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:40:7: Error: A value of type 'int Function(int)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:42:7: Error: A value of type 'int Function(int)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = (a) => a;
       ^" in ((core::int* a) → core::int* => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test7() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:45:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:47:10: Error: A value of type 'dynamic Function<S>(dynamic, dynamic, dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a, b, c) => a;
          ^" in (<S extends core::Object* = dynamic>(dynamic a, dynamic b, dynamic c) → dynamic => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
 static method test8() → dynamic {
   (core::int*, core::int*) →* core::int* d = (core::int* a, core::int* b) → core::int* => a;
-  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:50:10: Error: A value of type 'dynamic Function<S>(dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
+  d = invalid-expression "pkg/front_end/testcases/general/infer_generic_type_parameter_mismatch.dart:52:10: Error: A value of type 'dynamic Function<S>(dynamic)' can't be assigned to a variable of type 'int Function(int, int)'.
   d = <S>(a) => a;
          ^" in (<S extends core::Object* = dynamic>(dynamic a) → dynamic => a) as{TypeError} (core::int*, core::int*) →* core::int*;
 }
diff --git a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart
index 74cb869..180da08 100644
--- a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart
+++ b/pkg/front_end/testcases/general/infer_map_literal_with_closure.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 map = {
     'foo': (String a) {
diff --git a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.textual_outline.expect b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.textual_outline.expect
index 80f7146..e1d5d9a 100644
--- a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Class {
   var map = {
     'foo': (String a) {
diff --git a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.textual_outline_modelled.expect
index 80f7146..e1d5d9a 100644
--- a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Class {
   var map = {
     'foo': (String a) {
diff --git a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.weak.expect b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.weak.expect
index 4e6b1e4..8b46298 100644
--- a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.weak.expect
+++ b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.weak.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  field core::Map<core::String*, (core::String*) →* Null>* map = <core::String*, (core::String*) →* Null>{"foo": (core::String* a) → Null {
-    core::int* c = a.{core::String::length}{core::int*};
+  field core::Map<core::String, (core::String) → Null> map = <core::String, (core::String) → Null>{"foo": (core::String a) → Null {
+    core::int c = a.{core::String::length}{core::int};
   }};
-  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/infer_map_literal_with_closure.dart.weak.modular.expect b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.weak.modular.expect
index 4e6b1e4..8b46298 100644
--- a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  field core::Map<core::String*, (core::String*) →* Null>* map = <core::String*, (core::String*) →* Null>{"foo": (core::String* a) → Null {
-    core::int* c = a.{core::String::length}{core::int*};
+  field core::Map<core::String, (core::String) → Null> map = <core::String, (core::String) → Null>{"foo": (core::String a) → Null {
+    core::int c = a.{core::String::length}{core::int};
   }};
-  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/infer_map_literal_with_closure.dart.weak.outline.expect b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.weak.outline.expect
index 5e88de7..aef3cdf 100644
--- a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/infer_map_literal_with_closure.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 {
-  field core::Map<core::String*, (core::String*) →* Null>* map;
-  synthetic constructor •() → self::Class*
+  field core::Map<core::String, (core::String) → Null> map;
+  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/infer_map_literal_with_closure.dart.weak.transformed.expect b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.weak.transformed.expect
index 4e6b1e4..8b46298 100644
--- a/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/infer_map_literal_with_closure.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Class extends core::Object {
-  field core::Map<core::String*, (core::String*) →* Null>* map = <core::String*, (core::String*) →* Null>{"foo": (core::String* a) → Null {
-    core::int* c = a.{core::String::length}{core::int*};
+  field core::Map<core::String, (core::String) → Null> map = <core::String, (core::String) → Null>{"foo": (core::String a) → Null {
+    core::int c = a.{core::String::length}{core::int};
   }};
-  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/inherit_function.dart b/pkg/front_end/testcases/general/inherit_function.dart
index 304fef7..c670d37 100644
--- a/pkg/front_end/testcases/general/inherit_function.dart
+++ b/pkg/front_end/testcases/general/inherit_function.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 A implements Function {}
 
 class B extends Function {}
diff --git a/pkg/front_end/testcases/general/inherit_function.dart.textual_outline.expect b/pkg/front_end/testcases/general/inherit_function.dart.textual_outline.expect
index a8cacf7..a94f799 100644
--- a/pkg/front_end/testcases/general/inherit_function.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/inherit_function.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A implements Function {}
 
 class B extends Function {}
diff --git a/pkg/front_end/testcases/general/inherit_function.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/inherit_function.dart.textual_outline_modelled.expect
index a8cacf7..a94f799 100644
--- a/pkg/front_end/testcases/general/inherit_function.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/inherit_function.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A implements Function {}
 
 class B extends Function {}
diff --git a/pkg/front_end/testcases/general/inherit_function.dart.weak.expect b/pkg/front_end/testcases/general/inherit_function.dart.weak.expect
index 8b7e846..78da835 100644
--- a/pkg/front_end/testcases/general/inherit_function.dart.weak.expect
+++ b/pkg/front_end/testcases/general/inherit_function.dart.weak.expect
@@ -1,70 +1,30 @@
-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::•()
     ;
-  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::•()
     ;
-  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&Object&Function extends core::Object {
-  synthetic constructor •() → self::_C&Object&Function*
+  synthetic constructor •() → self::_C&Object&Function
     : 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::_C&Object&Function {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::_C&Object&Function::•()
     ;
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : 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/inherit_function.dart.weak.modular.expect b/pkg/front_end/testcases/general/inherit_function.dart.weak.modular.expect
index 8b7e846..78da835 100644
--- a/pkg/front_end/testcases/general/inherit_function.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/inherit_function.dart.weak.modular.expect
@@ -1,70 +1,30 @@
-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::•()
     ;
-  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::•()
     ;
-  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&Object&Function extends core::Object {
-  synthetic constructor •() → self::_C&Object&Function*
+  synthetic constructor •() → self::_C&Object&Function
     : 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::_C&Object&Function {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::_C&Object&Function::•()
     ;
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : 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/inherit_function.dart.weak.outline.expect b/pkg/front_end/testcases/general/inherit_function.dart.weak.outline.expect
index c72958b..9c3ae75 100644
--- a/pkg/front_end/testcases/general/inherit_function.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/inherit_function.dart.weak.outline.expect
@@ -1,66 +1,26 @@
-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
     ;
-  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
     ;
-  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&Object&Function extends core::Object {
-  synthetic constructor •() → self::_C&Object&Function*
+  synthetic constructor •() → self::_C&Object&Function
     ;
-  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::_C&Object&Function {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
-  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/inherit_function.dart.weak.transformed.expect b/pkg/front_end/testcases/general/inherit_function.dart.weak.transformed.expect
index 8b7e846..78da835 100644
--- a/pkg/front_end/testcases/general/inherit_function.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/inherit_function.dart.weak.transformed.expect
@@ -1,70 +1,30 @@
-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::•()
     ;
-  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::•()
     ;
-  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&Object&Function extends core::Object {
-  synthetic constructor •() → self::_C&Object&Function*
+  synthetic constructor •() → self::_C&Object&Function
     : 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::_C&Object&Function {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::_C&Object&Function::•()
     ;
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : 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/initialzation_errors.dart b/pkg/front_end/testcases/general/initialzation_errors.dart
index bce2468..0b399c2 100644
--- a/pkg/front_end/testcases/general/initialzation_errors.dart
+++ b/pkg/front_end/testcases/general/initialzation_errors.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 A {
   int x;
   A()
diff --git a/pkg/front_end/testcases/general/initialzation_errors.dart.textual_outline.expect b/pkg/front_end/testcases/general/initialzation_errors.dart.textual_outline.expect
index c2ae57e..f1eb7f2 100644
--- a/pkg/front_end/testcases/general/initialzation_errors.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/initialzation_errors.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   int x;
   A()
diff --git a/pkg/front_end/testcases/general/initialzation_errors.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/initialzation_errors.dart.textual_outline_modelled.expect
index 6db4109..f09d803 100644
--- a/pkg/front_end/testcases/general/initialzation_errors.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/initialzation_errors.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A()
       : this.x = 41,
diff --git a/pkg/front_end/testcases/general/initialzation_errors.dart.weak.expect b/pkg/front_end/testcases/general/initialzation_errors.dart.weak.expect
index fc29ac4..f69f20c 100644
--- a/pkg/front_end/testcases/general/initialzation_errors.dart.weak.expect
+++ b/pkg/front_end/testcases/general/initialzation_errors.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -101,97 +101,57 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* x;
-  constructor •() → self::A*
+  field core::int x;
+  constructor •() → self::A
     : self::A::x = 41, final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:9:16: Error: 'x' was already initialized by this constructor.
         this.x = 42 {}
                ^", 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 {
-  final field core::int* x;
-  constructor •() → self::B*
+  final field core::int x;
+  constructor •() → self::B
     : self::B::x = 41, final dynamic #t2 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:16:16: Error: 'x' was already initialized by this constructor.
         this.x = 42 {}
                ^", 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 {
-  final field core::int* x = 2;
-  constructor •() → self::C*
+  final field core::int x = 2;
+  constructor •() → self::C
     : final dynamic #t3 = throw new core::_DuplicatedFieldInitializerError::•("x"), final dynamic #t4 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:23:16: Error: 'x' was already initialized by this constructor.
         this.x = 42 {}
                ^", 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 D extends core::Object {
-  final field core::int* x;
-  final field core::int* y;
-  constructor •() → self::D*
+  final field core::int x;
+  final field core::int y;
+  constructor •() → self::D
     : final dynamic #t5 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:30:16: Error: A redirecting constructor can't have other initializers.
       : this.x = 41,
                ^", final dynamic #t6 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:32:16: Error: A redirecting constructor can't have other initializers.
         this.y = 42 {}
                ^", this self::D::named() {}
-  constructor named() → self::D*
+  constructor named() → self::D
     : self::D::x = 41, self::D::y = 42, 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 E extends core::Object {
-  final field core::int* x;
-  final field core::int* y;
-  constructor •() → self::E*
+  final field core::int x;
+  final field core::int y;
+  constructor •() → self::E
     : final dynamic #t7 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:43:16: Error: A redirecting constructor can't have other initializers.
         this.x = 1,
                ^", final dynamic #t8 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:44:16: Error: A redirecting constructor can't have other initializers.
         this.y = 2 {}
                ^", this self::E::named() {}
-  constructor named() → self::E*
+  constructor named() → self::E
     : self::E::x = 41, self::E::y = 42, super core::Object::•() {}
-  constructor named2() → self::E*
+  constructor named2() → self::E
     : final dynamic #t9 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:49:16: Error: A redirecting constructor can't have other initializers.
       : this.x = 1,
                ^", final dynamic #t10 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:51:16: Error: A redirecting constructor can't have other initializers.
         this.y = 2;
                ^", this self::E::named()
     ;
-  constructor named3() → self::E*
+  constructor named3() → self::E
     : final dynamic #t11 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:53:9: Error: A redirecting constructor can't have a 'super' initializer.
       : super(),
         ^^^^^", final dynamic #t12 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:55:16: Error: Can't have initializers after 'super'.
@@ -200,122 +160,62 @@
         this.y = 2;
                ^", super core::Object::•()
     ;
-  constructor named4() → self::E*
+  constructor named4() → self::E
     : final dynamic #t14 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:58:16: Error: A redirecting constructor can't have other initializers.
       : this.x = 1,
                ^", final dynamic #t15 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:59:16: Error: A redirecting constructor can't have other initializers.
         this.y = 2,
                ^", this self::E::named()
     ;
-  constructor named5() → self::E*
+  constructor named5() → self::E
     : final dynamic #t16 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:62:9: Error: A redirecting constructor can't have other initializers.
       : assert(true),
         ^^^^^^", this self::E::named()
     ;
-  constructor named6() → self::E*
+  constructor named6() → self::E
     : final dynamic #t17 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:66:9: Error: A redirecting constructor can't have other initializers.
         assert(true);
         ^^^^^^", this self::E::named()
     ;
-  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 F extends core::Object {
-  constructor •() → self::F*
+  constructor •() → self::F
     : final dynamic #t18 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:72:9: Error: A redirecting constructor can't have a 'super' initializer.
         super() {}
         ^^^^^", this self::F::named() {}
-  constructor named() → self::F*
+  constructor named() → self::F
     : 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 G extends core::Object {
-  constructor •() → self::G*
+  constructor •() → self::G
     : final dynamic #t19 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:78:9: Error: A redirecting constructor can't have a 'super' initializer.
       : super(),
         ^^^^^", final dynamic #t20 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:80:9: Error: Can't have more than one 'super' initializer.
         super() {}
         ^^^^^", super core::Object::•() {}
-  constructor named() → self::G*
+  constructor named() → self::G
     : 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 H extends core::Object {
-  constructor •() → self::H*
+  constructor •() → self::H
     : final dynamic #t21 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:87:14: Error: A redirecting constructor can't have more than one redirection.
         this.named();
              ^", this self::H::named()
     ;
-  constructor named() → self::H*
+  constructor named() → self::H
     : 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 I extends core::Object {
-  constructor •() → self::I*
+  constructor •() → self::I
     : final dynamic #t22 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:94:9: Error: Can't have more than one 'super' initializer.
         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 J extends core::Object {
-  field core::int* x;
-  constructor •() → self::J*
+  field core::int x;
+  constructor •() → self::J
     : final dynamic #t23 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:101:16: Error: Can't have initializers after 'super'.
         this.x = 42 {}
                ^", 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/initialzation_errors.dart.weak.modular.expect b/pkg/front_end/testcases/general/initialzation_errors.dart.weak.modular.expect
index fc29ac4..f69f20c 100644
--- a/pkg/front_end/testcases/general/initialzation_errors.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/initialzation_errors.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -101,97 +101,57 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* x;
-  constructor •() → self::A*
+  field core::int x;
+  constructor •() → self::A
     : self::A::x = 41, final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:9:16: Error: 'x' was already initialized by this constructor.
         this.x = 42 {}
                ^", 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 {
-  final field core::int* x;
-  constructor •() → self::B*
+  final field core::int x;
+  constructor •() → self::B
     : self::B::x = 41, final dynamic #t2 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:16:16: Error: 'x' was already initialized by this constructor.
         this.x = 42 {}
                ^", 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 {
-  final field core::int* x = 2;
-  constructor •() → self::C*
+  final field core::int x = 2;
+  constructor •() → self::C
     : final dynamic #t3 = throw new core::_DuplicatedFieldInitializerError::•("x"), final dynamic #t4 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:23:16: Error: 'x' was already initialized by this constructor.
         this.x = 42 {}
                ^", 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 D extends core::Object {
-  final field core::int* x;
-  final field core::int* y;
-  constructor •() → self::D*
+  final field core::int x;
+  final field core::int y;
+  constructor •() → self::D
     : final dynamic #t5 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:30:16: Error: A redirecting constructor can't have other initializers.
       : this.x = 41,
                ^", final dynamic #t6 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:32:16: Error: A redirecting constructor can't have other initializers.
         this.y = 42 {}
                ^", this self::D::named() {}
-  constructor named() → self::D*
+  constructor named() → self::D
     : self::D::x = 41, self::D::y = 42, 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 E extends core::Object {
-  final field core::int* x;
-  final field core::int* y;
-  constructor •() → self::E*
+  final field core::int x;
+  final field core::int y;
+  constructor •() → self::E
     : final dynamic #t7 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:43:16: Error: A redirecting constructor can't have other initializers.
         this.x = 1,
                ^", final dynamic #t8 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:44:16: Error: A redirecting constructor can't have other initializers.
         this.y = 2 {}
                ^", this self::E::named() {}
-  constructor named() → self::E*
+  constructor named() → self::E
     : self::E::x = 41, self::E::y = 42, super core::Object::•() {}
-  constructor named2() → self::E*
+  constructor named2() → self::E
     : final dynamic #t9 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:49:16: Error: A redirecting constructor can't have other initializers.
       : this.x = 1,
                ^", final dynamic #t10 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:51:16: Error: A redirecting constructor can't have other initializers.
         this.y = 2;
                ^", this self::E::named()
     ;
-  constructor named3() → self::E*
+  constructor named3() → self::E
     : final dynamic #t11 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:53:9: Error: A redirecting constructor can't have a 'super' initializer.
       : super(),
         ^^^^^", final dynamic #t12 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:55:16: Error: Can't have initializers after 'super'.
@@ -200,122 +160,62 @@
         this.y = 2;
                ^", super core::Object::•()
     ;
-  constructor named4() → self::E*
+  constructor named4() → self::E
     : final dynamic #t14 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:58:16: Error: A redirecting constructor can't have other initializers.
       : this.x = 1,
                ^", final dynamic #t15 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:59:16: Error: A redirecting constructor can't have other initializers.
         this.y = 2,
                ^", this self::E::named()
     ;
-  constructor named5() → self::E*
+  constructor named5() → self::E
     : final dynamic #t16 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:62:9: Error: A redirecting constructor can't have other initializers.
       : assert(true),
         ^^^^^^", this self::E::named()
     ;
-  constructor named6() → self::E*
+  constructor named6() → self::E
     : final dynamic #t17 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:66:9: Error: A redirecting constructor can't have other initializers.
         assert(true);
         ^^^^^^", this self::E::named()
     ;
-  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 F extends core::Object {
-  constructor •() → self::F*
+  constructor •() → self::F
     : final dynamic #t18 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:72:9: Error: A redirecting constructor can't have a 'super' initializer.
         super() {}
         ^^^^^", this self::F::named() {}
-  constructor named() → self::F*
+  constructor named() → self::F
     : 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 G extends core::Object {
-  constructor •() → self::G*
+  constructor •() → self::G
     : final dynamic #t19 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:78:9: Error: A redirecting constructor can't have a 'super' initializer.
       : super(),
         ^^^^^", final dynamic #t20 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:80:9: Error: Can't have more than one 'super' initializer.
         super() {}
         ^^^^^", super core::Object::•() {}
-  constructor named() → self::G*
+  constructor named() → self::G
     : 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 H extends core::Object {
-  constructor •() → self::H*
+  constructor •() → self::H
     : final dynamic #t21 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:87:14: Error: A redirecting constructor can't have more than one redirection.
         this.named();
              ^", this self::H::named()
     ;
-  constructor named() → self::H*
+  constructor named() → self::H
     : 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 I extends core::Object {
-  constructor •() → self::I*
+  constructor •() → self::I
     : final dynamic #t22 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:94:9: Error: Can't have more than one 'super' initializer.
         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 J extends core::Object {
-  field core::int* x;
-  constructor •() → self::J*
+  field core::int x;
+  constructor •() → self::J
     : final dynamic #t23 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:101:16: Error: Can't have initializers after 'super'.
         this.x = 42 {}
                ^", 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/initialzation_errors.dart.weak.outline.expect b/pkg/front_end/testcases/general/initialzation_errors.dart.weak.outline.expect
index df79178..abcfcc2 100644
--- a/pkg/front_end/testcases/general/initialzation_errors.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/initialzation_errors.dart.weak.outline.expect
@@ -1,174 +1,74 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* x;
-  constructor •() → self::A*
+  field core::int x;
+  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 {
-  final field core::int* x;
-  constructor •() → self::B*
+  final field core::int x;
+  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 {
-  final field core::int* x;
-  constructor •() → self::C*
+  final field core::int x;
+  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
 }
 class D extends core::Object {
-  final field core::int* x;
-  final field core::int* y;
-  constructor •() → self::D*
+  final field core::int x;
+  final field core::int y;
+  constructor •() → self::D
     ;
-  constructor named() → self::D*
+  constructor named() → self::D
     ;
-  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 core::Object {
-  final field core::int* x;
-  final field core::int* y;
-  constructor •() → self::E*
+  final field core::int x;
+  final field core::int y;
+  constructor •() → self::E
     ;
-  constructor named() → self::E*
+  constructor named() → self::E
     ;
-  constructor named2() → self::E*
+  constructor named2() → self::E
     ;
-  constructor named3() → self::E*
+  constructor named3() → self::E
     ;
-  constructor named4() → self::E*
+  constructor named4() → self::E
     ;
-  constructor named5() → self::E*
+  constructor named5() → self::E
     ;
-  constructor named6() → self::E*
+  constructor named6() → self::E
     ;
-  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 F extends core::Object {
-  constructor •() → self::F*
+  constructor •() → self::F
     ;
-  constructor named() → self::F*
+  constructor named() → self::F
     ;
-  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 G extends core::Object {
-  constructor •() → self::G*
+  constructor •() → self::G
     ;
-  constructor named() → self::G*
+  constructor named() → self::G
     ;
-  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 H extends core::Object {
-  constructor •() → self::H*
+  constructor •() → self::H
     ;
-  constructor named() → self::H*
+  constructor named() → self::H
     ;
-  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 I extends core::Object {
-  constructor •() → self::I*
+  constructor •() → self::I
     ;
-  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 J extends core::Object {
-  field core::int* x;
-  constructor •() → self::J*
+  field core::int x;
+  constructor •() → self::J
     ;
-  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/initialzation_errors.dart.weak.transformed.expect b/pkg/front_end/testcases/general/initialzation_errors.dart.weak.transformed.expect
index fc29ac4..f69f20c 100644
--- a/pkg/front_end/testcases/general/initialzation_errors.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/initialzation_errors.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -101,97 +101,57 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* x;
-  constructor •() → self::A*
+  field core::int x;
+  constructor •() → self::A
     : self::A::x = 41, final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:9:16: Error: 'x' was already initialized by this constructor.
         this.x = 42 {}
                ^", 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 {
-  final field core::int* x;
-  constructor •() → self::B*
+  final field core::int x;
+  constructor •() → self::B
     : self::B::x = 41, final dynamic #t2 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:16:16: Error: 'x' was already initialized by this constructor.
         this.x = 42 {}
                ^", 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 {
-  final field core::int* x = 2;
-  constructor •() → self::C*
+  final field core::int x = 2;
+  constructor •() → self::C
     : final dynamic #t3 = throw new core::_DuplicatedFieldInitializerError::•("x"), final dynamic #t4 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:23:16: Error: 'x' was already initialized by this constructor.
         this.x = 42 {}
                ^", 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 D extends core::Object {
-  final field core::int* x;
-  final field core::int* y;
-  constructor •() → self::D*
+  final field core::int x;
+  final field core::int y;
+  constructor •() → self::D
     : final dynamic #t5 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:30:16: Error: A redirecting constructor can't have other initializers.
       : this.x = 41,
                ^", final dynamic #t6 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:32:16: Error: A redirecting constructor can't have other initializers.
         this.y = 42 {}
                ^", this self::D::named() {}
-  constructor named() → self::D*
+  constructor named() → self::D
     : self::D::x = 41, self::D::y = 42, 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 E extends core::Object {
-  final field core::int* x;
-  final field core::int* y;
-  constructor •() → self::E*
+  final field core::int x;
+  final field core::int y;
+  constructor •() → self::E
     : final dynamic #t7 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:43:16: Error: A redirecting constructor can't have other initializers.
         this.x = 1,
                ^", final dynamic #t8 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:44:16: Error: A redirecting constructor can't have other initializers.
         this.y = 2 {}
                ^", this self::E::named() {}
-  constructor named() → self::E*
+  constructor named() → self::E
     : self::E::x = 41, self::E::y = 42, super core::Object::•() {}
-  constructor named2() → self::E*
+  constructor named2() → self::E
     : final dynamic #t9 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:49:16: Error: A redirecting constructor can't have other initializers.
       : this.x = 1,
                ^", final dynamic #t10 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:51:16: Error: A redirecting constructor can't have other initializers.
         this.y = 2;
                ^", this self::E::named()
     ;
-  constructor named3() → self::E*
+  constructor named3() → self::E
     : final dynamic #t11 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:53:9: Error: A redirecting constructor can't have a 'super' initializer.
       : super(),
         ^^^^^", final dynamic #t12 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:55:16: Error: Can't have initializers after 'super'.
@@ -200,122 +160,62 @@
         this.y = 2;
                ^", super core::Object::•()
     ;
-  constructor named4() → self::E*
+  constructor named4() → self::E
     : final dynamic #t14 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:58:16: Error: A redirecting constructor can't have other initializers.
       : this.x = 1,
                ^", final dynamic #t15 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:59:16: Error: A redirecting constructor can't have other initializers.
         this.y = 2,
                ^", this self::E::named()
     ;
-  constructor named5() → self::E*
+  constructor named5() → self::E
     : final dynamic #t16 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:62:9: Error: A redirecting constructor can't have other initializers.
       : assert(true),
         ^^^^^^", this self::E::named()
     ;
-  constructor named6() → self::E*
+  constructor named6() → self::E
     : final dynamic #t17 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:66:9: Error: A redirecting constructor can't have other initializers.
         assert(true);
         ^^^^^^", this self::E::named()
     ;
-  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 F extends core::Object {
-  constructor •() → self::F*
+  constructor •() → self::F
     : final dynamic #t18 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:72:9: Error: A redirecting constructor can't have a 'super' initializer.
         super() {}
         ^^^^^", this self::F::named() {}
-  constructor named() → self::F*
+  constructor named() → self::F
     : 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 G extends core::Object {
-  constructor •() → self::G*
+  constructor •() → self::G
     : final dynamic #t19 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:78:9: Error: A redirecting constructor can't have a 'super' initializer.
       : super(),
         ^^^^^", final dynamic #t20 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:80:9: Error: Can't have more than one 'super' initializer.
         super() {}
         ^^^^^", super core::Object::•() {}
-  constructor named() → self::G*
+  constructor named() → self::G
     : 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 H extends core::Object {
-  constructor •() → self::H*
+  constructor •() → self::H
     : final dynamic #t21 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:87:14: Error: A redirecting constructor can't have more than one redirection.
         this.named();
              ^", this self::H::named()
     ;
-  constructor named() → self::H*
+  constructor named() → self::H
     : 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 I extends core::Object {
-  constructor •() → self::I*
+  constructor •() → self::I
     : final dynamic #t22 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:94:9: Error: Can't have more than one 'super' initializer.
         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 J extends core::Object {
-  field core::int* x;
-  constructor •() → self::J*
+  field core::int x;
+  constructor •() → self::J
     : final dynamic #t23 = invalid-expression "pkg/front_end/testcases/general/initialzation_errors.dart:101:16: Error: Can't have initializers after 'super'.
         this.x = 42 {}
                ^", 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/instance_setter_conflict.dart b/pkg/front_end/testcases/general/instance_setter_conflict.dart
index 6f8c3b7..3e73f8c 100644
--- a/pkg/front_end/testcases/general/instance_setter_conflict.dart
+++ b/pkg/front_end/testcases/general/instance_setter_conflict.dart
@@ -1,13 +1,13 @@
 // 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 A {
-  int v;
+  int v = 0;
 }
 
 class C extends A {
-  static int n;
+  static int n = 0;
   static get v {
     return n;
   }
diff --git a/pkg/front_end/testcases/general/instance_setter_conflict.dart.textual_outline.expect b/pkg/front_end/testcases/general/instance_setter_conflict.dart.textual_outline.expect
index fc33054..0e5727f 100644
--- a/pkg/front_end/testcases/general/instance_setter_conflict.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/instance_setter_conflict.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 class A {
-  int v;
+  int v = 0;
 }
 
 class C extends A {
-  static int n;
+  static int n = 0;
   static get v {}
 }
 
diff --git a/pkg/front_end/testcases/general/instance_setter_conflict.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/instance_setter_conflict.dart.textual_outline_modelled.expect
index c636e4b..751cedf 100644
--- a/pkg/front_end/testcases/general/instance_setter_conflict.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/instance_setter_conflict.dart.textual_outline_modelled.expect
@@ -1,11 +1,10 @@
-// @dart = 2.9
 class A {
-  int v;
+  int v = 0;
 }
 
 class C extends A {
   static get v {}
-  static int n;
+  static int n = 0;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.expect b/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.expect
index 22c9052..a4756f2 100644
--- a/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.expect
+++ b/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -6,31 +6,21 @@
 //   static get v {
 //              ^
 // pkg/front_end/testcases/general/instance_setter_conflict.dart:6:7: Context: This is the inherited member.
-//   int v;
+//   int v = 0;
 //       ^
 //
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* v = null;
-  synthetic constructor •() → self::A*
+  field core::int v = 0;
+  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 C extends self::A {
-  static field core::int* n = null;
-  synthetic constructor •() → self::C*
+  static field core::int n = 0;
+  synthetic constructor •() → self::C
     : super self::A::•()
     ;
   static get v() → dynamic {
diff --git a/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.modular.expect b/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.modular.expect
index 22c9052..a4756f2 100644
--- a/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -6,31 +6,21 @@
 //   static get v {
 //              ^
 // pkg/front_end/testcases/general/instance_setter_conflict.dart:6:7: Context: This is the inherited member.
-//   int v;
+//   int v = 0;
 //       ^
 //
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* v = null;
-  synthetic constructor •() → self::A*
+  field core::int v = 0;
+  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 C extends self::A {
-  static field core::int* n = null;
-  synthetic constructor •() → self::C*
+  static field core::int n = 0;
+  synthetic constructor •() → self::C
     : super self::A::•()
     ;
   static get v() → dynamic {
diff --git a/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.outline.expect b/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.outline.expect
index 2af2802..a54d191 100644
--- a/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -6,30 +6,20 @@
 //   static get v {
 //              ^
 // pkg/front_end/testcases/general/instance_setter_conflict.dart:6:7: Context: This is the inherited member.
-//   int v;
+//   int v = 0;
 //       ^
 //
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* v;
-  synthetic constructor •() → self::A*
+  field core::int v;
+  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 C extends self::A {
-  static field core::int* n;
-  synthetic constructor •() → self::C*
+  static field core::int n;
+  synthetic constructor •() → self::C
     ;
   static get v() → dynamic
     ;
diff --git a/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.transformed.expect b/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.transformed.expect
index 22c9052..a4756f2 100644
--- a/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/instance_setter_conflict.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -6,31 +6,21 @@
 //   static get v {
 //              ^
 // pkg/front_end/testcases/general/instance_setter_conflict.dart:6:7: Context: This is the inherited member.
-//   int v;
+//   int v = 0;
 //       ^
 //
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* v = null;
-  synthetic constructor •() → self::A*
+  field core::int v = 0;
+  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 C extends self::A {
-  static field core::int* n = null;
-  synthetic constructor •() → self::C*
+  static field core::int n = 0;
+  synthetic constructor •() → self::C
     : super self::A::•()
     ;
   static get v() → dynamic {
diff --git a/pkg/front_end/testcases/general/interface_conflict.dart b/pkg/front_end/testcases/general/interface_conflict.dart
index 293f540..d7ea60a 100644
--- a/pkg/front_end/testcases/general/interface_conflict.dart
+++ b/pkg/front_end/testcases/general/interface_conflict.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 A {
   int get n => 1;
 }
diff --git a/pkg/front_end/testcases/general/interface_conflict.dart.textual_outline.expect b/pkg/front_end/testcases/general/interface_conflict.dart.textual_outline.expect
index 0bbb31c..669b460 100644
--- a/pkg/front_end/testcases/general/interface_conflict.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/interface_conflict.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   int get n => 1;
 }
diff --git a/pkg/front_end/testcases/general/interface_conflict.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/interface_conflict.dart.textual_outline_modelled.expect
index 692b067..d216e6b 100644
--- a/pkg/front_end/testcases/general/interface_conflict.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/interface_conflict.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class C implements A, B {}
 
 abstract class D implements C {}
diff --git a/pkg/front_end/testcases/general/interface_conflict.dart.weak.expect b/pkg/front_end/testcases/general/interface_conflict.dart.weak.expect
index 35d40fb..974f286 100644
--- a/pkg/front_end/testcases/general/interface_conflict.dart.weak.expect
+++ b/pkg/front_end/testcases/general/interface_conflict.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,67 +17,27 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  get n() → core::int*
+  get n() → core::int
     return 1;
-  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::•()
     ;
-  get n() → core::double*
+  get n() → core::double
     return 2.0;
-  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 class D extends core::Object implements self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : 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/interface_conflict.dart.weak.modular.expect b/pkg/front_end/testcases/general/interface_conflict.dart.weak.modular.expect
index 35d40fb..974f286 100644
--- a/pkg/front_end/testcases/general/interface_conflict.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/interface_conflict.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,67 +17,27 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  get n() → core::int*
+  get n() → core::int
     return 1;
-  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::•()
     ;
-  get n() → core::double*
+  get n() → core::double
     return 2.0;
-  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 class D extends core::Object implements self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : 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/interface_conflict.dart.weak.outline.expect b/pkg/front_end/testcases/general/interface_conflict.dart.weak.outline.expect
index ec8f574..897f364 100644
--- a/pkg/front_end/testcases/general/interface_conflict.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/interface_conflict.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,64 +17,24 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
-  get n() → core::int*
+  get n() → 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 B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  get n() → core::double*
+  get n() → core::double
     ;
-  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 class D extends core::Object implements self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
-  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/interface_conflict.dart.weak.transformed.expect b/pkg/front_end/testcases/general/interface_conflict.dart.weak.transformed.expect
index 35d40fb..974f286 100644
--- a/pkg/front_end/testcases/general/interface_conflict.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/interface_conflict.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,67 +17,27 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  get n() → core::int*
+  get n() → core::int
     return 1;
-  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::•()
     ;
-  get n() → core::double*
+  get n() → core::double
     return 2.0;
-  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 class D extends core::Object implements self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : 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/interface_contravariant_from_class.dart b/pkg/front_end/testcases/general/interface_contravariant_from_class.dart
index bade1db..0b56d76 100644
--- a/pkg/front_end/testcases/general/interface_contravariant_from_class.dart
+++ b/pkg/front_end/testcases/general/interface_contravariant_from_class.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
+
 library test;
 
 typedef void F<T>(T t);
 
 class B<T> {
-  T f(int x) {}
+  T f(int x) => throw '';
 }
 
 abstract class I<T> {
diff --git a/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.textual_outline.expect b/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.textual_outline.expect
index fbefbcd..78d981f 100644
--- a/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 library test;
 
 typedef void F<T>(T t);
 
 class B<T> {
-  T f(int x) {}
+  T f(int x) => throw '';
 }
 
 abstract class I<T> {
diff --git a/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.textual_outline_modelled.expect
index 2f50692..c4e80fb 100644
--- a/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class C<T> extends B<F<T>> implements I<F<T>> {}
@@ -8,7 +7,7 @@
 }
 
 class B<T> {
-  T f(int x) {}
+  T f(int x) => throw '';
 }
 
 typedef void F<T>(T t);
diff --git a/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.expect b/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.expect
index a99ce5f..d29405a 100644
--- a/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.expect
+++ b/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,52 +13,23 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class B<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%>
     : super core::Object::•()
     ;
-  method f(core::int* x) → self::B::T* {}
-  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
+  method f(core::int x) → self::B::T%
+    return throw "";
 }
-abstract class I<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::I<self::I::T*>*
+abstract class I<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::I<self::I::T%>
     : super core::Object::•()
     ;
-  abstract method f(core::Object* x) → self::I::T*;
-  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 method f(core::Object x) → self::I::T%;
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : 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() → void {}
diff --git a/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.modular.expect b/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.modular.expect
index a99ce5f..d29405a 100644
--- a/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,52 +13,23 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class B<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%>
     : super core::Object::•()
     ;
-  method f(core::int* x) → self::B::T* {}
-  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
+  method f(core::int x) → self::B::T%
+    return throw "";
 }
-abstract class I<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::I<self::I::T*>*
+abstract class I<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::I<self::I::T%>
     : super core::Object::•()
     ;
-  abstract method f(core::Object* x) → self::I::T*;
-  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 method f(core::Object x) → self::I::T%;
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : 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() → void {}
diff --git a/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.outline.expect b/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.outline.expect
index 515609c..c2c5263 100644
--- a/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,51 +13,21 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class B<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%>
     ;
-  method f(core::int* x) → self::B::T*
+  method f(core::int x) → self::B::T%
     ;
-  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 I<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::I<self::I::T*>*
+abstract class I<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::I<self::I::T%>
     ;
-  abstract method f(core::Object* x) → self::I::T*;
-  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 method f(core::Object x) → self::I::T%;
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  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() → void
   ;
diff --git a/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.transformed.expect b/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.transformed.expect
index a99ce5f..d29405a 100644
--- a/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/interface_contravariant_from_class.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,52 +13,23 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class B<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%>
     : super core::Object::•()
     ;
-  method f(core::int* x) → self::B::T* {}
-  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
+  method f(core::int x) → self::B::T%
+    return throw "";
 }
-abstract class I<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::I<self::I::T*>*
+abstract class I<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::I<self::I::T%>
     : super core::Object::•()
     ;
-  abstract method f(core::Object* x) → self::I::T*;
-  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 method f(core::Object x) → self::I::T%;
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : 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() → void {}
diff --git a/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart b/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart
index 6dab5b4..a06fc2d 100644
--- a/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart
+++ b/pkg/front_end/testcases/general/interface_covariantImpl_from_class.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
+
 library test;
 
 typedef void F<T>(T t);
diff --git a/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.textual_outline.expect b/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.textual_outline.expect
index 1ca533d..aec0365 100644
--- a/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 typedef void F<T>(T t);
diff --git a/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.textual_outline_modelled.expect
index 50b8be8..033ea81 100644
--- a/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class C<T> extends B<F<T>> implements I<F<T>> {}
diff --git a/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.expect b/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.expect
index 5ba8fab..f3f69c6 100644
--- a/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.expect
+++ b/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,52 +13,22 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class B<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%>
     : super core::Object::•()
     ;
-  method f((self::B::T*) →* void x, core::int* y) → 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
+  method f((self::B::T%) → void x, core::int y) → void {}
 }
-abstract class I<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::I<self::I::T*>*
+abstract class I<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::I<self::I::T%>
     : super core::Object::•()
     ;
-  abstract method f((self::I::T*) →* void x, core::Object* y) → 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 method f((self::I::T%) → void x, core::Object y) → void;
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : 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() → void {}
diff --git a/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.modular.expect b/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.modular.expect
index 5ba8fab..f3f69c6 100644
--- a/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,52 +13,22 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class B<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%>
     : super core::Object::•()
     ;
-  method f((self::B::T*) →* void x, core::int* y) → 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
+  method f((self::B::T%) → void x, core::int y) → void {}
 }
-abstract class I<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::I<self::I::T*>*
+abstract class I<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::I<self::I::T%>
     : super core::Object::•()
     ;
-  abstract method f((self::I::T*) →* void x, core::Object* y) → 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 method f((self::I::T%) → void x, core::Object y) → void;
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : 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() → void {}
diff --git a/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.outline.expect b/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.outline.expect
index ede6a1c..4a01bdf 100644
--- a/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,51 +13,21 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class B<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%>
     ;
-  method f((self::B::T*) →* void x, core::int* y) → void
+  method f((self::B::T%) → void x, core::int y) → 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 I<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::I<self::I::T*>*
+abstract class I<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::I<self::I::T%>
     ;
-  abstract method f((self::I::T*) →* void x, core::Object* y) → 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 method f((self::I::T%) → void x, core::Object y) → void;
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  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() → void
   ;
diff --git a/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.transformed.expect b/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.transformed.expect
index 5ba8fab..f3f69c6 100644
--- a/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/interface_covariantImpl_from_class.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,52 +13,22 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class B<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%>
     : super core::Object::•()
     ;
-  method f((self::B::T*) →* void x, core::int* y) → 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
+  method f((self::B::T%) → void x, core::int y) → void {}
 }
-abstract class I<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::I<self::I::T*>*
+abstract class I<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::I<self::I::T%>
     : super core::Object::•()
     ;
-  abstract method f((self::I::T*) →* void x, core::Object* y) → 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 method f((self::I::T%) → void x, core::Object y) → void;
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : 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() → void {}
diff --git a/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart b/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart
index 683cfe7..010f354 100644
--- a/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart
+++ b/pkg/front_end/testcases/general/interface_covariantInterface_from_class.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
+
 library test;
 
 typedef void F<T>(T t);
diff --git a/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.textual_outline.expect b/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.textual_outline.expect
index e744f1a..203e8cd 100644
--- a/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 typedef void F<T>(T t);
diff --git a/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.textual_outline_modelled.expect
index 6b99ccf..4615ebb 100644
--- a/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class A<T> {
diff --git a/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.expect b/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.expect
index 68f6ac0..df45e52 100644
--- a/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.expect
+++ b/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -21,68 +21,28 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T%>
     : super core::Object::•()
     ;
-  abstract method f(covariant-by-class self::A::T* x, core::int* y) → 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 method f(covariant-by-class self::A::T% x, core::int y) → void;
 }
-class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%>
     : super core::Object::•()
     ;
-  method f((self::B::T*) →* void x, core::int* y) → 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
+  method f((self::B::T%) → void x, core::int y) → void {}
 }
-abstract class I<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::I<self::I::T*>*
+abstract class I<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::I<self::I::T%>
     : super core::Object::•()
     ;
-  abstract method f((self::I::T*) →* void x, core::Object* y) → 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 method f((self::I::T%) → void x, core::Object y) → void;
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : 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() → void {}
diff --git a/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.modular.expect b/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.modular.expect
index 68f6ac0..df45e52 100644
--- a/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -21,68 +21,28 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T%>
     : super core::Object::•()
     ;
-  abstract method f(covariant-by-class self::A::T* x, core::int* y) → 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 method f(covariant-by-class self::A::T% x, core::int y) → void;
 }
-class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%>
     : super core::Object::•()
     ;
-  method f((self::B::T*) →* void x, core::int* y) → 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
+  method f((self::B::T%) → void x, core::int y) → void {}
 }
-abstract class I<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::I<self::I::T*>*
+abstract class I<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::I<self::I::T%>
     : super core::Object::•()
     ;
-  abstract method f((self::I::T*) →* void x, core::Object* y) → 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 method f((self::I::T%) → void x, core::Object y) → void;
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : 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() → void {}
diff --git a/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.outline.expect b/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.outline.expect
index 014249d..fd83756 100644
--- a/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -21,66 +21,26 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T%>
     ;
-  abstract method f(covariant-by-class self::A::T* x, core::int* y) → 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 method f(covariant-by-class self::A::T% x, core::int y) → void;
 }
-class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%>
     ;
-  method f((self::B::T*) →* void x, core::int* y) → void
+  method f((self::B::T%) → void x, core::int y) → 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 I<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::I<self::I::T*>*
+abstract class I<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::I<self::I::T%>
     ;
-  abstract method f((self::I::T*) →* void x, core::Object* y) → 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 method f((self::I::T%) → void x, core::Object y) → void;
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  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() → void
   ;
diff --git a/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.transformed.expect b/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.transformed.expect
index 68f6ac0..df45e52 100644
--- a/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -21,68 +21,28 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T%>
     : super core::Object::•()
     ;
-  abstract method f(covariant-by-class self::A::T* x, core::int* y) → 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 method f(covariant-by-class self::A::T% x, core::int y) → void;
 }
-class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%>
     : super core::Object::•()
     ;
-  method f((self::B::T*) →* void x, core::int* y) → 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
+  method f((self::B::T%) → void x, core::int y) → void {}
 }
-abstract class I<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::I<self::I::T*>*
+abstract class I<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::I<self::I::T%>
     : super core::Object::•()
     ;
-  abstract method f((self::I::T*) →* void x, core::Object* y) → 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 method f((self::I::T%) → void x, core::Object y) → void;
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : 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() → void {}
diff --git a/pkg/front_end/testcases/general/invalid_assignment.dart b/pkg/front_end/testcases/general/invalid_assignment.dart
index 99e06a4..bc1c1de 100644
--- a/pkg/front_end/testcases/general/invalid_assignment.dart
+++ b/pkg/front_end/testcases/general/invalid_assignment.dart
@@ -1,15 +1,17 @@
 // 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 {
   String operator +(int i) => '';
 }
 
-test(int i, String s, A a) {
+test(int? i, String s, A a) {
   i = 1;
   i = s;
+  i = null;
   i ??= 1;
+  i = null;
   i ??= s;
   a = new A();
   a += 1;
diff --git a/pkg/front_end/testcases/general/invalid_assignment.dart.textual_outline.expect b/pkg/front_end/testcases/general/invalid_assignment.dart.textual_outline.expect
index 43c04b7..25b126d 100644
--- a/pkg/front_end/testcases/general/invalid_assignment.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/invalid_assignment.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
 class A {
   String operator +(int i) => '';
 }
 
-test(int i, String s, A a) {}
+test(int? i, String s, A a) {}
 main() {}
diff --git a/pkg/front_end/testcases/general/invalid_assignment.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/invalid_assignment.dart.textual_outline_modelled.expect
index 65777c9..bbdbbc1 100644
--- a/pkg/front_end/testcases/general/invalid_assignment.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/invalid_assignment.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
 class A {
   String operator +(int i) => '';
 }
 
 main() {}
-test(int i, String s, A a) {}
+test(int? i, String s, A a) {}
diff --git a/pkg/front_end/testcases/general/invalid_assignment.dart.weak.expect b/pkg/front_end/testcases/general/invalid_assignment.dart.weak.expect
index a16acb5..6ab192e 100644
--- a/pkg/front_end/testcases/general/invalid_assignment.dart.weak.expect
+++ b/pkg/front_end/testcases/general/invalid_assignment.dart.weak.expect
@@ -1,16 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/invalid_assignment.dart:11:7: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/invalid_assignment.dart:11:7: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
 //   i = s;
 //       ^
 //
-// pkg/front_end/testcases/general/invalid_assignment.dart:13:9: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/invalid_assignment.dart:15:9: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
 //   i ??= s;
 //         ^
 //
-// pkg/front_end/testcases/general/invalid_assignment.dart:15:5: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/general/invalid_assignment.dart:17:5: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
 //  - 'A' is from 'pkg/front_end/testcases/general/invalid_assignment.dart'.
 //   a += 1;
 //     ^
@@ -19,35 +19,27 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator +(core::int* i) → core::String*
+  operator +(core::int i) → core::String
     return "";
-  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 test(core::int* i, core::String* s, self::A* a) → dynamic {
+static method test(core::int? i, core::String s, self::A a) → dynamic {
   i = 1;
-  i = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:11:7: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  i = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:11:7: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
   i = s;
-      ^" in s as{TypeError} core::int*;
-  i == null ?{core::int*} i = 1 : null;
-  i == null ?{core::Object*} i = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:13:9: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      ^" in s as{TypeError,ForNonNullableByDefault} core::int?;
+  i = null;
+  i == null ?{core::int} i = 1 : null;
+  i = null;
+  i == null ?{core::Object} i = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:15:9: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
   i ??= s;
-        ^" in s as{TypeError} core::int* : null;
+        ^" in s as{TypeError,ForNonNullableByDefault} core::int? : null;
   a = new self::A::•();
-  a = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:15:5: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
+  a = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:17:5: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
  - 'A' is from 'pkg/front_end/testcases/general/invalid_assignment.dart'.
   a += 1;
-    ^" in a.{self::A::+}(1){(core::int*) →* core::String*} as{TypeError} self::A*;
+    ^" in a.{self::A::+}(1){(core::int) → core::String} as{TypeError,ForNonNullableByDefault} self::A;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/invalid_assignment.dart.weak.modular.expect b/pkg/front_end/testcases/general/invalid_assignment.dart.weak.modular.expect
index a16acb5..6ab192e 100644
--- a/pkg/front_end/testcases/general/invalid_assignment.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/invalid_assignment.dart.weak.modular.expect
@@ -1,16 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/invalid_assignment.dart:11:7: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/invalid_assignment.dart:11:7: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
 //   i = s;
 //       ^
 //
-// pkg/front_end/testcases/general/invalid_assignment.dart:13:9: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/invalid_assignment.dart:15:9: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
 //   i ??= s;
 //         ^
 //
-// pkg/front_end/testcases/general/invalid_assignment.dart:15:5: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/general/invalid_assignment.dart:17:5: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
 //  - 'A' is from 'pkg/front_end/testcases/general/invalid_assignment.dart'.
 //   a += 1;
 //     ^
@@ -19,35 +19,27 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator +(core::int* i) → core::String*
+  operator +(core::int i) → core::String
     return "";
-  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 test(core::int* i, core::String* s, self::A* a) → dynamic {
+static method test(core::int? i, core::String s, self::A a) → dynamic {
   i = 1;
-  i = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:11:7: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  i = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:11:7: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
   i = s;
-      ^" in s as{TypeError} core::int*;
-  i == null ?{core::int*} i = 1 : null;
-  i == null ?{core::Object*} i = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:13:9: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      ^" in s as{TypeError,ForNonNullableByDefault} core::int?;
+  i = null;
+  i == null ?{core::int} i = 1 : null;
+  i = null;
+  i == null ?{core::Object} i = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:15:9: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
   i ??= s;
-        ^" in s as{TypeError} core::int* : null;
+        ^" in s as{TypeError,ForNonNullableByDefault} core::int? : null;
   a = new self::A::•();
-  a = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:15:5: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
+  a = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:17:5: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
  - 'A' is from 'pkg/front_end/testcases/general/invalid_assignment.dart'.
   a += 1;
-    ^" in a.{self::A::+}(1){(core::int*) →* core::String*} as{TypeError} self::A*;
+    ^" in a.{self::A::+}(1){(core::int) → core::String} as{TypeError,ForNonNullableByDefault} self::A;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/invalid_assignment.dart.weak.outline.expect b/pkg/front_end/testcases/general/invalid_assignment.dart.weak.outline.expect
index ed1296c..2eee9d0 100644
--- a/pkg/front_end/testcases/general/invalid_assignment.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/invalid_assignment.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-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 +(core::int* i) → core::String*
+  operator +(core::int i) → core::String
     ;
-  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 test(core::int* i, core::String* s, self::A* a) → dynamic
+static method test(core::int? i, core::String s, self::A a) → dynamic
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/invalid_assignment.dart.weak.transformed.expect b/pkg/front_end/testcases/general/invalid_assignment.dart.weak.transformed.expect
index a16acb5..6ab192e 100644
--- a/pkg/front_end/testcases/general/invalid_assignment.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/invalid_assignment.dart.weak.transformed.expect
@@ -1,16 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/invalid_assignment.dart:11:7: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/invalid_assignment.dart:11:7: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
 //   i = s;
 //       ^
 //
-// pkg/front_end/testcases/general/invalid_assignment.dart:13:9: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/invalid_assignment.dart:15:9: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
 //   i ??= s;
 //         ^
 //
-// pkg/front_end/testcases/general/invalid_assignment.dart:15:5: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/general/invalid_assignment.dart:17:5: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
 //  - 'A' is from 'pkg/front_end/testcases/general/invalid_assignment.dart'.
 //   a += 1;
 //     ^
@@ -19,35 +19,27 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator +(core::int* i) → core::String*
+  operator +(core::int i) → core::String
     return "";
-  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 test(core::int* i, core::String* s, self::A* a) → dynamic {
+static method test(core::int? i, core::String s, self::A a) → dynamic {
   i = 1;
-  i = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:11:7: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  i = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:11:7: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
   i = s;
-      ^" in s as{TypeError} core::int*;
-  i == null ?{core::int*} i = 1 : null;
-  i == null ?{core::Object*} i = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:13:9: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      ^" in s as{TypeError,ForNonNullableByDefault} core::int?;
+  i = null;
+  i == null ?{core::int} i = 1 : null;
+  i = null;
+  i == null ?{core::Object} i = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:15:9: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
   i ??= s;
-        ^" in s as{TypeError} core::int* : null;
+        ^" in s as{TypeError,ForNonNullableByDefault} core::int? : null;
   a = new self::A::•();
-  a = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:15:5: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
+  a = invalid-expression "pkg/front_end/testcases/general/invalid_assignment.dart:17:5: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
  - 'A' is from 'pkg/front_end/testcases/general/invalid_assignment.dart'.
   a += 1;
-    ^" in a.{self::A::+}(1){(core::int*) →* core::String*} as{TypeError} self::A*;
+    ^" in a.{self::A::+}(1){(core::int) → core::String} as{TypeError,ForNonNullableByDefault} self::A;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart b/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart
new file mode 100644
index 0000000..ee67a15
--- /dev/null
+++ b/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart
@@ -0,0 +1,20 @@
+// Copyright (c) 2022, 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.
+
+Iterable takesNoArg() => throw '';
+void returnVoid() {}
+int returnInt() => 42;
+dynamic returnDynamic() => [];
+Object returnObject() => 0;
+
+test() {
+  for (var v in takesNoArg(0)) {}
+  for (var v in returnVoid()) {}
+  for (var v in returnInt()) {}
+  for (var v in returnDynamic()) {}
+  for (var v in returnObject()) {}
+  for (var v in throw '') {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.textual_outline.expect b/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.textual_outline.expect
new file mode 100644
index 0000000..5b4b96b
--- /dev/null
+++ b/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.textual_outline.expect
@@ -0,0 +1,7 @@
+Iterable takesNoArg() => throw '';
+void returnVoid() {}
+int returnInt() => 42;
+dynamic returnDynamic() => [];
+Object returnObject() => 0;
+test() {}
+main() {}
diff --git a/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..4c81ae7
--- /dev/null
+++ b/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.textual_outline_modelled.expect
@@ -0,0 +1,7 @@
+Iterable takesNoArg() => throw '';
+Object returnObject() => 0;
+dynamic returnDynamic() => [];
+int returnInt() => 42;
+main() {}
+test() {}
+void returnVoid() {}
diff --git a/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.weak.expect b/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.weak.expect
new file mode 100644
index 0000000..b7e3784
--- /dev/null
+++ b/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.weak.expect
@@ -0,0 +1,66 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:12:27: Error: Too many positional arguments: 0 allowed, but 1 found.
+// Try removing the extra positional arguments.
+//   for (var v in takesNoArg(0)) {}
+//                           ^
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:5:10: Context: Found this candidate, but the arguments don't match.
+// Iterable takesNoArg() => throw '';
+//          ^^^^^^^^^^
+//
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:13:17: Error: This expression has type 'void' and can't be used.
+//   for (var v in returnVoid()) {}
+//                 ^
+//
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:14:17: Error: The type 'int' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Iterable' is from 'dart:core'.
+//   for (var v in returnInt()) {}
+//                 ^
+//
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:16:17: Error: The type 'Object' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Object' is from 'dart:core'.
+//  - 'Iterable' is from 'dart:core'.
+//   for (var v in returnObject()) {}
+//                 ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method takesNoArg() → core::Iterable<dynamic>
+  return throw "";
+static method returnVoid() → void {}
+static method returnInt() → core::int
+  return 42;
+static method returnDynamic() → dynamic
+  return <dynamic>[];
+static method returnObject() → core::Object
+  return 0;
+static method test() → dynamic {
+  for (dynamic v in invalid-expression "pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:12:27: Error: Too many positional arguments: 0 allowed, but 1 found.
+Try removing the extra positional arguments.
+  for (var v in takesNoArg(0)) {}
+                          ^") {
+  }
+  for (dynamic v in invalid-expression "pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:13:17: Error: This expression has type 'void' and can't be used.
+  for (var v in returnVoid()) {}
+                ^" in self::returnVoid()) {
+  }
+  for (dynamic v in invalid-expression "pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:14:17: Error: The type 'int' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Iterable' is from 'dart:core'.
+  for (var v in returnInt()) {}
+                ^" in self::returnInt() as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>) {
+  }
+  for (dynamic v in self::returnDynamic() as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+  }
+  for (dynamic v in invalid-expression "pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:16:17: Error: The type 'Object' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Object' is from 'dart:core'.
+ - 'Iterable' is from 'dart:core'.
+  for (var v in returnObject()) {}
+                ^" in self::returnObject() as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>) {
+  }
+  for (dynamic v in throw "") {
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.weak.modular.expect b/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.weak.modular.expect
new file mode 100644
index 0000000..b7e3784
--- /dev/null
+++ b/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.weak.modular.expect
@@ -0,0 +1,66 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:12:27: Error: Too many positional arguments: 0 allowed, but 1 found.
+// Try removing the extra positional arguments.
+//   for (var v in takesNoArg(0)) {}
+//                           ^
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:5:10: Context: Found this candidate, but the arguments don't match.
+// Iterable takesNoArg() => throw '';
+//          ^^^^^^^^^^
+//
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:13:17: Error: This expression has type 'void' and can't be used.
+//   for (var v in returnVoid()) {}
+//                 ^
+//
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:14:17: Error: The type 'int' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Iterable' is from 'dart:core'.
+//   for (var v in returnInt()) {}
+//                 ^
+//
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:16:17: Error: The type 'Object' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Object' is from 'dart:core'.
+//  - 'Iterable' is from 'dart:core'.
+//   for (var v in returnObject()) {}
+//                 ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method takesNoArg() → core::Iterable<dynamic>
+  return throw "";
+static method returnVoid() → void {}
+static method returnInt() → core::int
+  return 42;
+static method returnDynamic() → dynamic
+  return <dynamic>[];
+static method returnObject() → core::Object
+  return 0;
+static method test() → dynamic {
+  for (dynamic v in invalid-expression "pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:12:27: Error: Too many positional arguments: 0 allowed, but 1 found.
+Try removing the extra positional arguments.
+  for (var v in takesNoArg(0)) {}
+                          ^") {
+  }
+  for (dynamic v in invalid-expression "pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:13:17: Error: This expression has type 'void' and can't be used.
+  for (var v in returnVoid()) {}
+                ^" in self::returnVoid()) {
+  }
+  for (dynamic v in invalid-expression "pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:14:17: Error: The type 'int' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Iterable' is from 'dart:core'.
+  for (var v in returnInt()) {}
+                ^" in self::returnInt() as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>) {
+  }
+  for (dynamic v in self::returnDynamic() as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+  }
+  for (dynamic v in invalid-expression "pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:16:17: Error: The type 'Object' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Object' is from 'dart:core'.
+ - 'Iterable' is from 'dart:core'.
+  for (var v in returnObject()) {}
+                ^" in self::returnObject() as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>) {
+  }
+  for (dynamic v in throw "") {
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.weak.outline.expect b/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.weak.outline.expect
new file mode 100644
index 0000000..59e62c6
--- /dev/null
+++ b/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.weak.outline.expect
@@ -0,0 +1,18 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method takesNoArg() → core::Iterable<dynamic>
+  ;
+static method returnVoid() → void
+  ;
+static method returnInt() → core::int
+  ;
+static method returnDynamic() → dynamic
+  ;
+static method returnObject() → core::Object
+  ;
+static method test() → dynamic
+  ;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.weak.transformed.expect
new file mode 100644
index 0000000..500d59e
--- /dev/null
+++ b/pkg/front_end/testcases/general/invalid_for_in_iterable2.dart.weak.transformed.expect
@@ -0,0 +1,96 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:12:27: Error: Too many positional arguments: 0 allowed, but 1 found.
+// Try removing the extra positional arguments.
+//   for (var v in takesNoArg(0)) {}
+//                           ^
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:5:10: Context: Found this candidate, but the arguments don't match.
+// Iterable takesNoArg() => throw '';
+//          ^^^^^^^^^^
+//
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:13:17: Error: This expression has type 'void' and can't be used.
+//   for (var v in returnVoid()) {}
+//                 ^
+//
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:14:17: Error: The type 'int' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Iterable' is from 'dart:core'.
+//   for (var v in returnInt()) {}
+//                 ^
+//
+// pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:16:17: Error: The type 'Object' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Object' is from 'dart:core'.
+//  - 'Iterable' is from 'dart:core'.
+//   for (var v in returnObject()) {}
+//                 ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method takesNoArg() → core::Iterable<dynamic>
+  return throw "";
+static method returnVoid() → void {}
+static method returnInt() → core::int
+  return 42;
+static method returnDynamic() → dynamic
+  return core::_GrowableList::•<dynamic>(0);
+static method returnObject() → core::Object
+  return 0;
+static method test() → dynamic {
+  {
+    core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:12:27: Error: Too many positional arguments: 0 allowed, but 1 found.
+Try removing the extra positional arguments.
+  for (var v in takesNoArg(0)) {}
+                          ^".{core::Iterable::iterator}{core::Iterator<Never>};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+      dynamic v = :sync-for-iterator.{core::Iterator::current}{Never};
+      {}
+    }
+  }
+  {
+    core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:13:17: Error: This expression has type 'void' and can't be used.
+  for (var v in returnVoid()) {}
+                ^" in self::returnVoid().{core::Iterable::iterator}{core::Iterator<Never>};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+      dynamic v = :sync-for-iterator.{core::Iterator::current}{Never};
+      {}
+    }
+  }
+  {
+    core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:14:17: Error: The type 'int' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Iterable' is from 'dart:core'.
+  for (var v in returnInt()) {}
+                ^" in self::returnInt() as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+      dynamic v = :sync-for-iterator.{core::Iterator::current}{Never};
+      {}
+    }
+  }
+  {
+    core::Iterator<dynamic> :sync-for-iterator = (self::returnDynamic() as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+      dynamic v = :sync-for-iterator.{core::Iterator::current}{dynamic};
+      {}
+    }
+  }
+  {
+    core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/general/invalid_for_in_iterable2.dart:16:17: Error: The type 'Object' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Object' is from 'dart:core'.
+ - 'Iterable' is from 'dart:core'.
+  for (var v in returnObject()) {}
+                ^" in self::returnObject() as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+      dynamic v = :sync-for-iterator.{core::Iterator::current}{Never};
+      {}
+    }
+  }
+  {
+    core::Iterator<Never> :sync-for-iterator = (throw "").{core::Iterable::iterator}{core::Iterator<Never>};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+      dynamic v = :sync-for-iterator.{core::Iterator::current}{Never};
+      {}
+    }
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/invalid_operator.dart b/pkg/front_end/testcases/general/invalid_operator.dart
index 9a45ff1..0320b28 100644
--- a/pkg/front_end/testcases/general/invalid_operator.dart
+++ b/pkg/front_end/testcases/general/invalid_operator.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 Operators1 {
   operator ==() => true;
   operator <() => true;
@@ -46,7 +46,7 @@
 }
 
 class Operators3 {
-  operator ==([a]) => true;
+  operator ==([a = 0]) => true;
   operator <([a]) => true;
   operator >([a]) => true;
   operator <=([a]) => true;
diff --git a/pkg/front_end/testcases/general/invalid_operator.dart.textual_outline.expect b/pkg/front_end/testcases/general/invalid_operator.dart.textual_outline.expect
index 6ad61eb..8ab8ff73 100644
--- a/pkg/front_end/testcases/general/invalid_operator.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/invalid_operator.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Operators1 {
   operator ==() => true;
   operator <() => true;
@@ -41,7 +40,7 @@
   operator ~(a, b) => true;
 }
 class Operators3 {
-  operator ==([a]) => true;
+  operator ==([a = 0]) => true;
   operator <([a]) => true;
   operator >([a]) => true;
   operator <=([a]) => true;
diff --git a/pkg/front_end/testcases/general/invalid_operator.dart.weak.expect b/pkg/front_end/testcases/general/invalid_operator.dart.weak.expect
index 1bababf..7efd9db 100644
--- a/pkg/front_end/testcases/general/invalid_operator.dart.weak.expect
+++ b/pkg/front_end/testcases/general/invalid_operator.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -152,7 +152,7 @@
 //            ^
 //
 // pkg/front_end/testcases/general/invalid_operator.dart:49:16: Error: An operator can't have optional parameters.
-//   operator ==([a]) => true;
+//   operator ==([a = 0]) => true;
 //                ^
 //
 // pkg/front_end/testcases/general/invalid_operator.dart:50:15: Error: An operator can't have optional parameters.
@@ -600,10 +600,10 @@
 import "dart:core" as core;
 
 class Operators1 extends core::Object {
-  synthetic constructor •() → self::Operators1*
+  synthetic constructor •() → self::Operators1
     : super core::Object::•()
     ;
-  operator ==() → core::bool*
+  operator ==() → core::bool
     return true;
   operator <() → dynamic
     return true;
@@ -639,21 +639,12 @@
     return true;
   operator ~(dynamic a) → dynamic
     return true;
-  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 Operators2 extends core::Object {
-  synthetic constructor •() → self::Operators2*
+  synthetic constructor •() → self::Operators2
     : super core::Object::•()
     ;
-  operator ==(dynamic a, dynamic b) → core::bool*
+  operator ==(core::Object a, dynamic b) → core::bool
     return true;
   operator <(dynamic a, dynamic b) → dynamic
     return true;
@@ -691,278 +682,225 @@
     return true;
   operator ~(dynamic a, dynamic b) → dynamic
     return true;
-  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 Operators3 extends core::Object {
-  synthetic constructor •() → self::Operators3*
+  synthetic constructor •() → self::Operators3
     : super core::Object::•()
     ;
-  operator ==([dynamic a = #C1]) → core::bool*
+  operator ==([core::Object a = #C1]) → core::bool
     return true;
-  operator <([dynamic a = #C1]) → dynamic
+  operator <([dynamic a = #C2]) → dynamic
     return true;
-  operator >([dynamic a = #C1]) → dynamic
+  operator >([dynamic a = #C2]) → dynamic
     return true;
-  operator <=([dynamic a = #C1]) → dynamic
+  operator <=([dynamic a = #C2]) → dynamic
     return true;
-  operator >=([dynamic a = #C1]) → dynamic
+  operator >=([dynamic a = #C2]) → dynamic
     return true;
-  operator -([dynamic a = #C1]) → dynamic
+  operator -([dynamic a = #C2]) → dynamic
     return true;
-  operator +([dynamic a = #C1]) → dynamic
+  operator +([dynamic a = #C2]) → dynamic
     return true;
-  operator /([dynamic a = #C1]) → dynamic
+  operator /([dynamic a = #C2]) → dynamic
     return true;
-  operator ~/([dynamic a = #C1]) → dynamic
+  operator ~/([dynamic a = #C2]) → dynamic
     return true;
-  operator *([dynamic a = #C1]) → dynamic
+  operator *([dynamic a = #C2]) → dynamic
     return true;
-  operator %([dynamic a = #C1]) → dynamic
+  operator %([dynamic a = #C2]) → dynamic
     return true;
-  operator |([dynamic a = #C1]) → dynamic
+  operator |([dynamic a = #C2]) → dynamic
     return true;
-  operator ^([dynamic a = #C1]) → dynamic
+  operator ^([dynamic a = #C2]) → dynamic
     return true;
-  operator &([dynamic a = #C1]) → dynamic
+  operator &([dynamic a = #C2]) → dynamic
     return true;
-  operator <<([dynamic a = #C1]) → dynamic
+  operator <<([dynamic a = #C2]) → dynamic
     return true;
-  operator >>([dynamic a = #C1]) → dynamic
+  operator >>([dynamic a = #C2]) → dynamic
     return true;
-  operator []=([dynamic a = #C1, dynamic b = #C1]) → void
+  operator []=([dynamic a = #C2, dynamic b = #C2]) → void
     return true;
-  operator []([dynamic a = #C1]) → dynamic
+  operator []([dynamic a = #C2]) → dynamic
     return true;
-  operator ~([dynamic a = #C1]) → dynamic
+  operator ~([dynamic a = #C2]) → dynamic
     return true;
-  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 Operators4 extends core::Object {
-  synthetic constructor •() → self::Operators4*
+  synthetic constructor •() → self::Operators4
     : super core::Object::•()
     ;
-  operator ==({dynamic a = #C1}) → core::bool*
+  operator ==({dynamic a = #C2}) → core::bool
     return true;
-  operator <({dynamic a = #C1}) → dynamic
+  operator <({dynamic a = #C2}) → dynamic
     return true;
-  operator >({dynamic a = #C1}) → dynamic
+  operator >({dynamic a = #C2}) → dynamic
     return true;
-  operator <=({dynamic a = #C1}) → dynamic
+  operator <=({dynamic a = #C2}) → dynamic
     return true;
-  operator >=({dynamic a = #C1}) → dynamic
+  operator >=({dynamic a = #C2}) → dynamic
     return true;
-  operator -({dynamic a = #C1}) → dynamic
+  operator -({dynamic a = #C2}) → dynamic
     return true;
-  operator +({dynamic a = #C1}) → dynamic
+  operator +({dynamic a = #C2}) → dynamic
     return true;
-  operator /({dynamic a = #C1}) → dynamic
+  operator /({dynamic a = #C2}) → dynamic
     return true;
-  operator ~/({dynamic a = #C1}) → dynamic
+  operator ~/({dynamic a = #C2}) → dynamic
     return true;
-  operator *({dynamic a = #C1}) → dynamic
+  operator *({dynamic a = #C2}) → dynamic
     return true;
-  operator %({dynamic a = #C1}) → dynamic
+  operator %({dynamic a = #C2}) → dynamic
     return true;
-  operator |({dynamic a = #C1}) → dynamic
+  operator |({dynamic a = #C2}) → dynamic
     return true;
-  operator ^({dynamic a = #C1}) → dynamic
+  operator ^({dynamic a = #C2}) → dynamic
     return true;
-  operator &({dynamic a = #C1}) → dynamic
+  operator &({dynamic a = #C2}) → dynamic
     return true;
-  operator <<({dynamic a = #C1}) → dynamic
+  operator <<({dynamic a = #C2}) → dynamic
     return true;
-  operator >>({dynamic a = #C1}) → dynamic
+  operator >>({dynamic a = #C2}) → dynamic
     return true;
-  operator []=({dynamic a = #C1, dynamic b = #C1}) → void
+  operator []=({dynamic a = #C2, dynamic b = #C2}) → void
     return true;
-  operator []({dynamic a = #C1}) → dynamic
+  operator []({dynamic a = #C2}) → dynamic
     return true;
-  operator ~({dynamic a = #C1}) → dynamic
+  operator ~({dynamic a = #C2}) → dynamic
     return true;
-  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 Operators5 extends core::Object {
-  synthetic constructor •() → self::Operators5*
+  synthetic constructor •() → self::Operators5
     : super core::Object::•()
     ;
-  operator ==(dynamic a, [dynamic b = #C1]) → core::bool*
+  operator ==(core::Object a, [dynamic b = #C2]) → core::bool
     return true;
-  operator <(dynamic a, [dynamic b = #C1]) → dynamic
+  operator <(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator >(dynamic a, [dynamic b = #C1]) → dynamic
+  operator >(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator <=(dynamic a, [dynamic b = #C1]) → dynamic
+  operator <=(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator >=(dynamic a, [dynamic b = #C1]) → dynamic
+  operator >=(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator -(dynamic a, [dynamic b = #C1]) → dynamic
+  operator -(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator +(dynamic a, [dynamic b = #C1]) → dynamic
+  operator +(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator /(dynamic a, [dynamic b = #C1]) → dynamic
+  operator /(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator ~/(dynamic a, [dynamic b = #C1]) → dynamic
+  operator ~/(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator *(dynamic a, [dynamic b = #C1]) → dynamic
+  operator *(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator %(dynamic a, [dynamic b = #C1]) → dynamic
+  operator %(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator |(dynamic a, [dynamic b = #C1]) → dynamic
+  operator |(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator ^(dynamic a, [dynamic b = #C1]) → dynamic
+  operator ^(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator &(dynamic a, [dynamic b = #C1]) → dynamic
+  operator &(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator <<(dynamic a, [dynamic b = #C1]) → dynamic
+  operator <<(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator >>(dynamic a, [dynamic b = #C1]) → dynamic
+  operator >>(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator []=(dynamic a, dynamic b, [dynamic c = #C1]) → void
+  operator []=(dynamic a, dynamic b, [dynamic c = #C2]) → void
     return true;
-  operator [](dynamic a, [dynamic b = #C1]) → dynamic
+  operator [](dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator ~(dynamic a, [dynamic b = #C1]) → dynamic
+  operator ~(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  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 Operators6 extends core::Object {
-  synthetic constructor •() → self::Operators6*
+  synthetic constructor •() → self::Operators6
     : super core::Object::•()
     ;
-  operator ==(dynamic a, {dynamic b = #C1}) → core::bool*
+  operator ==(core::Object a, {dynamic b = #C2}) → core::bool
     return true;
-  operator <(dynamic a, {dynamic b = #C1}) → dynamic
+  operator <(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator >(dynamic a, {dynamic b = #C1}) → dynamic
+  operator >(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator <=(dynamic a, {dynamic b = #C1}) → dynamic
+  operator <=(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator >=(dynamic a, {dynamic b = #C1}) → dynamic
+  operator >=(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator -(dynamic a, {dynamic b = #C1}) → dynamic
+  operator -(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator +(dynamic a, {dynamic b = #C1}) → dynamic
+  operator +(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator /(dynamic a, {dynamic b = #C1}) → dynamic
+  operator /(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator ~/(dynamic a, {dynamic b = #C1}) → dynamic
+  operator ~/(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator *(dynamic a, {dynamic b = #C1}) → dynamic
+  operator *(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator %(dynamic a, {dynamic b = #C1}) → dynamic
+  operator %(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator |(dynamic a, {dynamic b = #C1}) → dynamic
+  operator |(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator ^(dynamic a, {dynamic b = #C1}) → dynamic
+  operator ^(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator &(dynamic a, {dynamic b = #C1}) → dynamic
+  operator &(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator <<(dynamic a, {dynamic b = #C1}) → dynamic
+  operator <<(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator >>(dynamic a, {dynamic b = #C1}) → dynamic
+  operator >>(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator []=(dynamic a, dynamic b, {dynamic c = #C1}) → void
+  operator []=(dynamic a, dynamic b, {dynamic c = #C2}) → void
     return true;
-  operator [](dynamic a, {dynamic b = #C1}) → dynamic
+  operator [](dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator ~(dynamic a, {dynamic b = #C1}) → dynamic
+  operator ~(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  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 Operators7 extends core::Object {
-  synthetic constructor •() → self::Operators7*
+  synthetic constructor •() → self::Operators7
     : super core::Object::•()
     ;
-  operator ==<T extends core::Object* = dynamic>(invalid-type a) → invalid-type
+  operator ==<T extends core::Object? = dynamic>(invalid-type a) → invalid-type
     return true;
-  operator ><T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator ><T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator <=<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator <=<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator >=<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator >=<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator unary-<T extends core::Object* = dynamic>() → dynamic
+  operator unary-<T extends core::Object? = dynamic>() → dynamic
     return true;
-  operator -<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator -<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator +<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator +<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator /<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator /<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator ~/<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator ~/<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator *<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator *<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator %<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator %<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator |<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator |<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator ^<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator ^<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator &<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator &<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator <<<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator <<<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator >><T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator >><T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator []=<T extends core::Object* = dynamic>(dynamic a, dynamic b) → void
+  operator []=<T extends core::Object? = dynamic>(dynamic a, dynamic b) → void
     return true;
-  operator []<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator []<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator ~<T extends core::Object* = dynamic>() → dynamic
+  operator ~<T extends core::Object? = dynamic>() → dynamic
     return true;
-  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
 }
 static method main() → dynamic {}
 
 constants  {
-  #C1 = null
+  #C1 = 0
+  #C2 = null
 }
diff --git a/pkg/front_end/testcases/general/invalid_operator.dart.weak.modular.expect b/pkg/front_end/testcases/general/invalid_operator.dart.weak.modular.expect
index 1bababf..7efd9db 100644
--- a/pkg/front_end/testcases/general/invalid_operator.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/invalid_operator.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -152,7 +152,7 @@
 //            ^
 //
 // pkg/front_end/testcases/general/invalid_operator.dart:49:16: Error: An operator can't have optional parameters.
-//   operator ==([a]) => true;
+//   operator ==([a = 0]) => true;
 //                ^
 //
 // pkg/front_end/testcases/general/invalid_operator.dart:50:15: Error: An operator can't have optional parameters.
@@ -600,10 +600,10 @@
 import "dart:core" as core;
 
 class Operators1 extends core::Object {
-  synthetic constructor •() → self::Operators1*
+  synthetic constructor •() → self::Operators1
     : super core::Object::•()
     ;
-  operator ==() → core::bool*
+  operator ==() → core::bool
     return true;
   operator <() → dynamic
     return true;
@@ -639,21 +639,12 @@
     return true;
   operator ~(dynamic a) → dynamic
     return true;
-  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 Operators2 extends core::Object {
-  synthetic constructor •() → self::Operators2*
+  synthetic constructor •() → self::Operators2
     : super core::Object::•()
     ;
-  operator ==(dynamic a, dynamic b) → core::bool*
+  operator ==(core::Object a, dynamic b) → core::bool
     return true;
   operator <(dynamic a, dynamic b) → dynamic
     return true;
@@ -691,278 +682,225 @@
     return true;
   operator ~(dynamic a, dynamic b) → dynamic
     return true;
-  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 Operators3 extends core::Object {
-  synthetic constructor •() → self::Operators3*
+  synthetic constructor •() → self::Operators3
     : super core::Object::•()
     ;
-  operator ==([dynamic a = #C1]) → core::bool*
+  operator ==([core::Object a = #C1]) → core::bool
     return true;
-  operator <([dynamic a = #C1]) → dynamic
+  operator <([dynamic a = #C2]) → dynamic
     return true;
-  operator >([dynamic a = #C1]) → dynamic
+  operator >([dynamic a = #C2]) → dynamic
     return true;
-  operator <=([dynamic a = #C1]) → dynamic
+  operator <=([dynamic a = #C2]) → dynamic
     return true;
-  operator >=([dynamic a = #C1]) → dynamic
+  operator >=([dynamic a = #C2]) → dynamic
     return true;
-  operator -([dynamic a = #C1]) → dynamic
+  operator -([dynamic a = #C2]) → dynamic
     return true;
-  operator +([dynamic a = #C1]) → dynamic
+  operator +([dynamic a = #C2]) → dynamic
     return true;
-  operator /([dynamic a = #C1]) → dynamic
+  operator /([dynamic a = #C2]) → dynamic
     return true;
-  operator ~/([dynamic a = #C1]) → dynamic
+  operator ~/([dynamic a = #C2]) → dynamic
     return true;
-  operator *([dynamic a = #C1]) → dynamic
+  operator *([dynamic a = #C2]) → dynamic
     return true;
-  operator %([dynamic a = #C1]) → dynamic
+  operator %([dynamic a = #C2]) → dynamic
     return true;
-  operator |([dynamic a = #C1]) → dynamic
+  operator |([dynamic a = #C2]) → dynamic
     return true;
-  operator ^([dynamic a = #C1]) → dynamic
+  operator ^([dynamic a = #C2]) → dynamic
     return true;
-  operator &([dynamic a = #C1]) → dynamic
+  operator &([dynamic a = #C2]) → dynamic
     return true;
-  operator <<([dynamic a = #C1]) → dynamic
+  operator <<([dynamic a = #C2]) → dynamic
     return true;
-  operator >>([dynamic a = #C1]) → dynamic
+  operator >>([dynamic a = #C2]) → dynamic
     return true;
-  operator []=([dynamic a = #C1, dynamic b = #C1]) → void
+  operator []=([dynamic a = #C2, dynamic b = #C2]) → void
     return true;
-  operator []([dynamic a = #C1]) → dynamic
+  operator []([dynamic a = #C2]) → dynamic
     return true;
-  operator ~([dynamic a = #C1]) → dynamic
+  operator ~([dynamic a = #C2]) → dynamic
     return true;
-  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 Operators4 extends core::Object {
-  synthetic constructor •() → self::Operators4*
+  synthetic constructor •() → self::Operators4
     : super core::Object::•()
     ;
-  operator ==({dynamic a = #C1}) → core::bool*
+  operator ==({dynamic a = #C2}) → core::bool
     return true;
-  operator <({dynamic a = #C1}) → dynamic
+  operator <({dynamic a = #C2}) → dynamic
     return true;
-  operator >({dynamic a = #C1}) → dynamic
+  operator >({dynamic a = #C2}) → dynamic
     return true;
-  operator <=({dynamic a = #C1}) → dynamic
+  operator <=({dynamic a = #C2}) → dynamic
     return true;
-  operator >=({dynamic a = #C1}) → dynamic
+  operator >=({dynamic a = #C2}) → dynamic
     return true;
-  operator -({dynamic a = #C1}) → dynamic
+  operator -({dynamic a = #C2}) → dynamic
     return true;
-  operator +({dynamic a = #C1}) → dynamic
+  operator +({dynamic a = #C2}) → dynamic
     return true;
-  operator /({dynamic a = #C1}) → dynamic
+  operator /({dynamic a = #C2}) → dynamic
     return true;
-  operator ~/({dynamic a = #C1}) → dynamic
+  operator ~/({dynamic a = #C2}) → dynamic
     return true;
-  operator *({dynamic a = #C1}) → dynamic
+  operator *({dynamic a = #C2}) → dynamic
     return true;
-  operator %({dynamic a = #C1}) → dynamic
+  operator %({dynamic a = #C2}) → dynamic
     return true;
-  operator |({dynamic a = #C1}) → dynamic
+  operator |({dynamic a = #C2}) → dynamic
     return true;
-  operator ^({dynamic a = #C1}) → dynamic
+  operator ^({dynamic a = #C2}) → dynamic
     return true;
-  operator &({dynamic a = #C1}) → dynamic
+  operator &({dynamic a = #C2}) → dynamic
     return true;
-  operator <<({dynamic a = #C1}) → dynamic
+  operator <<({dynamic a = #C2}) → dynamic
     return true;
-  operator >>({dynamic a = #C1}) → dynamic
+  operator >>({dynamic a = #C2}) → dynamic
     return true;
-  operator []=({dynamic a = #C1, dynamic b = #C1}) → void
+  operator []=({dynamic a = #C2, dynamic b = #C2}) → void
     return true;
-  operator []({dynamic a = #C1}) → dynamic
+  operator []({dynamic a = #C2}) → dynamic
     return true;
-  operator ~({dynamic a = #C1}) → dynamic
+  operator ~({dynamic a = #C2}) → dynamic
     return true;
-  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 Operators5 extends core::Object {
-  synthetic constructor •() → self::Operators5*
+  synthetic constructor •() → self::Operators5
     : super core::Object::•()
     ;
-  operator ==(dynamic a, [dynamic b = #C1]) → core::bool*
+  operator ==(core::Object a, [dynamic b = #C2]) → core::bool
     return true;
-  operator <(dynamic a, [dynamic b = #C1]) → dynamic
+  operator <(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator >(dynamic a, [dynamic b = #C1]) → dynamic
+  operator >(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator <=(dynamic a, [dynamic b = #C1]) → dynamic
+  operator <=(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator >=(dynamic a, [dynamic b = #C1]) → dynamic
+  operator >=(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator -(dynamic a, [dynamic b = #C1]) → dynamic
+  operator -(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator +(dynamic a, [dynamic b = #C1]) → dynamic
+  operator +(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator /(dynamic a, [dynamic b = #C1]) → dynamic
+  operator /(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator ~/(dynamic a, [dynamic b = #C1]) → dynamic
+  operator ~/(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator *(dynamic a, [dynamic b = #C1]) → dynamic
+  operator *(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator %(dynamic a, [dynamic b = #C1]) → dynamic
+  operator %(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator |(dynamic a, [dynamic b = #C1]) → dynamic
+  operator |(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator ^(dynamic a, [dynamic b = #C1]) → dynamic
+  operator ^(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator &(dynamic a, [dynamic b = #C1]) → dynamic
+  operator &(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator <<(dynamic a, [dynamic b = #C1]) → dynamic
+  operator <<(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator >>(dynamic a, [dynamic b = #C1]) → dynamic
+  operator >>(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator []=(dynamic a, dynamic b, [dynamic c = #C1]) → void
+  operator []=(dynamic a, dynamic b, [dynamic c = #C2]) → void
     return true;
-  operator [](dynamic a, [dynamic b = #C1]) → dynamic
+  operator [](dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  operator ~(dynamic a, [dynamic b = #C1]) → dynamic
+  operator ~(dynamic a, [dynamic b = #C2]) → dynamic
     return true;
-  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 Operators6 extends core::Object {
-  synthetic constructor •() → self::Operators6*
+  synthetic constructor •() → self::Operators6
     : super core::Object::•()
     ;
-  operator ==(dynamic a, {dynamic b = #C1}) → core::bool*
+  operator ==(core::Object a, {dynamic b = #C2}) → core::bool
     return true;
-  operator <(dynamic a, {dynamic b = #C1}) → dynamic
+  operator <(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator >(dynamic a, {dynamic b = #C1}) → dynamic
+  operator >(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator <=(dynamic a, {dynamic b = #C1}) → dynamic
+  operator <=(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator >=(dynamic a, {dynamic b = #C1}) → dynamic
+  operator >=(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator -(dynamic a, {dynamic b = #C1}) → dynamic
+  operator -(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator +(dynamic a, {dynamic b = #C1}) → dynamic
+  operator +(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator /(dynamic a, {dynamic b = #C1}) → dynamic
+  operator /(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator ~/(dynamic a, {dynamic b = #C1}) → dynamic
+  operator ~/(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator *(dynamic a, {dynamic b = #C1}) → dynamic
+  operator *(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator %(dynamic a, {dynamic b = #C1}) → dynamic
+  operator %(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator |(dynamic a, {dynamic b = #C1}) → dynamic
+  operator |(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator ^(dynamic a, {dynamic b = #C1}) → dynamic
+  operator ^(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator &(dynamic a, {dynamic b = #C1}) → dynamic
+  operator &(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator <<(dynamic a, {dynamic b = #C1}) → dynamic
+  operator <<(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator >>(dynamic a, {dynamic b = #C1}) → dynamic
+  operator >>(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator []=(dynamic a, dynamic b, {dynamic c = #C1}) → void
+  operator []=(dynamic a, dynamic b, {dynamic c = #C2}) → void
     return true;
-  operator [](dynamic a, {dynamic b = #C1}) → dynamic
+  operator [](dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  operator ~(dynamic a, {dynamic b = #C1}) → dynamic
+  operator ~(dynamic a, {dynamic b = #C2}) → dynamic
     return true;
-  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 Operators7 extends core::Object {
-  synthetic constructor •() → self::Operators7*
+  synthetic constructor •() → self::Operators7
     : super core::Object::•()
     ;
-  operator ==<T extends core::Object* = dynamic>(invalid-type a) → invalid-type
+  operator ==<T extends core::Object? = dynamic>(invalid-type a) → invalid-type
     return true;
-  operator ><T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator ><T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator <=<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator <=<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator >=<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator >=<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator unary-<T extends core::Object* = dynamic>() → dynamic
+  operator unary-<T extends core::Object? = dynamic>() → dynamic
     return true;
-  operator -<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator -<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator +<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator +<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator /<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator /<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator ~/<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator ~/<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator *<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator *<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator %<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator %<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator |<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator |<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator ^<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator ^<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator &<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator &<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator <<<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator <<<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator >><T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator >><T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator []=<T extends core::Object* = dynamic>(dynamic a, dynamic b) → void
+  operator []=<T extends core::Object? = dynamic>(dynamic a, dynamic b) → void
     return true;
-  operator []<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator []<T extends core::Object? = dynamic>(dynamic a) → dynamic
     return true;
-  operator ~<T extends core::Object* = dynamic>() → dynamic
+  operator ~<T extends core::Object? = dynamic>() → dynamic
     return true;
-  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
 }
 static method main() → dynamic {}
 
 constants  {
-  #C1 = null
+  #C1 = 0
+  #C2 = null
 }
diff --git a/pkg/front_end/testcases/general/invalid_operator.dart.weak.outline.expect b/pkg/front_end/testcases/general/invalid_operator.dart.weak.outline.expect
index c9f7e40..839e7f4 100644
--- a/pkg/front_end/testcases/general/invalid_operator.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/invalid_operator.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -152,7 +152,7 @@
 //            ^
 //
 // pkg/front_end/testcases/general/invalid_operator.dart:49:16: Error: An operator can't have optional parameters.
-//   operator ==([a]) => true;
+//   operator ==([a = 0]) => true;
 //                ^
 //
 // pkg/front_end/testcases/general/invalid_operator.dart:50:15: Error: An operator can't have optional parameters.
@@ -600,9 +600,9 @@
 import "dart:core" as core;
 
 class Operators1 extends core::Object {
-  synthetic constructor •() → self::Operators1*
+  synthetic constructor •() → self::Operators1
     ;
-  operator ==() → core::bool*
+  operator ==() → core::bool
     ;
   operator <() → dynamic
     ;
@@ -638,20 +638,11 @@
     ;
   operator ~(dynamic 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 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 Operators2 extends core::Object {
-  synthetic constructor •() → self::Operators2*
+  synthetic constructor •() → self::Operators2
     ;
-  operator ==(dynamic a, dynamic b) → core::bool*
+  operator ==(core::Object a, dynamic b) → core::bool
     ;
   operator <(dynamic a, dynamic b) → dynamic
     ;
@@ -689,20 +680,11 @@
     ;
   operator ~(dynamic a, 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 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 Operators3 extends core::Object {
-  synthetic constructor •() → self::Operators3*
+  synthetic constructor •() → self::Operators3
     ;
-  operator ==([dynamic a]) → core::bool*
+  operator ==([core::Object a = 0]) → core::bool
     ;
   operator <([dynamic a]) → dynamic
     ;
@@ -740,20 +722,11 @@
     ;
   operator ~([dynamic 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 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 Operators4 extends core::Object {
-  synthetic constructor •() → self::Operators4*
+  synthetic constructor •() → self::Operators4
     ;
-  operator ==({dynamic a}) → core::bool*
+  operator ==({dynamic a}) → core::bool
     ;
   operator <({dynamic a}) → dynamic
     ;
@@ -791,20 +764,11 @@
     ;
   operator ~({dynamic 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 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 Operators5 extends core::Object {
-  synthetic constructor •() → self::Operators5*
+  synthetic constructor •() → self::Operators5
     ;
-  operator ==(dynamic a, [dynamic b]) → core::bool*
+  operator ==(core::Object a, [dynamic b]) → core::bool
     ;
   operator <(dynamic a, [dynamic b]) → dynamic
     ;
@@ -842,20 +806,11 @@
     ;
   operator ~(dynamic a, [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 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 Operators6 extends core::Object {
-  synthetic constructor •() → self::Operators6*
+  synthetic constructor •() → self::Operators6
     ;
-  operator ==(dynamic a, {dynamic b}) → core::bool*
+  operator ==(core::Object a, {dynamic b}) → core::bool
     ;
   operator <(dynamic a, {dynamic b}) → dynamic
     ;
@@ -893,66 +848,48 @@
     ;
   operator ~(dynamic a, {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 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 Operators7 extends core::Object {
-  synthetic constructor •() → self::Operators7*
+  synthetic constructor •() → self::Operators7
     ;
-  operator ==<T extends core::Object* = dynamic>(invalid-type a) → invalid-type
+  operator ==<T extends core::Object? = dynamic>(invalid-type a) → invalid-type
     ;
-  operator ><T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator ><T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator <=<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator <=<T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator >=<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator >=<T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator unary-<T extends core::Object* = dynamic>() → dynamic
+  operator unary-<T extends core::Object? = dynamic>() → dynamic
     ;
-  operator -<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator -<T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator +<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator +<T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator /<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator /<T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator ~/<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator ~/<T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator *<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator *<T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator %<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator %<T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator |<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator |<T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator ^<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator ^<T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator &<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator &<T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator <<<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator <<<T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator >><T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator >><T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator []=<T extends core::Object* = dynamic>(dynamic a, dynamic b) → void
+  operator []=<T extends core::Object? = dynamic>(dynamic a, dynamic b) → void
     ;
-  operator []<T extends core::Object* = dynamic>(dynamic a) → dynamic
+  operator []<T extends core::Object? = dynamic>(dynamic a) → dynamic
     ;
-  operator ~<T extends core::Object* = dynamic>() → dynamic
+  operator ~<T extends core::Object? = dynamic>() → 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 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/invalid_operator2.dart b/pkg/front_end/testcases/general/invalid_operator2.dart
index 3b629d5..8c6f693 100644
--- a/pkg/front_end/testcases/general/invalid_operator2.dart
+++ b/pkg/front_end/testcases/general/invalid_operator2.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 Operators7 {
   operator <<T>(a) => true;
 }
diff --git a/pkg/front_end/testcases/general/invalid_operator2.dart.textual_outline.expect b/pkg/front_end/testcases/general/invalid_operator2.dart.textual_outline.expect
index fc030ef..bc10ea0 100644
--- a/pkg/front_end/testcases/general/invalid_operator2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/invalid_operator2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Operators7 {
   operator <<(){}
   Toperator>(a) => true;
diff --git a/pkg/front_end/testcases/general/invalid_operator2.dart.weak.expect b/pkg/front_end/testcases/general/invalid_operator2.dart.weak.expect
index 7ad624a..7bf6313 100644
--- a/pkg/front_end/testcases/general/invalid_operator2.dart.weak.expect
+++ b/pkg/front_end/testcases/general/invalid_operator2.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -28,21 +28,11 @@
 import "dart:core" as core;
 
 class Operators7 extends core::Object {
-  synthetic constructor •() → self::Operators7*
+  synthetic constructor •() → self::Operators7
     : super core::Object::•()
     ;
   operator <<() → dynamic {}
   operator >(dynamic a) → invalid-type
     return true;
-  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/invalid_operator2.dart.weak.modular.expect b/pkg/front_end/testcases/general/invalid_operator2.dart.weak.modular.expect
index 7ad624a..7bf6313 100644
--- a/pkg/front_end/testcases/general/invalid_operator2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/invalid_operator2.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -28,21 +28,11 @@
 import "dart:core" as core;
 
 class Operators7 extends core::Object {
-  synthetic constructor •() → self::Operators7*
+  synthetic constructor •() → self::Operators7
     : super core::Object::•()
     ;
   operator <<() → dynamic {}
   operator >(dynamic a) → invalid-type
     return true;
-  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/invalid_operator2.dart.weak.outline.expect b/pkg/front_end/testcases/general/invalid_operator2.dart.weak.outline.expect
index 67d0ed8..fd3aa32 100644
--- a/pkg/front_end/testcases/general/invalid_operator2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/invalid_operator2.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -28,22 +28,12 @@
 import "dart:core" as core;
 
 class Operators7 extends core::Object {
-  synthetic constructor •() → self::Operators7*
+  synthetic constructor •() → self::Operators7
     ;
   operator <<() → dynamic
     ;
   operator >(dynamic a) → invalid-type
     ;
-  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/invalid_operator2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/invalid_operator2.dart.weak.transformed.expect
index 7ad624a..7bf6313 100644
--- a/pkg/front_end/testcases/general/invalid_operator2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/invalid_operator2.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -28,21 +28,11 @@
 import "dart:core" as core;
 
 class Operators7 extends core::Object {
-  synthetic constructor •() → self::Operators7*
+  synthetic constructor •() → self::Operators7
     : super core::Object::•()
     ;
   operator <<() → dynamic {}
   operator >(dynamic a) → invalid-type
     return true;
-  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/invalid_operator_override.dart b/pkg/front_end/testcases/general/invalid_operator_override.dart
index b96cf5b..9767d57 100644
--- a/pkg/front_end/testcases/general/invalid_operator_override.dart
+++ b/pkg/front_end/testcases/general/invalid_operator_override.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 A {
   A operator +(A a) => a;
   B operator -() => new B();
diff --git a/pkg/front_end/testcases/general/invalid_operator_override.dart.textual_outline.expect b/pkg/front_end/testcases/general/invalid_operator_override.dart.textual_outline.expect
index fe67f0b..f4a5167 100644
--- a/pkg/front_end/testcases/general/invalid_operator_override.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/invalid_operator_override.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A operator +(A a) => a;
   B operator -() => new B();
diff --git a/pkg/front_end/testcases/general/invalid_operator_override.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/invalid_operator_override.dart.textual_outline_modelled.expect
index fe67f0b..f4a5167 100644
--- a/pkg/front_end/testcases/general/invalid_operator_override.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/invalid_operator_override.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A operator +(A a) => a;
   B operator -() => new B();
diff --git a/pkg/front_end/testcases/general/invalid_operator_override.dart.weak.expect b/pkg/front_end/testcases/general/invalid_operator_override.dart.weak.expect
index aad884f..e21a3e1 100644
--- a/pkg/front_end/testcases/general/invalid_operator_override.dart.weak.expect
+++ b/pkg/front_end/testcases/general/invalid_operator_override.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -76,45 +76,35 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator +(self::A* a) → self::A*
+  operator +(self::A a) → self::A
     return a;
-  operator unary-() → self::B*
+  operator unary-() → self::B
     return new self::B::•();
-  operator [](self::A* a) → self::B*
+  operator [](self::A a) → self::B
     return new self::B::•();
-  operator []=(self::A* a1, self::A* a2) → 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
+  operator []=(self::A a1, self::A a2) → void {}
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  operator +(self::B* b) → self::A*
+  operator +(self::B b) → self::A
     return b;
-  operator unary-() → self::A*
+  operator unary-() → self::A
     return this;
-  operator [](self::B* b) → self::B*
+  operator [](self::B b) → self::B
     return b;
-  operator []=(self::B* b, self::A* a) → void {}
+  operator []=(self::B b, self::A a) → void {}
 }
 class C extends self::A {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::A::•()
     ;
-  operator [](self::B* b) → self::A*
+  operator [](self::B b) → self::A
     return b;
-  operator []=(self::A* a, self::B* b) → void {}
+  operator []=(self::A a, self::B b) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/invalid_operator_override.dart.weak.modular.expect b/pkg/front_end/testcases/general/invalid_operator_override.dart.weak.modular.expect
index aad884f..e21a3e1 100644
--- a/pkg/front_end/testcases/general/invalid_operator_override.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/invalid_operator_override.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -76,45 +76,35 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator +(self::A* a) → self::A*
+  operator +(self::A a) → self::A
     return a;
-  operator unary-() → self::B*
+  operator unary-() → self::B
     return new self::B::•();
-  operator [](self::A* a) → self::B*
+  operator [](self::A a) → self::B
     return new self::B::•();
-  operator []=(self::A* a1, self::A* a2) → 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
+  operator []=(self::A a1, self::A a2) → void {}
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  operator +(self::B* b) → self::A*
+  operator +(self::B b) → self::A
     return b;
-  operator unary-() → self::A*
+  operator unary-() → self::A
     return this;
-  operator [](self::B* b) → self::B*
+  operator [](self::B b) → self::B
     return b;
-  operator []=(self::B* b, self::A* a) → void {}
+  operator []=(self::B b, self::A a) → void {}
 }
 class C extends self::A {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::A::•()
     ;
-  operator [](self::B* b) → self::A*
+  operator [](self::B b) → self::A
     return b;
-  operator []=(self::A* a, self::B* b) → void {}
+  operator []=(self::A a, self::B b) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/invalid_operator_override.dart.weak.outline.expect b/pkg/front_end/testcases/general/invalid_operator_override.dart.weak.outline.expect
index 64aaa48..75e9755 100644
--- a/pkg/front_end/testcases/general/invalid_operator_override.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/invalid_operator_override.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -76,45 +76,35 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
-  operator +(self::A* a) → self::A*
+  operator +(self::A a) → self::A
     ;
-  operator unary-() → self::B*
+  operator unary-() → self::B
     ;
-  operator [](self::A* a) → self::B*
+  operator [](self::A a) → self::B
     ;
-  operator []=(self::A* a1, self::A* a2) → void
+  operator []=(self::A a1, self::A a2) → 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 B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  operator +(self::B* b) → self::A*
+  operator +(self::B b) → self::A
     ;
-  operator unary-() → self::A*
+  operator unary-() → self::A
     ;
-  operator [](self::B* b) → self::B*
+  operator [](self::B b) → self::B
     ;
-  operator []=(self::B* b, self::A* a) → void
+  operator []=(self::B b, self::A a) → void
     ;
 }
 class C extends self::A {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  operator [](self::B* b) → self::A*
+  operator [](self::B b) → self::A
     ;
-  operator []=(self::A* a, self::B* b) → void
+  operator []=(self::A a, self::B b) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/invalid_setter_return_type.dart b/pkg/front_end/testcases/general/invalid_setter_return_type.dart
index 4d813d2..7bf0d86 100644
--- a/pkg/front_end/testcases/general/invalid_setter_return_type.dart
+++ b/pkg/front_end/testcases/general/invalid_setter_return_type.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
+
 int set setter1(_) {} // error
 dynamic set setter2(_) {} // error
 void set setter3(_) {} // ok
diff --git a/pkg/front_end/testcases/general/invalid_setter_return_type.dart.textual_outline.expect b/pkg/front_end/testcases/general/invalid_setter_return_type.dart.textual_outline.expect
index a43e4f8..5009b26 100644
--- a/pkg/front_end/testcases/general/invalid_setter_return_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/invalid_setter_return_type.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 int set setter1(_) {}
 dynamic set setter2(_) {}
 void set setter3(_) {}
diff --git a/pkg/front_end/testcases/general/invalid_setter_return_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/invalid_setter_return_type.dart.textual_outline_modelled.expect
index da95c96..721e925 100644
--- a/pkg/front_end/testcases/general/invalid_setter_return_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/invalid_setter_return_type.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Class1 {
   int operator []=(a, b) {}
   int set setter1(_) {}
diff --git a/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.expect b/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.expect
index 096efed..76330df 100644
--- a/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.expect
+++ b/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -36,72 +36,32 @@
 import "dart:core" as core;
 
 class Class1 extends core::Object {
-  synthetic constructor •() → self::Class1*
+  synthetic constructor •() → self::Class1
     : super core::Object::•()
     ;
   set setter1(dynamic _) → void {}
   operator []=(dynamic a, dynamic b) → 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 Class2 extends core::Object {
-  synthetic constructor •() → self::Class2*
+  synthetic constructor •() → self::Class2
     : super core::Object::•()
     ;
   set setter2(dynamic _) → void {}
   operator []=(dynamic a, dynamic b) → 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 Class3 extends core::Object {
-  synthetic constructor •() → self::Class3*
+  synthetic constructor •() → self::Class3
     : super core::Object::•()
     ;
   set setter3(dynamic _) → void {}
   operator []=(dynamic a, dynamic b) → 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 Class4 extends core::Object {
-  synthetic constructor •() → self::Class4*
+  synthetic constructor •() → self::Class4
     : super core::Object::•()
     ;
   set setter4(dynamic _) → void {}
   operator []=(dynamic a, dynamic b) → 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 set setter1(dynamic _) → void {}
 static set setter2(dynamic _) → void {}
diff --git a/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.modular.expect b/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.modular.expect
index 096efed..76330df 100644
--- a/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -36,72 +36,32 @@
 import "dart:core" as core;
 
 class Class1 extends core::Object {
-  synthetic constructor •() → self::Class1*
+  synthetic constructor •() → self::Class1
     : super core::Object::•()
     ;
   set setter1(dynamic _) → void {}
   operator []=(dynamic a, dynamic b) → 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 Class2 extends core::Object {
-  synthetic constructor •() → self::Class2*
+  synthetic constructor •() → self::Class2
     : super core::Object::•()
     ;
   set setter2(dynamic _) → void {}
   operator []=(dynamic a, dynamic b) → 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 Class3 extends core::Object {
-  synthetic constructor •() → self::Class3*
+  synthetic constructor •() → self::Class3
     : super core::Object::•()
     ;
   set setter3(dynamic _) → void {}
   operator []=(dynamic a, dynamic b) → 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 Class4 extends core::Object {
-  synthetic constructor •() → self::Class4*
+  synthetic constructor •() → self::Class4
     : super core::Object::•()
     ;
   set setter4(dynamic _) → void {}
   operator []=(dynamic a, dynamic b) → 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 set setter1(dynamic _) → void {}
 static set setter2(dynamic _) → void {}
diff --git a/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.outline.expect b/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.outline.expect
index fa52301..9593b2e 100644
--- a/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -36,76 +36,36 @@
 import "dart:core" as core;
 
 class Class1 extends core::Object {
-  synthetic constructor •() → self::Class1*
+  synthetic constructor •() → self::Class1
     ;
   set setter1(dynamic _) → void
     ;
   operator []=(dynamic a, dynamic b) → 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 Class2 extends core::Object {
-  synthetic constructor •() → self::Class2*
+  synthetic constructor •() → self::Class2
     ;
   set setter2(dynamic _) → void
     ;
   operator []=(dynamic a, dynamic b) → 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 Class3 extends core::Object {
-  synthetic constructor •() → self::Class3*
+  synthetic constructor •() → self::Class3
     ;
   set setter3(dynamic _) → void
     ;
   operator []=(dynamic a, dynamic b) → 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 Class4 extends core::Object {
-  synthetic constructor •() → self::Class4*
+  synthetic constructor •() → self::Class4
     ;
   set setter4(dynamic _) → void
     ;
   operator []=(dynamic a, dynamic b) → 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 set setter1(dynamic _) → void
   ;
diff --git a/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.transformed.expect b/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.transformed.expect
index 096efed..76330df 100644
--- a/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/invalid_setter_return_type.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -36,72 +36,32 @@
 import "dart:core" as core;
 
 class Class1 extends core::Object {
-  synthetic constructor •() → self::Class1*
+  synthetic constructor •() → self::Class1
     : super core::Object::•()
     ;
   set setter1(dynamic _) → void {}
   operator []=(dynamic a, dynamic b) → 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 Class2 extends core::Object {
-  synthetic constructor •() → self::Class2*
+  synthetic constructor •() → self::Class2
     : super core::Object::•()
     ;
   set setter2(dynamic _) → void {}
   operator []=(dynamic a, dynamic b) → 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 Class3 extends core::Object {
-  synthetic constructor •() → self::Class3*
+  synthetic constructor •() → self::Class3
     : super core::Object::•()
     ;
   set setter3(dynamic _) → void {}
   operator []=(dynamic a, dynamic b) → 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 Class4 extends core::Object {
-  synthetic constructor •() → self::Class4*
+  synthetic constructor •() → self::Class4
     : super core::Object::•()
     ;
   set setter4(dynamic _) → void {}
   operator []=(dynamic a, dynamic b) → 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 set setter1(dynamic _) → void {}
 static set setter2(dynamic _) → void {}
diff --git a/pkg/front_end/testcases/general/invalid_type.dart b/pkg/front_end/testcases/general/invalid_type.dart
index 49b3b24..f155286 100644
--- a/pkg/front_end/testcases/general/invalid_type.dart
+++ b/pkg/front_end/testcases/general/invalid_type.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
+
 class C {
   static foo() {
     this.bar();
diff --git a/pkg/front_end/testcases/general/invalid_type.dart.textual_outline.expect b/pkg/front_end/testcases/general/invalid_type.dart.textual_outline.expect
index 7660aef..6cef1e5 100644
--- a/pkg/front_end/testcases/general/invalid_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/invalid_type.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   static foo() {}
 }
diff --git a/pkg/front_end/testcases/general/invalid_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/invalid_type.dart.textual_outline_modelled.expect
index fdf8e91..a02ed16 100644
--- a/pkg/front_end/testcases/general/invalid_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/invalid_type.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   static foo() {}
 }
diff --git a/pkg/front_end/testcases/general/invalid_type.dart.weak.expect b/pkg/front_end/testcases/general/invalid_type.dart.weak.expect
index 5bf84b6..c99d4c1 100644
--- a/pkg/front_end/testcases/general/invalid_type.dart.weak.expect
+++ b/pkg/front_end/testcases/general/invalid_type.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,7 +19,7 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   static method foo() → dynamic {
@@ -27,19 +27,9 @@
     this.bar();
     ^^^^"{dynamic}.bar();
   }
-  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 test() → dynamic {
-  (null as invalid-type){dynamic}.bar();
+  (null as{ForNonNullableByDefault} invalid-type){dynamic}.bar();
   invalid-expression "pkg/front_end/testcases/general/invalid_type.dart:13:8: Error: The method 'bar' isn't defined for the class 'Null'.
 Try correcting the name to the name of an existing method, or defining a method named 'bar'.
   null.bar();
diff --git a/pkg/front_end/testcases/general/invalid_type.dart.weak.modular.expect b/pkg/front_end/testcases/general/invalid_type.dart.weak.modular.expect
index 5bf84b6..c99d4c1 100644
--- a/pkg/front_end/testcases/general/invalid_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/invalid_type.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,7 +19,7 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   static method foo() → dynamic {
@@ -27,19 +27,9 @@
     this.bar();
     ^^^^"{dynamic}.bar();
   }
-  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 test() → dynamic {
-  (null as invalid-type){dynamic}.bar();
+  (null as{ForNonNullableByDefault} invalid-type){dynamic}.bar();
   invalid-expression "pkg/front_end/testcases/general/invalid_type.dart:13:8: Error: The method 'bar' isn't defined for the class 'Null'.
 Try correcting the name to the name of an existing method, or defining a method named 'bar'.
   null.bar();
diff --git a/pkg/front_end/testcases/general/invalid_type.dart.weak.outline.expect b/pkg/front_end/testcases/general/invalid_type.dart.weak.outline.expect
index 41d0f67..93690a3 100644
--- a/pkg/front_end/testcases/general/invalid_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/invalid_type.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
   static method foo() → 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
 }
 static method test() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/invalid_type.dart.weak.transformed.expect b/pkg/front_end/testcases/general/invalid_type.dart.weak.transformed.expect
index a120ded..22a8b97 100644
--- a/pkg/front_end/testcases/general/invalid_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/invalid_type.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,7 +19,7 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   static method foo() → dynamic {
@@ -27,19 +27,9 @@
     this.bar();
     ^^^^"{dynamic}.bar();
   }
-  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 test() → dynamic {
-  (null as invalid-type){dynamic}.bar();
+  (null as{ForNonNullableByDefault} invalid-type){dynamic}.bar();
   invalid-expression "pkg/front_end/testcases/general/invalid_type.dart:13:8: Error: The method 'bar' isn't defined for the class 'Null'.
 Try correcting the name to the name of an existing method, or defining a method named 'bar'.
   null.bar();
diff --git a/pkg/front_end/testcases/general/invocations.dart b/pkg/front_end/testcases/general/invocations.dart
index dcba30d..3166901 100644
--- a/pkg/front_end/testcases/general/invocations.dart
+++ b/pkg/front_end/testcases/general/invocations.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() {
   print("Hello, World!");
   z("Hello, World!");
diff --git a/pkg/front_end/testcases/general/invocations.dart.textual_outline.expect b/pkg/front_end/testcases/general/invocations.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/invocations.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/invocations.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/invocations.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/invocations.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/invocations.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/invocations.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/invocations.dart.weak.expect b/pkg/front_end/testcases/general/invocations.dart.weak.expect
index 64be843..79eb25a 100644
--- a/pkg/front_end/testcases/general/invocations.dart.weak.expect
+++ b/pkg/front_end/testcases/general/invocations.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -57,13 +57,13 @@
   ^"{<invalid>}.y{<invalid>}.z{dynamic}.print("Hello, World!");
   1.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:13:7: Error: This expression has type 'void' and can't be used.
       print(\"Hello, World!\") +
-      ^" in core::print("Hello, World!")){(core::num*) →* core::num*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:14:7: Error: Method not found: 'z'.
+      ^" in core::print("Hello, World!")){(core::num) → core::num}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:14:7: Error: Method not found: 'z'.
       z(\"Hello, World!\") +
-      ^"){(core::num*) →* core::num*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:15:7: Error: Undefined name 'z'.
+      ^"){(core::num) → core::double}.{core::double::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:15:7: Error: Undefined name 'z'.
       z.print(\"Hello, World!\") +
-      ^"{dynamic}.print("Hello, World!") as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:16:7: Error: Undefined name 'y'.
+      ^"{dynamic}.print("Hello, World!") as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::double}.{core::double::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:16:7: Error: Undefined name 'y'.
       y.z.print(\"Hello, World!\") +
-      ^"{<invalid>}.z{dynamic}.print("Hello, World!") as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:17:7: Error: Undefined name 'x'.
+      ^"{<invalid>}.z{dynamic}.print("Hello, World!") as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::double}.{core::double::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:17:7: Error: Undefined name 'x'.
       x.y.z.print(\"Hello, World!\");
-      ^"{<invalid>}.y{<invalid>}.z{dynamic}.print("Hello, World!") as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+      ^"{<invalid>}.y{<invalid>}.z{dynamic}.print("Hello, World!") as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::double};
 }
diff --git a/pkg/front_end/testcases/general/invocations.dart.weak.modular.expect b/pkg/front_end/testcases/general/invocations.dart.weak.modular.expect
index 64be843..79eb25a 100644
--- a/pkg/front_end/testcases/general/invocations.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/invocations.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -57,13 +57,13 @@
   ^"{<invalid>}.y{<invalid>}.z{dynamic}.print("Hello, World!");
   1.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:13:7: Error: This expression has type 'void' and can't be used.
       print(\"Hello, World!\") +
-      ^" in core::print("Hello, World!")){(core::num*) →* core::num*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:14:7: Error: Method not found: 'z'.
+      ^" in core::print("Hello, World!")){(core::num) → core::num}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:14:7: Error: Method not found: 'z'.
       z(\"Hello, World!\") +
-      ^"){(core::num*) →* core::num*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:15:7: Error: Undefined name 'z'.
+      ^"){(core::num) → core::double}.{core::double::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:15:7: Error: Undefined name 'z'.
       z.print(\"Hello, World!\") +
-      ^"{dynamic}.print("Hello, World!") as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:16:7: Error: Undefined name 'y'.
+      ^"{dynamic}.print("Hello, World!") as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::double}.{core::double::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:16:7: Error: Undefined name 'y'.
       y.z.print(\"Hello, World!\") +
-      ^"{<invalid>}.z{dynamic}.print("Hello, World!") as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:17:7: Error: Undefined name 'x'.
+      ^"{<invalid>}.z{dynamic}.print("Hello, World!") as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::double}.{core::double::+}(invalid-expression "pkg/front_end/testcases/general/invocations.dart:17:7: Error: Undefined name 'x'.
       x.y.z.print(\"Hello, World!\");
-      ^"{<invalid>}.y{<invalid>}.z{dynamic}.print("Hello, World!") as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+      ^"{<invalid>}.y{<invalid>}.z{dynamic}.print("Hello, World!") as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::double};
 }
diff --git a/pkg/front_end/testcases/general/invocations.dart.weak.outline.expect b/pkg/front_end/testcases/general/invocations.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/general/invocations.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/invocations.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/trailing_comma1.dart b/pkg/front_end/testcases/general/trailing_comma1.dart
index ef112c2..ff2aae4 100644
--- a/pkg/front_end/testcases/general/trailing_comma1.dart
+++ b/pkg/front_end/testcases/general/trailing_comma1.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
+
 var c = new C();
 var z = 42;
 
diff --git a/pkg/front_end/testcases/general/trailing_comma1.dart.textual_outline.expect b/pkg/front_end/testcases/general/trailing_comma1.dart.textual_outline.expect
index 7fd0fbc..3e50c35 100644
--- a/pkg/front_end/testcases/general/trailing_comma1.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/trailing_comma1.dart.textual_outline.expect
@@ -1,3 +1,4 @@
+// @dart = 2.16
 var c = new C();
 var z = 42;
 
diff --git a/pkg/front_end/testcases/general/trailing_comma1.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/trailing_comma1.dart.textual_outline_modelled.expect
index 05f37b7..2eba650 100644
--- a/pkg/front_end/testcases/general/trailing_comma1.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/trailing_comma1.dart.textual_outline_modelled.expect
@@ -1,3 +1,4 @@
+// @dart = 2.16
 class Bad {
   method() {}
 }
diff --git a/pkg/front_end/testcases/general/trailing_comma1.dart.weak.expect b/pkg/front_end/testcases/general/trailing_comma1.dart.weak.expect
index a380661..2749c0a 100644
--- a/pkg/front_end/testcases/general/trailing_comma1.dart.weak.expect
+++ b/pkg/front_end/testcases/general/trailing_comma1.dart.weak.expect
@@ -2,29 +2,29 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:17:21: Error: Expected an identifier, but got ','.
+// pkg/front_end/testcases/general/trailing_comma1.dart:19:21: Error: Expected an identifier, but got ','.
 // Try inserting an identifier before ','.
 //     c.instance1(z:z,,);
 //                     ^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:17:21: Error: Expected named argument.
+// pkg/front_end/testcases/general/trailing_comma1.dart:19:21: Error: Expected named argument.
 //     c.instance1(z:z,,);
 //                     ^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:18:21: Error: Expected an identifier, but got ','.
+// pkg/front_end/testcases/general/trailing_comma1.dart:20:21: Error: Expected an identifier, but got ','.
 // Try inserting an identifier before ','.
 //     c.instance2(z:z,,);
 //                     ^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:18:21: Error: Expected named argument.
+// pkg/front_end/testcases/general/trailing_comma1.dart:20:21: Error: Expected named argument.
 //     c.instance2(z:z,,);
 //                     ^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:17:16: Error: No named parameter with the name '#1'.
+// pkg/front_end/testcases/general/trailing_comma1.dart:19:16: Error: No named parameter with the name '#1'.
 //     c.instance1(z:z,,);
 //                ^^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:18:16: Error: Too few positional arguments: 1 required, 0 given.
+// pkg/front_end/testcases/general/trailing_comma1.dart:20:16: Error: Too few positional arguments: 1 required, 0 given.
 //     c.instance2(z:z,,);
 //                ^
 //
@@ -43,14 +43,14 @@
     : super core::Object::•()
     ;
   method method() → dynamic {
-    invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:17:16: Error: No named parameter with the name '#1'.
+    invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:19:16: Error: No named parameter with the name '#1'.
     c.instance1(z:z,,);
-               ^^" in self::c.{self::C::instance1}{<inapplicable>}.(z: self::z, #1: invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:17:21: Error: Expected named argument.
+               ^^" in self::c.{self::C::instance1}{<inapplicable>}.(z: self::z, #1: invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:19:21: Error: Expected named argument.
     c.instance1(z:z,,);
                     ^"){({z: invalid-type, #1: invalid-type}) → invalid-type};
-    invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:18:16: Error: Too few positional arguments: 1 required, 0 given.
+    invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:20:16: Error: Too few positional arguments: 1 required, 0 given.
     c.instance2(z:z,,);
-               ^" in self::c.{self::C::instance2}{<inapplicable>}.(z: self::z, #1: invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:18:21: Error: Expected named argument.
+               ^" in self::c.{self::C::instance2}{<inapplicable>}.(z: self::z, #1: invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:20:21: Error: Expected named argument.
     c.instance2(z:z,,);
                     ^"){({z: invalid-type, #1: invalid-type}) → invalid-type};
   }
diff --git a/pkg/front_end/testcases/general/trailing_comma1.dart.weak.modular.expect b/pkg/front_end/testcases/general/trailing_comma1.dart.weak.modular.expect
index a380661..2749c0a 100644
--- a/pkg/front_end/testcases/general/trailing_comma1.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/trailing_comma1.dart.weak.modular.expect
@@ -2,29 +2,29 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:17:21: Error: Expected an identifier, but got ','.
+// pkg/front_end/testcases/general/trailing_comma1.dart:19:21: Error: Expected an identifier, but got ','.
 // Try inserting an identifier before ','.
 //     c.instance1(z:z,,);
 //                     ^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:17:21: Error: Expected named argument.
+// pkg/front_end/testcases/general/trailing_comma1.dart:19:21: Error: Expected named argument.
 //     c.instance1(z:z,,);
 //                     ^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:18:21: Error: Expected an identifier, but got ','.
+// pkg/front_end/testcases/general/trailing_comma1.dart:20:21: Error: Expected an identifier, but got ','.
 // Try inserting an identifier before ','.
 //     c.instance2(z:z,,);
 //                     ^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:18:21: Error: Expected named argument.
+// pkg/front_end/testcases/general/trailing_comma1.dart:20:21: Error: Expected named argument.
 //     c.instance2(z:z,,);
 //                     ^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:17:16: Error: No named parameter with the name '#1'.
+// pkg/front_end/testcases/general/trailing_comma1.dart:19:16: Error: No named parameter with the name '#1'.
 //     c.instance1(z:z,,);
 //                ^^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:18:16: Error: Too few positional arguments: 1 required, 0 given.
+// pkg/front_end/testcases/general/trailing_comma1.dart:20:16: Error: Too few positional arguments: 1 required, 0 given.
 //     c.instance2(z:z,,);
 //                ^
 //
@@ -43,14 +43,14 @@
     : super core::Object::•()
     ;
   method method() → dynamic {
-    invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:17:16: Error: No named parameter with the name '#1'.
+    invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:19:16: Error: No named parameter with the name '#1'.
     c.instance1(z:z,,);
-               ^^" in self::c.{self::C::instance1}{<inapplicable>}.(z: self::z, #1: invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:17:21: Error: Expected named argument.
+               ^^" in self::c.{self::C::instance1}{<inapplicable>}.(z: self::z, #1: invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:19:21: Error: Expected named argument.
     c.instance1(z:z,,);
                     ^"){({z: invalid-type, #1: invalid-type}) → invalid-type};
-    invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:18:16: Error: Too few positional arguments: 1 required, 0 given.
+    invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:20:16: Error: Too few positional arguments: 1 required, 0 given.
     c.instance2(z:z,,);
-               ^" in self::c.{self::C::instance2}{<inapplicable>}.(z: self::z, #1: invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:18:21: Error: Expected named argument.
+               ^" in self::c.{self::C::instance2}{<inapplicable>}.(z: self::z, #1: invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:20:21: Error: Expected named argument.
     c.instance2(z:z,,);
                     ^"){({z: invalid-type, #1: invalid-type}) → invalid-type};
   }
diff --git a/pkg/front_end/testcases/general/trailing_comma1.dart.weak.transformed.expect b/pkg/front_end/testcases/general/trailing_comma1.dart.weak.transformed.expect
index a380661..2749c0a 100644
--- a/pkg/front_end/testcases/general/trailing_comma1.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/trailing_comma1.dart.weak.transformed.expect
@@ -2,29 +2,29 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:17:21: Error: Expected an identifier, but got ','.
+// pkg/front_end/testcases/general/trailing_comma1.dart:19:21: Error: Expected an identifier, but got ','.
 // Try inserting an identifier before ','.
 //     c.instance1(z:z,,);
 //                     ^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:17:21: Error: Expected named argument.
+// pkg/front_end/testcases/general/trailing_comma1.dart:19:21: Error: Expected named argument.
 //     c.instance1(z:z,,);
 //                     ^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:18:21: Error: Expected an identifier, but got ','.
+// pkg/front_end/testcases/general/trailing_comma1.dart:20:21: Error: Expected an identifier, but got ','.
 // Try inserting an identifier before ','.
 //     c.instance2(z:z,,);
 //                     ^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:18:21: Error: Expected named argument.
+// pkg/front_end/testcases/general/trailing_comma1.dart:20:21: Error: Expected named argument.
 //     c.instance2(z:z,,);
 //                     ^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:17:16: Error: No named parameter with the name '#1'.
+// pkg/front_end/testcases/general/trailing_comma1.dart:19:16: Error: No named parameter with the name '#1'.
 //     c.instance1(z:z,,);
 //                ^^
 //
-// pkg/front_end/testcases/general/trailing_comma1.dart:18:16: Error: Too few positional arguments: 1 required, 0 given.
+// pkg/front_end/testcases/general/trailing_comma1.dart:20:16: Error: Too few positional arguments: 1 required, 0 given.
 //     c.instance2(z:z,,);
 //                ^
 //
@@ -43,14 +43,14 @@
     : super core::Object::•()
     ;
   method method() → dynamic {
-    invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:17:16: Error: No named parameter with the name '#1'.
+    invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:19:16: Error: No named parameter with the name '#1'.
     c.instance1(z:z,,);
-               ^^" in self::c.{self::C::instance1}{<inapplicable>}.(z: self::z, #1: invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:17:21: Error: Expected named argument.
+               ^^" in self::c.{self::C::instance1}{<inapplicable>}.(z: self::z, #1: invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:19:21: Error: Expected named argument.
     c.instance1(z:z,,);
                     ^"){({z: invalid-type, #1: invalid-type}) → invalid-type};
-    invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:18:16: Error: Too few positional arguments: 1 required, 0 given.
+    invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:20:16: Error: Too few positional arguments: 1 required, 0 given.
     c.instance2(z:z,,);
-               ^" in self::c.{self::C::instance2}{<inapplicable>}.(z: self::z, #1: invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:18:21: Error: Expected named argument.
+               ^" in self::c.{self::C::instance2}{<inapplicable>}.(z: self::z, #1: invalid-expression "pkg/front_end/testcases/general/trailing_comma1.dart:20:21: Error: Expected named argument.
     c.instance2(z:z,,);
                     ^"){({z: invalid-type, #1: invalid-type}) → invalid-type};
   }
diff --git a/pkg/front_end/testcases/modular.status b/pkg/front_end/testcases/modular.status
index 3d6a84f..b40f872 100644
--- a/pkg/front_end/testcases/modular.status
+++ b/pkg/front_end/testcases/modular.status
@@ -30,8 +30,10 @@
 general/implement_semi_stub: TypeCheckError
 general/implicit_super_call: TypeCheckError
 general/infer_field_from_multiple: TypeCheckError
+general/infer_field_from_multiple2: TypeCheckError
 general/invalid_operator: TypeCheckError
 general/invalid_operator_override: TypeCheckError
+general/invocations: TypeCheckError
 general/issue41210a: TypeCheckError
 general/issue41210b/issue41210.no_link: TypeCheckError
 general/issue41210b/issue41210: TypeCheckError
diff --git a/pkg/front_end/testcases/outline.status b/pkg/front_end/testcases/outline.status
index d03d29f..3e52ebe 100644
--- a/pkg/front_end/testcases/outline.status
+++ b/pkg/front_end/testcases/outline.status
@@ -23,6 +23,7 @@
 general/getter_vs_setter_type: TypeCheckError
 general/implement_semi_stub: TypeCheckError
 general/infer_field_from_multiple: TypeCheckError
+general/infer_field_from_multiple2: TypeCheckError
 general/invalid_operator: TypeCheckError
 general/invalid_operator_override: TypeCheckError
 general/issue41210a: TypeCheckError
diff --git a/pkg/front_end/testcases/text_serialization.status b/pkg/front_end/testcases/text_serialization.status
index 04f232f..9a22f85 100644
--- a/pkg/front_end/testcases/text_serialization.status
+++ b/pkg/front_end/testcases/text_serialization.status
@@ -82,9 +82,10 @@
 general/implicit_super_call: TypeCheckError
 general/incomplete_field_formal_parameter: RuntimeError
 general/infer_field_from_multiple: TypeCheckError
+general/infer_field_from_multiple2: TypeCheckError
 general/invalid_operator: TypeCheckError
 general/invalid_operator_override: TypeCheckError
-general/invocations: RuntimeError
+general/invocations: TypeCheckError
 general/issue37776: RuntimeError
 general/issue38938: RuntimeError
 general/issue38944: RuntimeError
diff --git a/pkg/front_end/testcases/weak.status b/pkg/front_end/testcases/weak.status
index df4b49e..89d1295 100644
--- a/pkg/front_end/testcases/weak.status
+++ b/pkg/front_end/testcases/weak.status
@@ -95,9 +95,10 @@
 general/implicit_super_call: TypeCheckError
 general/incomplete_field_formal_parameter: RuntimeError
 general/infer_field_from_multiple: TypeCheckError
+general/infer_field_from_multiple2: TypeCheckError
 general/invalid_operator: TypeCheckError
 general/invalid_operator_override: TypeCheckError
-general/invocations: RuntimeError
+general/invocations: TypeCheckError
 general/issue37776: RuntimeError
 general/issue38938: RuntimeError # no main and compile time errors.
 general/issue38944: RuntimeError # no main and compile time errors.
diff --git a/sdk/lib/isolate/isolate.dart b/sdk/lib/isolate/isolate.dart
index 48c046f..517beee 100644
--- a/sdk/lib/isolate/isolate.dart
+++ b/sdk/lib/isolate/isolate.dart
@@ -144,6 +144,106 @@
   /// inspect the isolate and see uncaught errors or when it terminates.
   Isolate(this.controlPort, {this.pauseCapability, this.terminateCapability});
 
+  /// Runs [computation] in a new isolate and returns the result.
+  ///
+  /// ```dart
+  /// int slowFib(int n) =>
+  ///     n <= 1 ? 1 : slowFib(n - 1) + slowFib(n - 2);
+  ///
+  /// // Compute without blocking current isolate.
+  /// var fib40 = await Isolate.run(() => slowFib(40));
+  /// ```
+  ///
+  /// If [computation] is asynchronous (returns a `Future<R>`) then
+  /// that future is awaited in the new isolate, completing the entire
+  /// asynchronous computation, before returning the result.
+  ///
+  /// ```dart
+  /// int slowFib(int n) =>
+  ///     n <= 1 ? 1 : slowFib(n - 1) + slowFib(n - 2);
+  /// Stream<int> fibStream() async* {
+  ///   for (var i = 0;; i++) yield slowFib(i);
+  /// }
+  ///
+  /// // Returns `Future<int>`.
+  /// var fib40 = await Isolate.run(() => fibStream().elementAt(40));
+  /// ```
+  ///
+  /// If [computation] throws, the isolate is terminated and this
+  /// function throws the same error.
+  ///
+  /// ```dart import:convert
+  /// Future<int> eventualError() async {
+  ///   await Future.delayed(const Duration(seconds: 1));
+  ///   throw StateError("In a bad state!");
+  /// }
+  ///
+  /// try {
+  ///   await Isolate.run(eventualError);
+  /// } on StateError catch (e, s) {
+  ///   print(e.message); // In a bad state!
+  ///   print(LineSplitter.split("$s").first); // Contains "eventualError"
+  /// }
+  /// ```
+  /// Any uncaught asynchronous errors will terminate the computation as well,
+  /// but will be reported as a [RemoteError] because [addErrorListener]
+  /// does not provide the original error object.
+  ///
+  /// The result is sent using [exit], which means it's sent to this
+  /// isolate without copying.
+  ///
+  /// The [computation] function and its result (or error) must be
+  /// sendable between isolates.
+  ///
+  /// The [debugName] is only used to name the new isolate for debugging.
+  @Since("2.17")
+  static Future<R> run<R>(FutureOr<R> computation(), {String? debugName}) {
+    var result = Completer<R>();
+    var resultPort = RawReceivePort();
+    resultPort.handler = (response) {
+      resultPort.close();
+      if (response == null) {
+        // onExit handler message, isolate terminated without sending result.
+        result.completeError(
+            RemoteError("Computation ended without result", ""),
+            StackTrace.empty);
+        return;
+      }
+      var list = response as List<Object?>;
+      if (list.length == 2) {
+        var remoteError = list[0];
+        var remoteStack = list[1];
+        if (remoteStack is StackTrace) {
+          // Typed error.
+          result.completeError(remoteError!, remoteStack);
+        } else {
+          // onError handler message, uncaught async error.
+          // Both values are strings, so calling `toString` is efficient.
+          var error =
+              RemoteError(remoteError.toString(), remoteStack.toString());
+          result.completeError(error, error.stackTrace);
+        }
+      } else {
+        assert(list.length == 1);
+        result.complete(list[0] as R);
+      }
+    };
+    try {
+      Isolate.spawn(_RemoteRunner._remoteExecute,
+              _RemoteRunner<R>(computation, resultPort.sendPort),
+              onError: resultPort.sendPort,
+              onExit: resultPort.sendPort,
+              errorsAreFatal: true,
+              debugName: debugName)
+          .then<void>((_) {}, onError: result.completeError);
+    } on Object {
+      // Sending the computation failed.
+      resultPort.close();
+      rethrow;
+    }
+    return result.future;
+  }
+
   /// An [Isolate] object representing the current isolate.
   ///
   /// The current isolate for code using [current]
@@ -345,7 +445,7 @@
   /// of the isolate identified by [controlPort],
   /// the pause request is ignored by the receiving isolate.
   Capability pause([Capability? resumeCapability]) {
-    resumeCapability ??= new Capability();
+    resumeCapability ??= Capability();
     _pause(resumeCapability);
     return resumeCapability;
   }
@@ -533,12 +633,12 @@
       var listMessage = message as List<Object?>;
       var errorDescription = listMessage[0] as String;
       var stackDescription = listMessage[1] as String;
-      var error = new RemoteError(errorDescription, stackDescription);
+      var error = RemoteError(errorDescription, stackDescription);
       controller.addError(error, error.stackTrace);
     }
 
     controller.onListen = () {
-      RawReceivePort receivePort = new RawReceivePort(handleError);
+      RawReceivePort receivePort = RawReceivePort(handleError);
       port = receivePort;
       this.addErrorListener(receivePort.sendPort);
     };
@@ -765,7 +865,7 @@
   final StackTrace stackTrace;
   RemoteError(String description, String stackDescription)
       : _description = description,
-        stackTrace = new StackTrace.fromString(stackDescription);
+        stackTrace = StackTrace.fromString(stackDescription);
   String toString() => _description;
 }
 
@@ -795,3 +895,62 @@
   /// transferable bytes, even if the calls occur in different isolates.
   ByteBuffer materialize();
 }
+
+/// Parameter object used by [Isolate.run].
+///
+/// The [_remoteExecute] function is run in a new isolate with a
+/// [_RemoteRunner] object as argument.
+class _RemoteRunner<R> {
+  /// User computation to run.
+  final FutureOr<R> Function() computation;
+
+  /// Port to send isolate computation result on.
+  ///
+  /// Only one object is ever sent on this port.
+  /// If the value is `null`, it is sent by the isolate's "on-exit" handler
+  /// when the isolate terminates without otherwise sending value.
+  /// If the value is a list with one element,
+  /// then it is the result value of the computation.
+  /// Otherwise it is a list with two elements representing an error.
+  /// If the error is sent by the isolate's "on-error" uncaught error handler,
+  /// then the list contains two strings. This also terminates the isolate.
+  /// If sent manually by this class, after capturing the error,
+  /// the list contains one non-`null` [Object] and one [StackTrace].
+  final SendPort resultPort;
+
+  _RemoteRunner(this.computation, this.resultPort);
+
+  /// Run in a new isolate to get the result of [computation].
+  ///
+  /// The result is sent back on [resultPort] as a single-element list.
+  /// A two-element list sent on the same port is an error result.
+  /// When sent by this function, it's always an object and a [StackTrace].
+  /// (The same port listens on uncaught errors from the isolate, which
+  /// sends two-element lists containing [String]s instead).
+  static void _remoteExecute(_RemoteRunner<Object?> runner) {
+    runner._run();
+  }
+
+  void _run() async {
+    R result;
+    try {
+      var potentiallyAsyncResult = computation();
+      if (potentiallyAsyncResult is Future<R>) {
+        result = await potentiallyAsyncResult;
+      } else {
+        result = potentiallyAsyncResult as R;
+      }
+    } catch (e, s) {
+      // If sending fails, the error becomes an uncaught error.
+      Isolate.exit(resultPort, _list2(e, s));
+    }
+    Isolate.exit(resultPort, _list1(result));
+  }
+
+  /// Helper function to create a one-element non-growable list.
+  static List<Object?> _list1(Object? value) => List.filled(1, value);
+
+  /// Helper function to create a two-element non-growable list.
+  static List<Object?> _list2(Object? value1, Object? value2) =>
+      List.filled(2, value1)..[1] = value2;
+}
diff --git a/tests/lib/isolate/isolate_run_test.dart b/tests/lib/isolate/isolate_run_test.dart
new file mode 100644
index 0000000..27312b8
--- /dev/null
+++ b/tests/lib/isolate/isolate_run_test.dart
@@ -0,0 +1,115 @@
+// Copyright (c) 2022, 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.
+
+import 'dart:isolate';
+import 'dart:async';
+import 'package:async_helper/async_helper.dart';
+import 'package:expect/expect.dart';
+
+void main() async {
+  asyncStart();
+  // Sending result back.
+  await testValue();
+  await testAsyncValue();
+  // Sending error from computation back.
+  await testError();
+  await testAsyncError();
+  // Sending uncaught async error back.
+  await testUncaughtError();
+  // Not sending anything back before isolate dies.
+  await testIsolateHangs();
+  await testIsolateKilled();
+  await testIsolateExits();
+  asyncEnd();
+}
+
+final StackTrace stack = StackTrace.fromString("Known Stacktrace");
+final ArgumentError error = ArgumentError.value(42, "name");
+
+var variable = 0;
+
+Future<void> testValue() async {
+  var value = await Isolate.run<int>(() {
+    variable = 1; // Changed in other isolate!
+    Expect.equals(1, variable);
+    return 42;
+  });
+  Expect.equals(42, value);
+  Expect.equals(0, variable);
+}
+
+Future<void> testAsyncValue() async {
+  var value = await Isolate.run<int>(() async {
+    variable = 1;
+    return 42;
+  });
+  Expect.equals(42, value);
+  Expect.equals(0, variable);
+}
+
+Future<void> testError() async {
+  var e = await asyncExpectThrows<ArgumentError>(Isolate.run<int>(() {
+    variable = 1;
+    Error.throwWithStackTrace(error, stack);
+  }));
+  Expect.equals(42, e.invalidValue);
+  Expect.equals("name", e.name);
+  Expect.equals(0, variable);
+}
+
+Future<void> testAsyncError() async {
+  var e = await asyncExpectThrows<ArgumentError>(Isolate.run<int>(() async {
+    variable = 1;
+    Error.throwWithStackTrace(error, stack);
+  }));
+  Expect.equals(42, e.invalidValue);
+  Expect.equals("name", e.name);
+  Expect.equals(0, variable);
+}
+
+Future<void> testUncaughtError() async {
+  var e = await asyncExpectThrows<RemoteError>(Isolate.run<int>(() async {
+    variable = 1;
+    unawaited(Future.error(error, stack)); // Uncaught error
+    await Completer().future; // Never completes.
+    return -1;
+  }));
+
+  Expect.type<RemoteError>(e);
+  Expect.equals(error.toString(), e.toString());
+  Expect.equals(0, variable);
+}
+
+Future<void> testIsolateHangs() async {
+  var e = await asyncExpectThrows<RemoteError>(Isolate.run<int>(() async {
+    variable = 1;
+    await Completer<Never>().future; // Never completes.
+    // Isolate should end while hanging here, because its event loop is empty.
+  }));
+  Expect.type<RemoteError>(e);
+  Expect.equals("Computation ended without result", e.toString());
+  Expect.equals(0, variable);
+}
+
+Future<void> testIsolateKilled() async {
+  var e = await asyncExpectThrows<RemoteError>(Isolate.run<int>(() async {
+    variable = 1;
+    Isolate.current.kill(); // Send kill request.
+    await Completer<Never>().future; // Never completes.
+    // Isolate should get killed while hanging here.
+  }));
+  Expect.type<RemoteError>(e);
+  Expect.equals("Computation ended without result", e.toString());
+  Expect.equals(0, variable);
+}
+
+Future<void> testIsolateExits() async {
+  var e = await asyncExpectThrows<RemoteError>(Isolate.run<int>(() async {
+    variable = 1;
+    Isolate.exit(); // Dies here without sending anything back.
+  }));
+  Expect.type<RemoteError>(e);
+  Expect.equals("Computation ended without result", e.toString());
+  Expect.equals(0, variable);
+}
diff --git a/tests/lib_2/isolate/isolate_run_test.dart b/tests/lib_2/isolate/isolate_run_test.dart
new file mode 100644
index 0000000..d39c83d
--- /dev/null
+++ b/tests/lib_2/isolate/isolate_run_test.dart
@@ -0,0 +1,117 @@
+// Copyright (c) 2022, 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:isolate';
+import 'dart:async';
+import 'package:async_helper/async_helper.dart';
+import 'package:expect/expect.dart';
+
+void main() async {
+  asyncStart();
+  // Sending result back.
+  await testValue();
+  await testAsyncValue();
+  // Sending error from computation back.
+  await testError();
+  await testAsyncError();
+  // Sending uncaught async error back.
+  await testUncaughtError();
+  // Not sending anything back before isolate dies.
+  await testIsolateHangs();
+  await testIsolateKilled();
+  await testIsolateExits();
+  asyncEnd();
+}
+
+final StackTrace stack = StackTrace.fromString("Known Stacktrace");
+final ArgumentError error = ArgumentError.value(42, "name");
+
+var variable = 0;
+
+Future<void> testValue() async {
+  var value = await Isolate.run<int>(() {
+    variable = 1; // Changed in other isolate!
+    Expect.equals(1, variable);
+    return 42;
+  });
+  Expect.equals(42, value);
+  Expect.equals(0, variable);
+}
+
+Future<void> testAsyncValue() async {
+  var value = await Isolate.run<int>(() async {
+    variable = 1;
+    return 42;
+  });
+  Expect.equals(42, value);
+  Expect.equals(0, variable);
+}
+
+Future<void> testError() async {
+  var e = await asyncExpectThrows<ArgumentError>(Isolate.run<int>(() {
+    variable = 1;
+    Error.throwWithStackTrace(error, stack);
+  }));
+  Expect.equals(42, e.invalidValue);
+  Expect.equals("name", e.name);
+  Expect.equals(0, variable);
+}
+
+Future<void> testAsyncError() async {
+  var e = await asyncExpectThrows<ArgumentError>(Isolate.run<int>(() async {
+    variable = 1;
+    Error.throwWithStackTrace(error, stack);
+  }));
+  Expect.equals(42, e.invalidValue);
+  Expect.equals("name", e.name);
+  Expect.equals(0, variable);
+}
+
+Future<void> testUncaughtError() async {
+  var e = await asyncExpectThrows<RemoteError>(Isolate.run<int>(() async {
+    variable = 1;
+    unawaited(Future.error(error, stack)); // Uncaught error
+    await Completer().future; // Never completes.
+    return -1;
+  }));
+
+  Expect.type<RemoteError>(e);
+  Expect.equals(error.toString(), e.toString());
+  Expect.equals(0, variable);
+}
+
+Future<void> testIsolateHangs() async {
+  var e = await asyncExpectThrows<RemoteError>(Isolate.run<int>(() async {
+    variable = 1;
+    await Completer<Never>().future; // Never completes.
+    // Isolate should end while hanging here, because its event loop is empty.
+  }));
+  Expect.type<RemoteError>(e);
+  Expect.equals("Computation ended without result", e.toString());
+  Expect.equals(0, variable);
+}
+
+Future<void> testIsolateKilled() async {
+  var e = await asyncExpectThrows<RemoteError>(Isolate.run<int>(() async {
+    variable = 1;
+    Isolate.current.kill(); // Send kill request.
+    await Completer<Never>().future; // Never completes.
+    // Isolate should get killed while hanging here.
+  }));
+  Expect.type<RemoteError>(e);
+  Expect.equals("Computation ended without result", e.toString());
+  Expect.equals(0, variable);
+}
+
+Future<void> testIsolateExits() async {
+  var e = await asyncExpectThrows<RemoteError>(Isolate.run<int>(() async {
+    variable = 1;
+    Isolate.exit(); // Dies here without sending anything back.
+  }));
+  Expect.type<RemoteError>(e);
+  Expect.equals("Computation ended without result", e.toString());
+  Expect.equals(0, variable);
+}
diff --git a/tools/OWNERS b/tools/OWNERS
index e2eae44..bc4a8dd 100644
--- a/tools/OWNERS
+++ b/tools/OWNERS
@@ -1,4 +1,4 @@
-file:/OWNERS_INFRA
+file:OWNERS_INFRA
 
 # Groups administrate themselves.
 per-file OWNERS_ANALYZER=file:OWNERS_ANALYZER
diff --git a/tools/VERSION b/tools/VERSION
index 4e9a74d..c4a61b5 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 17
 PATCH 0
-PRERELEASE 168
+PRERELEASE 169
 PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/bots/test_matrix.json b/tools/bots/test_matrix.json
index 8280ab9..adbceae 100644
--- a/tools/bots/test_matrix.json
+++ b/tools/bots/test_matrix.json
@@ -2948,7 +2948,7 @@
             "language",
             "corelib"
           ],
-          "shards": 12,
+          "shards": 30,
           "fileset": "dart2wasm_hostasserts"
         }
       ]