[cfe] Remove language version from expectation tests

This removes unneeded language version from expectation tests in the
implicit_getter_calls/, rasta/, regress/, runtime_checks/,
runtime_checks_new/, set_literals/, and unified_collections/ folders.

Change-Id: I39a04fe7797d20ffae0814809f550431b1184810
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/245371
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
diff --git a/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart b/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart
index f9ddb1b..e7aa041 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart
+++ b/pkg/front_end/testcases/implicit_getter_calls/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/implicit_getter_calls/getter_call.dart.textual_outline.expect b/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.textual_outline.expect
index 52eeaa7..d9d43c9 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/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/implicit_getter_calls/getter_call.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.textual_outline_modelled.expect
index 7b9b8af..fafec6e 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/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/implicit_getter_calls/getter_call.dart.weak.expect b/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.expect
index 90a2cad..b9c0727 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/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 {
+static method callField(self::Class c) → dynamic {
   self::expect(0, c.{self::Class::field1a}());
-  self::expect(0, c.{self::Class::field1b}(){() →* 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}(#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}(#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}(#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}(#t9, #t10){(core::int*, [core::int*]) →* core::int*});
-  self::expect(0, c.{self::Class::field5}(){([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}(#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}(#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}(#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}(#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*});
-  self::expect(12, let final self::Class* #t21 = c in let final core::int* #t22 = self::read(12) in #t21.{self::Class::field7}(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}(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: #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}(b: #t29, a: #t30){({a: core::int*, b: core::int*}) →* core::int*});
+  self::expect(0, c.{self::Class::field1b}(){() → 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}(#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}(#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}(#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}(#t9, #t10){(core::int, [core::int]) → core::int});
+  self::expect(0, c.{self::Class::field5}(){([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}(#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}(#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}(#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}(#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});
+  self::expect(12, let final self::Class #t21 = c in let final core::int #t22 = self::read(12) in #t21.{self::Class::field7}(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}(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: #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}(b: #t29, a: #t30){({a: core::int, b: core::int}) → core::int});
 }
-static method callGetter(self::Class* c) → dynamic {
+static method callGetter(self::Class c) → dynamic {
   self::expect(0, c.{self::Class::getter1a}());
-  self::expect(0, c.{self::Class::getter1b}(){() →* 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}(#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}(#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}(#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}(#t39, #t40){(core::int*, [core::int*]) →* core::int*});
-  self::expect(0, c.{self::Class::getter5}(){([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}(#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}(#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}(#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}(#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*});
-  self::expect(12, let final self::Class* #t51 = c in let final core::int* #t52 = self::read(12) in #t51.{self::Class::getter7}(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}(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: #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}(b: #t59, a: #t60){({a: core::int*, b: core::int*}) →* core::int*});
+  self::expect(0, c.{self::Class::getter1b}(){() → 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}(#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}(#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}(#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}(#t39, #t40){(core::int, [core::int]) → core::int});
+  self::expect(0, c.{self::Class::getter5}(){([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}(#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}(#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}(#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}(#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});
+  self::expect(12, let final self::Class #t51 = c in let final core::int #t52 = self::read(12) in #t51.{self::Class::getter7}(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}(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: #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}(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/implicit_getter_calls/getter_call.dart.weak.modular.expect b/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.modular.expect
index 90a2cad..b9c0727 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/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 {
+static method callField(self::Class c) → dynamic {
   self::expect(0, c.{self::Class::field1a}());
-  self::expect(0, c.{self::Class::field1b}(){() →* 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}(#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}(#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}(#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}(#t9, #t10){(core::int*, [core::int*]) →* core::int*});
-  self::expect(0, c.{self::Class::field5}(){([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}(#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}(#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}(#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}(#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*});
-  self::expect(12, let final self::Class* #t21 = c in let final core::int* #t22 = self::read(12) in #t21.{self::Class::field7}(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}(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: #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}(b: #t29, a: #t30){({a: core::int*, b: core::int*}) →* core::int*});
+  self::expect(0, c.{self::Class::field1b}(){() → 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}(#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}(#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}(#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}(#t9, #t10){(core::int, [core::int]) → core::int});
+  self::expect(0, c.{self::Class::field5}(){([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}(#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}(#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}(#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}(#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});
+  self::expect(12, let final self::Class #t21 = c in let final core::int #t22 = self::read(12) in #t21.{self::Class::field7}(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}(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: #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}(b: #t29, a: #t30){({a: core::int, b: core::int}) → core::int});
 }
-static method callGetter(self::Class* c) → dynamic {
+static method callGetter(self::Class c) → dynamic {
   self::expect(0, c.{self::Class::getter1a}());
-  self::expect(0, c.{self::Class::getter1b}(){() →* 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}(#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}(#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}(#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}(#t39, #t40){(core::int*, [core::int*]) →* core::int*});
-  self::expect(0, c.{self::Class::getter5}(){([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}(#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}(#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}(#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}(#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*});
-  self::expect(12, let final self::Class* #t51 = c in let final core::int* #t52 = self::read(12) in #t51.{self::Class::getter7}(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}(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: #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}(b: #t59, a: #t60){({a: core::int*, b: core::int*}) →* core::int*});
+  self::expect(0, c.{self::Class::getter1b}(){() → 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}(#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}(#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}(#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}(#t39, #t40){(core::int, [core::int]) → core::int});
+  self::expect(0, c.{self::Class::getter5}(){([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}(#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}(#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}(#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}(#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});
+  self::expect(12, let final self::Class #t51 = c in let final core::int #t52 = self::read(12) in #t51.{self::Class::getter7}(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}(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: #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}(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/implicit_getter_calls/getter_call.dart.weak.outline.expect b/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.outline.expect
index db0c796..d6bfb51 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/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, [has-declared-initializer core::int* b]) → core::int*
+static method method4(core::int a, [has-declared-initializer core::int b]) → core::int
   ;
-static method method5([has-declared-initializer core::int* a, has-declared-initializer core::int* b]) → core::int*
+static method method5([has-declared-initializer core::int a, has-declared-initializer core::int b]) → core::int
   ;
-static method method6(core::int* a, {has-declared-initializer core::int* b}) → core::int*
+static method method6(core::int a, {has-declared-initializer core::int b}) → core::int
   ;
-static method method7({has-declared-initializer core::int* a, has-declared-initializer core::int* b}) → core::int*
+static method method7({has-declared-initializer core::int a, has-declared-initializer 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/implicit_getter_calls/getter_call.dart.weak.transformed.expect b/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.transformed.expect
index 19a91a7..9e2bb18 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/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 {
+static method callField(self::Class c) → dynamic {
   self::expect(0, c.{self::Class::field1a}());
-  self::expect(0, c.{self::Class::field1b}(){() →* 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}(#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}(#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}(#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}(#t9, #t10){(core::int*, [core::int*]) →* core::int*});
-  self::expect(0, c.{self::Class::field5}(){([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}(#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}(#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}(#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}(#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*});
-  self::expect(12, let final self::Class* #t21 = c in let final core::int* #t22 = self::read(12) in #t21.{self::Class::field7}(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}(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: #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}(b: #t29, a: #t30){({a: core::int*, b: core::int*}) →* core::int*});
+  self::expect(0, c.{self::Class::field1b}(){() → 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}(#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}(#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}(#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}(#t9, #t10){(core::int, [core::int]) → core::int});
+  self::expect(0, c.{self::Class::field5}(){([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}(#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}(#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}(#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}(#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});
+  self::expect(12, let final self::Class #t21 = c in let final core::int #t22 = self::read(12) in #t21.{self::Class::field7}(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}(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: #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}(b: #t29, a: #t30){({a: core::int, b: core::int}) → core::int});
 }
-static method callGetter(self::Class* c) → dynamic {
+static method callGetter(self::Class c) → dynamic {
   self::expect(0, c.{self::Class::getter1a}());
-  self::expect(0, c.{self::Class::getter1b}(){() →* 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}(#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}(#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}(#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}(#t39, #t40){(core::int*, [core::int*]) →* core::int*});
-  self::expect(0, c.{self::Class::getter5}(){([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}(#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}(#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}(#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}(#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*});
-  self::expect(12, let final self::Class* #t51 = c in let final core::int* #t52 = self::read(12) in #t51.{self::Class::getter7}(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}(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: #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}(b: #t59, a: #t60){({a: core::int*, b: core::int*}) →* core::int*});
+  self::expect(0, c.{self::Class::getter1b}(){() → 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}(#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}(#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}(#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}(#t39, #t40){(core::int, [core::int]) → core::int});
+  self::expect(0, c.{self::Class::getter5}(){([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}(#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}(#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}(#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}(#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});
+  self::expect(12, let final self::Class #t51 = c in let final core::int #t52 = self::read(12) in #t51.{self::Class::getter7}(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}(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: #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}(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/implicit_getter_calls/this_field_call.dart b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart
index b7b47d6..8b26b24 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart
+++ b/pkg/front_end/testcases/implicit_getter_calls/this_field_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
+
 class A<T> {
   void Function(T) f;
   A(this.f);
diff --git a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.textual_outline.expect b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.textual_outline.expect
index 116a8da..eb3e361 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A<T> {
   void Function(T) f;
   A(this.f);
diff --git a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.textual_outline_modelled.expect
index 4b5395b..b5116cc 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A<T> {
   A(this.f);
   foo(T x) => this.f(x);
diff --git a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.expect b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.expect
index c46c847..e14751b 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<T extends core::Object* = dynamic> extends core::Object {
-  field (self::A::T*) →* void f;
-  constructor •((self::A::T*) →* void f) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  field (self::A::T%) → void f;
+  constructor •((self::A::T%) → void f) → self::A<self::A::T%>
     : self::A::f = f, super core::Object::•()
     ;
-  method foo(covariant-by-class self::A::T* x) → dynamic
-    return let final self::A::T* #t1 = x in this.{self::A::f}(#t1){(self::A::T*) →* 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 foo(covariant-by-class self::A::T% x) → dynamic
+    return let final self::A::T% #t1 = x in this.{self::A::f}(#t1){(self::A::T%) → void};
 }
 static method main() → dynamic {
-  new self::A::•<core::int*>((core::int* x) → Null {}).{self::A::foo}(3){(core::int*) →* dynamic};
+  new self::A::•<core::int>((core::int x) → void {}).{self::A::foo}(3){(core::int) → dynamic};
 }
diff --git a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.modular.expect b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.modular.expect
index c46c847..e14751b 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<T extends core::Object* = dynamic> extends core::Object {
-  field (self::A::T*) →* void f;
-  constructor •((self::A::T*) →* void f) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  field (self::A::T%) → void f;
+  constructor •((self::A::T%) → void f) → self::A<self::A::T%>
     : self::A::f = f, super core::Object::•()
     ;
-  method foo(covariant-by-class self::A::T* x) → dynamic
-    return let final self::A::T* #t1 = x in this.{self::A::f}(#t1){(self::A::T*) →* 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 foo(covariant-by-class self::A::T% x) → dynamic
+    return let final self::A::T% #t1 = x in this.{self::A::f}(#t1){(self::A::T%) → void};
 }
 static method main() → dynamic {
-  new self::A::•<core::int*>((core::int* x) → Null {}).{self::A::foo}(3){(core::int*) →* dynamic};
+  new self::A::•<core::int>((core::int x) → void {}).{self::A::foo}(3){(core::int) → dynamic};
 }
diff --git a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.outline.expect b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.outline.expect
index 5ef3cd8..71acb0c 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<T extends core::Object* = dynamic> extends core::Object {
-  field (self::A::T*) →* void f;
-  constructor •((self::A::T*) →* void f) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  field (self::A::T%) → void f;
+  constructor •((self::A::T%) → void f) → self::A<self::A::T%>
     ;
-  method foo(covariant-by-class self::A::T* x) → dynamic
+  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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.transformed.expect b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.transformed.expect
index c46c847..e14751b 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<T extends core::Object* = dynamic> extends core::Object {
-  field (self::A::T*) →* void f;
-  constructor •((self::A::T*) →* void f) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  field (self::A::T%) → void f;
+  constructor •((self::A::T%) → void f) → self::A<self::A::T%>
     : self::A::f = f, super core::Object::•()
     ;
-  method foo(covariant-by-class self::A::T* x) → dynamic
-    return let final self::A::T* #t1 = x in this.{self::A::f}(#t1){(self::A::T*) →* 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 foo(covariant-by-class self::A::T% x) → dynamic
+    return let final self::A::T% #t1 = x in this.{self::A::f}(#t1){(self::A::T%) → void};
 }
 static method main() → dynamic {
-  new self::A::•<core::int*>((core::int* x) → Null {}).{self::A::foo}(3){(core::int*) →* dynamic};
+  new self::A::•<core::int>((core::int x) → void {}).{self::A::foo}(3){(core::int) → dynamic};
 }
diff --git a/pkg/front_end/testcases/modular.status b/pkg/front_end/testcases/modular.status
index e478644..ab59caa 100644
--- a/pkg/front_end/testcases/modular.status
+++ b/pkg/front_end/testcases/modular.status
@@ -92,4 +92,5 @@
 rasta/super_operator: TypeCheckError
 rasta/unresolved_recovery: TypeCheckError
 regress/issue_31180: TypeCheckError
+regress/issue_31180_2: TypeCheckError
 runtime_checks_new/mixin_forwarding_stub_getter: TypeCheckError
diff --git a/pkg/front_end/testcases/rasta/abstract_constructor.dart b/pkg/front_end/testcases/rasta/abstract_constructor.dart
index 5fd7ad1..8caa4ed 100644
--- a/pkg/front_end/testcases/rasta/abstract_constructor.dart
+++ b/pkg/front_end/testcases/rasta/abstract_constructor.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.md file.
-// @dart=2.9
+
 abstract class C {}
 
 main() {
diff --git a/pkg/front_end/testcases/rasta/abstract_constructor.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/abstract_constructor.dart.textual_outline.expect
index d863236..101867d 100644
--- a/pkg/front_end/testcases/rasta/abstract_constructor.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/abstract_constructor.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class C {}
 
 main() {}
diff --git a/pkg/front_end/testcases/rasta/abstract_constructor.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/abstract_constructor.dart.textual_outline_modelled.expect
index d863236..101867d 100644
--- a/pkg/front_end/testcases/rasta/abstract_constructor.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/abstract_constructor.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class C {}
 
 main() {}
diff --git a/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.expect b/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.expect
index bbfdd17..e4e38f1 100644
--- a/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,19 +10,9 @@
 import "dart:core" as core;
 
 abstract class C extends core::Object {
-  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
 }
 static method main() → dynamic {
   throw new core::AbstractClassInstantiationError::•("C");
diff --git a/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.modular.expect
index bbfdd17..e4e38f1 100644
--- a/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,19 +10,9 @@
 import "dart:core" as core;
 
 abstract class C extends core::Object {
-  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
 }
 static method main() → dynamic {
   throw new core::AbstractClassInstantiationError::•("C");
diff --git a/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.outline.expect
index dc0f127..869be6f 100644
--- a/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.outline.expect
@@ -1,20 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class C extends core::Object {
-  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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.transformed.expect
index bbfdd17..e4e38f1 100644
--- a/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/abstract_constructor.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,19 +10,9 @@
 import "dart:core" as core;
 
 abstract class C extends core::Object {
-  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
 }
 static method main() → dynamic {
   throw new core::AbstractClassInstantiationError::•("C");
diff --git a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart
index 5b7e744..937b755 100644
--- a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart
+++ b/pkg/front_end/testcases/rasta/bad_constructor_redirection.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.md file.
-// @dart=2.9
+
 class C {
   const C() : this.x(1);
   const C.x();
diff --git a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.textual_outline.expect
index db4483c..8c60ced 100644
--- a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   const C() : this.x(1);
   const C.x();
diff --git a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.textual_outline_modelled.expect
index db4483c..8c60ced 100644
--- a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   const C() : this.x(1);
   const C.x();
diff --git a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.expect b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.expect
index c1d156b..b4108bf 100644
--- a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,25 +11,15 @@
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::C*
+  const constructor •() → self::C
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_constructor_redirection.dart:6:21: Error: Too many positional arguments: 0 allowed, but 1 found.
 Try removing the extra positional arguments.
   const C() : this.x(1);
                     ^"
     ;
-  const constructor x() → self::C*
+  const constructor 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 method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.modular.expect
index c1d156b..b4108bf 100644
--- a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,25 +11,15 @@
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::C*
+  const constructor •() → self::C
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_constructor_redirection.dart:6:21: Error: Too many positional arguments: 0 allowed, but 1 found.
 Try removing the extra positional arguments.
   const C() : this.x(1);
                     ^"
     ;
-  const constructor x() → self::C*
+  const constructor 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 method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.outline.expect
index 12b1cd9..0301b7d 100644
--- a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,25 +11,15 @@
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::C*
+  const constructor •() → self::C
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_constructor_redirection.dart:6:21: Error: Too many positional arguments: 0 allowed, but 1 found.
 Try removing the extra positional arguments.
   const C() : this.x(1);
                     ^"
     ;
-  const constructor x() → self::C*
+  const constructor 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 method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.transformed.expect
index c1d156b..b4108bf 100644
--- a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,25 +11,15 @@
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::C*
+  const constructor •() → self::C
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_constructor_redirection.dart:6:21: Error: Too many positional arguments: 0 allowed, but 1 found.
 Try removing the extra positional arguments.
   const C() : this.x(1);
                     ^"
     ;
-  const constructor x() → self::C*
+  const constructor 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 method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/rasta/bad_continue.dart b/pkg/front_end/testcases/rasta/bad_continue.dart
index d103e3e..5399f78 100644
--- a/pkg/front_end/testcases/rasta/bad_continue.dart
+++ b/pkg/front_end/testcases/rasta/bad_continue.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.md file.
-// @dart=2.9
+
 main() {
   continue here;
   label: continue label;
diff --git a/pkg/front_end/testcases/rasta/bad_continue.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/bad_continue.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/bad_continue.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_continue.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/bad_continue.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/bad_continue.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/bad_continue.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/bad_continue.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/bad_continue.dart.weak.expect b/pkg/front_end/testcases/rasta/bad_continue.dart.weak.expect
index 755a3f3..9f22389 100644
--- a/pkg/front_end/testcases/rasta/bad_continue.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/bad_continue.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/bad_continue.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/bad_continue.dart.weak.modular.expect
index 755a3f3..9f22389 100644
--- a/pkg/front_end/testcases/rasta/bad_continue.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/bad_continue.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/bad_continue.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/bad_continue.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/rasta/bad_continue.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_continue.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/rasta/bad_continue.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/bad_continue.dart.weak.transformed.expect
index 755a3f3..9f22389 100644
--- a/pkg/front_end/testcases/rasta/bad_continue.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/bad_continue.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/bad_default_constructor.dart b/pkg/front_end/testcases/rasta/bad_default_constructor.dart
index 0678364..833743e 100644
--- a/pkg/front_end/testcases/rasta/bad_default_constructor.dart
+++ b/pkg/front_end/testcases/rasta/bad_default_constructor.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.md file.
-// @dart=2.9
+
 class A {
   A(x);
 }
diff --git a/pkg/front_end/testcases/rasta/bad_default_constructor.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.textual_outline.expect
index d56bf58..5f62a0e 100644
--- a/pkg/front_end/testcases/rasta/bad_default_constructor.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A(x);
 }
diff --git a/pkg/front_end/testcases/rasta/bad_default_constructor.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.textual_outline_modelled.expect
index d56bf58..5f62a0e 100644
--- a/pkg/front_end/testcases/rasta/bad_default_constructor.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A(x);
 }
diff --git a/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.expect b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.expect
index 864e20e..a343a16 100644
--- a/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,22 +15,12 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → 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 self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : invalid-initializer
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.modular.expect
index 864e20e..a343a16 100644
--- a/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,22 +15,12 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → 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 self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : invalid-initializer
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.outline.expect
index 1abde2f..28fef78 100644
--- a/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → 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 self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.transformed.expect
index 864e20e..a343a16 100644
--- a/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,22 +15,12 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → 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 self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : invalid-initializer
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart
index 29541d3..2936518 100644
--- a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart
+++ b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.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.md file.
-// @dart=2.9
+
 class A {
   A(x);
 }
diff --git a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.textual_outline.expect
index b68c9dc..a9880f1 100644
--- a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A(x);
 }
diff --git a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.textual_outline_modelled.expect
index b68c9dc..a9880f1 100644
--- a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A(x);
 }
diff --git a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.expect b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.expect
index 930818a..c8ba5da 100644
--- a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,22 +14,12 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → 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 self::A /*hasConstConstructor*/  {
-  const constructor •() → self::B*
+  const constructor •() → self::B
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart:10:20: Error: Too few positional arguments: 1 required, 0 given.
   const B() : super();
                    ^"
diff --git a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.modular.expect
index 930818a..c8ba5da 100644
--- a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,22 +14,12 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → 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 self::A /*hasConstConstructor*/  {
-  const constructor •() → self::B*
+  const constructor •() → self::B
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart:10:20: Error: Too few positional arguments: 1 required, 0 given.
   const B() : super();
                    ^"
diff --git a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.outline.expect
index 2bbebbe..d93d006 100644
--- a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,21 +14,11 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → 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 self::A /*hasConstConstructor*/  {
-  const constructor •() → self::B*
+  const constructor •() → self::B
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart:10:20: Error: Too few positional arguments: 1 required, 0 given.
   const B() : super();
                    ^"
diff --git a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.transformed.expect
index 930818a..c8ba5da 100644
--- a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,22 +14,12 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → 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 self::A /*hasConstConstructor*/  {
-  const constructor •() → self::B*
+  const constructor •() → self::B
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart:10:20: Error: Too few positional arguments: 1 required, 0 given.
   const B() : super();
                    ^"
diff --git a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart
index 3f08dcee..e5e539c 100644
--- a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart
+++ b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.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.md file.
-// @dart=2.9
+
 class A {
   A(this.x);
 }
diff --git a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.textual_outline.expect
index 102a937..9f4c8b4 100644
--- a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A(this.x);
 }
diff --git a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.textual_outline_modelled.expect
index 102a937..9f4c8b4 100644
--- a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A(this.x);
 }
diff --git a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.expect b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.expect
index add2a41..d9770f0 100644
--- a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,24 +14,14 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → self::A
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart:6:10: Error: 'x' isn't an instance field of this class.
   A(this.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
 }
 class B extends self::A /*hasConstConstructor*/  {
-  const constructor •() → self::B*
+  const constructor •() → self::B
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart:10:9: Error: The superclass, 'A', has no unnamed constructor that takes no arguments.
   const B();
         ^"
diff --git a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.modular.expect
index add2a41..d9770f0 100644
--- a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,24 +14,14 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → self::A
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart:6:10: Error: 'x' isn't an instance field of this class.
   A(this.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
 }
 class B extends self::A /*hasConstConstructor*/  {
-  const constructor •() → self::B*
+  const constructor •() → self::B
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart:10:9: Error: The superclass, 'A', has no unnamed constructor that takes no arguments.
   const B();
         ^"
diff --git a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.outline.expect
index 7720f7e..90b7ead 100644
--- a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,21 +10,11 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → 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 self::A /*hasConstConstructor*/  {
-  const constructor •() → self::B*
+  const constructor •() → self::B
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart:10:9: Error: The superclass, 'A', has no unnamed constructor that takes no arguments.
   const B();
         ^"
diff --git a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.transformed.expect
index add2a41..d9770f0 100644
--- a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,24 +14,14 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → self::A
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart:6:10: Error: 'x' isn't an instance field of this class.
   A(this.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
 }
 class B extends self::A /*hasConstConstructor*/  {
-  const constructor •() → self::B*
+  const constructor •() → self::B
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart:10:9: Error: The superclass, 'A', has no unnamed constructor that takes no arguments.
   const B();
         ^"
diff --git a/pkg/front_end/testcases/rasta/bad_interpolation.dart b/pkg/front_end/testcases/rasta/bad_interpolation.dart
index 95f0b8d..98fd62e 100644
--- a/pkg/front_end/testcases/rasta/bad_interpolation.dart
+++ b/pkg/front_end/testcases/rasta/bad_interpolation.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.md file.
-// @dart=2.9
+
 main() {
   print(" $x.);
 }
diff --git a/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.expect b/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.expect
index e09a8ab..3f6b2d8 100644
--- a/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.modular.expect
index e09a8ab..3f6b2d8 100644
--- a/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.outline.expect
index 2622e7c..2f1ab42 100644
--- a/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.transformed.expect
index e09a8ab..3f6b2d8 100644
--- a/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/bad_interpolation.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/bad_redirection.dart b/pkg/front_end/testcases/rasta/bad_redirection.dart
index c725b0a..24298ef 100644
--- a/pkg/front_end/testcases/rasta/bad_redirection.dart
+++ b/pkg/front_end/testcases/rasta/bad_redirection.dart
@@ -1,13 +1,13 @@
 // 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.md file.
-// @dart=2.9
+
 class Foo {
   Foo() = Bar;
 }
 
 class Bar extends Foo {
-  factory Bar() => null;
+  factory Bar() => throw '';
 }
 
 main() {
diff --git a/pkg/front_end/testcases/rasta/bad_redirection.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/bad_redirection.dart.textual_outline.expect
index 16f07fc..797357e 100644
--- a/pkg/front_end/testcases/rasta/bad_redirection.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_redirection.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
 class Foo {
   Foo() = Bar;
 }
 class Bar extends Foo {
-  factory Bar() => null;
+  factory Bar() => throw '';
 }
 main() {}
diff --git a/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.expect b/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.expect
index e0af5b5..4aa01a5 100644
--- a/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -21,26 +21,16 @@
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  constructor •() → self::Foo*
+  constructor •() → self::Foo
     : super core::Object::•()
     invalid-expression "pkg/front_end/testcases/rasta/bad_redirection.dart:6:11: Error: Constructors can't have a return type.
 Try removing the return type.
   Foo() = 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
 }
 class Bar extends self::Foo {
-  static factory •() → self::Bar*
-    return null;
+  static factory •() → self::Bar
+    return throw "";
 }
 static method main() → dynamic {
   new self::Foo::•();
diff --git a/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.modular.expect
index e0af5b5..4aa01a5 100644
--- a/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -21,26 +21,16 @@
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  constructor •() → self::Foo*
+  constructor •() → self::Foo
     : super core::Object::•()
     invalid-expression "pkg/front_end/testcases/rasta/bad_redirection.dart:6:11: Error: Constructors can't have a return type.
 Try removing the return type.
   Foo() = 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
 }
 class Bar extends self::Foo {
-  static factory •() → self::Bar*
-    return null;
+  static factory •() → self::Bar
+    return throw "";
 }
 static method main() → dynamic {
   new self::Foo::•();
diff --git a/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.outline.expect
index 317008d..4b320ce 100644
--- a/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,21 +11,11 @@
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  constructor •() → self::Foo*
+  constructor •() → self::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
 }
 class Bar extends self::Foo {
-  static factory •() → self::Bar*
+  static factory •() → self::Bar
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.transformed.expect
index e0af5b5..4aa01a5 100644
--- a/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/bad_redirection.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -21,26 +21,16 @@
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  constructor •() → self::Foo*
+  constructor •() → self::Foo
     : super core::Object::•()
     invalid-expression "pkg/front_end/testcases/rasta/bad_redirection.dart:6:11: Error: Constructors can't have a return type.
 Try removing the return type.
   Foo() = 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
 }
 class Bar extends self::Foo {
-  static factory •() → self::Bar*
-    return null;
+  static factory •() → self::Bar
+    return throw "";
 }
 static method main() → dynamic {
   new self::Foo::•();
diff --git a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart
index fa1fcfb..1a26aea 100644
--- a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart
+++ b/pkg/front_end/testcases/rasta/bad_setter_initializer.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.md file.
-// @dart=2.9
+
 class C {
   C() : field = null;
   set field(value) {}
diff --git a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.textual_outline.expect
index 4f7939a..02d3a33 100644
--- a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   C() : field = null;
   set field(value) {}
diff --git a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.textual_outline_modelled.expect
index 4f7939a..02d3a33 100644
--- a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   C() : field = null;
   set field(value) {}
diff --git a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.expect b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.expect
index 09e385e1..a71c43b 100644
--- a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,22 +10,12 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor •() → self::C*
+  constructor •() → self::C
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_setter_initializer.dart:6:9: Error: 'field' isn't an instance field of this class.
   C() : field = null;
         ^^^^^"
     ;
   set field(dynamic 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 method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.modular.expect
index 09e385e1..a71c43b 100644
--- a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,22 +10,12 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor •() → self::C*
+  constructor •() → self::C
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_setter_initializer.dart:6:9: Error: 'field' isn't an instance field of this class.
   C() : field = null;
         ^^^^^"
     ;
   set field(dynamic 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 method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.outline.expect
index 5a5ab2a..e7ae10a 100644
--- a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_setter_initializer.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 {
-  constructor •() → self::C*
+  constructor •() → self::C
     ;
   set field(dynamic 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 method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.transformed.expect
index 09e385e1..a71c43b 100644
--- a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,22 +10,12 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor •() → self::C*
+  constructor •() → self::C
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/bad_setter_initializer.dart:6:9: Error: 'field' isn't an instance field of this class.
   C() : field = null;
         ^^^^^"
     ;
   set field(dynamic 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 method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/rasta/bad_unicode.dart b/pkg/front_end/testcases/rasta/bad_unicode.dart
index 4eef588..51c6502 100644
--- a/pkg/front_end/testcases/rasta/bad_unicode.dart
+++ b/pkg/front_end/testcases/rasta/bad_unicode.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.md file.
-// @dart=2.9
+
 main() {
   print("\u00"); // Bad Unicode escape, must have 4 hex digits.
 }
diff --git a/pkg/front_end/testcases/rasta/bad_unicode.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/bad_unicode.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/bad_unicode.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_unicode.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/bad_unicode.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/bad_unicode.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/bad_unicode.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/bad_unicode.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/bad_unicode.dart.weak.expect b/pkg/front_end/testcases/rasta/bad_unicode.dart.weak.expect
index 5c448ec..3274459 100644
--- a/pkg/front_end/testcases/rasta/bad_unicode.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/bad_unicode.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/bad_unicode.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/bad_unicode.dart.weak.modular.expect
index 5c448ec..3274459 100644
--- a/pkg/front_end/testcases/rasta/bad_unicode.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/bad_unicode.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/bad_unicode.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/bad_unicode.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/rasta/bad_unicode.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_unicode.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/rasta/bad_unicode.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/bad_unicode.dart.weak.transformed.expect
index 5c448ec..3274459 100644
--- a/pkg/front_end/testcases/rasta/bad_unicode.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/bad_unicode.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/breaking_bad.dart b/pkg/front_end/testcases/rasta/breaking_bad.dart
index 7310e3f..b82c7ed 100644
--- a/pkg/front_end/testcases/rasta/breaking_bad.dart
+++ b/pkg/front_end/testcases/rasta/breaking_bad.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.md file.
-// @dart=2.9
+
 main() {
   break;
   walt: break walt;
diff --git a/pkg/front_end/testcases/rasta/breaking_bad.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/breaking_bad.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/breaking_bad.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/breaking_bad.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/breaking_bad.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/breaking_bad.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/breaking_bad.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/breaking_bad.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/breaking_bad.dart.weak.expect b/pkg/front_end/testcases/rasta/breaking_bad.dart.weak.expect
index b2fb346..0517025 100644
--- a/pkg/front_end/testcases/rasta/breaking_bad.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/breaking_bad.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/breaking_bad.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/breaking_bad.dart.weak.modular.expect
index b2fb346..0517025 100644
--- a/pkg/front_end/testcases/rasta/breaking_bad.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/breaking_bad.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/breaking_bad.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/breaking_bad.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/rasta/breaking_bad.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/breaking_bad.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/rasta/breaking_bad.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/breaking_bad.dart.weak.transformed.expect
index b2fb346..0517025 100644
--- a/pkg/front_end/testcases/rasta/breaking_bad.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/breaking_bad.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/cascades.dart b/pkg/front_end/testcases/rasta/cascades.dart
index 1b03e05..add829e 100644
--- a/pkg/front_end/testcases/rasta/cascades.dart
+++ b/pkg/front_end/testcases/rasta/cascades.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.md file.
-// @dart=2.9
+
 class A {
   add(x) => x;
 }
diff --git a/pkg/front_end/testcases/rasta/cascades.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/cascades.dart.textual_outline.expect
index 4d0ee09..014f06c 100644
--- a/pkg/front_end/testcases/rasta/cascades.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/cascades.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   add(x) => x;
 }
diff --git a/pkg/front_end/testcases/rasta/cascades.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/cascades.dart.textual_outline_modelled.expect
index 4d0ee09..014f06c 100644
--- a/pkg/front_end/testcases/rasta/cascades.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/cascades.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   add(x) => x;
 }
diff --git a/pkg/front_end/testcases/rasta/cascades.dart.weak.expect b/pkg/front_end/testcases/rasta/cascades.dart.weak.expect
index 73ffa41..dcdfded 100644
--- a/pkg/front_end/testcases/rasta/cascades.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/cascades.dart.weak.expect
@@ -1,29 +1,19 @@
-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::•()
     ;
   method add(dynamic x) → dynamic
     return 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 main() → dynamic {
-  self::A* a = new self::A::•();
+  self::A a = new self::A::•();
   function f(dynamic x) → dynamic
     return x;
-  let final self::A* #t1 = a in block {
-    #t1.{self::A::add}(f){(dynamic) →* dynamic}{dynamic}.call("WHAT");
+  let final self::A #t1 = a in block {
+    #t1.{self::A::add}(f){(dynamic) → dynamic}{dynamic}.call("WHAT");
   } =>#t1;
 }
diff --git a/pkg/front_end/testcases/rasta/cascades.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/cascades.dart.weak.modular.expect
index 73ffa41..dcdfded 100644
--- a/pkg/front_end/testcases/rasta/cascades.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/cascades.dart.weak.modular.expect
@@ -1,29 +1,19 @@
-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::•()
     ;
   method add(dynamic x) → dynamic
     return 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 main() → dynamic {
-  self::A* a = new self::A::•();
+  self::A a = new self::A::•();
   function f(dynamic x) → dynamic
     return x;
-  let final self::A* #t1 = a in block {
-    #t1.{self::A::add}(f){(dynamic) →* dynamic}{dynamic}.call("WHAT");
+  let final self::A #t1 = a in block {
+    #t1.{self::A::add}(f){(dynamic) → dynamic}{dynamic}.call("WHAT");
   } =>#t1;
 }
diff --git a/pkg/front_end/testcases/rasta/cascades.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/cascades.dart.weak.outline.expect
index 3968ffd..7cf88ec 100644
--- a/pkg/front_end/testcases/rasta/cascades.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/cascades.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-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
     ;
   method add(dynamic 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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/cascades.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/cascades.dart.weak.transformed.expect
index 73ffa41..dcdfded 100644
--- a/pkg/front_end/testcases/rasta/cascades.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/cascades.dart.weak.transformed.expect
@@ -1,29 +1,19 @@
-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::•()
     ;
   method add(dynamic x) → dynamic
     return 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 main() → dynamic {
-  self::A* a = new self::A::•();
+  self::A a = new self::A::•();
   function f(dynamic x) → dynamic
     return x;
-  let final self::A* #t1 = a in block {
-    #t1.{self::A::add}(f){(dynamic) →* dynamic}{dynamic}.call("WHAT");
+  let final self::A #t1 = a in block {
+    #t1.{self::A::add}(f){(dynamic) → dynamic}{dynamic}.call("WHAT");
   } =>#t1;
 }
diff --git a/pkg/front_end/testcases/rasta/class_hierarchy.dart b/pkg/front_end/testcases/rasta/class_hierarchy.dart
index 974a13e..8d181ce 100644
--- a/pkg/front_end/testcases/rasta/class_hierarchy.dart
+++ b/pkg/front_end/testcases/rasta/class_hierarchy.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
+
 class A extends Missing {}
 
 class B implements Missing {}
diff --git a/pkg/front_end/testcases/rasta/class_hierarchy.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/class_hierarchy.dart.textual_outline.expect
index d5772ff..4730157 100644
--- a/pkg/front_end/testcases/rasta/class_hierarchy.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/class_hierarchy.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A extends Missing {}
 
 class B implements Missing {}
diff --git a/pkg/front_end/testcases/rasta/class_hierarchy.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/class_hierarchy.dart.textual_outline_modelled.expect
index d5772ff..4730157 100644
--- a/pkg/front_end/testcases/rasta/class_hierarchy.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/class_hierarchy.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A extends Missing {}
 
 class B implements Missing {}
diff --git a/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.expect b/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.expect
index b641197..34806ad 100644
--- a/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -30,66 +30,26 @@
 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
 }
 class C extends core::Object /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::C*
+  const 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
 }
 class D extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  static factory •() → self::D*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  static factory •() → self::D
     return invalid-expression "pkg/front_end/testcases/rasta/class_hierarchy.dart:12:17: Error: Redirection constructor target not found: 'Missing'
   factory D() = Missing;
                 ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   new self::A::•();
diff --git a/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.modular.expect
index b641197..34806ad 100644
--- a/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -30,66 +30,26 @@
 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
 }
 class C extends core::Object /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::C*
+  const 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
 }
 class D extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  static factory •() → self::D*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  static factory •() → self::D
     return invalid-expression "pkg/front_end/testcases/rasta/class_hierarchy.dart:12:17: Error: Redirection constructor target not found: 'Missing'
   factory D() = Missing;
                 ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   new self::A::•();
diff --git a/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.outline.expect
index b631f32..94400c1 100644
--- a/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -30,64 +30,24 @@
 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
 }
 class C extends core::Object /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::C*
+  const 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
 }
 class D extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[self::D::•];
-  static factory •() → self::D*
+  static final field dynamic _redirecting# = <dynamic>[self::D::•]/*isLegacy*/;
+  static factory •() → self::D
     return invalid-expression "pkg/front_end/testcases/rasta/class_hierarchy.dart:12:17: Error: Redirection constructor target not found: 'Missing'
   factory D() = Missing;
                 ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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/rasta/class_hierarchy.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.transformed.expect
index b641197..34806ad 100644
--- a/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -30,66 +30,26 @@
 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
 }
 class C extends core::Object /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::C*
+  const 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
 }
 class D extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  static factory •() → self::D*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  static factory •() → self::D
     return invalid-expression "pkg/front_end/testcases/rasta/class_hierarchy.dart:12:17: Error: Redirection constructor target not found: 'Missing'
   factory D() = Missing;
                 ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   new self::A::•();
diff --git a/pkg/front_end/testcases/rasta/class_member.dart b/pkg/front_end/testcases/rasta/class_member.dart
index 116767f..8c81300 100644
--- a/pkg/front_end/testcases/rasta/class_member.dart
+++ b/pkg/front_end/testcases/rasta/class_member.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.md file.
-// @dart=2.9
+
 // Tests that class members are listed in the normal order.
 
 class Foo {
diff --git a/pkg/front_end/testcases/rasta/class_member.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/class_member.dart.textual_outline.expect
index 12cb568..f3931ce 100644
--- a/pkg/front_end/testcases/rasta/class_member.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/class_member.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Foo {
   a() {}
   b() {}
diff --git a/pkg/front_end/testcases/rasta/class_member.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/class_member.dart.textual_outline_modelled.expect
index 3239086..2b3571b 100644
--- a/pkg/front_end/testcases/rasta/class_member.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/class_member.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Foo {
   Foo.constructor1();
   Foo.constructor2();
diff --git a/pkg/front_end/testcases/rasta/class_member.dart.weak.expect b/pkg/front_end/testcases/rasta/class_member.dart.weak.expect
index e692877..7a679fb 100644
--- a/pkg/front_end/testcases/rasta/class_member.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/class_member.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -6,26 +6,16 @@
   field dynamic field1 = null;
   field dynamic field2 = null;
   field dynamic field3 = null;
-  constructor constructor1() → self::Foo*
+  constructor constructor1() → self::Foo
     : super core::Object::•()
     ;
-  constructor constructor2() → self::Foo*
+  constructor constructor2() → self::Foo
     : super core::Object::•()
     ;
-  constructor constructor3() → self::Foo*
+  constructor constructor3() → self::Foo
     : super core::Object::•()
     ;
   method a() → dynamic {}
   method b() → dynamic {}
   method c() → 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
 }
diff --git a/pkg/front_end/testcases/rasta/class_member.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/class_member.dart.weak.modular.expect
index e692877..7a679fb 100644
--- a/pkg/front_end/testcases/rasta/class_member.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/class_member.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -6,26 +6,16 @@
   field dynamic field1 = null;
   field dynamic field2 = null;
   field dynamic field3 = null;
-  constructor constructor1() → self::Foo*
+  constructor constructor1() → self::Foo
     : super core::Object::•()
     ;
-  constructor constructor2() → self::Foo*
+  constructor constructor2() → self::Foo
     : super core::Object::•()
     ;
-  constructor constructor3() → self::Foo*
+  constructor constructor3() → self::Foo
     : super core::Object::•()
     ;
   method a() → dynamic {}
   method b() → dynamic {}
   method c() → 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
 }
diff --git a/pkg/front_end/testcases/rasta/class_member.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/class_member.dart.weak.outline.expect
index efb8632..b272f2a 100644
--- a/pkg/front_end/testcases/rasta/class_member.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/class_member.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -6,11 +6,11 @@
   field dynamic field1;
   field dynamic field2;
   field dynamic field3;
-  constructor constructor1() → self::Foo*
+  constructor constructor1() → self::Foo
     ;
-  constructor constructor2() → self::Foo*
+  constructor constructor2() → self::Foo
     ;
-  constructor constructor3() → self::Foo*
+  constructor constructor3() → self::Foo
     ;
   method a() → dynamic
     ;
@@ -18,14 +18,4 @@
     ;
   method c() → 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
 }
diff --git a/pkg/front_end/testcases/rasta/class_member.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/class_member.dart.weak.transformed.expect
index e692877..7a679fb 100644
--- a/pkg/front_end/testcases/rasta/class_member.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/class_member.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -6,26 +6,16 @@
   field dynamic field1 = null;
   field dynamic field2 = null;
   field dynamic field3 = null;
-  constructor constructor1() → self::Foo*
+  constructor constructor1() → self::Foo
     : super core::Object::•()
     ;
-  constructor constructor2() → self::Foo*
+  constructor constructor2() → self::Foo
     : super core::Object::•()
     ;
-  constructor constructor3() → self::Foo*
+  constructor constructor3() → self::Foo
     : super core::Object::•()
     ;
   method a() → dynamic {}
   method b() → dynamic {}
   method c() → 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
 }
diff --git a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart
index 23df9c0..3720069 100644
--- a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart
+++ b/pkg/front_end/testcases/rasta/constant_get_and_invoke.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.md file.
-// @dart=2.9
+
 const c = 1;
 main() {
   c;
diff --git a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.textual_outline.expect
index c6e2289..6b59d01 100644
--- a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 const c = 1;
 main() {}
diff --git a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.textual_outline_modelled.expect
index c6e2289..6b59d01 100644
--- a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 const c = 1;
 main() {}
diff --git a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.expect b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.expect
index ada899d..ad168ec 100644
--- a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,7 +10,7 @@
 import self as self;
 import "dart:core" as core;
 
-static const field core::int* c = #C1;
+static const field core::int c = #C1;
 static method main() → dynamic {
   #C1;
   invalid-expression "pkg/front_end/testcases/rasta/constant_get_and_invoke.dart:8:4: Error: The method 'call' isn't defined for the class 'int'.
diff --git a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.modular.expect
index ada899d..ad168ec 100644
--- a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,7 +10,7 @@
 import self as self;
 import "dart:core" as core;
 
-static const field core::int* c = #C1;
+static const field core::int c = #C1;
 static method main() → dynamic {
   #C1;
   invalid-expression "pkg/front_end/testcases/rasta/constant_get_and_invoke.dart:8:4: Error: The method 'call' isn't defined for the class 'int'.
diff --git a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.outline.expect
index 2188126..c41715b 100644
--- a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static const field core::int* c = 1;
+static const field core::int c = 1;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.transformed.expect
index ada899d..ad168ec 100644
--- a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,7 +10,7 @@
 import self as self;
 import "dart:core" as core;
 
-static const field core::int* c = #C1;
+static const field core::int c = #C1;
 static method main() → dynamic {
   #C1;
   invalid-expression "pkg/front_end/testcases/rasta/constant_get_and_invoke.dart:8:4: Error: The method 'call' isn't defined for the class 'int'.
diff --git a/pkg/front_end/testcases/rasta/deferred_lib.dart b/pkg/front_end/testcases/rasta/deferred_lib.dart
index e468f23..b4e6442 100644
--- a/pkg/front_end/testcases/rasta/deferred_lib.dart
+++ b/pkg/front_end/testcases/rasta/deferred_lib.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.md file.
-// @dart=2.9
+
 library deferred_lib;
 
 foo() => null;
diff --git a/pkg/front_end/testcases/rasta/deferred_load.dart b/pkg/front_end/testcases/rasta/deferred_load.dart
index fa67dd1..1ba7abd 100644
--- a/pkg/front_end/testcases/rasta/deferred_load.dart
+++ b/pkg/front_end/testcases/rasta/deferred_load.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.md file.
-// @dart=2.9
+
 import 'deferred_lib.dart' deferred as lib;
 
 main() {
diff --git a/pkg/front_end/testcases/rasta/deferred_load.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/deferred_load.dart.textual_outline.expect
index ce5481b..e513d3a 100644
--- a/pkg/front_end/testcases/rasta/deferred_load.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/deferred_load.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/rasta/deferred_load.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/deferred_load.dart.textual_outline_modelled.expect
index ce5481b..e513d3a 100644
--- a/pkg/front_end/testcases/rasta/deferred_load.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/deferred_load.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/rasta/deferred_load.dart.weak.expect b/pkg/front_end/testcases/rasta/deferred_load.dart.weak.expect
index d01ac3d..71e6036 100644
--- a/pkg/front_end/testcases/rasta/deferred_load.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/deferred_load.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:async" as asy;
 
@@ -8,10 +8,10 @@
   #C1;
   LoadLibrary(lib);
 }
-static method _#loadLibrary_lib() → asy::Future<dynamic>*
+static method _#loadLibrary_lib() → asy::Future<dynamic>
   return LoadLibrary(lib);
 
-library deferred_lib;
+library deferred_lib /*isNonNullableByDefault*/;
 import self as self2;
 
 static method foo() → dynamic
diff --git a/pkg/front_end/testcases/rasta/deferred_load.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/deferred_load.dart.weak.modular.expect
index d01ac3d..71e6036 100644
--- a/pkg/front_end/testcases/rasta/deferred_load.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/deferred_load.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:async" as asy;
 
@@ -8,10 +8,10 @@
   #C1;
   LoadLibrary(lib);
 }
-static method _#loadLibrary_lib() → asy::Future<dynamic>*
+static method _#loadLibrary_lib() → asy::Future<dynamic>
   return LoadLibrary(lib);
 
-library deferred_lib;
+library deferred_lib /*isNonNullableByDefault*/;
 import self as self2;
 
 static method foo() → dynamic
diff --git a/pkg/front_end/testcases/rasta/deferred_load.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/deferred_load.dart.weak.outline.expect
index 7fe8d37..a708dd1 100644
--- a/pkg/front_end/testcases/rasta/deferred_load.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/deferred_load.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "org-dartlang-testcase:///deferred_lib.dart" deferred as lib;
@@ -6,7 +6,7 @@
 static method main() → dynamic
   ;
 
-library deferred_lib;
+library deferred_lib /*isNonNullableByDefault*/;
 import self as self2;
 
 static method foo() → dynamic
diff --git a/pkg/front_end/testcases/rasta/deferred_load.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/deferred_load.dart.weak.transformed.expect
index d01ac3d..71e6036 100644
--- a/pkg/front_end/testcases/rasta/deferred_load.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/deferred_load.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:async" as asy;
 
@@ -8,10 +8,10 @@
   #C1;
   LoadLibrary(lib);
 }
-static method _#loadLibrary_lib() → asy::Future<dynamic>*
+static method _#loadLibrary_lib() → asy::Future<dynamic>
   return LoadLibrary(lib);
 
-library deferred_lib;
+library deferred_lib /*isNonNullableByDefault*/;
 import self as self2;
 
 static method foo() → dynamic
diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart b/pkg/front_end/testcases/rasta/duplicated_mixin.dart
index e47db11..09c9107 100644
--- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart
+++ b/pkg/front_end/testcases/rasta/duplicated_mixin.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.md file.
-// @dart=2.9
+
 class Mixin {
   var field;
 }
diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline.expect
index 3639d19..6da2cea 100644
--- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Mixin {
   var field;
 }
diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline_modelled.expect
index 2116733..525de0e 100644
--- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A extends Object with Mixin, Mixin {}
 
 class Mixin {
diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.expect
index 3324351..4a60de7 100644
--- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.expect
@@ -1,44 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Mixin extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::Mixin*
+  synthetic constructor •() → self::Mixin
     : 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 _A&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_A&Object&Mixin*
+  synthetic constructor •() → self::_A&Object&Mixin
     : super core::Object::•()
     ;
   mixin-super-stub get field() → dynamic
     return super.{self::Mixin::field};
   mixin-super-stub set field(dynamic value) → void
     return super.{self::Mixin::field} = value;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 _A&Object&Mixin&Mixin = self::_A&Object&Mixin with self::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_A&Object&Mixin&Mixin*
+  synthetic constructor •() → self::_A&Object&Mixin&Mixin
     : super self::_A&Object&Mixin::•()
     ;
   mixin-super-stub get field() → dynamic
@@ -47,7 +27,7 @@
     return super.{self::Mixin::field} = value;
 }
 class A extends self::_A&Object&Mixin&Mixin {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super self::_A&Object&Mixin&Mixin::•()
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.modular.expect
index 3324351..4a60de7 100644
--- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.modular.expect
@@ -1,44 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Mixin extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::Mixin*
+  synthetic constructor •() → self::Mixin
     : 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 _A&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_A&Object&Mixin*
+  synthetic constructor •() → self::_A&Object&Mixin
     : super core::Object::•()
     ;
   mixin-super-stub get field() → dynamic
     return super.{self::Mixin::field};
   mixin-super-stub set field(dynamic value) → void
     return super.{self::Mixin::field} = value;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 _A&Object&Mixin&Mixin = self::_A&Object&Mixin with self::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_A&Object&Mixin&Mixin*
+  synthetic constructor •() → self::_A&Object&Mixin&Mixin
     : super self::_A&Object&Mixin::•()
     ;
   mixin-super-stub get field() → dynamic
@@ -47,7 +27,7 @@
     return super.{self::Mixin::field} = value;
 }
 class A extends self::_A&Object&Mixin&Mixin {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super self::_A&Object&Mixin&Mixin::•()
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.outline.expect
index 49d4750..93387b2 100644
--- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.outline.expect
@@ -1,43 +1,23 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Mixin extends core::Object {
   field dynamic field;
-  synthetic constructor •() → self::Mixin*
+  synthetic constructor •() → self::Mixin
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 _A&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_A&Object&Mixin*
+  synthetic constructor •() → self::_A&Object&Mixin
     : super core::Object::•()
     ;
   mixin-super-stub get field() → dynamic
     return super.{self::Mixin::field};
   mixin-super-stub set field(dynamic value) → void
     return super.{self::Mixin::field} = value;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 _A&Object&Mixin&Mixin = self::_A&Object&Mixin with self::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_A&Object&Mixin&Mixin*
+  synthetic constructor •() → self::_A&Object&Mixin&Mixin
     : super self::_A&Object&Mixin::•()
     ;
   mixin-super-stub get field() → dynamic
@@ -46,6 +26,6 @@
     return super.{self::Mixin::field} = value;
 }
 class A extends self::_A&Object&Mixin&Mixin {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.transformed.expect
index 82471af..8630f78 100644
--- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.transformed.expect
@@ -1,47 +1,27 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Mixin extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::Mixin*
+  synthetic constructor •() → self::Mixin
     : 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 _A&Object&Mixin extends core::Object implements self::Mixin /*isAnonymousMixin,isEliminatedMixin*/  {
   field dynamic field = null;
-  synthetic constructor •() → self::_A&Object&Mixin*
+  synthetic constructor •() → self::_A&Object&Mixin
     : 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 _A&Object&Mixin&Mixin extends self::_A&Object&Mixin implements self::Mixin /*isAnonymousMixin,isEliminatedMixin*/  {
   field dynamic field = null;
-  synthetic constructor •() → self::_A&Object&Mixin&Mixin*
+  synthetic constructor •() → self::_A&Object&Mixin&Mixin
     : super self::_A&Object&Mixin::•()
     ;
 }
 class A extends self::_A&Object&Mixin&Mixin {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super self::_A&Object&Mixin&Mixin::•()
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/enum.dart b/pkg/front_end/testcases/rasta/enum.dart
index 617fade..58edf77 100644
--- a/pkg/front_end/testcases/rasta/enum.dart
+++ b/pkg/front_end/testcases/rasta/enum.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.md file.
-// @dart=2.9
+
 enum Foo {
   ec1,
   ec2,
diff --git a/pkg/front_end/testcases/rasta/enum.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/enum.dart.textual_outline.expect
index 08d5765..c0c63c5 100644
--- a/pkg/front_end/testcases/rasta/enum.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/enum.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 enum Foo {
   ec1,
   ec2,
diff --git a/pkg/front_end/testcases/rasta/enum.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/enum.dart.textual_outline_modelled.expect
index 08d5765..c0c63c5 100644
--- a/pkg/front_end/testcases/rasta/enum.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/enum.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 enum Foo {
   ec1,
   ec2,
diff --git a/pkg/front_end/testcases/rasta/enum.dart.weak.expect b/pkg/front_end/testcases/rasta/enum.dart.weak.expect
index ce798e5..72fd4bf 100644
--- a/pkg/front_end/testcases/rasta/enum.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/enum.dart.weak.expect
@@ -1,27 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::Foo*>* values = #C7;
-  static const field self::Foo* ec1 = #C3;
-  static const field self::Foo* ec2 = #C6;
-  const constructor •(core::int* #index, core::String* #name) → self::Foo*
+  static const field core::List<self::Foo> values = #C7;
+  static const field self::Foo ec1 = #C3;
+  static const field self::Foo ec2 = #C6;
+  const constructor •(core::int #index, core::String #name) → self::Foo
     : super core::_Enum::•(#index, #name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Foo.${this.{core::_Enum::_name}{core::String}}";
-  abstract member-signature get index() → core::int*; -> core::_Enum::index
-  abstract member-signature get _name() → core::String*; -> core::_Enum::_name
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  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/rasta/enum.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/enum.dart.weak.modular.expect
index ce798e5..72fd4bf 100644
--- a/pkg/front_end/testcases/rasta/enum.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/enum.dart.weak.modular.expect
@@ -1,27 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::Foo*>* values = #C7;
-  static const field self::Foo* ec1 = #C3;
-  static const field self::Foo* ec2 = #C6;
-  const constructor •(core::int* #index, core::String* #name) → self::Foo*
+  static const field core::List<self::Foo> values = #C7;
+  static const field self::Foo ec1 = #C3;
+  static const field self::Foo ec2 = #C6;
+  const constructor •(core::int #index, core::String #name) → self::Foo
     : super core::_Enum::•(#index, #name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Foo.${this.{core::_Enum::_name}{core::String}}";
-  abstract member-signature get index() → core::int*; -> core::_Enum::index
-  abstract member-signature get _name() → core::String*; -> core::_Enum::_name
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  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/rasta/enum.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/enum.dart.weak.outline.expect
index e98c789..6ce3e54 100644
--- a/pkg/front_end/testcases/rasta/enum.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/enum.dart.weak.outline.expect
@@ -1,27 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::Foo*>* values = const <self::Foo*>[self::Foo::ec1, self::Foo::ec2];
-  static const field self::Foo* ec1 = const self::Foo::•(0, "ec1");
-  static const field self::Foo* ec2 = const self::Foo::•(1, "ec2");
-  const constructor •(core::int* #index, core::String* #name) → self::Foo*
+  static const field core::List<self::Foo> values = const <self::Foo>[self::Foo::ec1, self::Foo::ec2];
+  static const field self::Foo ec1 = const self::Foo::•(0, "ec1");
+  static const field self::Foo ec2 = const self::Foo::•(1, "ec2");
+  const constructor •(core::int #index, core::String #name) → self::Foo
     : super core::_Enum::•(#index, #name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Foo.${this.{core::_Enum::_name}{core::String}}";
-  abstract member-signature get index() → core::int*; -> core::_Enum::index
-  abstract member-signature get _name() → core::String*; -> core::_Enum::_name
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  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/rasta/enum.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/enum.dart.weak.transformed.expect
index ce798e5..72fd4bf 100644
--- a/pkg/front_end/testcases/rasta/enum.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/enum.dart.weak.transformed.expect
@@ -1,27 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::Foo*>* values = #C7;
-  static const field self::Foo* ec1 = #C3;
-  static const field self::Foo* ec2 = #C6;
-  const constructor •(core::int* #index, core::String* #name) → self::Foo*
+  static const field core::List<self::Foo> values = #C7;
+  static const field self::Foo ec1 = #C3;
+  static const field self::Foo ec2 = #C6;
+  const constructor •(core::int #index, core::String #name) → self::Foo
     : super core::_Enum::•(#index, #name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Foo.${this.{core::_Enum::_name}{core::String}}";
-  abstract member-signature get index() → core::int*; -> core::_Enum::index
-  abstract member-signature get _name() → core::String*; -> core::_Enum::_name
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  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/rasta/export.dart b/pkg/front_end/testcases/rasta/export.dart
index 34e908c..ca462cf 100644
--- a/pkg/front_end/testcases/rasta/export.dart
+++ b/pkg/front_end/testcases/rasta/export.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.md file.
-// @dart=2.9
+
 library export;
 
 export 'foo.dart';
diff --git a/pkg/front_end/testcases/rasta/export.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/export.dart.textual_outline.expect
index 4b760d0..a55dbf5 100644
--- a/pkg/front_end/testcases/rasta/export.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/export.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library export;
 
 export 'foo.dart';
diff --git a/pkg/front_end/testcases/rasta/export.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/export.dart.textual_outline_modelled.expect
index 4b760d0..a55dbf5 100644
--- a/pkg/front_end/testcases/rasta/export.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/export.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library export;
 
 export 'foo.dart';
diff --git a/pkg/front_end/testcases/rasta/export.dart.weak.expect b/pkg/front_end/testcases/rasta/export.dart.weak.expect
index 6eb1e47..18c8e6a 100644
--- a/pkg/front_end/testcases/rasta/export.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/export.dart.weak.expect
@@ -1,4 +1,4 @@
-library export;
+library export /*isNonNullableByDefault*/;
 import self as self;
 import "foo.dart" as foo;
 additionalExports = (foo::foo)
@@ -6,7 +6,7 @@
 export "org-dartlang-testcase:///foo.dart";
 
 
-library foo;
+library foo /*isNonNullableByDefault*/;
 import self as foo;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/export.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/export.dart.weak.modular.expect
index 6eb1e47..18c8e6a 100644
--- a/pkg/front_end/testcases/rasta/export.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/export.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library export;
+library export /*isNonNullableByDefault*/;
 import self as self;
 import "foo.dart" as foo;
 additionalExports = (foo::foo)
@@ -6,7 +6,7 @@
 export "org-dartlang-testcase:///foo.dart";
 
 
-library foo;
+library foo /*isNonNullableByDefault*/;
 import self as foo;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/export.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/export.dart.weak.outline.expect
index e2ffc83..e6cf067 100644
--- a/pkg/front_end/testcases/rasta/export.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/export.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library export;
+library export /*isNonNullableByDefault*/;
 import self as self;
 import "foo.dart" as foo;
 additionalExports = (foo::foo)
@@ -6,7 +6,7 @@
 export "org-dartlang-testcase:///foo.dart";
 
 
-library foo;
+library foo /*isNonNullableByDefault*/;
 import self as foo;
 
 static method foo() → dynamic
diff --git a/pkg/front_end/testcases/rasta/export.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/export.dart.weak.transformed.expect
index 6eb1e47..18c8e6a 100644
--- a/pkg/front_end/testcases/rasta/export.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/export.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library export;
+library export /*isNonNullableByDefault*/;
 import self as self;
 import "foo.dart" as foo;
 additionalExports = (foo::foo)
@@ -6,7 +6,7 @@
 export "org-dartlang-testcase:///foo.dart";
 
 
-library foo;
+library foo /*isNonNullableByDefault*/;
 import self as foo;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/external_factory_redirection.dart b/pkg/front_end/testcases/rasta/external_factory_redirection.dart
index 6e19a02..f4833dd 100644
--- a/pkg/front_end/testcases/rasta/external_factory_redirection.dart
+++ b/pkg/front_end/testcases/rasta/external_factory_redirection.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.md file.
-// @dart=2.9
+
 main() {
   "Should redirect to LinkedHashMap constructor.";
   new Map<Symbol, dynamic>(); // This is a patched constructor whose
diff --git a/pkg/front_end/testcases/rasta/external_factory_redirection.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/external_factory_redirection.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/external_factory_redirection.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/external_factory_redirection.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/external_factory_redirection.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/external_factory_redirection.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/external_factory_redirection.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/external_factory_redirection.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/external_factory_redirection.dart.weak.expect b/pkg/front_end/testcases/rasta/external_factory_redirection.dart.weak.expect
index 8b7a99d..78475b5 100644
--- a/pkg/front_end/testcases/rasta/external_factory_redirection.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/external_factory_redirection.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
   "Should redirect to LinkedHashMap constructor.";
-  core::Map::•<core::Symbol*, dynamic>();
+  core::Map::•<core::Symbol, dynamic>();
 }
diff --git a/pkg/front_end/testcases/rasta/external_factory_redirection.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/external_factory_redirection.dart.weak.modular.expect
index 8b7a99d..78475b5 100644
--- a/pkg/front_end/testcases/rasta/external_factory_redirection.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/external_factory_redirection.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
   "Should redirect to LinkedHashMap constructor.";
-  core::Map::•<core::Symbol*, dynamic>();
+  core::Map::•<core::Symbol, dynamic>();
 }
diff --git a/pkg/front_end/testcases/rasta/external_factory_redirection.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/external_factory_redirection.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/rasta/external_factory_redirection.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/external_factory_redirection.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/rasta/external_factory_redirection.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/external_factory_redirection.dart.weak.transformed.expect
index 8b7a99d..78475b5 100644
--- a/pkg/front_end/testcases/rasta/external_factory_redirection.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/external_factory_redirection.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
   "Should redirect to LinkedHashMap constructor.";
-  core::Map::•<core::Symbol*, dynamic>();
+  core::Map::•<core::Symbol, dynamic>();
 }
diff --git a/pkg/front_end/testcases/rasta/foo.dart b/pkg/front_end/testcases/rasta/foo.dart
index bb576bd..6400698 100644
--- a/pkg/front_end/testcases/rasta/foo.dart
+++ b/pkg/front_end/testcases/rasta/foo.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.md file.
-// @dart=2.9
+
 library foo;
 
 foo() {
diff --git a/pkg/front_end/testcases/rasta/foo.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/foo.dart.textual_outline.expect
index 61dc73c..0d1b8df4 100644
--- a/pkg/front_end/testcases/rasta/foo.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/foo.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library foo;
 
 foo() {}
diff --git a/pkg/front_end/testcases/rasta/foo.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/foo.dart.textual_outline_modelled.expect
index 61dc73c..0d1b8df4 100644
--- a/pkg/front_end/testcases/rasta/foo.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/foo.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library foo;
 
 foo() {}
diff --git a/pkg/front_end/testcases/rasta/foo.dart.weak.expect b/pkg/front_end/testcases/rasta/foo.dart.weak.expect
index 5f90b5a..112f9c3 100644
--- a/pkg/front_end/testcases/rasta/foo.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/foo.dart.weak.expect
@@ -1,4 +1,4 @@
-library foo;
+library foo /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/foo.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/foo.dart.weak.modular.expect
index 5f90b5a..112f9c3 100644
--- a/pkg/front_end/testcases/rasta/foo.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/foo.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library foo;
+library foo /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/foo.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/foo.dart.weak.outline.expect
index 8376691..91d38f6 100644
--- a/pkg/front_end/testcases/rasta/foo.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/foo.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library foo;
+library foo /*isNonNullableByDefault*/;
 import self as self;
 
 static method foo() → dynamic
diff --git a/pkg/front_end/testcases/rasta/foo.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/foo.dart.weak.transformed.expect
index 5f90b5a..112f9c3 100644
--- a/pkg/front_end/testcases/rasta/foo.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/foo.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library foo;
+library foo /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/for_loop.dart b/pkg/front_end/testcases/rasta/for_loop.dart
index 0f25bd2..0155ab3 100644
--- a/pkg/front_end/testcases/rasta/for_loop.dart
+++ b/pkg/front_end/testcases/rasta/for_loop.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.md file.
-// @dart=2.9
+
 main() {
   int c = new DateTime.now().millisecondsSinceEpoch;
   for (int i = 0; i < 100; i++) {
diff --git a/pkg/front_end/testcases/rasta/for_loop.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/for_loop.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/for_loop.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/for_loop.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/for_loop.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/for_loop.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/for_loop.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/for_loop.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/for_loop.dart.weak.expect b/pkg/front_end/testcases/rasta/for_loop.dart.weak.expect
index 94b2d41..0266bdd 100644
--- a/pkg/front_end/testcases/rasta/for_loop.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/for_loop.dart.weak.expect
@@ -1,13 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::int* c = new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int*};
-  for (core::int* i = 0; i.{core::num::<}(100){(core::num*) →* core::bool*}; 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::int c = new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int};
+  for (core::int i = 0; i.{core::num::<}(100){(core::num) → core::bool}; 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);
   }
-  for (core::int* i = 0; i.{core::num::<}(100){(core::num*) →* core::bool*}; c.{core::num::<}(42){(core::num*) →* core::bool*} ?{core::int*} throw "fisk" : 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(let final core::int* #t5 = i in let final core::int* #t6 = i = #t5.{core::num::+}(1){(core::num*) →* core::int*} in #t5);
+  for (core::int i = 0; i.{core::num::<}(100){(core::num) → core::bool}; c.{core::num::<}(42){(core::num) → core::bool} ?{core::int} throw "fisk" : 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(let final core::int #t5 = i in let final core::int #t6 = i = #t5.{core::num::+}(1){(core::num) → core::int} in #t5);
   }
 }
diff --git a/pkg/front_end/testcases/rasta/for_loop.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/for_loop.dart.weak.modular.expect
index 94b2d41..0266bdd 100644
--- a/pkg/front_end/testcases/rasta/for_loop.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/for_loop.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::int* c = new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int*};
-  for (core::int* i = 0; i.{core::num::<}(100){(core::num*) →* core::bool*}; 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::int c = new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int};
+  for (core::int i = 0; i.{core::num::<}(100){(core::num) → core::bool}; 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);
   }
-  for (core::int* i = 0; i.{core::num::<}(100){(core::num*) →* core::bool*}; c.{core::num::<}(42){(core::num*) →* core::bool*} ?{core::int*} throw "fisk" : 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(let final core::int* #t5 = i in let final core::int* #t6 = i = #t5.{core::num::+}(1){(core::num*) →* core::int*} in #t5);
+  for (core::int i = 0; i.{core::num::<}(100){(core::num) → core::bool}; c.{core::num::<}(42){(core::num) → core::bool} ?{core::int} throw "fisk" : 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(let final core::int #t5 = i in let final core::int #t6 = i = #t5.{core::num::+}(1){(core::num) → core::int} in #t5);
   }
 }
diff --git a/pkg/front_end/testcases/rasta/for_loop.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/for_loop.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/rasta/for_loop.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/for_loop.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/rasta/for_loop.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/for_loop.dart.weak.transformed.expect
index 94b2d41..0266bdd 100644
--- a/pkg/front_end/testcases/rasta/for_loop.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/for_loop.dart.weak.transformed.expect
@@ -1,13 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::int* c = new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int*};
-  for (core::int* i = 0; i.{core::num::<}(100){(core::num*) →* core::bool*}; 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::int c = new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int};
+  for (core::int i = 0; i.{core::num::<}(100){(core::num) → core::bool}; 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);
   }
-  for (core::int* i = 0; i.{core::num::<}(100){(core::num*) →* core::bool*}; c.{core::num::<}(42){(core::num*) →* core::bool*} ?{core::int*} throw "fisk" : 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(let final core::int* #t5 = i in let final core::int* #t6 = i = #t5.{core::num::+}(1){(core::num*) →* core::int*} in #t5);
+  for (core::int i = 0; i.{core::num::<}(100){(core::num) → core::bool}; c.{core::num::<}(42){(core::num) → core::bool} ?{core::int} throw "fisk" : 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(let final core::int #t5 = i in let final core::int #t6 = i = #t5.{core::num::+}(1){(core::num) → core::int} in #t5);
   }
 }
diff --git a/pkg/front_end/testcases/rasta/generic_factory.dart b/pkg/front_end/testcases/rasta/generic_factory.dart
index a72e756..2bac5a2 100644
--- a/pkg/front_end/testcases/rasta/generic_factory.dart
+++ b/pkg/front_end/testcases/rasta/generic_factory.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.md file.
-// @dart=2.9
+
 class C1 {}
 
 class C2 {}
diff --git a/pkg/front_end/testcases/rasta/generic_factory.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/generic_factory.dart.textual_outline.expect
index 53896d3..0b8bde5 100644
--- a/pkg/front_end/testcases/rasta/generic_factory.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/generic_factory.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C1 {}
 
 class C2 {}
diff --git a/pkg/front_end/testcases/rasta/generic_factory.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/generic_factory.dart.textual_outline_modelled.expect
index 6027134..449bfaf 100644
--- a/pkg/front_end/testcases/rasta/generic_factory.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/generic_factory.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A<T> {
   A.internal();
   factory A.a() = B<T>.a;
diff --git a/pkg/front_end/testcases/rasta/generic_factory.dart.weak.expect b/pkg/front_end/testcases/rasta/generic_factory.dart.weak.expect
index 05e4007..644a206 100644
--- a/pkg/front_end/testcases/rasta/generic_factory.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/generic_factory.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -28,87 +28,47 @@
 import "dart:core" as core;
 
 class C1 extends core::Object {
-  synthetic constructor •() → self::C1*
+  synthetic constructor •() → self::C1
     : 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 C2 extends core::Object {
-  synthetic constructor •() → self::C2*
+  synthetic constructor •() → self::C2
     : 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 C3 extends core::Object {
-  synthetic constructor •() → self::C3*
+  synthetic constructor •() → self::C3
     : 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 A<T extends core::Object* = dynamic> extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1, #C2, #C3];
-  constructor internal() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  static final field dynamic _redirecting# = <dynamic>[#C1, #C2, #C3]/*isLegacy*/;
+  constructor internal() → self::A<self::A::T%>
     : super core::Object::•()
     ;
-  static factory a<T extends core::Object* = dynamic>() → self::A<self::A::a::T*>*
-    return self::B::a<self::A::a::T*>();
-  static factory b<T extends core::Object* = dynamic>() → self::A<self::A::b::T*>*
+  static factory a<T extends core::Object? = dynamic>() → self::A<self::A::a::T%>
+    return self::B::a<self::A::a::T%>();
+  static factory b<T extends core::Object? = dynamic>() → self::A<self::A::b::T%>
     return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:15:19: Error: The constructor function type 'B<C1> Function()' isn't a subtype of 'A<T> Function()'.
  - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'C1' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'A' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
   factory A.b() = B<C1>.a;
                   ^";
-  static factory c<T extends core::Object* = dynamic>() → self::A<self::A::c::T*>*
+  static factory c<T extends core::Object? = dynamic>() → self::A<self::A::c::T%>
     return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:16:19: Error: Redirection constructor target not found: 'Missing'
   factory A.c() = Missing;
                   ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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<S extends core::Object* = dynamic> extends self::A<self::B::S*> {
-  static final field dynamic _redirecting# = <dynamic>[#C4, #C5];
-  constructor internal() → self::B<self::B::S*>*
+class B<S extends core::Object? = dynamic> extends self::A<self::B::S%> {
+  static final field dynamic _redirecting# = <dynamic>[#C4, #C5]/*isLegacy*/;
+  constructor internal() → self::B<self::B::S%>
     : super self::A::internal()
     ;
-  static factory a<S extends core::Object* = dynamic>() → self::B<self::B::a::S*>*
-    return new self::C::•<self::B::a::S*>();
-  static factory b<S extends core::Object* = dynamic>() → self::B<self::B::b::S*>*
+  static factory a<S extends core::Object? = dynamic>() → self::B<self::B::a::S%>
+    return new self::C::•<self::B::a::S%>();
+  static factory b<S extends core::Object? = dynamic>() → self::B<self::B::b::S%>
     return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:23:19: Error: The constructor function type 'C<C2> Function()' isn't a subtype of 'B<S> Function()'.
  - 'C' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'C2' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
@@ -116,20 +76,20 @@
   factory B.b() = C<C2>;
                   ^";
 }
-class C<U extends core::Object* = dynamic> extends self::B<self::C::U*> {
-  constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<self::C::U%> {
+  constructor •() → self::C<self::C::U%>
     : super self::B::internal()
     ;
 }
 static method main() → dynamic {
-  new self::C::•<self::C3*>();
+  new self::C::•<self::C3>();
   invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:15:19: Error: The constructor function type 'B<C1> Function()' isn't a subtype of 'A<T> Function()'.
  - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'C1' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'A' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
   factory A.b() = B<C1>.a;
                   ^";
-  new self::C::•<self::C3*>();
+  new self::C::•<self::C3>();
   invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:23:19: Error: The constructor function type 'C<C2> Function()' isn't a subtype of 'B<S> Function()'.
  - 'C' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'C2' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
diff --git a/pkg/front_end/testcases/rasta/generic_factory.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/generic_factory.dart.weak.modular.expect
index 05e4007..644a206 100644
--- a/pkg/front_end/testcases/rasta/generic_factory.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/generic_factory.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -28,87 +28,47 @@
 import "dart:core" as core;
 
 class C1 extends core::Object {
-  synthetic constructor •() → self::C1*
+  synthetic constructor •() → self::C1
     : 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 C2 extends core::Object {
-  synthetic constructor •() → self::C2*
+  synthetic constructor •() → self::C2
     : 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 C3 extends core::Object {
-  synthetic constructor •() → self::C3*
+  synthetic constructor •() → self::C3
     : 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 A<T extends core::Object* = dynamic> extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1, #C2, #C3];
-  constructor internal() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  static final field dynamic _redirecting# = <dynamic>[#C1, #C2, #C3]/*isLegacy*/;
+  constructor internal() → self::A<self::A::T%>
     : super core::Object::•()
     ;
-  static factory a<T extends core::Object* = dynamic>() → self::A<self::A::a::T*>*
-    return self::B::a<self::A::a::T*>();
-  static factory b<T extends core::Object* = dynamic>() → self::A<self::A::b::T*>*
+  static factory a<T extends core::Object? = dynamic>() → self::A<self::A::a::T%>
+    return self::B::a<self::A::a::T%>();
+  static factory b<T extends core::Object? = dynamic>() → self::A<self::A::b::T%>
     return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:15:19: Error: The constructor function type 'B<C1> Function()' isn't a subtype of 'A<T> Function()'.
  - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'C1' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'A' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
   factory A.b() = B<C1>.a;
                   ^";
-  static factory c<T extends core::Object* = dynamic>() → self::A<self::A::c::T*>*
+  static factory c<T extends core::Object? = dynamic>() → self::A<self::A::c::T%>
     return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:16:19: Error: Redirection constructor target not found: 'Missing'
   factory A.c() = Missing;
                   ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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<S extends core::Object* = dynamic> extends self::A<self::B::S*> {
-  static final field dynamic _redirecting# = <dynamic>[#C4, #C5];
-  constructor internal() → self::B<self::B::S*>*
+class B<S extends core::Object? = dynamic> extends self::A<self::B::S%> {
+  static final field dynamic _redirecting# = <dynamic>[#C4, #C5]/*isLegacy*/;
+  constructor internal() → self::B<self::B::S%>
     : super self::A::internal()
     ;
-  static factory a<S extends core::Object* = dynamic>() → self::B<self::B::a::S*>*
-    return new self::C::•<self::B::a::S*>();
-  static factory b<S extends core::Object* = dynamic>() → self::B<self::B::b::S*>*
+  static factory a<S extends core::Object? = dynamic>() → self::B<self::B::a::S%>
+    return new self::C::•<self::B::a::S%>();
+  static factory b<S extends core::Object? = dynamic>() → self::B<self::B::b::S%>
     return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:23:19: Error: The constructor function type 'C<C2> Function()' isn't a subtype of 'B<S> Function()'.
  - 'C' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'C2' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
@@ -116,20 +76,20 @@
   factory B.b() = C<C2>;
                   ^";
 }
-class C<U extends core::Object* = dynamic> extends self::B<self::C::U*> {
-  constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<self::C::U%> {
+  constructor •() → self::C<self::C::U%>
     : super self::B::internal()
     ;
 }
 static method main() → dynamic {
-  new self::C::•<self::C3*>();
+  new self::C::•<self::C3>();
   invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:15:19: Error: The constructor function type 'B<C1> Function()' isn't a subtype of 'A<T> Function()'.
  - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'C1' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'A' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
   factory A.b() = B<C1>.a;
                   ^";
-  new self::C::•<self::C3*>();
+  new self::C::•<self::C3>();
   invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:23:19: Error: The constructor function type 'C<C2> Function()' isn't a subtype of 'B<S> Function()'.
  - 'C' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'C2' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
diff --git a/pkg/front_end/testcases/rasta/generic_factory.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/generic_factory.dart.weak.outline.expect
index ba2de86..e9e5b22 100644
--- a/pkg/front_end/testcases/rasta/generic_factory.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/generic_factory.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -28,82 +28,42 @@
 import "dart:core" as core;
 
 class C1 extends core::Object {
-  synthetic constructor •() → self::C1*
+  synthetic constructor •() → self::C1
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 C3 extends core::Object {
-  synthetic constructor •() → self::C3*
+  synthetic constructor •() → self::C3
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 A<T extends core::Object* = dynamic> extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[self::A::a, self::A::b, self::A::c];
-  constructor internal() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  static final field dynamic _redirecting# = <dynamic>[self::A::a, self::A::b, self::A::c]/*isLegacy*/;
+  constructor internal() → self::A<self::A::T%>
     ;
-  static factory a<T extends core::Object* = dynamic>() → self::A<self::A::a::T*>*
-    return self::B::a<self::A::a::T*>();
-  static factory b<T extends core::Object* = dynamic>() → self::A<self::A::b::T*>*
+  static factory a<T extends core::Object? = dynamic>() → self::A<self::A::a::T%>
+    return self::B::a<self::A::a::T%>();
+  static factory b<T extends core::Object? = dynamic>() → self::A<self::A::b::T%>
     return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:15:19: Error: The constructor function type 'B<C1> Function()' isn't a subtype of 'A<T> Function()'.
  - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'C1' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'A' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
   factory A.b() = B<C1>.a;
                   ^";
-  static factory c<T extends core::Object* = dynamic>() → self::A<self::A::c::T*>*
+  static factory c<T extends core::Object? = dynamic>() → self::A<self::A::c::T%>
     return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:16:19: Error: Redirection constructor target not found: 'Missing'
   factory A.c() = Missing;
                   ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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<S extends core::Object* = dynamic> extends self::A<self::B::S*> {
-  static final field dynamic _redirecting# = <dynamic>[self::B::a, self::B::b];
-  constructor internal() → self::B<self::B::S*>*
+class B<S extends core::Object? = dynamic> extends self::A<self::B::S%> {
+  static final field dynamic _redirecting# = <dynamic>[self::B::a, self::B::b]/*isLegacy*/;
+  constructor internal() → self::B<self::B::S%>
     ;
-  static factory a<S extends core::Object* = dynamic>() → self::B<self::B::a::S*>*
-    return new self::C::•<self::B::a::S*>();
-  static factory b<S extends core::Object* = dynamic>() → self::B<self::B::b::S*>*
+  static factory a<S extends core::Object? = dynamic>() → self::B<self::B::a::S%>
+    return new self::C::•<self::B::a::S%>();
+  static factory b<S extends core::Object? = dynamic>() → self::B<self::B::b::S%>
     return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:23:19: Error: The constructor function type 'C<C2> Function()' isn't a subtype of 'B<S> Function()'.
  - 'C' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'C2' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
@@ -111,8 +71,8 @@
   factory B.b() = C<C2>;
                   ^";
 }
-class C<U extends core::Object* = dynamic> extends self::B<self::C::U*> {
-  constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<self::C::U%> {
+  constructor •() → self::C<self::C::U%>
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/rasta/generic_factory.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/generic_factory.dart.weak.transformed.expect
index 05e4007..644a206 100644
--- a/pkg/front_end/testcases/rasta/generic_factory.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/generic_factory.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -28,87 +28,47 @@
 import "dart:core" as core;
 
 class C1 extends core::Object {
-  synthetic constructor •() → self::C1*
+  synthetic constructor •() → self::C1
     : 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 C2 extends core::Object {
-  synthetic constructor •() → self::C2*
+  synthetic constructor •() → self::C2
     : 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 C3 extends core::Object {
-  synthetic constructor •() → self::C3*
+  synthetic constructor •() → self::C3
     : 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 A<T extends core::Object* = dynamic> extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1, #C2, #C3];
-  constructor internal() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  static final field dynamic _redirecting# = <dynamic>[#C1, #C2, #C3]/*isLegacy*/;
+  constructor internal() → self::A<self::A::T%>
     : super core::Object::•()
     ;
-  static factory a<T extends core::Object* = dynamic>() → self::A<self::A::a::T*>*
-    return self::B::a<self::A::a::T*>();
-  static factory b<T extends core::Object* = dynamic>() → self::A<self::A::b::T*>*
+  static factory a<T extends core::Object? = dynamic>() → self::A<self::A::a::T%>
+    return self::B::a<self::A::a::T%>();
+  static factory b<T extends core::Object? = dynamic>() → self::A<self::A::b::T%>
     return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:15:19: Error: The constructor function type 'B<C1> Function()' isn't a subtype of 'A<T> Function()'.
  - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'C1' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'A' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
   factory A.b() = B<C1>.a;
                   ^";
-  static factory c<T extends core::Object* = dynamic>() → self::A<self::A::c::T*>*
+  static factory c<T extends core::Object? = dynamic>() → self::A<self::A::c::T%>
     return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:16:19: Error: Redirection constructor target not found: 'Missing'
   factory A.c() = Missing;
                   ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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<S extends core::Object* = dynamic> extends self::A<self::B::S*> {
-  static final field dynamic _redirecting# = <dynamic>[#C4, #C5];
-  constructor internal() → self::B<self::B::S*>*
+class B<S extends core::Object? = dynamic> extends self::A<self::B::S%> {
+  static final field dynamic _redirecting# = <dynamic>[#C4, #C5]/*isLegacy*/;
+  constructor internal() → self::B<self::B::S%>
     : super self::A::internal()
     ;
-  static factory a<S extends core::Object* = dynamic>() → self::B<self::B::a::S*>*
-    return new self::C::•<self::B::a::S*>();
-  static factory b<S extends core::Object* = dynamic>() → self::B<self::B::b::S*>*
+  static factory a<S extends core::Object? = dynamic>() → self::B<self::B::a::S%>
+    return new self::C::•<self::B::a::S%>();
+  static factory b<S extends core::Object? = dynamic>() → self::B<self::B::b::S%>
     return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:23:19: Error: The constructor function type 'C<C2> Function()' isn't a subtype of 'B<S> Function()'.
  - 'C' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'C2' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
@@ -116,20 +76,20 @@
   factory B.b() = C<C2>;
                   ^";
 }
-class C<U extends core::Object* = dynamic> extends self::B<self::C::U*> {
-  constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<self::C::U%> {
+  constructor •() → self::C<self::C::U%>
     : super self::B::internal()
     ;
 }
 static method main() → dynamic {
-  new self::C::•<self::C3*>();
+  new self::C::•<self::C3>();
   invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:15:19: Error: The constructor function type 'B<C1> Function()' isn't a subtype of 'A<T> Function()'.
  - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'C1' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'A' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
   factory A.b() = B<C1>.a;
                   ^";
-  new self::C::•<self::C3*>();
+  new self::C::•<self::C3>();
   invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:23:19: Error: The constructor function type 'C<C2> Function()' isn't a subtype of 'B<S> Function()'.
  - 'C' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
  - 'C2' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'.
diff --git a/pkg/front_end/testcases/rasta/hello.dart b/pkg/front_end/testcases/rasta/hello.dart
index 28a3828..671d11f 100644
--- a/pkg/front_end/testcases/rasta/hello.dart
+++ b/pkg/front_end/testcases/rasta/hello.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.md file.
-// @dart=2.9
+
 main() {
   print("Hello, World!");
 }
diff --git a/pkg/front_end/testcases/rasta/hello.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/hello.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/hello.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/hello.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/hello.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/hello.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/hello.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/hello.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/hello.dart.weak.expect b/pkg/front_end/testcases/rasta/hello.dart.weak.expect
index fea7b39..ab5dd90 100644
--- a/pkg/front_end/testcases/rasta/hello.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/hello.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/hello.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/hello.dart.weak.modular.expect
index fea7b39..ab5dd90 100644
--- a/pkg/front_end/testcases/rasta/hello.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/hello.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/hello.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/hello.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/rasta/hello.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/hello.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/rasta/hello.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/hello.dart.weak.transformed.expect
index fea7b39..ab5dd90 100644
--- a/pkg/front_end/testcases/rasta/hello.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/hello.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/import_export.dart b/pkg/front_end/testcases/rasta/import_export.dart
index c1897b3..8d6f2c4 100644
--- a/pkg/front_end/testcases/rasta/import_export.dart
+++ b/pkg/front_end/testcases/rasta/import_export.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.md file.
-// @dart=2.9
+
 import 'export.dart';
 
 main() {
diff --git a/pkg/front_end/testcases/rasta/import_export.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/import_export.dart.textual_outline.expect
index 27381f0..9b23e8d 100644
--- a/pkg/front_end/testcases/rasta/import_export.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/import_export.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'export.dart';
 
 main() {}
diff --git a/pkg/front_end/testcases/rasta/import_export.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/import_export.dart.textual_outline_modelled.expect
index 27381f0..9b23e8d 100644
--- a/pkg/front_end/testcases/rasta/import_export.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/import_export.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'export.dart';
 
 main() {}
diff --git a/pkg/front_end/testcases/rasta/import_export.dart.weak.expect b/pkg/front_end/testcases/rasta/import_export.dart.weak.expect
index 18b095f..88d5e02 100644
--- a/pkg/front_end/testcases/rasta/import_export.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/import_export.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "foo.dart" as foo;
 
@@ -8,7 +8,7 @@
   foo::foo();
 }
 
-library export;
+library export /*isNonNullableByDefault*/;
 import self as self2;
 import "foo.dart" as foo;
 additionalExports = (foo::foo)
@@ -16,7 +16,7 @@
 export "org-dartlang-testcase:///foo.dart";
 
 
-library foo;
+library foo /*isNonNullableByDefault*/;
 import self as foo;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/import_export.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/import_export.dart.weak.modular.expect
index 18b095f..88d5e02 100644
--- a/pkg/front_end/testcases/rasta/import_export.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/import_export.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "foo.dart" as foo;
 
@@ -8,7 +8,7 @@
   foo::foo();
 }
 
-library export;
+library export /*isNonNullableByDefault*/;
 import self as self2;
 import "foo.dart" as foo;
 additionalExports = (foo::foo)
@@ -16,7 +16,7 @@
 export "org-dartlang-testcase:///foo.dart";
 
 
-library foo;
+library foo /*isNonNullableByDefault*/;
 import self as foo;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/import_export.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/import_export.dart.weak.outline.expect
index 13347c0..8d8a768 100644
--- a/pkg/front_end/testcases/rasta/import_export.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/import_export.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "org-dartlang-testcase:///export.dart";
@@ -6,7 +6,7 @@
 static method main() → dynamic
   ;
 
-library export;
+library export /*isNonNullableByDefault*/;
 import self as self2;
 import "foo.dart" as foo;
 additionalExports = (foo::foo)
@@ -14,7 +14,7 @@
 export "org-dartlang-testcase:///foo.dart";
 
 
-library foo;
+library foo /*isNonNullableByDefault*/;
 import self as foo;
 
 static method foo() → dynamic
diff --git a/pkg/front_end/testcases/rasta/import_export.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/import_export.dart.weak.transformed.expect
index 18b095f..88d5e02 100644
--- a/pkg/front_end/testcases/rasta/import_export.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/import_export.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "foo.dart" as foo;
 
@@ -8,7 +8,7 @@
   foo::foo();
 }
 
-library export;
+library export /*isNonNullableByDefault*/;
 import self as self2;
 import "foo.dart" as foo;
 additionalExports = (foo::foo)
@@ -16,7 +16,7 @@
 export "org-dartlang-testcase:///foo.dart";
 
 
-library foo;
+library foo /*isNonNullableByDefault*/;
 import self as foo;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/issue_000001.dart b/pkg/front_end/testcases/rasta/issue_000001.dart
index 0be82f7..6142ebc 100644
--- a/pkg/front_end/testcases/rasta/issue_000001.dart
+++ b/pkg/front_end/testcases/rasta/issue_000001.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.md file.
-// @dart=2.9
+
 test0(x) {
   print('test0');
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000001.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000001.dart.textual_outline.expect
index 17aaaa5..e580ef6 100644
--- a/pkg/front_end/testcases/rasta/issue_000001.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000001.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 test0(x) {}
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000001.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000001.dart.textual_outline_modelled.expect
index d9163bd..246dbef 100644
--- a/pkg/front_end/testcases/rasta/issue_000001.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000001.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
 test0(x) {}
diff --git a/pkg/front_end/testcases/rasta/issue_000001.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000001.dart.weak.expect
index aa235f1..53ebe7b 100644
--- a/pkg/front_end/testcases/rasta/issue_000001.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000001.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000001.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000001.dart.weak.modular.expect
index aa235f1..53ebe7b 100644
--- a/pkg/front_end/testcases/rasta/issue_000001.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000001.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000001.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000001.dart.weak.outline.expect
index 2a30a05..28f547f 100644
--- a/pkg/front_end/testcases/rasta/issue_000001.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000001.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method test0(dynamic x) → dynamic
diff --git a/pkg/front_end/testcases/rasta/issue_000001.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000001.dart.weak.transformed.expect
index aa235f1..53ebe7b 100644
--- a/pkg/front_end/testcases/rasta/issue_000001.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000001.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000002.dart b/pkg/front_end/testcases/rasta/issue_000002.dart
index 34a90c9..2efd103 100644
--- a/pkg/front_end/testcases/rasta/issue_000002.dart
+++ b/pkg/front_end/testcases/rasta/issue_000002.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.md file.
-// @dart=2.9
+
 import 'dart:typed_data';
 
 import 'package:expect/expect.dart';
diff --git a/pkg/front_end/testcases/rasta/issue_000002.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000002.dart.textual_outline.expect
index a8ba427..e7403ac 100644
--- a/pkg/front_end/testcases/rasta/issue_000002.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000002.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:typed_data';
 import 'package:expect/expect.dart';
 
diff --git a/pkg/front_end/testcases/rasta/issue_000002.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000002.dart.textual_outline_modelled.expect
index f68c6b0..e19be7a 100644
--- a/pkg/front_end/testcases/rasta/issue_000002.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000002.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:typed_data';
 import 'package:expect/expect.dart';
 
diff --git a/pkg/front_end/testcases/rasta/issue_000002.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000002.dart.weak.expect
index 90a6469..23cb171 100644
--- a/pkg/front_end/testcases/rasta/issue_000002.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000002.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;
@@ -9,24 +9,14 @@
 
 class Foo extends core::Object {
   final field dynamic value;
-  constructor •(dynamic value) → self::Foo*
+  constructor •(dynamic value) → self::Foo
     : self::Foo::value = value, super core::Object::•() {}
-  static factory fac(dynamic value) → self::Foo* {
+  static factory fac(dynamic value) → self::Foo {
     return new self::Foo::•(value);
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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::List<core::int*>* list = <core::int*>[1, 2, 3];
+static field core::List<core::int> list = <core::int>[1, 2, 3];
 static method main() → dynamic {
-  exp::Expect::isTrue(typ::Uint8List::fromList(self::list).{core::List::[]}(1){(core::int*) →* core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 2);
-  exp::Expect::isTrue(self::Foo::fac(10).{self::Foo::value}{dynamic} =={core::Object::==}{(core::Object*) →* core::bool*} 10);
+  exp::Expect::isTrue(typ::Uint8List::fromList(self::list).{core::List::[]}(1){(core::int) → core::int} =={core::num::==}{(core::Object) → core::bool} 2);
+  exp::Expect::isTrue(self::Foo::fac(10).{self::Foo::value}{dynamic} =={core::Object::==}{(core::Object) → core::bool} 10);
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000002.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000002.dart.weak.modular.expect
index 90a6469..23cb171 100644
--- a/pkg/front_end/testcases/rasta/issue_000002.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000002.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;
@@ -9,24 +9,14 @@
 
 class Foo extends core::Object {
   final field dynamic value;
-  constructor •(dynamic value) → self::Foo*
+  constructor •(dynamic value) → self::Foo
     : self::Foo::value = value, super core::Object::•() {}
-  static factory fac(dynamic value) → self::Foo* {
+  static factory fac(dynamic value) → self::Foo {
     return new self::Foo::•(value);
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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::List<core::int*>* list = <core::int*>[1, 2, 3];
+static field core::List<core::int> list = <core::int>[1, 2, 3];
 static method main() → dynamic {
-  exp::Expect::isTrue(typ::Uint8List::fromList(self::list).{core::List::[]}(1){(core::int*) →* core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 2);
-  exp::Expect::isTrue(self::Foo::fac(10).{self::Foo::value}{dynamic} =={core::Object::==}{(core::Object*) →* core::bool*} 10);
+  exp::Expect::isTrue(typ::Uint8List::fromList(self::list).{core::List::[]}(1){(core::int) → core::int} =={core::num::==}{(core::Object) → core::bool} 2);
+  exp::Expect::isTrue(self::Foo::fac(10).{self::Foo::value}{dynamic} =={core::Object::==}{(core::Object) → core::bool} 10);
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000002.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000002.dart.weak.outline.expect
index b2a8f85..89ce850 100644
--- a/pkg/front_end/testcases/rasta/issue_000002.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000002.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -7,21 +7,11 @@
 
 class Foo extends core::Object {
   final field dynamic value;
-  constructor •(dynamic value) → self::Foo*
+  constructor •(dynamic value) → self::Foo
     ;
-  static factory fac(dynamic value) → self::Foo*
+  static factory fac(dynamic value) → self::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
 }
-static field core::List<core::int*>* list;
+static field core::List<core::int> list;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/issue_000002.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000002.dart.weak.transformed.expect
index 8a8d79b..d7d84fb 100644
--- a/pkg/front_end/testcases/rasta/issue_000002.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000002.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;
@@ -9,24 +9,14 @@
 
 class Foo extends core::Object {
   final field dynamic value;
-  constructor •(dynamic value) → self::Foo*
+  constructor •(dynamic value) → self::Foo
     : self::Foo::value = value, super core::Object::•() {}
-  static factory fac(dynamic value) → self::Foo* {
+  static factory fac(dynamic value) → self::Foo {
     return new self::Foo::•(value);
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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::List<core::int*>* list = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
+static field core::List<core::int> list = core::_GrowableList::_literal3<core::int>(1, 2, 3);
 static method main() → dynamic {
-  exp::Expect::isTrue(typ::Uint8List::fromList(self::list).{core::List::[]}(1){(core::int*) →* core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 2);
-  exp::Expect::isTrue(self::Foo::fac(10).{self::Foo::value}{dynamic} =={core::Object::==}{(core::Object*) →* core::bool*} 10);
+  exp::Expect::isTrue(typ::Uint8List::fromList(self::list).{core::List::[]}(1){(core::int) → core::int} =={core::num::==}{(core::Object) → core::bool} 2);
+  exp::Expect::isTrue(self::Foo::fac(10).{self::Foo::value}{dynamic} =={core::Object::==}{(core::Object) → core::bool} 10);
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000004.dart b/pkg/front_end/testcases/rasta/issue_000004.dart
index e474361..1585f72 100644
--- a/pkg/front_end/testcases/rasta/issue_000004.dart
+++ b/pkg/front_end/testcases/rasta/issue_000004.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.md file.
-// @dart=2.9
+
 import 'package:expect/expect.dart';
 
 fact4() {
@@ -13,14 +13,14 @@
 }
 
 fact5() {
-  var f = 1, n;
+  int f = 1, n;
   for (n in [1, 2, 3, 4, 5]) {
     f *= n;
   }
   return f;
 }
 
-var global;
+int global = 0;
 fact6() {
   var f = 1;
   for (global in [1, 2, 3, 4, 5, 6]) {
diff --git a/pkg/front_end/testcases/rasta/issue_000004.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000004.dart.textual_outline.expect
index c8f6f17..bd52987 100644
--- a/pkg/front_end/testcases/rasta/issue_000004.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000004.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
 import 'package:expect/expect.dart';
 
 fact4() {}
 fact5() {}
-var global;
+int global = 0;
 fact6() {}
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000004.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000004.dart.textual_outline_modelled.expect
index 92e527e..0ed1798 100644
--- a/pkg/front_end/testcases/rasta/issue_000004.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000004.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
 import 'package:expect/expect.dart';
 
 fact4() {}
 fact5() {}
 fact6() {}
+int global = 0;
 main() {}
-var global;
diff --git a/pkg/front_end/testcases/rasta/issue_000004.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000004.dart.weak.expect
index 8b66203..3ae8ff5 100644
--- a/pkg/front_end/testcases/rasta/issue_000004.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000004.dart.weak.expect
@@ -1,37 +1,37 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "package:expect/expect.dart" as exp;
 
 import "package:expect/expect.dart";
 
-static field dynamic global;
+static field core::int global = 0;
 static method fact4() → dynamic {
-  core::int* f = 1;
-  for (core::int* n in <core::int*>[1, 2, 3, 4]) {
-    f = f.{core::num::*}(n){(core::num*) →* core::int*};
+  core::int f = 1;
+  for (core::int n in <core::int>[1, 2, 3, 4]) {
+    f = f.{core::num::*}(n){(core::num) → core::int};
   }
   return f;
 }
 static method fact5() → dynamic {
-  core::int* f = 1;
-  dynamic n;
-  for (final dynamic #t1 in <dynamic>[1, 2, 3, 4, 5]) {
+  core::int f = 1;
+  core::int n;
+  for (final core::int #t1 in <core::int>[1, 2, 3, 4, 5]) {
     n = #t1;
-    f = f.{core::num::*}(n as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*} as{TypeError} core::int*;
+    f = f.{core::num::*}(n){(core::num) → core::int};
   }
   return f;
 }
 static method fact6() → dynamic {
-  core::int* f = 1;
-  for (final dynamic #t2 in <dynamic>[1, 2, 3, 4, 5, 6]) {
+  core::int f = 1;
+  for (final core::int #t2 in <core::int>[1, 2, 3, 4, 5, 6]) {
     self::global = #t2;
-    f = f.{core::num::*}(self::global as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*} as{TypeError} core::int*;
+    f = f.{core::num::*}(self::global){(core::num) → core::int};
   }
   return f;
 }
 static method main() → dynamic {
-  exp::Expect::isTrue(self::fact4() =={core::Object::==}{(core::Object*) →* core::bool*} 24);
-  exp::Expect::isTrue(self::fact5() =={core::Object::==}{(core::Object*) →* core::bool*} 120);
-  exp::Expect::isTrue(self::fact6() =={core::Object::==}{(core::Object*) →* core::bool*} 720);
+  exp::Expect::isTrue(self::fact4() =={core::Object::==}{(core::Object) → core::bool} 24);
+  exp::Expect::isTrue(self::fact5() =={core::Object::==}{(core::Object) → core::bool} 120);
+  exp::Expect::isTrue(self::fact6() =={core::Object::==}{(core::Object) → core::bool} 720);
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000004.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000004.dart.weak.modular.expect
index 8b66203..3ae8ff5 100644
--- a/pkg/front_end/testcases/rasta/issue_000004.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000004.dart.weak.modular.expect
@@ -1,37 +1,37 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "package:expect/expect.dart" as exp;
 
 import "package:expect/expect.dart";
 
-static field dynamic global;
+static field core::int global = 0;
 static method fact4() → dynamic {
-  core::int* f = 1;
-  for (core::int* n in <core::int*>[1, 2, 3, 4]) {
-    f = f.{core::num::*}(n){(core::num*) →* core::int*};
+  core::int f = 1;
+  for (core::int n in <core::int>[1, 2, 3, 4]) {
+    f = f.{core::num::*}(n){(core::num) → core::int};
   }
   return f;
 }
 static method fact5() → dynamic {
-  core::int* f = 1;
-  dynamic n;
-  for (final dynamic #t1 in <dynamic>[1, 2, 3, 4, 5]) {
+  core::int f = 1;
+  core::int n;
+  for (final core::int #t1 in <core::int>[1, 2, 3, 4, 5]) {
     n = #t1;
-    f = f.{core::num::*}(n as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*} as{TypeError} core::int*;
+    f = f.{core::num::*}(n){(core::num) → core::int};
   }
   return f;
 }
 static method fact6() → dynamic {
-  core::int* f = 1;
-  for (final dynamic #t2 in <dynamic>[1, 2, 3, 4, 5, 6]) {
+  core::int f = 1;
+  for (final core::int #t2 in <core::int>[1, 2, 3, 4, 5, 6]) {
     self::global = #t2;
-    f = f.{core::num::*}(self::global as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*} as{TypeError} core::int*;
+    f = f.{core::num::*}(self::global){(core::num) → core::int};
   }
   return f;
 }
 static method main() → dynamic {
-  exp::Expect::isTrue(self::fact4() =={core::Object::==}{(core::Object*) →* core::bool*} 24);
-  exp::Expect::isTrue(self::fact5() =={core::Object::==}{(core::Object*) →* core::bool*} 120);
-  exp::Expect::isTrue(self::fact6() =={core::Object::==}{(core::Object*) →* core::bool*} 720);
+  exp::Expect::isTrue(self::fact4() =={core::Object::==}{(core::Object) → core::bool} 24);
+  exp::Expect::isTrue(self::fact5() =={core::Object::==}{(core::Object) → core::bool} 120);
+  exp::Expect::isTrue(self::fact6() =={core::Object::==}{(core::Object) → core::bool} 720);
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000004.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000004.dart.weak.outline.expect
index 8358cbc..f460010 100644
--- a/pkg/front_end/testcases/rasta/issue_000004.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000004.dart.weak.outline.expect
@@ -1,9 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
+import "dart:core" as core;
 
 import "package:expect/expect.dart";
 
-static field dynamic global;
+static field core::int global;
 static method fact4() → dynamic
   ;
 static method fact5() → dynamic
diff --git a/pkg/front_end/testcases/rasta/issue_000004.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000004.dart.weak.transformed.expect
index ad7b018..0d637ca 100644
--- a/pkg/front_end/testcases/rasta/issue_000004.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000004.dart.weak.transformed.expect
@@ -1,55 +1,55 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "package:expect/expect.dart" as exp;
 
 import "package:expect/expect.dart";
 
-static field dynamic global;
+static field core::int global = 0;
 static method fact4() → dynamic {
-  core::int* f = 1;
+  core::int f = 1;
   {
-    core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal4<core::int*>(1, 2, 3, 4).{core::Iterable::iterator}{core::Iterator<core::int*>*};
+    core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal4<core::int>(1, 2, 3, 4).{core::Iterable::iterator}{core::Iterator<core::int>};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-      core::int* n = :sync-for-iterator.{core::Iterator::current}{core::int*};
+      core::int n = :sync-for-iterator.{core::Iterator::current}{core::int};
       {
-        f = f.{core::num::*}(n){(core::num*) →* core::int*};
+        f = f.{core::num::*}(n){(core::num) → core::int};
       }
     }
   }
   return f;
 }
 static method fact5() → dynamic {
-  core::int* f = 1;
-  dynamic n;
+  core::int f = 1;
+  core::int n;
   {
-    core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::_literal5<dynamic>(1, 2, 3, 4, 5).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+    core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal5<core::int>(1, 2, 3, 4, 5).{core::Iterable::iterator}{core::Iterator<core::int>};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-      final dynamic #t1 = :sync-for-iterator.{core::Iterator::current}{dynamic};
+      final core::int #t1 = :sync-for-iterator.{core::Iterator::current}{core::int};
       {
         n = #t1;
-        f = f.{core::num::*}(n as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*} as{TypeError} core::int*;
+        f = f.{core::num::*}(n){(core::num) → core::int};
       }
     }
   }
   return f;
 }
 static method fact6() → dynamic {
-  core::int* f = 1;
+  core::int f = 1;
   {
-    core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::_literal6<dynamic>(1, 2, 3, 4, 5, 6).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+    core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal6<core::int>(1, 2, 3, 4, 5, 6).{core::Iterable::iterator}{core::Iterator<core::int>};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-      final dynamic #t2 = :sync-for-iterator.{core::Iterator::current}{dynamic};
+      final core::int #t2 = :sync-for-iterator.{core::Iterator::current}{core::int};
       {
         self::global = #t2;
-        f = f.{core::num::*}(self::global as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*} as{TypeError} core::int*;
+        f = f.{core::num::*}(self::global){(core::num) → core::int};
       }
     }
   }
   return f;
 }
 static method main() → dynamic {
-  exp::Expect::isTrue(self::fact4() =={core::Object::==}{(core::Object*) →* core::bool*} 24);
-  exp::Expect::isTrue(self::fact5() =={core::Object::==}{(core::Object*) →* core::bool*} 120);
-  exp::Expect::isTrue(self::fact6() =={core::Object::==}{(core::Object*) →* core::bool*} 720);
+  exp::Expect::isTrue(self::fact4() =={core::Object::==}{(core::Object) → core::bool} 24);
+  exp::Expect::isTrue(self::fact5() =={core::Object::==}{(core::Object) → core::bool} 120);
+  exp::Expect::isTrue(self::fact6() =={core::Object::==}{(core::Object) → core::bool} 720);
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000006.dart b/pkg/front_end/testcases/rasta/issue_000006.dart
index d06ecc4..8883ac2 100644
--- a/pkg/front_end/testcases/rasta/issue_000006.dart
+++ b/pkg/front_end/testcases/rasta/issue_000006.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.md file.
-// @dart=2.9
+
 var list = [1, 2, 3];
 
 main() {
diff --git a/pkg/front_end/testcases/rasta/issue_000006.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000006.dart.textual_outline.expect
index 8959d6a..c9b955f 100644
--- a/pkg/front_end/testcases/rasta/issue_000006.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000006.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 var list = [1, 2, 3];
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000006.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000006.dart.textual_outline_modelled.expect
index 2e0cfef..ef8eed0 100644
--- a/pkg/front_end/testcases/rasta/issue_000006.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000006.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
 var list = [1, 2, 3];
diff --git a/pkg/front_end/testcases/rasta/issue_000006.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000006.dart.weak.expect
index d8e5d49..5653d16 100644
--- a/pkg/front_end/testcases/rasta/issue_000006.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000006.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static field core::List<core::int*>* list = <core::int*>[1, 2, 3];
+static field core::List<core::int> list = <core::int>[1, 2, 3];
 static method main() → dynamic {
-  self::list.{core::List::add}(1){(core::int*) →* void};
+  self::list.{core::List::add}(1){(core::int) → void};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000006.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000006.dart.weak.modular.expect
index d8e5d49..5653d16 100644
--- a/pkg/front_end/testcases/rasta/issue_000006.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000006.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static field core::List<core::int*>* list = <core::int*>[1, 2, 3];
+static field core::List<core::int> list = <core::int>[1, 2, 3];
 static method main() → dynamic {
-  self::list.{core::List::add}(1){(core::int*) →* void};
+  self::list.{core::List::add}(1){(core::int) → void};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000006.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000006.dart.weak.outline.expect
index 6de5524..46e6941 100644
--- a/pkg/front_end/testcases/rasta/issue_000006.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000006.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static field core::List<core::int*>* list;
+static field core::List<core::int> list;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/issue_000006.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000006.dart.weak.transformed.expect
index f8135d2..bf3446d 100644
--- a/pkg/front_end/testcases/rasta/issue_000006.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000006.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static field core::List<core::int*>* list = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
+static field core::List<core::int> list = core::_GrowableList::_literal3<core::int>(1, 2, 3);
 static method main() → dynamic {
-  self::list.{core::List::add}(1){(core::int*) →* void};
+  self::list.{core::List::add}(1){(core::int) → void};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart b/pkg/front_end/testcases/rasta/issue_000007.dart
index 0bd8c05..9fb1dc0 100644
--- a/pkg/front_end/testcases/rasta/issue_000007.dart
+++ b/pkg/front_end/testcases/rasta/issue_000007.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.md file.
-// @dart=2.9
+
 class Base {}
 
 class Mixin {
diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline.expect
index 4a5bec1..58c40fa 100644
--- a/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Base {}
 
 class Mixin {
diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline_modelled.expect
index 4a5bec1..58c40fa 100644
--- a/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Base {}
 
 class Mixin {
diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.expect
index 6cd1688..12b10a3 100644
--- a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.expect
@@ -1,51 +1,31 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 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
 }
 class Mixin extends core::Object {
-  synthetic constructor •() → self::Mixin*
+  synthetic constructor •() → self::Mixin
     : super core::Object::•()
     ;
   method foo() → dynamic
     return core::print("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
 }
 abstract class _Sub&Base&Mixin = self::Base with self::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Sub&Base&Mixin*
+  synthetic constructor •() → self::_Sub&Base&Mixin
     : super self::Base::•()
     ;
   mixin-super-stub method foo() → dynamic
     return super.{self::Mixin::foo}();
 }
 class Sub extends self::_Sub&Base&Mixin {
-  synthetic constructor •() → self::Sub*
+  synthetic constructor •() → self::Sub
     : super self::_Sub&Base&Mixin::•()
     ;
 }
 static method main() → dynamic {
-  new self::Sub::•().{self::_Sub&Base&Mixin::foo}(){() →* dynamic};
+  new self::Sub::•().{self::_Sub&Base&Mixin::foo}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.modular.expect
index 6cd1688..12b10a3 100644
--- a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.modular.expect
@@ -1,51 +1,31 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 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
 }
 class Mixin extends core::Object {
-  synthetic constructor •() → self::Mixin*
+  synthetic constructor •() → self::Mixin
     : super core::Object::•()
     ;
   method foo() → dynamic
     return core::print("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
 }
 abstract class _Sub&Base&Mixin = self::Base with self::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Sub&Base&Mixin*
+  synthetic constructor •() → self::_Sub&Base&Mixin
     : super self::Base::•()
     ;
   mixin-super-stub method foo() → dynamic
     return super.{self::Mixin::foo}();
 }
 class Sub extends self::_Sub&Base&Mixin {
-  synthetic constructor •() → self::Sub*
+  synthetic constructor •() → self::Sub
     : super self::_Sub&Base&Mixin::•()
     ;
 }
 static method main() → dynamic {
-  new self::Sub::•().{self::_Sub&Base&Mixin::foo}(){() →* dynamic};
+  new self::Sub::•().{self::_Sub&Base&Mixin::foo}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.outline.expect
index f7c2600..f29bfaf 100644
--- a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.outline.expect
@@ -1,46 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 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
 }
 class Mixin extends core::Object {
-  synthetic constructor •() → self::Mixin*
+  synthetic constructor •() → self::Mixin
     ;
   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
 }
 abstract class _Sub&Base&Mixin = self::Base with self::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Sub&Base&Mixin*
+  synthetic constructor •() → self::_Sub&Base&Mixin
     : super self::Base::•()
     ;
   mixin-super-stub method foo() → dynamic
     return super.{self::Mixin::foo}();
 }
 class Sub extends self::_Sub&Base&Mixin {
-  synthetic constructor •() → self::Sub*
+  synthetic constructor •() → self::Sub
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.transformed.expect
index ed3512d..2e27be4 100644
--- a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.transformed.expect
@@ -1,51 +1,31 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 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
 }
 class Mixin extends core::Object {
-  synthetic constructor •() → self::Mixin*
+  synthetic constructor •() → self::Mixin
     : super core::Object::•()
     ;
   method foo() → dynamic
     return core::print("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
 }
 abstract class _Sub&Base&Mixin extends self::Base implements self::Mixin /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Sub&Base&Mixin*
+  synthetic constructor •() → self::_Sub&Base&Mixin
     : super self::Base::•()
     ;
   method foo() → dynamic
     return core::print("foo");
 }
 class Sub extends self::_Sub&Base&Mixin {
-  synthetic constructor •() → self::Sub*
+  synthetic constructor •() → self::Sub
     : super self::_Sub&Base&Mixin::•()
     ;
 }
 static method main() → dynamic {
-  new self::Sub::•().{self::_Sub&Base&Mixin::foo}(){() →* dynamic};
+  new self::Sub::•().{self::_Sub&Base&Mixin::foo}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000008.dart b/pkg/front_end/testcases/rasta/issue_000008.dart
index 0ca95b7..b9f1f6e 100644
--- a/pkg/front_end/testcases/rasta/issue_000008.dart
+++ b/pkg/front_end/testcases/rasta/issue_000008.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.md file.
-// @dart=2.9
+
 class C {
   final x;
   C(this.x);
diff --git a/pkg/front_end/testcases/rasta/issue_000008.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000008.dart.textual_outline.expect
index c38e23a..7c1de3a 100644
--- a/pkg/front_end/testcases/rasta/issue_000008.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000008.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   final x;
   C(this.x);
diff --git a/pkg/front_end/testcases/rasta/issue_000008.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000008.dart.textual_outline_modelled.expect
index daa996e..2a92244 100644
--- a/pkg/front_end/testcases/rasta/issue_000008.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000008.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   C(this.x);
   final x;
diff --git a/pkg/front_end/testcases/rasta/issue_000008.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000008.dart.weak.expect
index c1f058b..f585be1 100644
--- a/pkg/front_end/testcases/rasta/issue_000008.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000008.dart.weak.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   final field dynamic x;
-  constructor •(dynamic x) → self::C*
+  constructor •(dynamic x) → self::C
     : self::C::x = 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 main() → dynamic {
   new self::C::•(42);
diff --git a/pkg/front_end/testcases/rasta/issue_000008.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000008.dart.weak.modular.expect
index c1f058b..f585be1 100644
--- a/pkg/front_end/testcases/rasta/issue_000008.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000008.dart.weak.modular.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   final field dynamic x;
-  constructor •(dynamic x) → self::C*
+  constructor •(dynamic x) → self::C
     : self::C::x = 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 main() → dynamic {
   new self::C::•(42);
diff --git a/pkg/front_end/testcases/rasta/issue_000008.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000008.dart.weak.outline.expect
index f35d398..a050e5d 100644
--- a/pkg/front_end/testcases/rasta/issue_000008.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000008.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   final field dynamic x;
-  constructor •(dynamic x) → self::C*
+  constructor •(dynamic x) → 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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/issue_000008.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000008.dart.weak.transformed.expect
index c1f058b..f585be1 100644
--- a/pkg/front_end/testcases/rasta/issue_000008.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000008.dart.weak.transformed.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   final field dynamic x;
-  constructor •(dynamic x) → self::C*
+  constructor •(dynamic x) → self::C
     : self::C::x = 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 main() → dynamic {
   new self::C::•(42);
diff --git a/pkg/front_end/testcases/rasta/issue_000011.dart b/pkg/front_end/testcases/rasta/issue_000011.dart
index f50870b..26790da 100644
--- a/pkg/front_end/testcases/rasta/issue_000011.dart
+++ b/pkg/front_end/testcases/rasta/issue_000011.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.md file.
-// @dart=2.9
+
 main() {
   try {
     print(42);
diff --git a/pkg/front_end/testcases/rasta/issue_000011.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000011.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/issue_000011.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000011.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000011.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000011.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/issue_000011.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000011.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000011.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000011.dart.weak.expect
index aa88a42..ad35f83 100644
--- a/pkg/front_end/testcases/rasta/issue_000011.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000011.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/issue_000011.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000011.dart.weak.modular.expect
index aa88a42..ad35f83 100644
--- a/pkg/front_end/testcases/rasta/issue_000011.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000011.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/issue_000011.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000011.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/rasta/issue_000011.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000011.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/rasta/issue_000011.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000011.dart.weak.transformed.expect
index aa88a42..ad35f83 100644
--- a/pkg/front_end/testcases/rasta/issue_000011.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000011.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/issue_000012.dart b/pkg/front_end/testcases/rasta/issue_000012.dart
index 67306bb..94fdd2f 100644
--- a/pkg/front_end/testcases/rasta/issue_000012.dart
+++ b/pkg/front_end/testcases/rasta/issue_000012.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.md file.
-// @dart=2.9
+
 class A {
   var field;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000012.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000012.dart.textual_outline.expect
index 3787983..fe1927c 100644
--- a/pkg/front_end/testcases/rasta/issue_000012.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000012.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   var field;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000012.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000012.dart.textual_outline_modelled.expect
index 3787983..fe1927c 100644
--- a/pkg/front_end/testcases/rasta/issue_000012.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000012.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   var field;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000012.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000012.dart.weak.expect
index e6e3429..3f9e7ae 100644
--- a/pkg/front_end/testcases/rasta/issue_000012.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000012.dart.weak.expect
@@ -1,25 +1,15 @@
-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 self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
   method m() → dynamic {
@@ -27,5 +17,5 @@
   }
 }
 static method main() → dynamic {
-  new self::B::•().{self::B::m}(){() →* dynamic};
+  new self::B::•().{self::B::m}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000012.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000012.dart.weak.modular.expect
index e6e3429..3f9e7ae 100644
--- a/pkg/front_end/testcases/rasta/issue_000012.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000012.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-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 self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
   method m() → dynamic {
@@ -27,5 +17,5 @@
   }
 }
 static method main() → dynamic {
-  new self::B::•().{self::B::m}(){() →* dynamic};
+  new self::B::•().{self::B::m}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000012.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000012.dart.weak.outline.expect
index 18b7dde..22194a7 100644
--- a/pkg/front_end/testcases/rasta/issue_000012.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000012.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 {
   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 self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
   method m() → dynamic
     ;
diff --git a/pkg/front_end/testcases/rasta/issue_000012.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000012.dart.weak.transformed.expect
index e6e3429..3f9e7ae 100644
--- a/pkg/front_end/testcases/rasta/issue_000012.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000012.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-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 self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
   method m() → dynamic {
@@ -27,5 +17,5 @@
   }
 }
 static method main() → dynamic {
-  new self::B::•().{self::B::m}(){() →* dynamic};
+  new self::B::•().{self::B::m}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000025.dart b/pkg/front_end/testcases/rasta/issue_000025.dart
index 097e12d..8c02ddb 100644
--- a/pkg/front_end/testcases/rasta/issue_000025.dart
+++ b/pkg/front_end/testcases/rasta/issue_000025.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.md file.
-// @dart=2.9
+
 get x => 42;
 set x(val) {}
 
diff --git a/pkg/front_end/testcases/rasta/issue_000025.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000025.dart.textual_outline.expect
index 0b87ccc..b31966b 100644
--- a/pkg/front_end/testcases/rasta/issue_000025.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000025.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 get x => 42;
 set x(val) {}
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000025.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000025.dart.textual_outline_modelled.expect
index 3267a7f..58187fc 100644
--- a/pkg/front_end/testcases/rasta/issue_000025.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000025.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 get x => 42;
 main() {}
 set x(val) {}
diff --git a/pkg/front_end/testcases/rasta/issue_000025.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000025.dart.weak.expect
index 3be7ccc..b55303b 100644
--- a/pkg/front_end/testcases/rasta/issue_000025.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000025.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/issue_000025.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000025.dart.weak.modular.expect
index 3be7ccc..b55303b 100644
--- a/pkg/front_end/testcases/rasta/issue_000025.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000025.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/issue_000025.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000025.dart.weak.outline.expect
index 8ee979d..be9171d1 100644
--- a/pkg/front_end/testcases/rasta/issue_000025.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000025.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static get x() → dynamic
diff --git a/pkg/front_end/testcases/rasta/issue_000025.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000025.dart.weak.transformed.expect
index 3be7ccc..b55303b 100644
--- a/pkg/front_end/testcases/rasta/issue_000025.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000025.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/issue_000026.dart b/pkg/front_end/testcases/rasta/issue_000026.dart
index 9d52a39..dcf3b43 100644
--- a/pkg/front_end/testcases/rasta/issue_000026.dart
+++ b/pkg/front_end/testcases/rasta/issue_000026.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.md file.
-// @dart=2.9
+
 class C {
   var a;
   var b = 0;
diff --git a/pkg/front_end/testcases/rasta/issue_000026.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000026.dart.textual_outline.expect
index ffc5b40..3c6152d 100644
--- a/pkg/front_end/testcases/rasta/issue_000026.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000026.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   var a;
   var b = 0;
diff --git a/pkg/front_end/testcases/rasta/issue_000026.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000026.dart.textual_outline_modelled.expect
index 4d3f76d..ae0f47e 100644
--- a/pkg/front_end/testcases/rasta/issue_000026.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000026.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   var a;
   var b = 0;
diff --git a/pkg/front_end/testcases/rasta/issue_000026.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000026.dart.weak.expect
index 9e127fd..7577b11 100644
--- a/pkg/front_end/testcases/rasta/issue_000026.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000026.dart.weak.expect
@@ -1,42 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic a = null;
-  field core::int* b = 0;
-  field core::int* c = 1.{core::num::+}(2){(core::num*) →* core::int*};
-  synthetic constructor •() → self::C*
+  field core::int b = 0;
+  field core::int c = 1.{core::num::+}(2){(core::num) → core::int};
+  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
 }
 class D extends core::Object {
   field dynamic a = null;
-  field core::int* b = 1;
-  field core::int* c = 2.{core::num::-}(3){(core::num*) →* core::int*};
-  constructor •() → self::D*
+  field core::int b = 1;
+  field core::int c = 2.{core::num::-}(3){(core::num) → core::int};
+  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 {
   new self::C::•();
diff --git a/pkg/front_end/testcases/rasta/issue_000026.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000026.dart.weak.modular.expect
index 9e127fd..7577b11 100644
--- a/pkg/front_end/testcases/rasta/issue_000026.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000026.dart.weak.modular.expect
@@ -1,42 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic a = null;
-  field core::int* b = 0;
-  field core::int* c = 1.{core::num::+}(2){(core::num*) →* core::int*};
-  synthetic constructor •() → self::C*
+  field core::int b = 0;
+  field core::int c = 1.{core::num::+}(2){(core::num) → core::int};
+  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
 }
 class D extends core::Object {
   field dynamic a = null;
-  field core::int* b = 1;
-  field core::int* c = 2.{core::num::-}(3){(core::num*) →* core::int*};
-  constructor •() → self::D*
+  field core::int b = 1;
+  field core::int c = 2.{core::num::-}(3){(core::num) → core::int};
+  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 {
   new self::C::•();
diff --git a/pkg/front_end/testcases/rasta/issue_000026.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000026.dart.weak.outline.expect
index 4861c8a..7f86875 100644
--- a/pkg/front_end/testcases/rasta/issue_000026.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000026.dart.weak.outline.expect
@@ -1,40 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic a;
-  field core::int* b;
-  field core::int* c;
-  synthetic constructor •() → self::C*
+  field core::int b;
+  field core::int 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
 }
 class D extends core::Object {
   field dynamic a;
-  field core::int* b;
-  field core::int* c;
-  constructor •() → self::D*
+  field core::int b;
+  field core::int c;
+  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/rasta/issue_000026.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000026.dart.weak.transformed.expect
index d859b4b..5e86202 100644
--- a/pkg/front_end/testcases/rasta/issue_000026.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000026.dart.weak.transformed.expect
@@ -1,42 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic a = null;
-  field core::int* b = 0;
-  field core::int* c = 1.{core::num::+}(2){(core::num*) →* core::int*};
-  synthetic constructor •() → self::C*
+  field core::int b = 0;
+  field core::int c = 1.{core::num::+}(2){(core::num) → core::int};
+  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
 }
 class D extends core::Object {
   field dynamic a = null;
-  field core::int* b = 1;
-  field core::int* c = 2.{core::num::-}(3){(core::num*) →* core::int*};
-  constructor •() → self::D*
+  field core::int b = 1;
+  field core::int c = 2.{core::num::-}(3){(core::num) → core::int};
+  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 {
   new self::C::•();
diff --git a/pkg/front_end/testcases/rasta/issue_000031.dart b/pkg/front_end/testcases/rasta/issue_000031.dart
index 4273c8c..9f6f91a 100644
--- a/pkg/front_end/testcases/rasta/issue_000031.dart
+++ b/pkg/front_end/testcases/rasta/issue_000031.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.md file.
-// @dart=2.9
+
 import 'dart:math' as math;
 
 main() {
diff --git a/pkg/front_end/testcases/rasta/issue_000031.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000031.dart.textual_outline.expect
index 95f0aa9..1123642 100644
--- a/pkg/front_end/testcases/rasta/issue_000031.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000031.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:math' as math;
 
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000031.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000031.dart.textual_outline_modelled.expect
index 95f0aa9..1123642 100644
--- a/pkg/front_end/testcases/rasta/issue_000031.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000031.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:math' as math;
 
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000031.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000031.dart.weak.expect
index 5147d08..221e303 100644
--- a/pkg/front_end/testcases/rasta/issue_000031.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000031.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,6 +15,6 @@
   let final invalid-type #t1 = invalid-expression "pkg/front_end/testcases/rasta/issue_000031.dart:8:3: Error: A prefix can't be used as an expression.
   math..toString();
   ^^^^" in block {
-    #t1.{core::Object::toString}(){() →* core::String*};
+    #t1.{core::Object::toString}(){() → core::String};
   } =>#t1;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000031.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000031.dart.weak.modular.expect
index 5147d08..221e303 100644
--- a/pkg/front_end/testcases/rasta/issue_000031.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000031.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,6 +15,6 @@
   let final invalid-type #t1 = invalid-expression "pkg/front_end/testcases/rasta/issue_000031.dart:8:3: Error: A prefix can't be used as an expression.
   math..toString();
   ^^^^" in block {
-    #t1.{core::Object::toString}(){() →* core::String*};
+    #t1.{core::Object::toString}(){() → core::String};
   } =>#t1;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000031.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000031.dart.weak.outline.expect
index d5e36cb..0458ad3 100644
--- a/pkg/front_end/testcases/rasta/issue_000031.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000031.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "dart:math" as math;
diff --git a/pkg/front_end/testcases/rasta/issue_000031.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000031.dart.weak.transformed.expect
index 5147d08..221e303 100644
--- a/pkg/front_end/testcases/rasta/issue_000031.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000031.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,6 +15,6 @@
   let final invalid-type #t1 = invalid-expression "pkg/front_end/testcases/rasta/issue_000031.dart:8:3: Error: A prefix can't be used as an expression.
   math..toString();
   ^^^^" in block {
-    #t1.{core::Object::toString}(){() →* core::String*};
+    #t1.{core::Object::toString}(){() → core::String};
   } =>#t1;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000032.dart b/pkg/front_end/testcases/rasta/issue_000032.dart
index 5273c43..21222e2 100644
--- a/pkg/front_end/testcases/rasta/issue_000032.dart
+++ b/pkg/front_end/testcases/rasta/issue_000032.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.md file.
-// @dart=2.9
+
 class C {
   C<
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000032.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000032.dart.textual_outline.expect
index 8be752c..8c48c6f 100644
--- a/pkg/front_end/testcases/rasta/issue_000032.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000032.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   C< >;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000032.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000032.dart.weak.expect
index a34f230..0d93c8b3 100644
--- a/pkg/front_end/testcases/rasta/issue_000032.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000032.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -34,19 +34,9 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/rasta/issue_000032.dart:10:4: Error: The operator '<' isn't defined for the class 'Type'.
diff --git a/pkg/front_end/testcases/rasta/issue_000032.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000032.dart.weak.modular.expect
index a34f230..0d93c8b3 100644
--- a/pkg/front_end/testcases/rasta/issue_000032.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000032.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -34,19 +34,9 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/rasta/issue_000032.dart:10:4: Error: The operator '<' isn't defined for the class 'Type'.
diff --git a/pkg/front_end/testcases/rasta/issue_000032.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000032.dart.weak.outline.expect
index dcaeb52..21a0e79 100644
--- a/pkg/front_end/testcases/rasta/issue_000032.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000032.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,18 +19,8 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/issue_000032.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000032.dart.weak.transformed.expect
index a34f230..0d93c8b3 100644
--- a/pkg/front_end/testcases/rasta/issue_000032.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000032.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -34,19 +34,9 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/rasta/issue_000032.dart:10:4: Error: The operator '<' isn't defined for the class 'Type'.
diff --git a/pkg/front_end/testcases/rasta/issue_000033.dart b/pkg/front_end/testcases/rasta/issue_000033.dart
index 233fde8..ddb9866 100644
--- a/pkg/front_end/testcases/rasta/issue_000033.dart
+++ b/pkg/front_end/testcases/rasta/issue_000033.dart
@@ -1,6 +1,6 @@
 // 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.md file.
-// @dart=2.9
+
 @JS()
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000033.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000033.dart.textual_outline.expect
index c9a4e6c..c4716a7 100644
--- a/pkg/front_end/testcases/rasta/issue_000033.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000033.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 @JS()
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000033.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000033.dart.textual_outline_modelled.expect
index c9a4e6c..c4716a7 100644
--- a/pkg/front_end/testcases/rasta/issue_000033.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000033.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 @JS()
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000033.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000033.dart.weak.expect
index e288dc4..52b177c 100644
--- a/pkg/front_end/testcases/rasta/issue_000033.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000033.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000033.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000033.dart.weak.modular.expect
index e288dc4..52b177c 100644
--- a/pkg/front_end/testcases/rasta/issue_000033.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000033.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000033.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000033.dart.weak.outline.expect
index e0207cf..f57a3a2 100644
--- a/pkg/front_end/testcases/rasta/issue_000033.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000033.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000033.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000033.dart.weak.transformed.expect
index e288dc4..52b177c 100644
--- a/pkg/front_end/testcases/rasta/issue_000033.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000033.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000034.dart b/pkg/front_end/testcases/rasta/issue_000034.dart
index f242534..88fad1f 100644
--- a/pkg/front_end/testcases/rasta/issue_000034.dart
+++ b/pkg/front_end/testcases/rasta/issue_000034.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.md file.
-// @dart=2.9
+
 class C {
   const C() : this.x;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000034.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000034.dart.textual_outline.expect
index 3408df8..12b9472 100644
--- a/pkg/front_end/testcases/rasta/issue_000034.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000034.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   const C() : =this.x;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000034.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000034.dart.weak.expect
index 58227f9..818d255 100644
--- a/pkg/front_end/testcases/rasta/issue_000034.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000034.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,21 +15,11 @@
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::C*
+  const constructor •() → self::C
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/issue_000034.dart:6:15: Error: This couldn't be parsed.
   const C() : this.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 main() → dynamic {
   invalid-expression "pkg/front_end/testcases/rasta/issue_000034.dart:6:15: Error: This couldn't be parsed.
diff --git a/pkg/front_end/testcases/rasta/issue_000034.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000034.dart.weak.modular.expect
index 58227f9..818d255 100644
--- a/pkg/front_end/testcases/rasta/issue_000034.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000034.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,21 +15,11 @@
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::C*
+  const constructor •() → self::C
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/issue_000034.dart:6:15: Error: This couldn't be parsed.
   const C() : this.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 main() → dynamic {
   invalid-expression "pkg/front_end/testcases/rasta/issue_000034.dart:6:15: Error: This couldn't be parsed.
diff --git a/pkg/front_end/testcases/rasta/issue_000034.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000034.dart.weak.outline.expect
index 6d1c18f..1121d5a 100644
--- a/pkg/front_end/testcases/rasta/issue_000034.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000034.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,21 +15,11 @@
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::C*
+  const constructor •() → self::C
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/issue_000034.dart:6:15: Error: This couldn't be parsed.
   const C() : this.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 main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/issue_000034.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000034.dart.weak.transformed.expect
index 58227f9..818d255 100644
--- a/pkg/front_end/testcases/rasta/issue_000034.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000034.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,21 +15,11 @@
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::C*
+  const constructor •() → self::C
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/issue_000034.dart:6:15: Error: This couldn't be parsed.
   const C() : this.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 main() → dynamic {
   invalid-expression "pkg/front_end/testcases/rasta/issue_000034.dart:6:15: Error: This couldn't be parsed.
diff --git a/pkg/front_end/testcases/rasta/issue_000035.dart b/pkg/front_end/testcases/rasta/issue_000035.dart
index 3893075..e3c51c1 100644
--- a/pkg/front_end/testcases/rasta/issue_000035.dart
+++ b/pkg/front_end/testcases/rasta/issue_000035.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.md file.
-// @dart=2.9
+
 class C {æøC();}
 
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000035.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000035.dart.weak.expect
index d27cbe4..6712b01 100644
--- a/pkg/front_end/testcases/rasta/issue_000035.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000035.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -30,19 +30,9 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   abstract method æøC() → 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/rasta/issue_000035.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000035.dart.weak.modular.expect
index d27cbe4..6712b01 100644
--- a/pkg/front_end/testcases/rasta/issue_000035.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000035.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -30,19 +30,9 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   abstract method æøC() → 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/rasta/issue_000035.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000035.dart.weak.outline.expect
index 69b6538..8715907 100644
--- a/pkg/front_end/testcases/rasta/issue_000035.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000035.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -30,19 +30,9 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
   abstract method æøC() → 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/rasta/issue_000035.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000035.dart.weak.transformed.expect
index d27cbe4..6712b01 100644
--- a/pkg/front_end/testcases/rasta/issue_000035.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000035.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -30,19 +30,9 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   abstract method æøC() → 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/rasta/issue_000035a.dart b/pkg/front_end/testcases/rasta/issue_000035a.dart
index cc8eddb..1e6c8e4 100644
--- a/pkg/front_end/testcases/rasta/issue_000035a.dart
+++ b/pkg/front_end/testcases/rasta/issue_000035a.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.md file.
-// @dart=2.9
+
 class C{

C();}
 
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.expect
index ffef0ea..796f231 100644
--- a/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,18 +14,8 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor •() → self::C*
+  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
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.modular.expect
index ffef0ea..796f231 100644
--- a/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,18 +14,8 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor •() → self::C*
+  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
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.outline.expect
index 3550e41..d07a47b 100644
--- a/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,18 +14,8 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor •() → self::C*
+  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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.transformed.expect
index ffef0ea..796f231 100644
--- a/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000035a.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,18 +14,8 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor •() → self::C*
+  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
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/rasta/issue_000036.dart b/pkg/front_end/testcases/rasta/issue_000036.dart
index 5217d54..9f7e17f 100644
--- a/pkg/front_end/testcases/rasta/issue_000036.dart
+++ b/pkg/front_end/testcases/rasta/issue_000036.dart
@@ -1,5 +1,5 @@
 // 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.md file.
-// @dart=2.9
+
 main() => a. - 5;
diff --git a/pkg/front_end/testcases/rasta/issue_000036.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000036.dart.textual_outline.expect
index e61fbfe..603c715 100644
--- a/pkg/front_end/testcases/rasta/issue_000036.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000036.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() => a. - 5;
diff --git a/pkg/front_end/testcases/rasta/issue_000036.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000036.dart.weak.expect
index 255d67d..70b1c4c 100644
--- a/pkg/front_end/testcases/rasta/issue_000036.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000036.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000036.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000036.dart.weak.modular.expect
index 255d67d..70b1c4c 100644
--- a/pkg/front_end/testcases/rasta/issue_000036.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000036.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000036.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000036.dart.weak.outline.expect
index 9e8c916..3caf03b 100644
--- a/pkg/front_end/testcases/rasta/issue_000036.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000036.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000036.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000036.dart.weak.transformed.expect
index 255d67d..70b1c4c 100644
--- a/pkg/front_end/testcases/rasta/issue_000036.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000036.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000039.dart b/pkg/front_end/testcases/rasta/issue_000039.dart
index d3f4e5c..f9a8f85 100644
--- a/pkg/front_end/testcases/rasta/issue_000039.dart
+++ b/pkg/front_end/testcases/rasta/issue_000039.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.md file.
-// @dart=2.9
+
 class A {
   var a;
 
diff --git a/pkg/front_end/testcases/rasta/issue_000039.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000039.dart.textual_outline.expect
index c91fa1a..823e1c7 100644
--- a/pkg/front_end/testcases/rasta/issue_000039.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000039.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   var a;
   A(x) {}
diff --git a/pkg/front_end/testcases/rasta/issue_000039.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000039.dart.textual_outline_modelled.expect
index 1b4ac50..ab5d564 100644
--- a/pkg/front_end/testcases/rasta/issue_000039.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000039.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A(x) {}
   var a;
diff --git a/pkg/front_end/testcases/rasta/issue_000039.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000039.dart.weak.expect
index 289c890..6e1de49 100644
--- a/pkg/front_end/testcases/rasta/issue_000039.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000039.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -25,26 +25,16 @@
 
 class A extends core::Object {
   field dynamic a = null;
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → self::A
     : super core::Object::•() {
     this.{self::A::a} = invalid-expression "pkg/front_end/testcases/rasta/issue_000039.dart:10:3: Error: Expected an identifier, but got ''.
 Try inserting an identifier before ''.
   }
   ^";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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
     : invalid-initializer
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000039.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000039.dart.weak.modular.expect
index 289c890..6e1de49 100644
--- a/pkg/front_end/testcases/rasta/issue_000039.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000039.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -25,26 +25,16 @@
 
 class A extends core::Object {
   field dynamic a = null;
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → self::A
     : super core::Object::•() {
     this.{self::A::a} = invalid-expression "pkg/front_end/testcases/rasta/issue_000039.dart:10:3: Error: Expected an identifier, but got ''.
 Try inserting an identifier before ''.
   }
   ^";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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
     : invalid-initializer
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000039.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000039.dart.weak.outline.expect
index b14371b..dfebb22 100644
--- a/pkg/front_end/testcases/rasta/issue_000039.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000039.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
   field dynamic a;
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → 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 self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000039.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000039.dart.weak.transformed.expect
index 289c890..6e1de49 100644
--- a/pkg/front_end/testcases/rasta/issue_000039.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000039.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -25,26 +25,16 @@
 
 class A extends core::Object {
   field dynamic a = null;
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → self::A
     : super core::Object::•() {
     this.{self::A::a} = invalid-expression "pkg/front_end/testcases/rasta/issue_000039.dart:10:3: Error: Expected an identifier, but got ''.
 Try inserting an identifier before ''.
   }
   ^";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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
     : invalid-initializer
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000041.dart b/pkg/front_end/testcases/rasta/issue_000041.dart
index daa1552..4035fd7 100644
--- a/pkg/front_end/testcases/rasta/issue_000041.dart
+++ b/pkg/front_end/testcases/rasta/issue_000041.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.md file.
-// @dart=2.9
+
 class C {
   test() {
     use(+super);
diff --git a/pkg/front_end/testcases/rasta/issue_000041.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000041.dart.textual_outline.expect
index 84a5be7..0690e46 100644
--- a/pkg/front_end/testcases/rasta/issue_000041.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000041.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   test() {}
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000041.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000041.dart.textual_outline_modelled.expect
index cb89a89..57013ed 100644
--- a/pkg/front_end/testcases/rasta/issue_000041.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000041.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   test() {}
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000041.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000041.dart.weak.expect
index 2026340..5861f1a 100644
--- a/pkg/front_end/testcases/rasta/issue_000041.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000041.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,7 +16,7 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   method test() → dynamic {
@@ -27,19 +27,9 @@
     use(+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
 }
 static method use(dynamic _) → dynamic
   return null;
 static method main() → dynamic {
-  new self::C::•().{self::C::test}(){() →* dynamic};
+  new self::C::•().{self::C::test}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000041.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000041.dart.weak.modular.expect
index 2026340..5861f1a 100644
--- a/pkg/front_end/testcases/rasta/issue_000041.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000041.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,7 +16,7 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   method test() → dynamic {
@@ -27,19 +27,9 @@
     use(+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
 }
 static method use(dynamic _) → dynamic
   return null;
 static method main() → dynamic {
-  new self::C::•().{self::C::test}(){() →* dynamic};
+  new self::C::•().{self::C::test}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000041.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000041.dart.weak.outline.expect
index a6f1d9e..3c8fc9d 100644
--- a/pkg/front_end/testcases/rasta/issue_000041.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000041.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
     ;
   method test() → 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 use(dynamic _) → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/issue_000041.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000041.dart.weak.transformed.expect
index 2026340..5861f1a 100644
--- a/pkg/front_end/testcases/rasta/issue_000041.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000041.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,7 +16,7 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   method test() → dynamic {
@@ -27,19 +27,9 @@
     use(+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
 }
 static method use(dynamic _) → dynamic
   return null;
 static method main() → dynamic {
-  new self::C::•().{self::C::test}(){() →* dynamic};
+  new self::C::•().{self::C::test}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000042.dart b/pkg/front_end/testcases/rasta/issue_000042.dart
index 22dc017..66893b8 100644
--- a/pkg/front_end/testcases/rasta/issue_000042.dart
+++ b/pkg/front_end/testcases/rasta/issue_000042.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.md file.
-// @dart=2.9
+
 main() {
   for (var x, y in []) {}
   L: { continue L; }
diff --git a/pkg/front_end/testcases/rasta/issue_000042.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000042.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/issue_000042.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000042.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000042.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000042.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/issue_000042.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000042.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000042.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000042.dart.weak.expect
index 2abfb5d..126f745 100644
--- a/pkg/front_end/testcases/rasta/issue_000042.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000042.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -59,7 +59,7 @@
   }
   try {
   }
-  on core::NoSuchMethodError* catch(no-exception-var) {
+  on core::NoSuchMethodError catch(no-exception-var) {
   }
 }
 
diff --git a/pkg/front_end/testcases/rasta/issue_000042.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000042.dart.weak.modular.expect
index 2abfb5d..126f745 100644
--- a/pkg/front_end/testcases/rasta/issue_000042.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000042.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -59,7 +59,7 @@
   }
   try {
   }
-  on core::NoSuchMethodError* catch(no-exception-var) {
+  on core::NoSuchMethodError catch(no-exception-var) {
   }
 }
 
diff --git a/pkg/front_end/testcases/rasta/issue_000042.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000042.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/rasta/issue_000042.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000042.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/rasta/issue_000042.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000042.dart.weak.transformed.expect
index 590cdfe..a324650 100644
--- a/pkg/front_end/testcases/rasta/issue_000042.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000042.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -29,7 +29,7 @@
   for (var x, y 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 #t1 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -65,7 +65,7 @@
   }
   try {
   }
-  on core::NoSuchMethodError* catch(no-exception-var) {
+  on core::NoSuchMethodError catch(no-exception-var) {
   }
 }
 
diff --git a/pkg/front_end/testcases/rasta/issue_000043.dart b/pkg/front_end/testcases/rasta/issue_000043.dart
index 1270b5f..4aed858 100644
--- a/pkg/front_end/testcases/rasta/issue_000043.dart
+++ b/pkg/front_end/testcases/rasta/issue_000043.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.md file.
-// @dart=2.9
+
 class C {
   get x => '$C'.hashCode;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000043.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000043.dart.textual_outline.expect
index 7a44294..6bc9bc7 100644
--- a/pkg/front_end/testcases/rasta/issue_000043.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000043.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   get x => '$C'.hashCode;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000043.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000043.dart.textual_outline_modelled.expect
index 7a44294..6bc9bc7 100644
--- a/pkg/front_end/testcases/rasta/issue_000043.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000043.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   get x => '$C'.hashCode;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000043.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000043.dart.weak.expect
index 0c2f2cb..5bde0a6 100644
--- a/pkg/front_end/testcases/rasta/issue_000043.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000043.dart.weak.expect
@@ -1,23 +1,13 @@
-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::•()
     ;
   get x() → dynamic
-    return "${#C1}".{core::String::hashCode}{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
+    return "${#C1}".{core::String::hashCode}{core::int};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/rasta/issue_000043.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000043.dart.weak.modular.expect
index 0c2f2cb..5bde0a6 100644
--- a/pkg/front_end/testcases/rasta/issue_000043.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000043.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-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::•()
     ;
   get x() → dynamic
-    return "${#C1}".{core::String::hashCode}{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
+    return "${#C1}".{core::String::hashCode}{core::int};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/rasta/issue_000043.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000043.dart.weak.outline.expect
index ecd284d..2e2c331 100644
--- a/pkg/front_end/testcases/rasta/issue_000043.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000043.dart.weak.outline.expect
@@ -1,20 +1,10 @@
-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
     ;
   get 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
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000043.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000043.dart.weak.transformed.expect
index 0c2f2cb..5bde0a6 100644
--- a/pkg/front_end/testcases/rasta/issue_000043.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000043.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-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::•()
     ;
   get x() → dynamic
-    return "${#C1}".{core::String::hashCode}{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
+    return "${#C1}".{core::String::hashCode}{core::int};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/rasta/issue_000044.dart b/pkg/front_end/testcases/rasta/issue_000044.dart
index e89cfc0..cfc938a 100644
--- a/pkg/front_end/testcases/rasta/issue_000044.dart
+++ b/pkg/front_end/testcases/rasta/issue_000044.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.md file.
-// @dart=2.9
+
 // Parse error: but the parser should recover and create something that looks
 // like `a b(c) => d`.
 a b(c) = d;
@@ -22,7 +22,7 @@
 }
 
 main() {
-  C c = null;
+  C? c = null;
   print(const C.constant());
   print(const C.missingFactoryKeyword());
   print(const C.good());
diff --git a/pkg/front_end/testcases/rasta/issue_000044.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000044.dart.textual_outline.expect
index 07b098c..b728ed6 100644
--- a/pkg/front_end/testcases/rasta/issue_000044.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000044.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 a b(c) = d;
 class C {
   const C.constant();
diff --git a/pkg/front_end/testcases/rasta/issue_000044.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000044.dart.weak.expect
index 90f96dd..986d518 100644
--- a/pkg/front_end/testcases/rasta/issue_000044.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000044.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -34,10 +34,6 @@
 //   C.missingFactoryKeyword() = C.constant;
 //                             ^
 //
-// pkg/front_end/testcases/rasta/issue_000044.dart:14:33: Error: Member not found: 'constant'.
-//   C.missingFactoryKeyword() = C.constant;
-//                                 ^^^^^^^^
-//
 // pkg/front_end/testcases/rasta/issue_000044.dart:14:31: Error: Constructors can't have a return type.
 // Try removing the return type.
 //   C.missingFactoryKeyword() = C.constant;
@@ -63,48 +59,38 @@
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  const constructor constant() → self::C*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  const constructor constant() → self::C
     : super core::Object::•()
     ;
-  constructor missingFactoryKeyword() → self::C*
+  constructor missingFactoryKeyword() → self::C
     : super core::Object::•()
     invalid-expression "pkg/front_end/testcases/rasta/issue_000044.dart:14:31: Error: Constructors can't have a return type.
 Try removing the return type.
   C.missingFactoryKeyword() = C.constant;
                               ^";
-  static factory good() → self::C*
+  static factory good() → self::C
     return new self::C::constant();
-  method notEvenAConstructor(dynamic a) → self::C*
+  method notEvenAConstructor(dynamic a) → self::C
     return invalid-expression "pkg/front_end/testcases/rasta/issue_000044.dart:21:30: Error: The getter 'h' isn't defined for the class 'C'.
  - 'C' is from 'pkg/front_end/testcases/rasta/issue_000044.dart'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'h'.
   C notEvenAConstructor(a) = h;
-                             ^" in this{<unresolved>}.h as{TypeError,ForDynamic} 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
+                             ^" in this{<unresolved>}.h as{TypeError,ForDynamic,ForNonNullableByDefault} self::C;
 }
 static method b(dynamic c) → invalid-type
   return invalid-expression "pkg/front_end/testcases/rasta/issue_000044.dart:7:10: Error: Undefined name 'd'.
 a b(c) = d;
          ^";
 static method main() → dynamic {
-  has-declared-initializer self::C* c = null;
+  has-declared-initializer self::C? c = null;
   core::print(#C2);
   core::print(invalid-expression "pkg/front_end/testcases/rasta/issue_000044.dart:27:15: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
 Try using a constructor or factory that is 'const'.
   print(const C.missingFactoryKeyword());
               ^");
   core::print(#C2);
-  core::print(new self::C::constant().{self::C::notEvenAConstructor}(null){(dynamic) →* self::C*});
+  core::print(new self::C::constant().{self::C::notEvenAConstructor}(null){(dynamic) → self::C});
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/rasta/issue_000044.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000044.dart.weak.modular.expect
index 90f96dd..986d518 100644
--- a/pkg/front_end/testcases/rasta/issue_000044.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000044.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -34,10 +34,6 @@
 //   C.missingFactoryKeyword() = C.constant;
 //                             ^
 //
-// pkg/front_end/testcases/rasta/issue_000044.dart:14:33: Error: Member not found: 'constant'.
-//   C.missingFactoryKeyword() = C.constant;
-//                                 ^^^^^^^^
-//
 // pkg/front_end/testcases/rasta/issue_000044.dart:14:31: Error: Constructors can't have a return type.
 // Try removing the return type.
 //   C.missingFactoryKeyword() = C.constant;
@@ -63,48 +59,38 @@
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  const constructor constant() → self::C*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  const constructor constant() → self::C
     : super core::Object::•()
     ;
-  constructor missingFactoryKeyword() → self::C*
+  constructor missingFactoryKeyword() → self::C
     : super core::Object::•()
     invalid-expression "pkg/front_end/testcases/rasta/issue_000044.dart:14:31: Error: Constructors can't have a return type.
 Try removing the return type.
   C.missingFactoryKeyword() = C.constant;
                               ^";
-  static factory good() → self::C*
+  static factory good() → self::C
     return new self::C::constant();
-  method notEvenAConstructor(dynamic a) → self::C*
+  method notEvenAConstructor(dynamic a) → self::C
     return invalid-expression "pkg/front_end/testcases/rasta/issue_000044.dart:21:30: Error: The getter 'h' isn't defined for the class 'C'.
  - 'C' is from 'pkg/front_end/testcases/rasta/issue_000044.dart'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'h'.
   C notEvenAConstructor(a) = h;
-                             ^" in this{<unresolved>}.h as{TypeError,ForDynamic} 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
+                             ^" in this{<unresolved>}.h as{TypeError,ForDynamic,ForNonNullableByDefault} self::C;
 }
 static method b(dynamic c) → invalid-type
   return invalid-expression "pkg/front_end/testcases/rasta/issue_000044.dart:7:10: Error: Undefined name 'd'.
 a b(c) = d;
          ^";
 static method main() → dynamic {
-  has-declared-initializer self::C* c = null;
+  has-declared-initializer self::C? c = null;
   core::print(#C2);
   core::print(invalid-expression "pkg/front_end/testcases/rasta/issue_000044.dart:27:15: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
 Try using a constructor or factory that is 'const'.
   print(const C.missingFactoryKeyword());
               ^");
   core::print(#C2);
-  core::print(new self::C::constant().{self::C::notEvenAConstructor}(null){(dynamic) →* self::C*});
+  core::print(new self::C::constant().{self::C::notEvenAConstructor}(null){(dynamic) → self::C});
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/rasta/issue_000044.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000044.dart.weak.outline.expect
index 19384f6..4d09beb 100644
--- a/pkg/front_end/testcases/rasta/issue_000044.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000044.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -29,26 +29,16 @@
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  static final field dynamic _redirecting# = <dynamic>[self::C::good];
-  const constructor constant() → self::C*
+  static final field dynamic _redirecting# = <dynamic>[self::C::good]/*isLegacy*/;
+  const constructor constant() → self::C
     : super core::Object::•()
     ;
-  constructor missingFactoryKeyword() → self::C*
+  constructor missingFactoryKeyword() → self::C
     ;
-  static factory good() → self::C*
+  static factory good() → self::C
     return new self::C::constant();
-  method notEvenAConstructor(dynamic a) → self::C*
+  method notEvenAConstructor(dynamic a) → 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
 }
 static method b(dynamic c) → invalid-type
   ;
diff --git a/pkg/front_end/testcases/rasta/issue_000044.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000044.dart.weak.transformed.expect
index b9617cd..2578fd4 100644
--- a/pkg/front_end/testcases/rasta/issue_000044.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000044.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -34,10 +34,6 @@
 //   C.missingFactoryKeyword() = C.constant;
 //                             ^
 //
-// pkg/front_end/testcases/rasta/issue_000044.dart:14:33: Error: Member not found: 'constant'.
-//   C.missingFactoryKeyword() = C.constant;
-//                                 ^^^^^^^^
-//
 // pkg/front_end/testcases/rasta/issue_000044.dart:14:31: Error: Constructors can't have a return type.
 // Try removing the return type.
 //   C.missingFactoryKeyword() = C.constant;
@@ -63,48 +59,38 @@
 import "dart:core" as core;
 
 class C extends core::Object /*hasConstConstructor*/  {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  const constructor constant() → self::C*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  const constructor constant() → self::C
     : super core::Object::•()
     ;
-  constructor missingFactoryKeyword() → self::C*
+  constructor missingFactoryKeyword() → self::C
     : super core::Object::•()
     invalid-expression "pkg/front_end/testcases/rasta/issue_000044.dart:14:31: Error: Constructors can't have a return type.
 Try removing the return type.
   C.missingFactoryKeyword() = C.constant;
                               ^";
-  static factory good() → self::C*
+  static factory good() → self::C
     return new self::C::constant();
-  method notEvenAConstructor(dynamic a) → self::C*
+  method notEvenAConstructor(dynamic a) → self::C
     return invalid-expression "pkg/front_end/testcases/rasta/issue_000044.dart:21:30: Error: The getter 'h' isn't defined for the class 'C'.
  - 'C' is from 'pkg/front_end/testcases/rasta/issue_000044.dart'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'h'.
   C notEvenAConstructor(a) = h;
                              ^" in this{<unresolved>}.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
 }
 static method b(dynamic c) → invalid-type
   return invalid-expression "pkg/front_end/testcases/rasta/issue_000044.dart:7:10: Error: Undefined name 'd'.
 a b(c) = d;
          ^";
 static method main() → dynamic {
-  has-declared-initializer self::C* c = null;
+  has-declared-initializer self::C? c = null;
   core::print(#C2);
   core::print(invalid-expression "pkg/front_end/testcases/rasta/issue_000044.dart:27:15: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
 Try using a constructor or factory that is 'const'.
   print(const C.missingFactoryKeyword());
               ^");
   core::print(#C2);
-  core::print(new self::C::constant().{self::C::notEvenAConstructor}(null){(dynamic) →* self::C*});
+  core::print(new self::C::constant().{self::C::notEvenAConstructor}(null){(dynamic) → self::C});
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/rasta/issue_000045.dart b/pkg/front_end/testcases/rasta/issue_000045.dart
index e726ad1..f8c7e61 100644
--- a/pkg/front_end/testcases/rasta/issue_000045.dart
+++ b/pkg/front_end/testcases/rasta/issue_000045.dart
@@ -1,5 +1,5 @@
 // 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.md file.
-// @dart=2.9
+
 main() => """${1}
diff --git a/pkg/front_end/testcases/rasta/issue_000045.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000045.dart.weak.expect
index 2622c42..b429026 100644
--- a/pkg/front_end/testcases/rasta/issue_000045.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000045.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000045.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000045.dart.weak.modular.expect
index 2622c42..b429026 100644
--- a/pkg/front_end/testcases/rasta/issue_000045.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000045.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000045.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000045.dart.weak.outline.expect
index 562267f..7f7be6c 100644
--- a/pkg/front_end/testcases/rasta/issue_000045.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000045.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000045.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000045.dart.weak.transformed.expect
index c9a26da..0efdb30 100644
--- a/pkg/front_end/testcases/rasta/issue_000045.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000045.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/issue_000046.dart b/pkg/front_end/testcases/rasta/issue_000046.dart
index b2b8b58..fe8fc70 100644
--- a/pkg/front_end/testcases/rasta/issue_000046.dart
+++ b/pkg/front_end/testcases/rasta/issue_000046.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.md file.
-// @dart=2.9
+
 class C {
   C c = new Object)();
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000046.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000046.dart.textual_outline.expect
index fe72a78..0b29b47 100644
--- a/pkg/front_end/testcases/rasta/issue_000046.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000046.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   C c = new Object();
   )
diff --git a/pkg/front_end/testcases/rasta/issue_000046.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000046.dart.weak.expect
index 77f4768..e9f6d2e 100644
--- a/pkg/front_end/testcases/rasta/issue_000046.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000046.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,10 +19,9 @@
 //   C c = new Object)();
 //                    ^
 //
-// pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: The constructor returns type 'Object' that isn't of expected type 'C'.
+// pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: A value of type 'Object' can't be assigned to a variable of type 'C'.
 //  - 'Object' is from 'dart:core'.
 //  - 'C' is from 'pkg/front_end/testcases/rasta/issue_000046.dart'.
-// Change the type of the object being constructed or the context in which it is used.
 //   C c = new Object)();
 //             ^
 //
@@ -30,23 +29,12 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  field self::C* c = invalid-expression "pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: The constructor returns type 'Object' that isn't of expected type 'C'.
+  field self::C c = invalid-expression "pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: A value of type 'Object' can't be assigned to a variable of type 'C'.
  - 'Object' is from 'dart:core'.
  - 'C' is from 'pkg/front_end/testcases/rasta/issue_000046.dart'.
-Change the type of the object being constructed or the context in which it is used.
   C c = new Object)();
-            ^" in new core::Object::•();
-  synthetic constructor •() → self::C*
+            ^" in new core::Object::•() as{TypeError,ForNonNullableByDefault} 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
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000046.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000046.dart.weak.modular.expect
index 77f4768..e9f6d2e 100644
--- a/pkg/front_end/testcases/rasta/issue_000046.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000046.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,10 +19,9 @@
 //   C c = new Object)();
 //                    ^
 //
-// pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: The constructor returns type 'Object' that isn't of expected type 'C'.
+// pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: A value of type 'Object' can't be assigned to a variable of type 'C'.
 //  - 'Object' is from 'dart:core'.
 //  - 'C' is from 'pkg/front_end/testcases/rasta/issue_000046.dart'.
-// Change the type of the object being constructed or the context in which it is used.
 //   C c = new Object)();
 //             ^
 //
@@ -30,23 +29,12 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  field self::C* c = invalid-expression "pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: The constructor returns type 'Object' that isn't of expected type 'C'.
+  field self::C c = invalid-expression "pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: A value of type 'Object' can't be assigned to a variable of type 'C'.
  - 'Object' is from 'dart:core'.
  - 'C' is from 'pkg/front_end/testcases/rasta/issue_000046.dart'.
-Change the type of the object being constructed or the context in which it is used.
   C c = new Object)();
-            ^" in new core::Object::•();
-  synthetic constructor •() → self::C*
+            ^" in new core::Object::•() as{TypeError,ForNonNullableByDefault} 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
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000046.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000046.dart.weak.outline.expect
index ef6529e..78eaf36 100644
--- a/pkg/front_end/testcases/rasta/issue_000046.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000046.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -23,17 +23,7 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  field self::C* c;
-  synthetic constructor •() → self::C*
+  field self::C 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
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000046.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000046.dart.weak.transformed.expect
index 77f4768..e9f6d2e 100644
--- a/pkg/front_end/testcases/rasta/issue_000046.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000046.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,10 +19,9 @@
 //   C c = new Object)();
 //                    ^
 //
-// pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: The constructor returns type 'Object' that isn't of expected type 'C'.
+// pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: A value of type 'Object' can't be assigned to a variable of type 'C'.
 //  - 'Object' is from 'dart:core'.
 //  - 'C' is from 'pkg/front_end/testcases/rasta/issue_000046.dart'.
-// Change the type of the object being constructed or the context in which it is used.
 //   C c = new Object)();
 //             ^
 //
@@ -30,23 +29,12 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  field self::C* c = invalid-expression "pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: The constructor returns type 'Object' that isn't of expected type 'C'.
+  field self::C c = invalid-expression "pkg/front_end/testcases/rasta/issue_000046.dart:6:13: Error: A value of type 'Object' can't be assigned to a variable of type 'C'.
  - 'Object' is from 'dart:core'.
  - 'C' is from 'pkg/front_end/testcases/rasta/issue_000046.dart'.
-Change the type of the object being constructed or the context in which it is used.
   C c = new Object)();
-            ^" in new core::Object::•();
-  synthetic constructor •() → self::C*
+            ^" in new core::Object::•() as{TypeError,ForNonNullableByDefault} 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
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000047.dart b/pkg/front_end/testcases/rasta/issue_000047.dart
index b529572..2fbb897 100644
--- a/pkg/front_end/testcases/rasta/issue_000047.dart
+++ b/pkg/front_end/testcases/rasta/issue_000047.dart
@@ -1,7 +1,9 @@
 // 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.md file.
-// @dart=2.9
+
 typedef void T(C<C>);
 
-T main() => null;
+T test() => throw '';
+
+main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000047.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000047.dart.textual_outline.expect
index b16d611..e87eee9 100644
--- a/pkg/front_end/testcases/rasta/issue_000047.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000047.dart.textual_outline.expect
@@ -1,3 +1,3 @@
-// @dart = 2.9
 typedef void T(C<C>);
-T main() => null;
+T test() => throw '';
+main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000047.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000047.dart.weak.expect
index 2ae0040..9925c90 100644
--- a/pkg/front_end/testcases/rasta/issue_000047.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000047.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -8,6 +8,7 @@
 //
 import self as self;
 
-typedef T = (dynamic) →* void;
-static method main() → (dynamic) →* void
-  return null;
+typedef T = (dynamic) → void;
+static method test() → (dynamic) → void
+  return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/rasta/issue_000047.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000047.dart.weak.modular.expect
index 2ae0040..9925c90 100644
--- a/pkg/front_end/testcases/rasta/issue_000047.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000047.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -8,6 +8,7 @@
 //
 import self as self;
 
-typedef T = (dynamic) →* void;
-static method main() → (dynamic) →* void
-  return null;
+typedef T = (dynamic) → void;
+static method test() → (dynamic) → void
+  return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/rasta/issue_000047.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000047.dart.weak.outline.expect
index de792f5..f749e09 100644
--- a/pkg/front_end/testcases/rasta/issue_000047.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000047.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -8,6 +8,8 @@
 //
 import self as self;
 
-typedef T = (dynamic) →* void;
-static method main() → (dynamic) →* void
+typedef T = (dynamic) → void;
+static method test() → (dynamic) → void
+  ;
+static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/issue_000047.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000047.dart.weak.transformed.expect
index 2ae0040..9925c90 100644
--- a/pkg/front_end/testcases/rasta/issue_000047.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000047.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -8,6 +8,7 @@
 //
 import self as self;
 
-typedef T = (dynamic) →* void;
-static method main() → (dynamic) →* void
-  return null;
+typedef T = (dynamic) → void;
+static method test() → (dynamic) → void
+  return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/rasta/issue_000048.dart b/pkg/front_end/testcases/rasta/issue_000048.dart
index ac5506e..0211480 100644
--- a/pkg/front_end/testcases/rasta/issue_000048.dart
+++ b/pkg/front_end/testcases/rasta/issue_000048.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.md file.
-// @dart=2.9
+
 class A {
   bool v1;
   num v2;
diff --git a/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline.expect
index 1125913..75793bc 100644
--- a/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   bool v1;
   num v2;
diff --git a/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline_modelled.expect
index d236d24..333c72f 100644
--- a/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000048.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/rasta/issue_000048.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.expect
index a297249..2b0abe4 100644
--- a/pkg/front_end/testcases/rasta/issue_000048.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.expect
@@ -1,49 +1,29 @@
-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 = 0;
-  synthetic constructor •() → self::M1*
+  field core::num v2 = 0;
+  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::C c = new self::C::•(true, 2);
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000048.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.modular.expect
index a297249..2b0abe4 100644
--- a/pkg/front_end/testcases/rasta/issue_000048.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.modular.expect
@@ -1,49 +1,29 @@
-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 = 0;
-  synthetic constructor •() → self::M1*
+  field core::num v2 = 0;
+  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::C c = new self::C::•(true, 2);
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000048.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.outline.expect
index 8c6dce3a7..96b4f9a 100644
--- a/pkg/front_end/testcases/rasta/issue_000048.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000048.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/rasta/issue_000048.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.transformed.expect
index 2daf3d3..0c73c5c 100644
--- a/pkg/front_end/testcases/rasta/issue_000048.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.transformed.expect
@@ -1,46 +1,26 @@
-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 = 0;
-  synthetic constructor •() → self::M1*
+  field core::num v2 = 0;
+  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 = 0;
-  synthetic constructor •(core::bool* v1, core::num* v2) → self::C*
+  field core::num v2 = 0;
+  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::C c = new self::C::•(true, 2);
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000052.dart b/pkg/front_end/testcases/rasta/issue_000052.dart
index a6f12da..bf0b680 100644
--- a/pkg/front_end/testcases/rasta/issue_000052.dart
+++ b/pkg/front_end/testcases/rasta/issue_000052.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.md file.
-// @dart=2.9
+
 main() {
   f() {
     print('hello');
diff --git a/pkg/front_end/testcases/rasta/issue_000052.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000052.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/issue_000052.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000052.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000052.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000052.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/issue_000052.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000052.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000052.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000052.dart.weak.expect
index 4c2e652..9e23245 100644
--- a/pkg/front_end/testcases/rasta/issue_000052.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000052.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -6,5 +6,5 @@
   function f() → Null {
     core::print("hello");
   }
-  f(){() →* Null};
+  f(){() → Null};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000052.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000052.dart.weak.modular.expect
index 4c2e652..9e23245 100644
--- a/pkg/front_end/testcases/rasta/issue_000052.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000052.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -6,5 +6,5 @@
   function f() → Null {
     core::print("hello");
   }
-  f(){() →* Null};
+  f(){() → Null};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000052.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000052.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/rasta/issue_000052.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000052.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/rasta/issue_000052.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000052.dart.weak.transformed.expect
index 4c2e652..9e23245 100644
--- a/pkg/front_end/testcases/rasta/issue_000052.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000052.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -6,5 +6,5 @@
   function f() → Null {
     core::print("hello");
   }
-  f(){() →* Null};
+  f(){() → Null};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000053.dart b/pkg/front_end/testcases/rasta/issue_000053.dart
index a493d89..6cae4f6 100644
--- a/pkg/front_end/testcases/rasta/issue_000053.dart
+++ b/pkg/front_end/testcases/rasta/issue_000053.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.md file.
-// @dart=2.9
+
 class C {
   operator ==(other) => throw 'x';
   test() {
diff --git a/pkg/front_end/testcases/rasta/issue_000053.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000053.dart.textual_outline.expect
index c301e14..aa3a004 100644
--- a/pkg/front_end/testcases/rasta/issue_000053.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000053.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   operator ==(other) => throw 'x';
   test() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000053.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000053.dart.textual_outline_modelled.expect
index c301e14..aa3a004 100644
--- a/pkg/front_end/testcases/rasta/issue_000053.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000053.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   operator ==(other) => throw 'x';
   test() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000053.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000053.dart.weak.expect
index f4841de..f16ea22 100644
--- a/pkg/front_end/testcases/rasta/issue_000053.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000053.dart.weak.expect
@@ -1,26 +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
     : super core::Object::•()
     ;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → core::bool
     return throw "x";
   method test() → dynamic {
     super.{core::Object::==}(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 get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
-  new self::C::•().{self::C::test}(){() →* dynamic};
+  new self::C::•().{self::C::test}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000053.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000053.dart.weak.modular.expect
index f4841de..f16ea22 100644
--- a/pkg/front_end/testcases/rasta/issue_000053.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000053.dart.weak.modular.expect
@@ -1,26 +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
     : super core::Object::•()
     ;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → core::bool
     return throw "x";
   method test() → dynamic {
     super.{core::Object::==}(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 get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
-  new self::C::•().{self::C::test}(){() →* dynamic};
+  new self::C::•().{self::C::test}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000053.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000053.dart.weak.outline.expect
index 340d827..1bed99e 100644
--- a/pkg/front_end/testcases/rasta/issue_000053.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000053.dart.weak.outline.expect
@@ -1,23 +1,14 @@
-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
     ;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → core::bool
     ;
   method test() → 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/rasta/issue_000053.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000053.dart.weak.transformed.expect
index f4841de..f16ea22 100644
--- a/pkg/front_end/testcases/rasta/issue_000053.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000053.dart.weak.transformed.expect
@@ -1,26 +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
     : super core::Object::•()
     ;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → core::bool
     return throw "x";
   method test() → dynamic {
     super.{core::Object::==}(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 get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
-  new self::C::•().{self::C::test}(){() →* dynamic};
+  new self::C::•().{self::C::test}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000067.dart b/pkg/front_end/testcases/rasta/issue_000067.dart
index fc04bd1..ddb5ca6 100644
--- a/pkg/front_end/testcases/rasta/issue_000067.dart
+++ b/pkg/front_end/testcases/rasta/issue_000067.dart
@@ -1,13 +1,15 @@
 // 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.md file.
-// @dart=2.9
+
 import "package:expect/expect.dart";
 
 class A {
   A() {}
   factory A.foo() = C.bar;
-  int m() {}
+  int m() {
+    return 1;
+  }
 }
 
 class C extends A {
diff --git a/pkg/front_end/testcases/rasta/issue_000067.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000067.dart.textual_outline.expect
index 0fcec84..a569cc4 100644
--- a/pkg/front_end/testcases/rasta/issue_000067.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000067.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "package:expect/expect.dart";
 
 class A {
diff --git a/pkg/front_end/testcases/rasta/issue_000067.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000067.dart.textual_outline_modelled.expect
index 0fcec84..a569cc4 100644
--- a/pkg/front_end/testcases/rasta/issue_000067.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000067.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "package:expect/expect.dart";
 
 class A {
diff --git a/pkg/front_end/testcases/rasta/issue_000067.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000067.dart.weak.expect
index 66f50c0..2283430 100644
--- a/pkg/front_end/testcases/rasta/issue_000067.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000067.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,44 +6,36 @@
 import "package:expect/expect.dart";
 
 class A extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  constructor •() → self::A*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  constructor •() → self::A
     : super core::Object::•() {}
-  static factory foo() → self::A*
+  static factory foo() → self::A
     return self::C::bar();
-  method m() → 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
+  method m() → core::int {
+    return 1;
+  }
 }
 class C extends self::A {
-  static final field dynamic _redirecting# = <dynamic>[#C2];
-  constructor •() → self::C*
+  static final field dynamic _redirecting# = <dynamic>[#C2]/*isLegacy*/;
+  constructor •() → self::C
     : super self::A::•() {}
-  static factory bar() → self::C*
+  static factory bar() → self::C
     return new self::D::•();
-  method m() → core::int* {
+  method m() → core::int {
     return 1;
   }
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method m() → core::int* {
+  method m() → core::int {
     return 2;
   }
 }
 static method main() → dynamic {
-  self::A* a = new self::D::•();
-  exp::Expect::equals(2, a.{self::A::m}(){() →* core::int*});
+  self::A a = new self::D::•();
+  exp::Expect::equals(2, a.{self::A::m}(){() → core::int});
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/rasta/issue_000067.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000067.dart.weak.modular.expect
index 66f50c0..2283430 100644
--- a/pkg/front_end/testcases/rasta/issue_000067.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000067.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,44 +6,36 @@
 import "package:expect/expect.dart";
 
 class A extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  constructor •() → self::A*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  constructor •() → self::A
     : super core::Object::•() {}
-  static factory foo() → self::A*
+  static factory foo() → self::A
     return self::C::bar();
-  method m() → 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
+  method m() → core::int {
+    return 1;
+  }
 }
 class C extends self::A {
-  static final field dynamic _redirecting# = <dynamic>[#C2];
-  constructor •() → self::C*
+  static final field dynamic _redirecting# = <dynamic>[#C2]/*isLegacy*/;
+  constructor •() → self::C
     : super self::A::•() {}
-  static factory bar() → self::C*
+  static factory bar() → self::C
     return new self::D::•();
-  method m() → core::int* {
+  method m() → core::int {
     return 1;
   }
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method m() → core::int* {
+  method m() → core::int {
     return 2;
   }
 }
 static method main() → dynamic {
-  self::A* a = new self::D::•();
-  exp::Expect::equals(2, a.{self::A::m}(){() →* core::int*});
+  self::A a = new self::D::•();
+  exp::Expect::equals(2, a.{self::A::m}(){() → core::int});
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/rasta/issue_000067.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000067.dart.weak.outline.expect
index 1f48749..49ab275 100644
--- a/pkg/front_end/testcases/rasta/issue_000067.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000067.dart.weak.outline.expect
@@ -1,41 +1,31 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "package:expect/expect.dart";
 
 class A extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[self::A::foo];
-  constructor •() → self::A*
+  static final field dynamic _redirecting# = <dynamic>[self::A::foo]/*isLegacy*/;
+  constructor •() → self::A
     ;
-  static factory foo() → self::A*
+  static factory foo() → self::A
     return self::C::bar();
-  method m() → core::int*
+  method m() → 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 C extends self::A {
-  static final field dynamic _redirecting# = <dynamic>[self::C::bar];
-  constructor •() → self::C*
+  static final field dynamic _redirecting# = <dynamic>[self::C::bar]/*isLegacy*/;
+  constructor •() → self::C
     ;
-  static factory bar() → self::C*
+  static factory bar() → self::C
     return new self::D::•();
-  method m() → core::int*
+  method m() → core::int
     ;
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
-  method m() → core::int*
+  method m() → core::int
     ;
 }
 static method main() → dynamic
@@ -44,5 +34,5 @@
 
 Extra constant evaluation status:
 Evaluated: ConstructorTearOff @ org-dartlang-testcase:///issue_000067.dart:7:7 -> ConstructorTearOffConstant(A.foo)
-Evaluated: ConstructorTearOff @ org-dartlang-testcase:///issue_000067.dart:13:7 -> ConstructorTearOffConstant(C.bar)
+Evaluated: ConstructorTearOff @ org-dartlang-testcase:///issue_000067.dart:15:7 -> ConstructorTearOffConstant(C.bar)
 Extra constant evaluation: evaluated: 6, effectively constant: 2
diff --git a/pkg/front_end/testcases/rasta/issue_000067.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000067.dart.weak.transformed.expect
index 66f50c0..2283430 100644
--- a/pkg/front_end/testcases/rasta/issue_000067.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000067.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,44 +6,36 @@
 import "package:expect/expect.dart";
 
 class A extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  constructor •() → self::A*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  constructor •() → self::A
     : super core::Object::•() {}
-  static factory foo() → self::A*
+  static factory foo() → self::A
     return self::C::bar();
-  method m() → 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
+  method m() → core::int {
+    return 1;
+  }
 }
 class C extends self::A {
-  static final field dynamic _redirecting# = <dynamic>[#C2];
-  constructor •() → self::C*
+  static final field dynamic _redirecting# = <dynamic>[#C2]/*isLegacy*/;
+  constructor •() → self::C
     : super self::A::•() {}
-  static factory bar() → self::C*
+  static factory bar() → self::C
     return new self::D::•();
-  method m() → core::int* {
+  method m() → core::int {
     return 1;
   }
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method m() → core::int* {
+  method m() → core::int {
     return 2;
   }
 }
 static method main() → dynamic {
-  self::A* a = new self::D::•();
-  exp::Expect::equals(2, a.{self::A::m}(){() →* core::int*});
+  self::A a = new self::D::•();
+  exp::Expect::equals(2, a.{self::A::m}(){() → core::int});
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/rasta/issue_000068.dart b/pkg/front_end/testcases/rasta/issue_000068.dart
index b0a2ea2..e02deb7 100644
--- a/pkg/front_end/testcases/rasta/issue_000068.dart
+++ b/pkg/front_end/testcases/rasta/issue_000068.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.md file.
-// @dart=2.9
+
 import "package:expect/expect.dart";
 
 class G<T> {}
diff --git a/pkg/front_end/testcases/rasta/issue_000068.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000068.dart.textual_outline.expect
index 8b5b447..cde3517 100644
--- a/pkg/front_end/testcases/rasta/issue_000068.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000068.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "package:expect/expect.dart";
 
 class G<T> {}
diff --git a/pkg/front_end/testcases/rasta/issue_000068.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000068.dart.textual_outline_modelled.expect
index 469f55f..dd18446 100644
--- a/pkg/front_end/testcases/rasta/issue_000068.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000068.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "package:expect/expect.dart";
 
 class A {}
diff --git a/pkg/front_end/testcases/rasta/issue_000068.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000068.dart.weak.expect
index 9de7e9e..b557cb8 100644
--- a/pkg/front_end/testcases/rasta/issue_000068.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000068.dart.weak.expect
@@ -1,56 +1,36 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "package:expect/expect.dart" as exp;
 
 import "package:expect/expect.dart";
 
-class G<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::G<self::G::T*>*
+class G<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::G<self::G::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 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 self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
 static method main() → dynamic {
-  exp::Expect::isFalse(new self::G::•<self::B*>() is self::G<self::C*>*);
-  exp::Expect::isFalse(new self::G::•<self::A*>() is self::G<self::B*>*);
-  exp::Expect::isFalse(new self::G::•<self::A*>() is self::G<self::C*>*);
-  exp::Expect::isFalse(new self::G::•<core::Object*>() is self::G<self::B*>*);
-  exp::Expect::isFalse(new self::G::•<core::int*>() is self::G<self::B*>*);
-  exp::Expect::isFalse(new self::G::•<core::int*>() is self::G<core::double*>*);
-  exp::Expect::isFalse(new self::G::•<core::int*>() is self::G<core::String*>*);
+  exp::Expect::isFalse(new self::G::•<self::B>() is{ForNonNullableByDefault} self::G<self::C>);
+  exp::Expect::isFalse(new self::G::•<self::A>() is{ForNonNullableByDefault} self::G<self::B>);
+  exp::Expect::isFalse(new self::G::•<self::A>() is{ForNonNullableByDefault} self::G<self::C>);
+  exp::Expect::isFalse(new self::G::•<core::Object>() is{ForNonNullableByDefault} self::G<self::B>);
+  exp::Expect::isFalse(new self::G::•<core::int>() is{ForNonNullableByDefault} self::G<self::B>);
+  exp::Expect::isFalse(new self::G::•<core::int>() is{ForNonNullableByDefault} self::G<core::double>);
+  exp::Expect::isFalse(new self::G::•<core::int>() is{ForNonNullableByDefault} self::G<core::String>);
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000068.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000068.dart.weak.modular.expect
index 9de7e9e..b557cb8 100644
--- a/pkg/front_end/testcases/rasta/issue_000068.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000068.dart.weak.modular.expect
@@ -1,56 +1,36 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "package:expect/expect.dart" as exp;
 
 import "package:expect/expect.dart";
 
-class G<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::G<self::G::T*>*
+class G<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::G<self::G::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 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 self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
 static method main() → dynamic {
-  exp::Expect::isFalse(new self::G::•<self::B*>() is self::G<self::C*>*);
-  exp::Expect::isFalse(new self::G::•<self::A*>() is self::G<self::B*>*);
-  exp::Expect::isFalse(new self::G::•<self::A*>() is self::G<self::C*>*);
-  exp::Expect::isFalse(new self::G::•<core::Object*>() is self::G<self::B*>*);
-  exp::Expect::isFalse(new self::G::•<core::int*>() is self::G<self::B*>*);
-  exp::Expect::isFalse(new self::G::•<core::int*>() is self::G<core::double*>*);
-  exp::Expect::isFalse(new self::G::•<core::int*>() is self::G<core::String*>*);
+  exp::Expect::isFalse(new self::G::•<self::B>() is{ForNonNullableByDefault} self::G<self::C>);
+  exp::Expect::isFalse(new self::G::•<self::A>() is{ForNonNullableByDefault} self::G<self::B>);
+  exp::Expect::isFalse(new self::G::•<self::A>() is{ForNonNullableByDefault} self::G<self::C>);
+  exp::Expect::isFalse(new self::G::•<core::Object>() is{ForNonNullableByDefault} self::G<self::B>);
+  exp::Expect::isFalse(new self::G::•<core::int>() is{ForNonNullableByDefault} self::G<self::B>);
+  exp::Expect::isFalse(new self::G::•<core::int>() is{ForNonNullableByDefault} self::G<core::double>);
+  exp::Expect::isFalse(new self::G::•<core::int>() is{ForNonNullableByDefault} self::G<core::String>);
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000068.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000068.dart.weak.outline.expect
index a6aaeb1..db56ac5 100644
--- a/pkg/front_end/testcases/rasta/issue_000068.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000068.dart.weak.outline.expect
@@ -1,43 +1,23 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "package:expect/expect.dart";
 
-class G<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::G<self::G::T*>*
+class G<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::G<self::G::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 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 self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/rasta/issue_000068.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000068.dart.weak.transformed.expect
index 9de7e9e..b557cb8 100644
--- a/pkg/front_end/testcases/rasta/issue_000068.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000068.dart.weak.transformed.expect
@@ -1,56 +1,36 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "package:expect/expect.dart" as exp;
 
 import "package:expect/expect.dart";
 
-class G<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::G<self::G::T*>*
+class G<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::G<self::G::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 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 self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
 static method main() → dynamic {
-  exp::Expect::isFalse(new self::G::•<self::B*>() is self::G<self::C*>*);
-  exp::Expect::isFalse(new self::G::•<self::A*>() is self::G<self::B*>*);
-  exp::Expect::isFalse(new self::G::•<self::A*>() is self::G<self::C*>*);
-  exp::Expect::isFalse(new self::G::•<core::Object*>() is self::G<self::B*>*);
-  exp::Expect::isFalse(new self::G::•<core::int*>() is self::G<self::B*>*);
-  exp::Expect::isFalse(new self::G::•<core::int*>() is self::G<core::double*>*);
-  exp::Expect::isFalse(new self::G::•<core::int*>() is self::G<core::String*>*);
+  exp::Expect::isFalse(new self::G::•<self::B>() is{ForNonNullableByDefault} self::G<self::C>);
+  exp::Expect::isFalse(new self::G::•<self::A>() is{ForNonNullableByDefault} self::G<self::B>);
+  exp::Expect::isFalse(new self::G::•<self::A>() is{ForNonNullableByDefault} self::G<self::C>);
+  exp::Expect::isFalse(new self::G::•<core::Object>() is{ForNonNullableByDefault} self::G<self::B>);
+  exp::Expect::isFalse(new self::G::•<core::int>() is{ForNonNullableByDefault} self::G<self::B>);
+  exp::Expect::isFalse(new self::G::•<core::int>() is{ForNonNullableByDefault} self::G<core::double>);
+  exp::Expect::isFalse(new self::G::•<core::int>() is{ForNonNullableByDefault} self::G<core::String>);
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000069.dart b/pkg/front_end/testcases/rasta/issue_000069.dart
index a1070ad..0e87567 100644
--- a/pkg/front_end/testcases/rasta/issue_000069.dart
+++ b/pkg/front_end/testcases/rasta/issue_000069.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.md file.
-// @dart=2.9
+
 main() {
   var x, i = 0;
   while (i++ < 5) var x = i;
diff --git a/pkg/front_end/testcases/rasta/issue_000069.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000069.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/issue_000069.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000069.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000069.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000069.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/issue_000069.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000069.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000069.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000069.dart.weak.expect
index 07c2ec1..f77b2dc 100644
--- a/pkg/front_end/testcases/rasta/issue_000069.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000069.dart.weak.expect
@@ -1,11 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
   dynamic x;
-  core::int* i = 0;
-  while ((let final core::int* #t1 = i in let final core::int* #t2 = i = #t1.{core::num::+}(1){(core::num*) →* core::int*} in #t1).{core::num::<}(5){(core::num*) →* core::bool*}) {
-    core::int* x = i;
+  core::int i = 0;
+  while ((let final core::int #t1 = i in let final core::int #t2 = i = #t1.{core::num::+}(1){(core::num) → core::int} in #t1).{core::num::<}(5){(core::num) → core::bool}) {
+    core::int x = i;
   }
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000069.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000069.dart.weak.modular.expect
index 07c2ec1..f77b2dc 100644
--- a/pkg/front_end/testcases/rasta/issue_000069.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000069.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
   dynamic x;
-  core::int* i = 0;
-  while ((let final core::int* #t1 = i in let final core::int* #t2 = i = #t1.{core::num::+}(1){(core::num*) →* core::int*} in #t1).{core::num::<}(5){(core::num*) →* core::bool*}) {
-    core::int* x = i;
+  core::int i = 0;
+  while ((let final core::int #t1 = i in let final core::int #t2 = i = #t1.{core::num::+}(1){(core::num) → core::int} in #t1).{core::num::<}(5){(core::num) → core::bool}) {
+    core::int x = i;
   }
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000069.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000069.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/rasta/issue_000069.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000069.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/rasta/issue_000069.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000069.dart.weak.transformed.expect
index 07c2ec1..f77b2dc 100644
--- a/pkg/front_end/testcases/rasta/issue_000069.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000069.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
   dynamic x;
-  core::int* i = 0;
-  while ((let final core::int* #t1 = i in let final core::int* #t2 = i = #t1.{core::num::+}(1){(core::num*) →* core::int*} in #t1).{core::num::<}(5){(core::num*) →* core::bool*}) {
-    core::int* x = i;
+  core::int i = 0;
+  while ((let final core::int #t1 = i in let final core::int #t2 = i = #t1.{core::num::+}(1){(core::num) → core::int} in #t1).{core::num::<}(5){(core::num) → core::bool}) {
+    core::int x = i;
   }
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000070.dart b/pkg/front_end/testcases/rasta/issue_000070.dart
index 973ad73..193e5e0 100644
--- a/pkg/front_end/testcases/rasta/issue_000070.dart
+++ b/pkg/front_end/testcases/rasta/issue_000070.dart
@@ -1,11 +1,11 @@
 // 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.md file.
-// @dart=2.9
+
 import "package:expect/expect.dart";
 
 class A<N, S, U> {
-  final List<U> field;
+  final List<U?>? field;
 
   A(N n, S s) : field = <U>[] {
     Expect.isTrue(n is N);
@@ -19,9 +19,9 @@
     return new A.empty();
   }
 
-  const A.c(U u, S s) : field = const [null];
+  const A.c(U u, S s) : field = const <Null>[null];
 
-  List<U> get getter {
+  List<U?>? get getter {
     return field;
   }
 
diff --git a/pkg/front_end/testcases/rasta/issue_000070.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000070.dart.textual_outline.expect
index 1861e2d..f65477a 100644
--- a/pkg/front_end/testcases/rasta/issue_000070.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000070.dart.textual_outline.expect
@@ -1,13 +1,12 @@
-// @dart = 2.9
 import "package:expect/expect.dart";
 
 class A<N, S, U> {
-  final List<U> field;
+  final List<U?>? field;
   A(N n, S s) : field = <U>[] {}
   A.empty() : field = null {}
   factory A.f(S s) {}
-  const A.c(U u, S s) : field = const [null];
-  List<U> get getter {}
+  const A.c(U u, S s) : field = const <Null>[null];
+  List<U?>? get getter {}
   void set setter(S s) {}
 }
 
diff --git a/pkg/front_end/testcases/rasta/issue_000070.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000070.dart.textual_outline_modelled.expect
index 7006b0c..bfed0e2 100644
--- a/pkg/front_end/testcases/rasta/issue_000070.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000070.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "package:expect/expect.dart";
 
 abstract class I<H, C, K> extends J<C, K> {}
@@ -8,10 +7,10 @@
 class A<N, S, U> {
   A(N n, S s) : field = <U>[] {}
   A.empty() : field = null {}
-  List<U> get getter {}
-  const A.c(U u, S s) : field = const [null];
+  List<U?>? get getter {}
+  const A.c(U u, S s) : field = const <Null>[null];
   factory A.f(S s) {}
-  final List<U> field;
+  final List<U?>? field;
   void set setter(S s) {}
 }
 
diff --git a/pkg/front_end/testcases/rasta/issue_000070.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000070.dart.weak.expect
index a5f9ac1..1c80364 100644
--- a/pkg/front_end/testcases/rasta/issue_000070.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000070.dart.weak.expect
@@ -1,66 +1,46 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "package:expect/expect.dart" as exp;
 
 import "package:expect/expect.dart";
 
-class A<N extends core::Object* = dynamic, S extends core::Object* = dynamic, U extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  final field core::List<self::A::U*>* field;
-  constructor •(self::A::N* n, self::A::S* s) → self::A<self::A::N*, self::A::S*, self::A::U*>*
-    : self::A::field = <self::A::U*>[], super core::Object::•() {
-    exp::Expect::isTrue(n is self::A::N*);
-    exp::Expect::isTrue(s is self::A::S*);
+class A<N extends core::Object? = dynamic, S extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  final field core::List<self::A::U?>? field;
+  constructor •(self::A::N% n, self::A::S% s) → self::A<self::A::N%, self::A::S%, self::A::U%>
+    : self::A::field = <self::A::U%>[], super core::Object::•() {
+    exp::Expect::isTrue(n is{ForNonNullableByDefault} self::A::N%);
+    exp::Expect::isTrue(s is{ForNonNullableByDefault} self::A::S%);
   }
-  constructor empty() → self::A<self::A::N*, self::A::S*, self::A::U*>*
+  constructor empty() → self::A<self::A::N%, self::A::S%, self::A::U%>
     : self::A::field = null, super core::Object::•() {}
-  const constructor c(self::A::U* u, self::A::S* s) → self::A<self::A::N*, self::A::S*, self::A::U*>*
+  const constructor c(self::A::U% u, self::A::S% s) → self::A<self::A::N%, self::A::S%, self::A::U%>
     : self::A::field = #C2, super core::Object::•()
     ;
-  static factory f<N extends core::Object* = dynamic, S extends core::Object* = dynamic, U extends core::Object* = dynamic>(self::A::f::S* s) → self::A<self::A::f::N*, self::A::f::S*, self::A::f::U*>* {
-    exp::Expect::isTrue(s is self::A::f::S*);
-    return new self::A::empty<self::A::f::N*, self::A::f::S*, self::A::f::U*>();
+  static factory f<N extends core::Object? = dynamic, S extends core::Object? = dynamic, U extends core::Object? = dynamic>(self::A::f::S% s) → self::A<self::A::f::N%, self::A::f::S%, self::A::f::U%> {
+    exp::Expect::isTrue(s is{ForNonNullableByDefault} self::A::f::S%);
+    return new self::A::empty<self::A::f::N%, self::A::f::S%, self::A::f::U%>();
   }
-  get getter() → core::List<self::A::U*>* {
-    return this.{self::A::field}{core::List<self::A::U*>*};
+  get getter() → core::List<self::A::U?>? {
+    return this.{self::A::field}{core::List<self::A::U?>?};
   }
-  set setter(covariant-by-class self::A::S* s) → 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 setter(covariant-by-class self::A::S% s) → void {}
 }
-abstract class J<Aa extends core::Object* = dynamic, B extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::J<self::J::Aa*, self::J::B*>*
+abstract class J<Aa extends core::Object? = dynamic, B extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::J<self::J::Aa%, self::J::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 I<H extends core::Object* = dynamic, C extends core::Object* = dynamic, K extends core::Object* = dynamic> extends self::J<self::I::C*, self::I::K*> {
-  synthetic constructor •() → self::I<self::I::H*, self::I::C*, self::I::K*>*
+abstract class I<H extends core::Object? = dynamic, C extends core::Object? = dynamic, K extends core::Object? = dynamic> extends self::J<self::I::C%, self::I::K%> {
+  synthetic constructor •() → self::I<self::I::H%, self::I::C%, self::I::K%>
     : super self::J::•()
     ;
 }
 static method main() → dynamic {
-  new self::A::•<core::num*, core::double*, core::List<dynamic>*>(1, 2.0);
-  self::A<dynamic, dynamic, dynamic>* a = self::A::f<core::int*, core::int*, core::int*>(1);
+  new self::A::•<core::num, core::double, core::List<dynamic>>(1, 2.0);
+  self::A<dynamic, dynamic, dynamic> a = self::A::f<core::int, core::int, core::int>(1);
   #C3;
-  core::List<dynamic>* z = a.{self::A::getter}{core::List<dynamic>*};
+  core::List<dynamic>? z = a.{self::A::getter}{core::List<dynamic>?};
   a.{self::A::setter} = 1;
 }
 
diff --git a/pkg/front_end/testcases/rasta/issue_000070.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000070.dart.weak.modular.expect
index a5f9ac1..1c80364 100644
--- a/pkg/front_end/testcases/rasta/issue_000070.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000070.dart.weak.modular.expect
@@ -1,66 +1,46 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "package:expect/expect.dart" as exp;
 
 import "package:expect/expect.dart";
 
-class A<N extends core::Object* = dynamic, S extends core::Object* = dynamic, U extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  final field core::List<self::A::U*>* field;
-  constructor •(self::A::N* n, self::A::S* s) → self::A<self::A::N*, self::A::S*, self::A::U*>*
-    : self::A::field = <self::A::U*>[], super core::Object::•() {
-    exp::Expect::isTrue(n is self::A::N*);
-    exp::Expect::isTrue(s is self::A::S*);
+class A<N extends core::Object? = dynamic, S extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  final field core::List<self::A::U?>? field;
+  constructor •(self::A::N% n, self::A::S% s) → self::A<self::A::N%, self::A::S%, self::A::U%>
+    : self::A::field = <self::A::U%>[], super core::Object::•() {
+    exp::Expect::isTrue(n is{ForNonNullableByDefault} self::A::N%);
+    exp::Expect::isTrue(s is{ForNonNullableByDefault} self::A::S%);
   }
-  constructor empty() → self::A<self::A::N*, self::A::S*, self::A::U*>*
+  constructor empty() → self::A<self::A::N%, self::A::S%, self::A::U%>
     : self::A::field = null, super core::Object::•() {}
-  const constructor c(self::A::U* u, self::A::S* s) → self::A<self::A::N*, self::A::S*, self::A::U*>*
+  const constructor c(self::A::U% u, self::A::S% s) → self::A<self::A::N%, self::A::S%, self::A::U%>
     : self::A::field = #C2, super core::Object::•()
     ;
-  static factory f<N extends core::Object* = dynamic, S extends core::Object* = dynamic, U extends core::Object* = dynamic>(self::A::f::S* s) → self::A<self::A::f::N*, self::A::f::S*, self::A::f::U*>* {
-    exp::Expect::isTrue(s is self::A::f::S*);
-    return new self::A::empty<self::A::f::N*, self::A::f::S*, self::A::f::U*>();
+  static factory f<N extends core::Object? = dynamic, S extends core::Object? = dynamic, U extends core::Object? = dynamic>(self::A::f::S% s) → self::A<self::A::f::N%, self::A::f::S%, self::A::f::U%> {
+    exp::Expect::isTrue(s is{ForNonNullableByDefault} self::A::f::S%);
+    return new self::A::empty<self::A::f::N%, self::A::f::S%, self::A::f::U%>();
   }
-  get getter() → core::List<self::A::U*>* {
-    return this.{self::A::field}{core::List<self::A::U*>*};
+  get getter() → core::List<self::A::U?>? {
+    return this.{self::A::field}{core::List<self::A::U?>?};
   }
-  set setter(covariant-by-class self::A::S* s) → 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 setter(covariant-by-class self::A::S% s) → void {}
 }
-abstract class J<Aa extends core::Object* = dynamic, B extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::J<self::J::Aa*, self::J::B*>*
+abstract class J<Aa extends core::Object? = dynamic, B extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::J<self::J::Aa%, self::J::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 I<H extends core::Object* = dynamic, C extends core::Object* = dynamic, K extends core::Object* = dynamic> extends self::J<self::I::C*, self::I::K*> {
-  synthetic constructor •() → self::I<self::I::H*, self::I::C*, self::I::K*>*
+abstract class I<H extends core::Object? = dynamic, C extends core::Object? = dynamic, K extends core::Object? = dynamic> extends self::J<self::I::C%, self::I::K%> {
+  synthetic constructor •() → self::I<self::I::H%, self::I::C%, self::I::K%>
     : super self::J::•()
     ;
 }
 static method main() → dynamic {
-  new self::A::•<core::num*, core::double*, core::List<dynamic>*>(1, 2.0);
-  self::A<dynamic, dynamic, dynamic>* a = self::A::f<core::int*, core::int*, core::int*>(1);
+  new self::A::•<core::num, core::double, core::List<dynamic>>(1, 2.0);
+  self::A<dynamic, dynamic, dynamic> a = self::A::f<core::int, core::int, core::int>(1);
   #C3;
-  core::List<dynamic>* z = a.{self::A::getter}{core::List<dynamic>*};
+  core::List<dynamic>? z = a.{self::A::getter}{core::List<dynamic>?};
   a.{self::A::setter} = 1;
 }
 
diff --git a/pkg/front_end/testcases/rasta/issue_000070.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000070.dart.weak.outline.expect
index 5dae040..f904fc3 100644
--- a/pkg/front_end/testcases/rasta/issue_000070.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000070.dart.weak.outline.expect
@@ -1,51 +1,31 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "package:expect/expect.dart";
 
-class A<N extends core::Object* = dynamic, S extends core::Object* = dynamic, U extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  final field core::List<self::A::U*>* field;
-  constructor •(self::A::N* n, self::A::S* s) → self::A<self::A::N*, self::A::S*, self::A::U*>*
+class A<N extends core::Object? = dynamic, S extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  final field core::List<self::A::U?>? field;
+  constructor •(self::A::N% n, self::A::S% s) → self::A<self::A::N%, self::A::S%, self::A::U%>
     ;
-  constructor empty() → self::A<self::A::N*, self::A::S*, self::A::U*>*
+  constructor empty() → self::A<self::A::N%, self::A::S%, self::A::U%>
     ;
-  const constructor c(self::A::U* u, self::A::S* s) → self::A<self::A::N*, self::A::S*, self::A::U*>*
+  const constructor c(self::A::U% u, self::A::S% s) → self::A<self::A::N%, self::A::S%, self::A::U%>
     : self::A::field = const <Null>[null], super core::Object::•()
     ;
-  static factory f<N extends core::Object* = dynamic, S extends core::Object* = dynamic, U extends core::Object* = dynamic>(self::A::f::S* s) → self::A<self::A::f::N*, self::A::f::S*, self::A::f::U*>*
+  static factory f<N extends core::Object? = dynamic, S extends core::Object? = dynamic, U extends core::Object? = dynamic>(self::A::f::S% s) → self::A<self::A::f::N%, self::A::f::S%, self::A::f::U%>
     ;
-  get getter() → core::List<self::A::U*>*
+  get getter() → core::List<self::A::U?>?
     ;
-  set setter(covariant-by-class self::A::S* s) → void
+  set setter(covariant-by-class self::A::S% s) → 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 J<Aa extends core::Object* = dynamic, B extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::J<self::J::Aa*, self::J::B*>*
+abstract class J<Aa extends core::Object? = dynamic, B extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::J<self::J::Aa%, self::J::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 I<H extends core::Object* = dynamic, C extends core::Object* = dynamic, K extends core::Object* = dynamic> extends self::J<self::I::C*, self::I::K*> {
-  synthetic constructor •() → self::I<self::I::H*, self::I::C*, self::I::K*>*
+abstract class I<H extends core::Object? = dynamic, C extends core::Object? = dynamic, K extends core::Object? = dynamic> extends self::J<self::I::C%, self::I::K%> {
+  synthetic constructor •() → self::I<self::I::H%, self::I::C%, self::I::K%>
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/rasta/issue_000070.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000070.dart.weak.transformed.expect
index 9cfd4c4..fc604245 100644
--- a/pkg/front_end/testcases/rasta/issue_000070.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000070.dart.weak.transformed.expect
@@ -1,66 +1,46 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "package:expect/expect.dart" as exp;
 
 import "package:expect/expect.dart";
 
-class A<N extends core::Object* = dynamic, S extends core::Object* = dynamic, U extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  final field core::List<self::A::U*>* field;
-  constructor •(self::A::N* n, self::A::S* s) → self::A<self::A::N*, self::A::S*, self::A::U*>*
-    : self::A::field = core::_GrowableList::•<self::A::U*>(0), super core::Object::•() {
-    exp::Expect::isTrue(n is self::A::N*);
-    exp::Expect::isTrue(s is self::A::S*);
+class A<N extends core::Object? = dynamic, S extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  final field core::List<self::A::U?>? field;
+  constructor •(self::A::N% n, self::A::S% s) → self::A<self::A::N%, self::A::S%, self::A::U%>
+    : self::A::field = core::_GrowableList::•<self::A::U%>(0), super core::Object::•() {
+    exp::Expect::isTrue(n is{ForNonNullableByDefault} self::A::N%);
+    exp::Expect::isTrue(s is{ForNonNullableByDefault} self::A::S%);
   }
-  constructor empty() → self::A<self::A::N*, self::A::S*, self::A::U*>*
+  constructor empty() → self::A<self::A::N%, self::A::S%, self::A::U%>
     : self::A::field = null, super core::Object::•() {}
-  const constructor c(self::A::U* u, self::A::S* s) → self::A<self::A::N*, self::A::S*, self::A::U*>*
+  const constructor c(self::A::U% u, self::A::S% s) → self::A<self::A::N%, self::A::S%, self::A::U%>
     : self::A::field = #C2, super core::Object::•()
     ;
-  static factory f<N extends core::Object* = dynamic, S extends core::Object* = dynamic, U extends core::Object* = dynamic>(self::A::f::S* s) → self::A<self::A::f::N*, self::A::f::S*, self::A::f::U*>* {
-    exp::Expect::isTrue(s is self::A::f::S*);
-    return new self::A::empty<self::A::f::N*, self::A::f::S*, self::A::f::U*>();
+  static factory f<N extends core::Object? = dynamic, S extends core::Object? = dynamic, U extends core::Object? = dynamic>(self::A::f::S% s) → self::A<self::A::f::N%, self::A::f::S%, self::A::f::U%> {
+    exp::Expect::isTrue(s is{ForNonNullableByDefault} self::A::f::S%);
+    return new self::A::empty<self::A::f::N%, self::A::f::S%, self::A::f::U%>();
   }
-  get getter() → core::List<self::A::U*>* {
-    return this.{self::A::field}{core::List<self::A::U*>*};
+  get getter() → core::List<self::A::U?>? {
+    return this.{self::A::field}{core::List<self::A::U?>?};
   }
-  set setter(covariant-by-class self::A::S* s) → 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 setter(covariant-by-class self::A::S% s) → void {}
 }
-abstract class J<Aa extends core::Object* = dynamic, B extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::J<self::J::Aa*, self::J::B*>*
+abstract class J<Aa extends core::Object? = dynamic, B extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::J<self::J::Aa%, self::J::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 I<H extends core::Object* = dynamic, C extends core::Object* = dynamic, K extends core::Object* = dynamic> extends self::J<self::I::C*, self::I::K*> {
-  synthetic constructor •() → self::I<self::I::H*, self::I::C*, self::I::K*>*
+abstract class I<H extends core::Object? = dynamic, C extends core::Object? = dynamic, K extends core::Object? = dynamic> extends self::J<self::I::C%, self::I::K%> {
+  synthetic constructor •() → self::I<self::I::H%, self::I::C%, self::I::K%>
     : super self::J::•()
     ;
 }
 static method main() → dynamic {
-  new self::A::•<core::num*, core::double*, core::List<dynamic>*>(1, 2.0);
-  self::A<dynamic, dynamic, dynamic>* a = self::A::f<core::int*, core::int*, core::int*>(1);
+  new self::A::•<core::num, core::double, core::List<dynamic>>(1, 2.0);
+  self::A<dynamic, dynamic, dynamic> a = self::A::f<core::int, core::int, core::int>(1);
   #C3;
-  core::List<dynamic>* z = a.{self::A::getter}{core::List<dynamic>*};
+  core::List<dynamic>? z = a.{self::A::getter}{core::List<dynamic>?};
   a.{self::A::setter} = 1;
 }
 
diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart b/pkg/front_end/testcases/rasta/issue_000080.dart
index c6793bc..6a0292d 100644
--- a/pkg/front_end/testcases/rasta/issue_000080.dart
+++ b/pkg/front_end/testcases/rasta/issue_000080.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.md file.
-// @dart=2.9
+
 class Mixin {
   var field;
   foo() => 87;
diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline.expect
index 0f6e0ff..e1dd6e2 100644
--- a/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Mixin {
   var field;
   foo() => 87;
diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline_modelled.expect
index 8366218..8ed966c 100644
--- a/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Foo extends Object with Mixin {
   bar() => super.field;
   foo() => super.foo();
diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.expect
index e61a3ce..d91ab12 100644
--- a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.expect
@@ -1,27 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Mixin extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::Mixin*
+  synthetic constructor •() → self::Mixin
     : super core::Object::•()
     ;
   method foo() → dynamic
     return 87;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 _Foo&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Foo&Object&Mixin*
+  synthetic constructor •() → self::_Foo&Object&Mixin
     : super core::Object::•()
     ;
   mixin-super-stub method foo() → dynamic
@@ -30,19 +20,9 @@
     return super.{self::Mixin::field};
   mixin-super-stub set field(dynamic value) → void
     return super.{self::Mixin::field} = value;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 Foo extends self::_Foo&Object&Mixin {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : super self::_Foo&Object&Mixin::•()
     ;
   method foo() → dynamic
@@ -51,7 +31,7 @@
     return super.{self::_Foo&Object&Mixin::field};
 }
 static method main() → dynamic {
-  self::Foo* f = new self::Foo::•();
+  self::Foo f = new self::Foo::•();
   f.{self::_Foo&Object&Mixin::field} = 42;
-  core::print(f.{self::Foo::bar}(){() →* dynamic});
+  core::print(f.{self::Foo::bar}(){() → dynamic});
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.modular.expect
index e61a3ce..d91ab12 100644
--- a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Mixin extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::Mixin*
+  synthetic constructor •() → self::Mixin
     : super core::Object::•()
     ;
   method foo() → dynamic
     return 87;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 _Foo&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Foo&Object&Mixin*
+  synthetic constructor •() → self::_Foo&Object&Mixin
     : super core::Object::•()
     ;
   mixin-super-stub method foo() → dynamic
@@ -30,19 +20,9 @@
     return super.{self::Mixin::field};
   mixin-super-stub set field(dynamic value) → void
     return super.{self::Mixin::field} = value;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 Foo extends self::_Foo&Object&Mixin {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : super self::_Foo&Object&Mixin::•()
     ;
   method foo() → dynamic
@@ -51,7 +31,7 @@
     return super.{self::_Foo&Object&Mixin::field};
 }
 static method main() → dynamic {
-  self::Foo* f = new self::Foo::•();
+  self::Foo f = new self::Foo::•();
   f.{self::_Foo&Object&Mixin::field} = 42;
-  core::print(f.{self::Foo::bar}(){() →* dynamic});
+  core::print(f.{self::Foo::bar}(){() → dynamic});
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.outline.expect
index 4d151fc..4f952bc 100644
--- a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Mixin extends core::Object {
   field dynamic field;
-  synthetic constructor •() → self::Mixin*
+  synthetic constructor •() → self::Mixin
     ;
   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
 }
 abstract class _Foo&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Foo&Object&Mixin*
+  synthetic constructor •() → self::_Foo&Object&Mixin
     : super core::Object::•()
     ;
   mixin-super-stub method foo() → dynamic
@@ -29,19 +19,9 @@
     return super.{self::Mixin::field};
   mixin-super-stub set field(dynamic value) → void
     return super.{self::Mixin::field} = value;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 Foo extends self::_Foo&Object&Mixin {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     ;
   method foo() → dynamic
     ;
diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.transformed.expect
index 8e37860..6ab5120 100644
--- a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.transformed.expect
@@ -1,45 +1,25 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Mixin extends core::Object {
   field dynamic field = null;
-  synthetic constructor •() → self::Mixin*
+  synthetic constructor •() → self::Mixin
     : super core::Object::•()
     ;
   method foo() → dynamic
     return 87;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 _Foo&Object&Mixin extends core::Object implements self::Mixin /*isAnonymousMixin,isEliminatedMixin*/  {
   field dynamic field = null;
-  synthetic constructor •() → self::_Foo&Object&Mixin*
+  synthetic constructor •() → self::_Foo&Object&Mixin
     : super core::Object::•()
     ;
   method foo() → dynamic
     return 87;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 Foo extends self::_Foo&Object&Mixin {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : super self::_Foo&Object&Mixin::•()
     ;
   method foo() → dynamic
@@ -48,7 +28,7 @@
     return super.{self::_Foo&Object&Mixin::field};
 }
 static method main() → dynamic {
-  self::Foo* f = new self::Foo::•();
+  self::Foo f = new self::Foo::•();
   f.{self::_Foo&Object&Mixin::field} = 42;
-  core::print(f.{self::Foo::bar}(){() →* dynamic});
+  core::print(f.{self::Foo::bar}(){() → dynamic});
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000081.dart b/pkg/front_end/testcases/rasta/issue_000081.dart
index b277258..4dfb641 100644
--- a/pkg/front_end/testcases/rasta/issue_000081.dart
+++ b/pkg/front_end/testcases/rasta/issue_000081.dart
@@ -1,13 +1,13 @@
 // 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.md file.
-// @dart=2.9
+
 class Base {
   int hashCode = 42;
 }
 
 class Sub extends Base {
-  int _hashCode = null;
+  int? _hashCode = null;
 
   get hashCode => _hashCode ??= super.hashCode;
 
@@ -18,6 +18,6 @@
 
 main() {
   print(new Sub().hashCode);
-  var l = [null];
+  var l = <String?>[null];
   l[0] ??= "fisk";
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000081.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000081.dart.textual_outline.expect
index f4c75b5..3747fed 100644
--- a/pkg/front_end/testcases/rasta/issue_000081.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000081.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 class Base {
   int hashCode = 42;
 }
 
 class Sub extends Base {
-  int _hashCode = null;
+  int? _hashCode = null;
   get hashCode => _hashCode ??= super.hashCode;
   foo() {}
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000081.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000081.dart.textual_outline_modelled.expect
index 71cc6e6..4ef38a2 100644
--- a/pkg/front_end/testcases/rasta/issue_000081.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/issue_000081.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Base {
   int hashCode = 42;
 }
@@ -6,7 +5,7 @@
 class Sub extends Base {
   foo() {}
   get hashCode => _hashCode ??= super.hashCode;
-  int _hashCode = null;
+  int? _hashCode = null;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/rasta/issue_000081.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000081.dart.weak.expect
index 5549963..80196b9 100644
--- a/pkg/front_end/testcases/rasta/issue_000081.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/issue_000081.dart.weak.expect
@@ -1,35 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Base extends core::Object {
-  field core::int* hashCode = 42;
-  synthetic constructor •() → self::Base*
+  field core::int hashCode = 42;
+  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 method toString() → core::String*; -> core::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 Sub extends self::Base {
-  field core::int* _hashCode = null;
-  synthetic constructor •() → self::Sub*
+  field core::int? _hashCode = null;
+  synthetic constructor •() → self::Sub
     : super self::Base::•()
     ;
-  get hashCode() → core::int*
-    return let final core::int* #t1 = this.{self::Sub::_hashCode}{core::int*} in #t1 == null ?{core::int*} this.{self::Sub::_hashCode} = super.{self::Base::hashCode} : #t1;
+  get hashCode() → core::int
+    return let final core::int? #t1 = this.{self::Sub::_hashCode}{core::int?} in #t1 == null ?{core::int} this.{self::Sub::_hashCode} = super.{self::Base::hashCode} : #t1{core::int};
   method foo() → dynamic {
-    this.{self::Sub::_hashCode}{core::int*} == null ?{core::int*} this.{self::Sub::_hashCode} = super.{self::Base::hashCode} : null;
+    this.{self::Sub::_hashCode}{core::int?} == null ?{core::int} this.{self::Sub::_hashCode} = super.{self::Base::hashCode} : null;
   }
 }
 static method main() → dynamic {
-  core::print(new self::Sub::•().{self::Sub::hashCode}{core::int*});
-  core::List<Null>* l = <Null>[null];
-  let final core::List<Null>* #t2 = l in let final core::int* #t3 = 0 in #t2.{core::List::[]}(#t3){(core::int*) →* Null} == null ?{core::String*} #t2.{core::List::[]=}(#t3, "fisk" as{TypeError} Null){(core::int*, Null) →* void} : null;
+  core::print(new self::Sub::•().{self::Sub::hashCode}{core::int});
+  core::List<core::String?> l = <core::String?>[null];
+  let final core::List<core::String?> #t2 = l in let final core::int #t3 = 0 in #t2.{core::List::[]}(#t3){(core::int) → core::String?} == null ?{core::String} #t2.{core::List::[]=}(#t3, "fisk"){(core::int, core::String?) → void} : null;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000081.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000081.dart.weak.modular.expect
index 5549963..80196b9 100644
--- a/pkg/front_end/testcases/rasta/issue_000081.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/issue_000081.dart.weak.modular.expect
@@ -1,35 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Base extends core::Object {
-  field core::int* hashCode = 42;
-  synthetic constructor •() → self::Base*
+  field core::int hashCode = 42;
+  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 method toString() → core::String*; -> core::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 Sub extends self::Base {
-  field core::int* _hashCode = null;
-  synthetic constructor •() → self::Sub*
+  field core::int? _hashCode = null;
+  synthetic constructor •() → self::Sub
     : super self::Base::•()
     ;
-  get hashCode() → core::int*
-    return let final core::int* #t1 = this.{self::Sub::_hashCode}{core::int*} in #t1 == null ?{core::int*} this.{self::Sub::_hashCode} = super.{self::Base::hashCode} : #t1;
+  get hashCode() → core::int
+    return let final core::int? #t1 = this.{self::Sub::_hashCode}{core::int?} in #t1 == null ?{core::int} this.{self::Sub::_hashCode} = super.{self::Base::hashCode} : #t1{core::int};
   method foo() → dynamic {
-    this.{self::Sub::_hashCode}{core::int*} == null ?{core::int*} this.{self::Sub::_hashCode} = super.{self::Base::hashCode} : null;
+    this.{self::Sub::_hashCode}{core::int?} == null ?{core::int} this.{self::Sub::_hashCode} = super.{self::Base::hashCode} : null;
   }
 }
 static method main() → dynamic {
-  core::print(new self::Sub::•().{self::Sub::hashCode}{core::int*});
-  core::List<Null>* l = <Null>[null];
-  let final core::List<Null>* #t2 = l in let final core::int* #t3 = 0 in #t2.{core::List::[]}(#t3){(core::int*) →* Null} == null ?{core::String*} #t2.{core::List::[]=}(#t3, "fisk" as{TypeError} Null){(core::int*, Null) →* void} : null;
+  core::print(new self::Sub::•().{self::Sub::hashCode}{core::int});
+  core::List<core::String?> l = <core::String?>[null];
+  let final core::List<core::String?> #t2 = l in let final core::int #t3 = 0 in #t2.{core::List::[]}(#t3){(core::int) → core::String?} == null ?{core::String} #t2.{core::List::[]=}(#t3, "fisk"){(core::int, core::String?) → void} : null;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000081.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000081.dart.weak.outline.expect
index e6229de..6dc020f 100644
--- a/pkg/front_end/testcases/rasta/issue_000081.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000081.dart.weak.outline.expect
@@ -1,26 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Base extends core::Object {
-  field core::int* hashCode;
-  synthetic constructor •() → self::Base*
+  field core::int hashCode;
+  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 method toString() → core::String*; -> core::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 Sub extends self::Base {
-  field core::int* _hashCode;
-  synthetic constructor •() → self::Sub*
+  field core::int? _hashCode;
+  synthetic constructor •() → self::Sub
     ;
-  get hashCode() → core::int*
+  get hashCode() → core::int
     ;
   method foo() → dynamic
     ;
diff --git a/pkg/front_end/testcases/rasta/issue_000081.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000081.dart.weak.transformed.expect
index 5e4e553..6368e55 100644
--- a/pkg/front_end/testcases/rasta/issue_000081.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000081.dart.weak.transformed.expect
@@ -1,41 +1,32 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Base extends core::Object {
-  field core::int* hashCode = 42;
-  synthetic constructor •() → self::Base*
+  field core::int hashCode = 42;
+  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 method toString() → core::String*; -> core::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 Sub extends self::Base {
-  field core::int* _hashCode = null;
-  synthetic constructor •() → self::Sub*
+  field core::int? _hashCode = null;
+  synthetic constructor •() → self::Sub
     : super self::Base::•()
     ;
-  get hashCode() → core::int*
-    return let final core::int* #t1 = this.{self::Sub::_hashCode}{core::int*} in #t1 == null ?{core::int*} this.{self::Sub::_hashCode} = super.{self::Base::hashCode} : #t1;
+  get hashCode() → core::int
+    return let final core::int? #t1 = this.{self::Sub::_hashCode}{core::int?} in #t1 == null ?{core::int} this.{self::Sub::_hashCode} = super.{self::Base::hashCode} : #t1{core::int};
   method foo() → dynamic {
-    this.{self::Sub::_hashCode}{core::int*} == null ?{core::int*} this.{self::Sub::_hashCode} = super.{self::Base::hashCode} : null;
+    this.{self::Sub::_hashCode}{core::int?} == null ?{core::int} this.{self::Sub::_hashCode} = super.{self::Base::hashCode} : null;
   }
 }
 static method main() → dynamic {
-  core::print(new self::Sub::•().{self::Sub::hashCode}{core::int*});
-  core::List<Null>* l = core::_GrowableList::_literal1<Null>(null);
-  let final core::List<Null>* #t2 = l in let final core::int* #t3 = 0 in #t2.{core::List::[]}(#t3){(core::int*) →* Null} == null ?{core::String*} #t2.{core::List::[]=}(#t3, "fisk" as{TypeError} Null){(core::int*, Null) →* void} : null;
+  core::print(new self::Sub::•().{self::Sub::hashCode}{core::int});
+  core::List<core::String?> l = core::_GrowableList::_literal1<core::String?>(null);
+  let final core::List<core::String?> #t2 = l in let final core::int #t3 = 0 in #t2.{core::List::[]}(#t3){(core::int) → core::String?} == null ?{core::String} #t2.{core::List::[]=}(#t3, "fisk"){(core::int, core::String?) → void} : null;
 }
 
 
 Extra constant evaluation status:
 Evaluated: VariableGet @ org-dartlang-testcase:///issue_000081.dart:22:5 -> IntConstant(0)
 Evaluated: VariableGet @ org-dartlang-testcase:///issue_000081.dart:22:5 -> IntConstant(0)
-Extra constant evaluation: evaluated: 33, effectively constant: 2
+Extra constant evaluation: evaluated: 32, effectively constant: 2
diff --git a/pkg/front_end/testcases/rasta/malformed_const_constructor.dart b/pkg/front_end/testcases/rasta/malformed_const_constructor.dart
index 4644505..05cfa99 100644
--- a/pkg/front_end/testcases/rasta/malformed_const_constructor.dart
+++ b/pkg/front_end/testcases/rasta/malformed_const_constructor.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.md file.
-// @dart=2.9
+
 class A {
   const A()
     : x = 'foo'
diff --git a/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.textual_outline.expect
index ed64514..42f4004 100644
--- a/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   const A() : x = 'foo' {}
   :
diff --git a/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.expect b/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.expect
index 40bd823..a0572cf 100644
--- a/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -29,19 +29,9 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::String* x = "foo";
-  constructor •() → self::A*
+  field core::String x = "foo";
+  constructor •() → self::A
     : self::A::x = "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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/rasta/malformed_const_constructor.dart:13:9: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
diff --git a/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.modular.expect
index 40bd823..a0572cf 100644
--- a/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -29,19 +29,9 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::String* x = "foo";
-  constructor •() → self::A*
+  field core::String x = "foo";
+  constructor •() → self::A
     : self::A::x = "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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/rasta/malformed_const_constructor.dart:13:9: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
diff --git a/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.outline.expect
index eaf9c61..6b2c7aa 100644
--- a/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -24,19 +24,9 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::String* x;
-  constructor •() → self::A*
+  field core::String 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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.transformed.expect
index 40bd823..a0572cf 100644
--- a/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -29,19 +29,9 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::String* x = "foo";
-  constructor •() → self::A*
+  field core::String x = "foo";
+  constructor •() → self::A
     : self::A::x = "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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/rasta/malformed_const_constructor.dart:13:9: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
diff --git a/pkg/front_end/testcases/rasta/malformed_function.dart b/pkg/front_end/testcases/rasta/malformed_function.dart
index 6441714..8d0c3c8 100644
--- a/pkg/front_end/testcases/rasta/malformed_function.dart
+++ b/pkg/front_end/testcases/rasta/malformed_function.dart
@@ -1,7 +1,6 @@
 // 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.md file.
-// @dart=2.9
 
 main() {
   (null) = null;
diff --git a/pkg/front_end/testcases/rasta/malformed_function.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/malformed_function.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/malformed_function.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/malformed_function.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/malformed_function.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/malformed_function.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/malformed_function.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/malformed_function.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/malformed_function.dart.weak.expect b/pkg/front_end/testcases/rasta/malformed_function.dart.weak.expect
index 35bc1cd..0481716 100644
--- a/pkg/front_end/testcases/rasta/malformed_function.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/malformed_function.dart.weak.expect
@@ -1,15 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/rasta/malformed_function.dart:7:8: Error: Can't assign to a parenthesized expression.
+// pkg/front_end/testcases/rasta/malformed_function.dart:6:8: Error: Can't assign to a parenthesized expression.
 //   (null) = null;
 //        ^
 //
 import self as self;
 
 static method main() → dynamic {
-  invalid-expression "pkg/front_end/testcases/rasta/malformed_function.dart:7:8: Error: Can't assign to a parenthesized expression.
+  invalid-expression "pkg/front_end/testcases/rasta/malformed_function.dart:6:8: Error: Can't assign to a parenthesized expression.
   (null) = null;
        ^";
 }
diff --git a/pkg/front_end/testcases/rasta/malformed_function.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/malformed_function.dart.weak.modular.expect
index 35bc1cd..0481716 100644
--- a/pkg/front_end/testcases/rasta/malformed_function.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/malformed_function.dart.weak.modular.expect
@@ -1,15 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/rasta/malformed_function.dart:7:8: Error: Can't assign to a parenthesized expression.
+// pkg/front_end/testcases/rasta/malformed_function.dart:6:8: Error: Can't assign to a parenthesized expression.
 //   (null) = null;
 //        ^
 //
 import self as self;
 
 static method main() → dynamic {
-  invalid-expression "pkg/front_end/testcases/rasta/malformed_function.dart:7:8: Error: Can't assign to a parenthesized expression.
+  invalid-expression "pkg/front_end/testcases/rasta/malformed_function.dart:6:8: Error: Can't assign to a parenthesized expression.
   (null) = null;
        ^";
 }
diff --git a/pkg/front_end/testcases/rasta/malformed_function.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/malformed_function.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/rasta/malformed_function.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/malformed_function.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/rasta/malformed_function.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/malformed_function.dart.weak.transformed.expect
index 35bc1cd..0481716 100644
--- a/pkg/front_end/testcases/rasta/malformed_function.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/malformed_function.dart.weak.transformed.expect
@@ -1,15 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/rasta/malformed_function.dart:7:8: Error: Can't assign to a parenthesized expression.
+// pkg/front_end/testcases/rasta/malformed_function.dart:6:8: Error: Can't assign to a parenthesized expression.
 //   (null) = null;
 //        ^
 //
 import self as self;
 
 static method main() → dynamic {
-  invalid-expression "pkg/front_end/testcases/rasta/malformed_function.dart:7:8: Error: Can't assign to a parenthesized expression.
+  invalid-expression "pkg/front_end/testcases/rasta/malformed_function.dart:6:8: Error: Can't assign to a parenthesized expression.
   (null) = null;
        ^";
 }
diff --git a/pkg/front_end/testcases/rasta/malformed_function_type.dart b/pkg/front_end/testcases/rasta/malformed_function_type.dart
index 421a840..3b2ad71 100644
--- a/pkg/front_end/testcases/rasta/malformed_function_type.dart
+++ b/pkg/front_end/testcases/rasta/malformed_function_type.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.md file.
-// @dart=2.9
+
 typedef Handle Handle(String command);
 
 main() {
diff --git a/pkg/front_end/testcases/rasta/malformed_function_type.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/malformed_function_type.dart.textual_outline.expect
index 74b053b..6587e81 100644
--- a/pkg/front_end/testcases/rasta/malformed_function_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/malformed_function_type.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 typedef Handle Handle(String command);
 main() {}
diff --git a/pkg/front_end/testcases/rasta/malformed_function_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/malformed_function_type.dart.textual_outline_modelled.expect
index f6b9e28..2afa7c6 100644
--- a/pkg/front_end/testcases/rasta/malformed_function_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/malformed_function_type.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
 typedef Handle Handle(String command);
diff --git a/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.expect b/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.expect
index 3444c42..b3a4eb0 100644
--- a/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.modular.expect
index 3444c42..b3a4eb0 100644
--- a/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.outline.expect
index dc3f69b..1c330ee 100644
--- a/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.transformed.expect
index 3444c42..b3a4eb0 100644
--- a/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/malformed_function_type.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart b/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart
index 17e7ec8..60805fe 100644
--- a/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart
+++ b/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart
@@ -1,6 +1,6 @@
 // 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.md file.
-// @dart=2.9
+
 main(arguments = [x]) {
 }
diff --git a/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.textual_outline.expect
index 7fe4a13..7184e04 100644
--- a/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main(arguments = [x]) {}
diff --git a/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.expect b/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.expect
index ac6a230..5cb17fa 100644
--- a/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.modular.expect
index ac6a230..5cb17fa 100644
--- a/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.outline.expect
index 347001a..377ace0 100644
--- a/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.transformed.expect
index ac6a230..5cb17fa 100644
--- a/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/mandatory_parameter_initializer.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart b/pkg/front_end/testcases/rasta/mixin_library.dart
index 184cc8c..e441d85 100644
--- a/pkg/front_end/testcases/rasta/mixin_library.dart
+++ b/pkg/front_end/testcases/rasta/mixin_library.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.md file.
-// @dart=2.9
+
 library test.mixin_library;
 
 f() => 2;
@@ -12,9 +12,9 @@
 
 class Mixin<T> {
   var x = f(), y, z;
-  T t;
+  T? t;
   foo() => super.foo() + f();
-  T g(T a) => null;
+  T? g(T a) => null;
   h() => V();
   l() => _private();
   _privateMethod() => 49;
diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline.expect
index 474bd37a..1c6c28f 100644
--- a/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test.mixin_library;
 
 f() => 2;
@@ -7,9 +6,9 @@
 
 class Mixin<T> {
   var x = f(), y, z;
-  T t;
+  T? t;
   foo() => super.foo() + f();
-  T g(T a) => null;
+  T? g(T a) => null;
   h() => V();
   l() => _private();
   _privateMethod() => 49;
diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline_modelled.expect
index 37e28e4..c541020 100644
--- a/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline_modelled.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
 library test.mixin_library;
 
 V() => 87;
 _private() => 117;
 
 class Mixin<T> {
-  T g(T a) => null;
-  T t;
+  T? g(T a) => null;
+  T? t;
   _privateMethod() => 49;
   foo() => super.foo() + f();
   h() => V();
diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart.weak.expect b/pkg/front_end/testcases/rasta/mixin_library.dart.weak.expect
index e6d1af6..b2c83f5 100644
--- a/pkg/front_end/testcases/rasta/mixin_library.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/mixin_library.dart.weak.expect
@@ -1,4 +1,4 @@
-library test.mixin_library;
+library test.mixin_library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,17 +9,17 @@
 import self as self;
 import "dart:core" as core;
 
-class Mixin<T extends core::Object* = dynamic> extends core::Object {
+class Mixin<T extends core::Object? = dynamic> extends core::Object {
   field dynamic x = self::f();
   field dynamic y = null;
   field dynamic z = null;
-  covariant-by-class field self::Mixin::T* t = null;
-  synthetic constructor •() → self::Mixin<self::Mixin::T*>*
+  covariant-by-class field self::Mixin::T? t = null;
+  synthetic constructor •() → self::Mixin<self::Mixin::T%>
     : super core::Object::•()
     ;
   method foo() → dynamic
     return super.foo(){dynamic}.+(self::f());
-  method g(covariant-by-class self::Mixin::T* a) → self::Mixin::T*
+  method g(covariant-by-class self::Mixin::T% a) → self::Mixin::T?
     return null;
   method h() → dynamic
     return self::V();
@@ -28,17 +28,7 @@
   method _privateMethod() → dynamic
     return 49;
   method publicMethod() → dynamic
-    return this.{self::Mixin::_privateMethod}(){() →* 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
+    return this.{self::Mixin::_privateMethod}(){() → dynamic};
 }
 static method f() → dynamic
   return 2;
diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/mixin_library.dart.weak.modular.expect
index e6d1af6..b2c83f5 100644
--- a/pkg/front_end/testcases/rasta/mixin_library.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/mixin_library.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test.mixin_library;
+library test.mixin_library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,17 +9,17 @@
 import self as self;
 import "dart:core" as core;
 
-class Mixin<T extends core::Object* = dynamic> extends core::Object {
+class Mixin<T extends core::Object? = dynamic> extends core::Object {
   field dynamic x = self::f();
   field dynamic y = null;
   field dynamic z = null;
-  covariant-by-class field self::Mixin::T* t = null;
-  synthetic constructor •() → self::Mixin<self::Mixin::T*>*
+  covariant-by-class field self::Mixin::T? t = null;
+  synthetic constructor •() → self::Mixin<self::Mixin::T%>
     : super core::Object::•()
     ;
   method foo() → dynamic
     return super.foo(){dynamic}.+(self::f());
-  method g(covariant-by-class self::Mixin::T* a) → self::Mixin::T*
+  method g(covariant-by-class self::Mixin::T% a) → self::Mixin::T?
     return null;
   method h() → dynamic
     return self::V();
@@ -28,17 +28,7 @@
   method _privateMethod() → dynamic
     return 49;
   method publicMethod() → dynamic
-    return this.{self::Mixin::_privateMethod}(){() →* 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
+    return this.{self::Mixin::_privateMethod}(){() → dynamic};
 }
 static method f() → dynamic
   return 2;
diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/mixin_library.dart.weak.outline.expect
index 4eb68b3..97d8008 100644
--- a/pkg/front_end/testcases/rasta/mixin_library.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/mixin_library.dart.weak.outline.expect
@@ -1,17 +1,17 @@
-library test.mixin_library;
+library test.mixin_library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class Mixin<T extends core::Object* = dynamic> extends core::Object {
+class Mixin<T extends core::Object? = dynamic> extends core::Object {
   field dynamic x;
   field dynamic y;
   field dynamic z;
-  covariant-by-class field self::Mixin::T* t;
-  synthetic constructor •() → self::Mixin<self::Mixin::T*>*
+  covariant-by-class field self::Mixin::T? t;
+  synthetic constructor •() → self::Mixin<self::Mixin::T%>
     ;
   method foo() → dynamic
     ;
-  method g(covariant-by-class self::Mixin::T* a) → self::Mixin::T*
+  method g(covariant-by-class self::Mixin::T% a) → self::Mixin::T?
     ;
   method h() → dynamic
     ;
@@ -21,16 +21,6 @@
     ;
   method publicMethod() → 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 f() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/native_is_illegal.dart b/pkg/front_end/testcases/rasta/native_is_illegal.dart
index 9004717..84b8275 100644
--- a/pkg/front_end/testcases/rasta/native_is_illegal.dart
+++ b/pkg/front_end/testcases/rasta/native_is_illegal.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.md file.
-// @dart=2.9
+
 foo() native "foo";
 
 class Bar {
diff --git a/pkg/front_end/testcases/rasta/native_is_illegal.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/native_is_illegal.dart.textual_outline.expect
index cfac286..f28a475 100644
--- a/pkg/front_end/testcases/rasta/native_is_illegal.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/native_is_illegal.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 foo() native "foo";
 
 class Bar {
diff --git a/pkg/front_end/testcases/rasta/native_is_illegal.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/native_is_illegal.dart.textual_outline_modelled.expect
index 70d6f72..61833c6 100644
--- a/pkg/front_end/testcases/rasta/native_is_illegal.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/native_is_illegal.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Bar {
   Bar get x native "Bar_get_x";
   f() native "Bar_f";
diff --git a/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.expect b/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.expect
index b24cb95..09d6406 100644
--- a/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.expect
@@ -1,27 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:_internal" as _in;
 
 class Bar extends core::Object {
   @#C2
-  external get x() → self::Bar*;
+  external get x() → self::Bar;
   @#C4
-  external set x(self::Bar* value) → void;
+  external set x(self::Bar value) → void;
   @#C6
   external method f() → dynamic;
   @#C8
-  external static factory •() → self::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
+  external static factory •() → self::Bar;
 }
 @#C10
 external static method foo() → dynamic;
diff --git a/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.modular.expect
index b24cb95..09d6406 100644
--- a/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:_internal" as _in;
 
 class Bar extends core::Object {
   @#C2
-  external get x() → self::Bar*;
+  external get x() → self::Bar;
   @#C4
-  external set x(self::Bar* value) → void;
+  external set x(self::Bar value) → void;
   @#C6
   external method f() → dynamic;
   @#C8
-  external static factory •() → self::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
+  external static factory •() → self::Bar;
 }
 @#C10
 external static method foo() → dynamic;
diff --git a/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.outline.expect
index 24d4e95..c33cad6 100644
--- a/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Bar extends core::Object {
-  external get x() → self::Bar*;
-  external set x(self::Bar* value) → void;
+  external get x() → self::Bar;
+  external set x(self::Bar value) → void;
   external method f() → dynamic;
-  external static factory •() → self::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
+  external static factory •() → self::Bar;
 }
 external static method foo() → dynamic;
diff --git a/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.transformed.expect
index b24cb95..09d6406 100644
--- a/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:_internal" as _in;
 
 class Bar extends core::Object {
   @#C2
-  external get x() → self::Bar*;
+  external get x() → self::Bar;
   @#C4
-  external set x(self::Bar* value) → void;
+  external set x(self::Bar value) → void;
   @#C6
   external method f() → dynamic;
   @#C8
-  external static factory •() → self::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
+  external static factory •() → self::Bar;
 }
 @#C10
 external static method foo() → dynamic;
diff --git a/pkg/front_end/testcases/rasta/parser_error.dart b/pkg/front_end/testcases/rasta/parser_error.dart
index 4c72c20..130d0ea 100644
--- a/pkg/front_end/testcases/rasta/parser_error.dart
+++ b/pkg/front_end/testcases/rasta/parser_error.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.md file.
-// @dart=2.9
+
 // Copy of third_party/dart-sdk/tests/language/argument_definition_test.dart.
 
 import "package:expect/expect.dart";
diff --git a/pkg/front_end/testcases/rasta/parser_error.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/parser_error.dart.textual_outline.expect
index 23b1d7b..bbfef96 100644
--- a/pkg/front_end/testcases/rasta/parser_error.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/parser_error.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "package:expect/expect.dart";
 
 int test(a, {b, c}) {}
diff --git a/pkg/front_end/testcases/rasta/parser_error.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/parser_error.dart.textual_outline_modelled.expect
index 23b1d7b..bbfef96 100644
--- a/pkg/front_end/testcases/rasta/parser_error.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/parser_error.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "package:expect/expect.dart";
 
 int test(a, {b, c}) {}
diff --git a/pkg/front_end/testcases/rasta/parser_error.dart.weak.expect b/pkg/front_end/testcases/rasta/parser_error.dart.weak.expect
index b83c501..c5d5819 100644
--- a/pkg/front_end/testcases/rasta/parser_error.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/parser_error.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -22,14 +22,14 @@
 
 import "package:expect/expect.dart";
 
-static method test(dynamic a, {dynamic b = #C1, dynamic c = #C1}) → core::int* {
+static method test(dynamic a, {dynamic b = #C1, dynamic c = #C1}) → core::int {
   if(invalid-expression "pkg/front_end/testcases/rasta/parser_error.dart:10:7: Error: This couldn't be parsed.
   if (?b) return b;  /// 01: compile-time error
       ^" ?{invalid-type} b : invalid-expression "pkg/front_end/testcases/rasta/parser_error.dart:10:9: Error: This couldn't be parsed.
   if (?b) return b;  /// 01: compile-time error
         ^")
-    return b as{TypeError,ForDynamic} core::int*;
-  return a{dynamic}.+(b){dynamic}.+(c) as{TypeError,ForDynamic} core::int*;
+    return b as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
+  return a{dynamic}.+(b){dynamic}.+(c) as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
 }
 static method main() → dynamic {
   exp::Expect::equals(6, self::test(1, b: 2, c: 3));
diff --git a/pkg/front_end/testcases/rasta/parser_error.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/parser_error.dart.weak.modular.expect
index b83c501..c5d5819 100644
--- a/pkg/front_end/testcases/rasta/parser_error.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/parser_error.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -22,14 +22,14 @@
 
 import "package:expect/expect.dart";
 
-static method test(dynamic a, {dynamic b = #C1, dynamic c = #C1}) → core::int* {
+static method test(dynamic a, {dynamic b = #C1, dynamic c = #C1}) → core::int {
   if(invalid-expression "pkg/front_end/testcases/rasta/parser_error.dart:10:7: Error: This couldn't be parsed.
   if (?b) return b;  /// 01: compile-time error
       ^" ?{invalid-type} b : invalid-expression "pkg/front_end/testcases/rasta/parser_error.dart:10:9: Error: This couldn't be parsed.
   if (?b) return b;  /// 01: compile-time error
         ^")
-    return b as{TypeError,ForDynamic} core::int*;
-  return a{dynamic}.+(b){dynamic}.+(c) as{TypeError,ForDynamic} core::int*;
+    return b as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
+  return a{dynamic}.+(b){dynamic}.+(c) as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
 }
 static method main() → dynamic {
   exp::Expect::equals(6, self::test(1, b: 2, c: 3));
diff --git a/pkg/front_end/testcases/rasta/parser_error.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/parser_error.dart.weak.outline.expect
index 0beef0a..9473147 100644
--- a/pkg/front_end/testcases/rasta/parser_error.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/parser_error.dart.weak.outline.expect
@@ -1,10 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "package:expect/expect.dart";
 
-static method test(dynamic a, {dynamic b, dynamic c}) → core::int*
+static method test(dynamic a, {dynamic b, dynamic c}) → core::int
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/parser_error.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/parser_error.dart.weak.transformed.expect
index b83c501..c5d5819 100644
--- a/pkg/front_end/testcases/rasta/parser_error.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/parser_error.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -22,14 +22,14 @@
 
 import "package:expect/expect.dart";
 
-static method test(dynamic a, {dynamic b = #C1, dynamic c = #C1}) → core::int* {
+static method test(dynamic a, {dynamic b = #C1, dynamic c = #C1}) → core::int {
   if(invalid-expression "pkg/front_end/testcases/rasta/parser_error.dart:10:7: Error: This couldn't be parsed.
   if (?b) return b;  /// 01: compile-time error
       ^" ?{invalid-type} b : invalid-expression "pkg/front_end/testcases/rasta/parser_error.dart:10:9: Error: This couldn't be parsed.
   if (?b) return b;  /// 01: compile-time error
         ^")
-    return b as{TypeError,ForDynamic} core::int*;
-  return a{dynamic}.+(b){dynamic}.+(c) as{TypeError,ForDynamic} core::int*;
+    return b as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
+  return a{dynamic}.+(b){dynamic}.+(c) as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
 }
 static method main() → dynamic {
   exp::Expect::equals(6, self::test(1, b: 2, c: 3));
diff --git a/pkg/front_end/testcases/rasta/previsit_deferred.dart b/pkg/front_end/testcases/rasta/previsit_deferred.dart
index 7dc438f..ac2c00c 100644
--- a/pkg/front_end/testcases/rasta/previsit_deferred.dart
+++ b/pkg/front_end/testcases/rasta/previsit_deferred.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.md file.
-// @dart=2.9
+
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/rasta/previsit_deferred.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/previsit_deferred.dart.textual_outline.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/rasta/previsit_deferred.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/previsit_deferred.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/rasta/previsit_deferred.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/previsit_deferred.dart.textual_outline_modelled.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/rasta/previsit_deferred.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/previsit_deferred.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.expect b/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.expect
index 0a16b0d..df83b80 100644
--- a/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "deferred_lib.dart" as def;
 
@@ -9,7 +9,7 @@
   let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::foo();
 }
 
-library deferred_lib;
+library deferred_lib /*isNonNullableByDefault*/;
 import self as def;
 
 static method foo() → dynamic
diff --git a/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.modular.expect
index 0a16b0d..df83b80 100644
--- a/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "deferred_lib.dart" as def;
 
@@ -9,7 +9,7 @@
   let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::foo();
 }
 
-library deferred_lib;
+library deferred_lib /*isNonNullableByDefault*/;
 import self as def;
 
 static method foo() → dynamic
diff --git a/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.outline.expect
index c800260..61bfbcb 100644
--- a/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "org-dartlang-testcase:///deferred_lib.dart" deferred as lib;
@@ -8,7 +8,7 @@
 static method test() → dynamic
   ;
 
-library deferred_lib;
+library deferred_lib /*isNonNullableByDefault*/;
 import self as self2;
 
 static method foo() → dynamic
diff --git a/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.transformed.expect
index 15f8439..d2d2a4a 100644
--- a/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/previsit_deferred.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "deferred_lib.dart" as def;
@@ -10,7 +10,7 @@
   let final core::Object* #t1 = CheckLibraryIsLoaded(lib) in def::foo();
 }
 
-library deferred_lib;
+library deferred_lib /*isNonNullableByDefault*/;
 import self as def;
 
 static method foo() → dynamic
diff --git a/pkg/front_end/testcases/rasta/static.dart b/pkg/front_end/testcases/rasta/static.dart
index 5375c40..a95c6e6 100644
--- a/pkg/front_end/testcases/rasta/static.dart
+++ b/pkg/front_end/testcases/rasta/static.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.md file.
-// @dart=2.9
+
 class Foo {
   static const staticConstant = 42;
   static var staticField = 42;
diff --git a/pkg/front_end/testcases/rasta/static.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/static.dart.textual_outline.expect
index 6565604..e24cfe0 100644
--- a/pkg/front_end/testcases/rasta/static.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/static.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Foo {
   static const staticConstant = 42;
   static var staticField = 42;
diff --git a/pkg/front_end/testcases/rasta/static.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/static.dart.textual_outline_modelled.expect
index 6c7a474..079b3cc 100644
--- a/pkg/front_end/testcases/rasta/static.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/static.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Foo {
   static const staticConstant = 42;
   static get staticGetter => null;
diff --git a/pkg/front_end/testcases/rasta/static.dart.weak.expect b/pkg/front_end/testcases/rasta/static.dart.weak.expect
index 3be7b62..3272801 100644
--- a/pkg/front_end/testcases/rasta/static.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/static.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -158,32 +158,46 @@
 //     use(Foo.staticField());
 //                        ^
 //
+// pkg/front_end/testcases/rasta/static.dart:75:9: Warning: Operand of null-aware operation '??=' has type 'int' which excludes null.
+//     Foo.staticConstant ??= 87;
+//         ^
+//
+// pkg/front_end/testcases/rasta/static.dart:76:13: Warning: Operand of null-aware operation '??=' has type 'int' which excludes null.
+//     use(Foo.staticConstant ??= 87);
+//             ^
+//
+// pkg/front_end/testcases/rasta/static.dart:77:9: Warning: Operand of null-aware operation '??=' has type 'int' which excludes null.
+//     Foo.staticField ??= 87;
+//         ^
+//
+// pkg/front_end/testcases/rasta/static.dart:78:13: Warning: Operand of null-aware operation '??=' has type 'int' which excludes null.
+//     use(Foo.staticField ??= 87);
+//             ^
+//
+// pkg/front_end/testcases/rasta/static.dart:79:9: Warning: Operand of null-aware operation '??=' has type 'dynamic Function()' which excludes null.
+//     Foo.staticFunction ??= 87;
+//         ^
+//
+// pkg/front_end/testcases/rasta/static.dart:80:13: Warning: Operand of null-aware operation '??=' has type 'dynamic Function()' which excludes null.
+//     use(Foo.staticFunction ??= 87);
+//             ^
+//
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  static const field core::int* staticConstant = #C1;
-  static field core::int* staticField = 42;
-  synthetic constructor •() → self::Foo*
+  static const field core::int staticConstant = #C1;
+  static field core::int staticField = 42;
+  synthetic constructor •() → self::Foo
     : super core::Object::•()
     ;
   static method staticFunction() → dynamic {}
   static get staticGetter() → dynamic
     return null;
   static set staticSetter(dynamic _) → 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 use(dynamic x) → dynamic {
-  if(x =={core::Object::==}{(core::Object*) →* core::bool*} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int*})
+  if(x =={core::Object::==}{(core::Object) → core::bool} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int})
     throw "Shouldn't happen";
 }
 static method main() → dynamic {
@@ -205,15 +219,15 @@
     invalid-expression "pkg/front_end/testcases/rasta/static.dart:31:9: Error: Setter not found: 'staticConstant'.
     Foo.staticConstant++;
         ^^^^^^^^^^^^^^";
-    self::use(let final core::int* #t1 = #C1 in let final invalid-type #t2 = invalid-expression "pkg/front_end/testcases/rasta/static.dart:32:13: Error: Setter not found: 'staticConstant'.
+    self::use(let final core::int #t1 = #C1 in let final invalid-type #t2 = invalid-expression "pkg/front_end/testcases/rasta/static.dart:32:13: Error: Setter not found: 'staticConstant'.
     use(Foo.staticConstant++);
             ^^^^^^^^^^^^^^" in #t1);
-    self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num*) →* core::int*};
-    self::use(let final core::int* #t3 = self::Foo::staticField in let final core::int* #t4 = self::Foo::staticField = #t3.{core::num::+}(1){(core::num*) →* core::int*} in #t3);
+    self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num) → core::int};
+    self::use(let final core::int #t3 = self::Foo::staticField in let final core::int #t4 = self::Foo::staticField = #t3.{core::num::+}(1){(core::num) → core::int} in #t3);
     invalid-expression "pkg/front_end/testcases/rasta/static.dart:35:9: Error: Setter not found: 'staticFunction'.
     Foo.staticFunction++;
         ^^^^^^^^^^^^^^";
-    self::use(let final () →* dynamic #t5 = #C2 in let final invalid-type #t6 = invalid-expression "pkg/front_end/testcases/rasta/static.dart:36:13: Error: Setter not found: 'staticFunction'.
+    self::use(let final () → dynamic #t5 = #C2 in let final invalid-type #t6 = invalid-expression "pkg/front_end/testcases/rasta/static.dart:36:13: Error: Setter not found: 'staticFunction'.
     use(Foo.staticFunction++);
             ^^^^^^^^^^^^^^" in #t5);
     invalid-expression "pkg/front_end/testcases/rasta/static.dart:37:9: Error: Setter not found: 'staticGetter'.
@@ -234,8 +248,8 @@
     self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:43:15: Error: Setter not found: 'staticConstant'.
     use(++Foo.staticConstant);
               ^^^^^^^^^^^^^^");
-    self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num*) →* core::int*};
-    self::use(self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num*) →* core::int*});
+    self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num) → core::int};
+    self::use(self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num) → core::int});
     invalid-expression "pkg/front_end/testcases/rasta/static.dart:46:11: Error: Setter not found: 'staticFunction'.
     ++Foo.staticFunction;
           ^^^^^^^^^^^^^^";
@@ -305,15 +319,15 @@
     #C1 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:75:9: Error: Setter not found: 'staticConstant'.
     Foo.staticConstant ??= 87;
         ^^^^^^^^^^^^^^" : null;
-    self::use(let final core::int* #t11 = #C1 in #t11 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:76:13: Error: Setter not found: 'staticConstant'.
+    self::use(let final core::int #t11 = #C1 in #t11 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:76:13: Error: Setter not found: 'staticConstant'.
     use(Foo.staticConstant ??= 87);
             ^^^^^^^^^^^^^^" : #t11);
-    self::Foo::staticField == null ?{core::int*} self::Foo::staticField = 87 : null;
-    self::use(let final core::int* #t12 = self::Foo::staticField in #t12 == null ?{core::int*} self::Foo::staticField = 87 : #t12);
+    self::Foo::staticField == null ?{core::int} self::Foo::staticField = 87 : null;
+    self::use(let final core::int #t12 = self::Foo::staticField in #t12 == null ?{core::int} self::Foo::staticField = 87 : #t12);
     #C2 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:79:9: Error: Setter not found: 'staticFunction'.
     Foo.staticFunction ??= 87;
         ^^^^^^^^^^^^^^" : null;
-    self::use(let final () →* dynamic #t13 = #C2 in #t13 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:80:13: Error: Setter not found: 'staticFunction'.
+    self::use(let final () → dynamic #t13 = #C2 in #t13 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:80:13: Error: Setter not found: 'staticFunction'.
     use(Foo.staticFunction ??= 87);
             ^^^^^^^^^^^^^^" : #t13);
     self::Foo::staticGetter == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:81:9: Error: Setter not found: 'staticGetter'.
@@ -329,7 +343,7 @@
     use(Foo.staticSetter ??= 87);
             ^^^^^^^^^^^^" in #t15 == null ?{invalid-type} self::Foo::staticSetter = 87 : #t15);
   }
-  on core::NoSuchMethodError* catch(no-exception-var) {
+  on core::NoSuchMethodError catch(no-exception-var) {
   }
 }
 
diff --git a/pkg/front_end/testcases/rasta/static.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/static.dart.weak.modular.expect
index 3be7b62..3272801 100644
--- a/pkg/front_end/testcases/rasta/static.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/static.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -158,32 +158,46 @@
 //     use(Foo.staticField());
 //                        ^
 //
+// pkg/front_end/testcases/rasta/static.dart:75:9: Warning: Operand of null-aware operation '??=' has type 'int' which excludes null.
+//     Foo.staticConstant ??= 87;
+//         ^
+//
+// pkg/front_end/testcases/rasta/static.dart:76:13: Warning: Operand of null-aware operation '??=' has type 'int' which excludes null.
+//     use(Foo.staticConstant ??= 87);
+//             ^
+//
+// pkg/front_end/testcases/rasta/static.dart:77:9: Warning: Operand of null-aware operation '??=' has type 'int' which excludes null.
+//     Foo.staticField ??= 87;
+//         ^
+//
+// pkg/front_end/testcases/rasta/static.dart:78:13: Warning: Operand of null-aware operation '??=' has type 'int' which excludes null.
+//     use(Foo.staticField ??= 87);
+//             ^
+//
+// pkg/front_end/testcases/rasta/static.dart:79:9: Warning: Operand of null-aware operation '??=' has type 'dynamic Function()' which excludes null.
+//     Foo.staticFunction ??= 87;
+//         ^
+//
+// pkg/front_end/testcases/rasta/static.dart:80:13: Warning: Operand of null-aware operation '??=' has type 'dynamic Function()' which excludes null.
+//     use(Foo.staticFunction ??= 87);
+//             ^
+//
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  static const field core::int* staticConstant = #C1;
-  static field core::int* staticField = 42;
-  synthetic constructor •() → self::Foo*
+  static const field core::int staticConstant = #C1;
+  static field core::int staticField = 42;
+  synthetic constructor •() → self::Foo
     : super core::Object::•()
     ;
   static method staticFunction() → dynamic {}
   static get staticGetter() → dynamic
     return null;
   static set staticSetter(dynamic _) → 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 use(dynamic x) → dynamic {
-  if(x =={core::Object::==}{(core::Object*) →* core::bool*} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int*})
+  if(x =={core::Object::==}{(core::Object) → core::bool} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int})
     throw "Shouldn't happen";
 }
 static method main() → dynamic {
@@ -205,15 +219,15 @@
     invalid-expression "pkg/front_end/testcases/rasta/static.dart:31:9: Error: Setter not found: 'staticConstant'.
     Foo.staticConstant++;
         ^^^^^^^^^^^^^^";
-    self::use(let final core::int* #t1 = #C1 in let final invalid-type #t2 = invalid-expression "pkg/front_end/testcases/rasta/static.dart:32:13: Error: Setter not found: 'staticConstant'.
+    self::use(let final core::int #t1 = #C1 in let final invalid-type #t2 = invalid-expression "pkg/front_end/testcases/rasta/static.dart:32:13: Error: Setter not found: 'staticConstant'.
     use(Foo.staticConstant++);
             ^^^^^^^^^^^^^^" in #t1);
-    self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num*) →* core::int*};
-    self::use(let final core::int* #t3 = self::Foo::staticField in let final core::int* #t4 = self::Foo::staticField = #t3.{core::num::+}(1){(core::num*) →* core::int*} in #t3);
+    self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num) → core::int};
+    self::use(let final core::int #t3 = self::Foo::staticField in let final core::int #t4 = self::Foo::staticField = #t3.{core::num::+}(1){(core::num) → core::int} in #t3);
     invalid-expression "pkg/front_end/testcases/rasta/static.dart:35:9: Error: Setter not found: 'staticFunction'.
     Foo.staticFunction++;
         ^^^^^^^^^^^^^^";
-    self::use(let final () →* dynamic #t5 = #C2 in let final invalid-type #t6 = invalid-expression "pkg/front_end/testcases/rasta/static.dart:36:13: Error: Setter not found: 'staticFunction'.
+    self::use(let final () → dynamic #t5 = #C2 in let final invalid-type #t6 = invalid-expression "pkg/front_end/testcases/rasta/static.dart:36:13: Error: Setter not found: 'staticFunction'.
     use(Foo.staticFunction++);
             ^^^^^^^^^^^^^^" in #t5);
     invalid-expression "pkg/front_end/testcases/rasta/static.dart:37:9: Error: Setter not found: 'staticGetter'.
@@ -234,8 +248,8 @@
     self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:43:15: Error: Setter not found: 'staticConstant'.
     use(++Foo.staticConstant);
               ^^^^^^^^^^^^^^");
-    self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num*) →* core::int*};
-    self::use(self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num*) →* core::int*});
+    self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num) → core::int};
+    self::use(self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num) → core::int});
     invalid-expression "pkg/front_end/testcases/rasta/static.dart:46:11: Error: Setter not found: 'staticFunction'.
     ++Foo.staticFunction;
           ^^^^^^^^^^^^^^";
@@ -305,15 +319,15 @@
     #C1 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:75:9: Error: Setter not found: 'staticConstant'.
     Foo.staticConstant ??= 87;
         ^^^^^^^^^^^^^^" : null;
-    self::use(let final core::int* #t11 = #C1 in #t11 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:76:13: Error: Setter not found: 'staticConstant'.
+    self::use(let final core::int #t11 = #C1 in #t11 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:76:13: Error: Setter not found: 'staticConstant'.
     use(Foo.staticConstant ??= 87);
             ^^^^^^^^^^^^^^" : #t11);
-    self::Foo::staticField == null ?{core::int*} self::Foo::staticField = 87 : null;
-    self::use(let final core::int* #t12 = self::Foo::staticField in #t12 == null ?{core::int*} self::Foo::staticField = 87 : #t12);
+    self::Foo::staticField == null ?{core::int} self::Foo::staticField = 87 : null;
+    self::use(let final core::int #t12 = self::Foo::staticField in #t12 == null ?{core::int} self::Foo::staticField = 87 : #t12);
     #C2 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:79:9: Error: Setter not found: 'staticFunction'.
     Foo.staticFunction ??= 87;
         ^^^^^^^^^^^^^^" : null;
-    self::use(let final () →* dynamic #t13 = #C2 in #t13 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:80:13: Error: Setter not found: 'staticFunction'.
+    self::use(let final () → dynamic #t13 = #C2 in #t13 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:80:13: Error: Setter not found: 'staticFunction'.
     use(Foo.staticFunction ??= 87);
             ^^^^^^^^^^^^^^" : #t13);
     self::Foo::staticGetter == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:81:9: Error: Setter not found: 'staticGetter'.
@@ -329,7 +343,7 @@
     use(Foo.staticSetter ??= 87);
             ^^^^^^^^^^^^" in #t15 == null ?{invalid-type} self::Foo::staticSetter = 87 : #t15);
   }
-  on core::NoSuchMethodError* catch(no-exception-var) {
+  on core::NoSuchMethodError catch(no-exception-var) {
   }
 }
 
diff --git a/pkg/front_end/testcases/rasta/static.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/static.dart.weak.outline.expect
index 2c8f8c3..8372222 100644
--- a/pkg/front_end/testcases/rasta/static.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/static.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  static const field core::int* staticConstant = 42;
-  static field core::int* staticField;
-  synthetic constructor •() → self::Foo*
+  static const field core::int staticConstant = 42;
+  static field core::int staticField;
+  synthetic constructor •() → self::Foo
     ;
   static method staticFunction() → dynamic
     ;
@@ -13,16 +13,6 @@
     ;
   static set staticSetter(dynamic _) → 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 use(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/static.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/static.dart.weak.transformed.expect
index 4938d46..2e1d10f 100644
--- a/pkg/front_end/testcases/rasta/static.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/static.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -158,32 +158,46 @@
 //     use(Foo.staticField());
 //                        ^
 //
+// pkg/front_end/testcases/rasta/static.dart:75:9: Warning: Operand of null-aware operation '??=' has type 'int' which excludes null.
+//     Foo.staticConstant ??= 87;
+//         ^
+//
+// pkg/front_end/testcases/rasta/static.dart:76:13: Warning: Operand of null-aware operation '??=' has type 'int' which excludes null.
+//     use(Foo.staticConstant ??= 87);
+//             ^
+//
+// pkg/front_end/testcases/rasta/static.dart:77:9: Warning: Operand of null-aware operation '??=' has type 'int' which excludes null.
+//     Foo.staticField ??= 87;
+//         ^
+//
+// pkg/front_end/testcases/rasta/static.dart:78:13: Warning: Operand of null-aware operation '??=' has type 'int' which excludes null.
+//     use(Foo.staticField ??= 87);
+//             ^
+//
+// pkg/front_end/testcases/rasta/static.dart:79:9: Warning: Operand of null-aware operation '??=' has type 'dynamic Function()' which excludes null.
+//     Foo.staticFunction ??= 87;
+//         ^
+//
+// pkg/front_end/testcases/rasta/static.dart:80:13: Warning: Operand of null-aware operation '??=' has type 'dynamic Function()' which excludes null.
+//     use(Foo.staticFunction ??= 87);
+//             ^
+//
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  static const field core::int* staticConstant = #C1;
-  static field core::int* staticField = 42;
-  synthetic constructor •() → self::Foo*
+  static const field core::int staticConstant = #C1;
+  static field core::int staticField = 42;
+  synthetic constructor •() → self::Foo
     : super core::Object::•()
     ;
   static method staticFunction() → dynamic {}
   static get staticGetter() → dynamic
     return null;
   static set staticSetter(dynamic _) → 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 use(dynamic x) → dynamic {
-  if(x =={core::Object::==}{(core::Object*) →* core::bool*} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int*})
+  if(x =={core::Object::==}{(core::Object) → core::bool} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int})
     throw "Shouldn't happen";
 }
 static method main() → dynamic {
@@ -205,15 +219,15 @@
     invalid-expression "pkg/front_end/testcases/rasta/static.dart:31:9: Error: Setter not found: 'staticConstant'.
     Foo.staticConstant++;
         ^^^^^^^^^^^^^^";
-    self::use(let final core::int* #t1 = #C1 in let final invalid-type #t2 = invalid-expression "pkg/front_end/testcases/rasta/static.dart:32:13: Error: Setter not found: 'staticConstant'.
+    self::use(let final core::int #t1 = #C1 in let final invalid-type #t2 = invalid-expression "pkg/front_end/testcases/rasta/static.dart:32:13: Error: Setter not found: 'staticConstant'.
     use(Foo.staticConstant++);
             ^^^^^^^^^^^^^^" in #t1);
-    self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num*) →* core::int*};
-    self::use(let final core::int* #t3 = self::Foo::staticField in let final core::int* #t4 = self::Foo::staticField = #t3.{core::num::+}(1){(core::num*) →* core::int*} in #t3);
+    self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num) → core::int};
+    self::use(let final core::int #t3 = self::Foo::staticField in let final core::int #t4 = self::Foo::staticField = #t3.{core::num::+}(1){(core::num) → core::int} in #t3);
     invalid-expression "pkg/front_end/testcases/rasta/static.dart:35:9: Error: Setter not found: 'staticFunction'.
     Foo.staticFunction++;
         ^^^^^^^^^^^^^^";
-    self::use(let final () →* dynamic #t5 = #C2 in let final invalid-type #t6 = invalid-expression "pkg/front_end/testcases/rasta/static.dart:36:13: Error: Setter not found: 'staticFunction'.
+    self::use(let final () → dynamic #t5 = #C2 in let final invalid-type #t6 = invalid-expression "pkg/front_end/testcases/rasta/static.dart:36:13: Error: Setter not found: 'staticFunction'.
     use(Foo.staticFunction++);
             ^^^^^^^^^^^^^^" in #t5);
     invalid-expression "pkg/front_end/testcases/rasta/static.dart:37:9: Error: Setter not found: 'staticGetter'.
@@ -234,8 +248,8 @@
     self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:43:15: Error: Setter not found: 'staticConstant'.
     use(++Foo.staticConstant);
               ^^^^^^^^^^^^^^");
-    self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num*) →* core::int*};
-    self::use(self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num*) →* core::int*});
+    self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num) → core::int};
+    self::use(self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num) → core::int});
     invalid-expression "pkg/front_end/testcases/rasta/static.dart:46:11: Error: Setter not found: 'staticFunction'.
     ++Foo.staticFunction;
           ^^^^^^^^^^^^^^";
@@ -305,15 +319,15 @@
     #C1 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:75:9: Error: Setter not found: 'staticConstant'.
     Foo.staticConstant ??= 87;
         ^^^^^^^^^^^^^^" : null;
-    self::use(let final core::int* #t11 = #C1 in #t11 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:76:13: Error: Setter not found: 'staticConstant'.
+    self::use(let final core::int #t11 = #C1 in #t11 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:76:13: Error: Setter not found: 'staticConstant'.
     use(Foo.staticConstant ??= 87);
             ^^^^^^^^^^^^^^" : #t11);
-    self::Foo::staticField == null ?{core::int*} self::Foo::staticField = 87 : null;
-    self::use(let final core::int* #t12 = self::Foo::staticField in #t12 == null ?{core::int*} self::Foo::staticField = 87 : #t12);
+    self::Foo::staticField == null ?{core::int} self::Foo::staticField = 87 : null;
+    self::use(let final core::int #t12 = self::Foo::staticField in #t12 == null ?{core::int} self::Foo::staticField = 87 : #t12);
     #C2 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:79:9: Error: Setter not found: 'staticFunction'.
     Foo.staticFunction ??= 87;
         ^^^^^^^^^^^^^^" : null;
-    self::use(let final () →* dynamic #t13 = #C2 in #t13 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:80:13: Error: Setter not found: 'staticFunction'.
+    self::use(let final () → dynamic #t13 = #C2 in #t13 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:80:13: Error: Setter not found: 'staticFunction'.
     use(Foo.staticFunction ??= 87);
             ^^^^^^^^^^^^^^" : #t13);
     self::Foo::staticGetter == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:81:9: Error: Setter not found: 'staticGetter'.
@@ -329,7 +343,7 @@
     use(Foo.staticSetter ??= 87);
             ^^^^^^^^^^^^" in #t15 == null ?{invalid-type} self::Foo::staticSetter = 87 : #t15);
   }
-  on core::NoSuchMethodError* catch(no-exception-var) {
+  on core::NoSuchMethodError catch(no-exception-var) {
   }
 }
 
diff --git a/pkg/front_end/testcases/rasta/super.dart b/pkg/front_end/testcases/rasta/super.dart
index 99b7d5a..3ad3f2a 100644
--- a/pkg/front_end/testcases/rasta/super.dart
+++ b/pkg/front_end/testcases/rasta/super.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.md file.
-// @dart=2.9
+
 class A {
   var a;
   var b;
diff --git a/pkg/front_end/testcases/rasta/super.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/super.dart.textual_outline.expect
index 76c1398..df2c783 100644
--- a/pkg/front_end/testcases/rasta/super.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/super.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   var a;
   var b;
diff --git a/pkg/front_end/testcases/rasta/super.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/super.dart.textual_outline_modelled.expect
index e01c37b..9ce4369 100644
--- a/pkg/front_end/testcases/rasta/super.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/super.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   final f;
   get e => null;
diff --git a/pkg/front_end/testcases/rasta/super.dart.weak.expect b/pkg/front_end/testcases/rasta/super.dart.weak.expect
index e24c07d..7c84eab 100644
--- a/pkg/front_end/testcases/rasta/super.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/super.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -293,6 +293,22 @@
 //     use(super.n(87));
 //                ^
 //
+// pkg/front_end/testcases/rasta/super.dart:197:11: Warning: Operand of null-aware operation '??=' has type 'void Function()' which excludes null.
+//     super.m ??= 42;
+//           ^
+//
+// pkg/front_end/testcases/rasta/super.dart:198:15: Warning: Operand of null-aware operation '??=' has type 'void Function()' which excludes null.
+//     use(super.m ??= 42);
+//               ^
+//
+// pkg/front_end/testcases/rasta/super.dart:199:11: Warning: Operand of null-aware operation '??=' has type 'void Function()' which excludes null.
+//     super.n ??= 42;
+//           ^
+//
+// pkg/front_end/testcases/rasta/super.dart:200:15: Warning: Operand of null-aware operation '??=' has type 'void Function()' which excludes null.
+//     use(super.n ??= 42);
+//               ^
+//
 // pkg/front_end/testcases/rasta/super.dart:222:13: Error: The operator '+' isn't defined for the class 'void Function()'.
 // Try correcting the operator to an existing operator, or defining a '+' operator.
 //     super.m += 42;
@@ -352,7 +368,7 @@
   field dynamic c = null;
   field dynamic d = null;
   final field dynamic f = null;
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   get e() → dynamic
@@ -370,24 +386,15 @@
     return 117;
   operator unary-() → dynamic
     return 117;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → core::bool
     return true;
   method m() → void {}
   method n() → void {}
   set n(dynamic _) → 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 get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   final field dynamic d = null;
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
   get b() → dynamic
@@ -396,7 +403,7 @@
   set i(dynamic x) → void {}
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
   method test() → dynamic {
@@ -462,13 +469,13 @@
     self::use(let final dynamic #t15 = super.{self::A::h} in let final dynamic #t16 = super.{self::A::h} = #t15{dynamic}.+(1) in #t15);
     super.{self::B::i} = super.{self::A::i}{dynamic}.+(1);
     self::use(let final dynamic #t17 = super.{self::A::i} in let final dynamic #t18 = super.{self::B::i} = #t17{dynamic}.+(1) in #t17);
-    let final core::int* #t19 = 87 in super.{self::A::[]=}(#t19, super.{self::A::[]}(#t19){dynamic}.+(1));
-    self::use(let final core::int* #t20 = 87 in let final dynamic #t21 = super.{self::A::[]}(#t20) in let final void #t22 = super.{self::A::[]=}(#t20, #t21{dynamic}.+(1)) in #t21);
+    let final core::int #t19 = 87 in super.{self::A::[]=}(#t19, super.{self::A::[]}(#t19){dynamic}.+(1));
+    self::use(let final core::int #t20 = 87 in let final dynamic #t21 = super.{self::A::[]}(#t20) in let final void #t22 = super.{self::A::[]=}(#t20, #t21{dynamic}.+(1)) in #t21);
     super.m = invalid-expression "pkg/front_end/testcases/rasta/super.dart:95:12: Error: The operator '+' isn't defined for the class 'void Function()'.
 Try correcting the operator to an existing operator, or defining a '+' operator.
     super.m++;
            ^" in super.{self::A::m}{<unresolved>}.+(1);
-    self::use(let final () →* void #t23 = super.{self::A::m} in let final dynamic #t24 = super.m = invalid-expression "pkg/front_end/testcases/rasta/super.dart:96:16: Error: The operator '+' isn't defined for the class 'void Function()'.
+    self::use(let final () → void #t23 = super.{self::A::m} in let final dynamic #t24 = super.m = invalid-expression "pkg/front_end/testcases/rasta/super.dart:96:16: Error: The operator '+' isn't defined for the class 'void Function()'.
 Try correcting the operator to an existing operator, or defining a '+' operator.
     use(super.m++);
                ^" in #t23{<unresolved>}.+(1) in #t23);
@@ -476,7 +483,7 @@
 Try correcting the operator to an existing operator, or defining a '+' operator.
     super.n++;
            ^" in super.{self::A::n}{<unresolved>}.+(1);
-    self::use(let final () →* void #t25 = super.{self::A::n} in let final dynamic #t26 = super.{self::A::n} = invalid-expression "pkg/front_end/testcases/rasta/super.dart:98:16: Error: The operator '+' isn't defined for the class 'void Function()'.
+    self::use(let final () → void #t25 = super.{self::A::n} in let final dynamic #t26 = super.{self::A::n} = invalid-expression "pkg/front_end/testcases/rasta/super.dart:98:16: Error: The operator '+' isn't defined for the class 'void Function()'.
 Try correcting the operator to an existing operator, or defining a '+' operator.
     use(super.n++);
                ^" in #t25{<unresolved>}.+(1) in #t25);
@@ -498,8 +505,8 @@
     self::use(super.{self::A::h} = super.{self::A::h}{dynamic}.+(1));
     super.{self::B::i} = super.{self::A::i}{dynamic}.+(1);
     self::use(super.{self::B::i} = super.{self::A::i}{dynamic}.+(1));
-    let final core::int* #t27 = 87 in let final dynamic #t28 = super.{self::A::[]}(#t27){dynamic}.+(1) in let final void #t29 = super.{self::A::[]=}(#t27, #t28) in #t28;
-    self::use(let final core::int* #t30 = 87 in let final dynamic #t31 = super.{self::A::[]}(#t30){dynamic}.+(1) in let final void #t32 = super.{self::A::[]=}(#t30, #t31) in #t31);
+    let final core::int #t27 = 87 in let final dynamic #t28 = super.{self::A::[]}(#t27){dynamic}.+(1) in let final void #t29 = super.{self::A::[]=}(#t27, #t28) in #t28;
+    self::use(let final core::int #t30 = 87 in let final dynamic #t31 = super.{self::A::[]}(#t30){dynamic}.+(1) in let final void #t32 = super.{self::A::[]=}(#t30, #t31) in #t31);
     super.m = invalid-expression "pkg/front_end/testcases/rasta/super.dart:120:5: Error: The operator '+' isn't defined for the class 'void Function()'.
 Try correcting the operator to an existing operator, or defining a '+' operator.
     ++super.m;
@@ -575,7 +582,7 @@
     super.{self::B::i} = 42;
     self::use(super.{self::B::i} = 42);
     super.{self::A::[]=}(87, 42);
-    self::use(let final core::int* #t33 = 87 in let final core::int* #t34 = 42 in let final void #t35 = super.{self::A::[]=}(#t33, #t34) in #t34);
+    self::use(let final core::int #t33 = 87 in let final core::int #t34 = 42 in let final void #t35 = super.{self::A::[]=}(#t33, #t34) in #t34);
     super.m = 42;
     self::use(super.m = 42);
     super.{self::A::n} = 42;
@@ -598,12 +605,12 @@
     self::use(let final dynamic #t43 = super.{self::A::h} in #t43 == null ?{dynamic} super.{self::A::h} = 42 : #t43);
     super.{self::A::i} == null ?{dynamic} super.{self::B::i} = 42 : null;
     self::use(let final dynamic #t44 = super.{self::A::i} in #t44 == null ?{dynamic} super.{self::B::i} = 42 : #t44);
-    let final core::int* #t45 = 87 in super.{self::A::[]}(#t45) == null ?{dynamic} super.{self::A::[]=}(#t45, 42) : null;
-    self::use(let final core::int* #t46 = 87 in let final dynamic #t47 = super.{self::A::[]}(#t46) in #t47 == null ?{dynamic} let final core::int* #t48 = 42 in let final void #t49 = super.{self::A::[]=}(#t46, #t48) in #t48 : #t47);
-    super.{self::A::m} == null ?{core::Object*} super.m = 42 : null;
-    self::use(let final () →* void #t50 = super.{self::A::m} in #t50 == null ?{core::Object*} super.m = 42 : #t50);
-    super.{self::A::n} == null ?{core::Object*} super.{self::A::n} = 42 : null;
-    self::use(let final () →* void #t51 = super.{self::A::n} in #t51 == null ?{core::Object*} super.{self::A::n} = 42 : #t51);
+    let final core::int #t45 = 87 in super.{self::A::[]}(#t45) == null ?{dynamic} super.{self::A::[]=}(#t45, 42) : null;
+    self::use(let final core::int #t46 = 87 in let final dynamic #t47 = super.{self::A::[]}(#t46) in #t47 == null ?{dynamic} let final core::int #t48 = 42 in let final void #t49 = super.{self::A::[]=}(#t46, #t48) in #t48 : #t47);
+    super.{self::A::m} == null ?{core::Object} super.m = 42 : null;
+    self::use(let final () → void #t50 = super.{self::A::m} in #t50 == null ?{core::Object} super.m = 42 : #t50);
+    super.{self::A::n} == null ?{core::Object} super.{self::A::n} = 42 : null;
+    self::use(let final () → void #t51 = super.{self::A::n} in #t51 == null ?{core::Object} super.{self::A::n} = 42 : #t51);
     super.{self::A::a} = super.{self::A::a}{dynamic}.+(42);
     self::use(super.{self::A::a} = super.{self::A::a}{dynamic}.+(42));
     super.{self::A::b} = super.{self::B::b}{dynamic}.+(42);
@@ -622,8 +629,8 @@
     self::use(super.{self::A::h} = super.{self::A::h}{dynamic}.+(42));
     super.{self::B::i} = super.{self::A::i}{dynamic}.+(42);
     self::use(super.{self::B::i} = super.{self::A::i}{dynamic}.+(42));
-    let final core::int* #t52 = 87 in super.{self::A::[]=}(#t52, super.{self::A::[]}(#t52){dynamic}.+(42));
-    self::use(let final core::int* #t53 = 87 in let final dynamic #t54 = super.{self::A::[]}(#t53){dynamic}.+(42) in let final void #t55 = super.{self::A::[]=}(#t53, #t54) in #t54);
+    let final core::int #t52 = 87 in super.{self::A::[]=}(#t52, super.{self::A::[]}(#t52){dynamic}.+(42));
+    self::use(let final core::int #t53 = 87 in let final dynamic #t54 = super.{self::A::[]}(#t53){dynamic}.+(42) in let final void #t55 = super.{self::A::[]=}(#t53, #t54) in #t54);
     super.m = invalid-expression "pkg/front_end/testcases/rasta/super.dart:222:13: Error: The operator '+' isn't defined for the class 'void Function()'.
 Try correcting the operator to an existing operator, or defining a '+' operator.
     super.m += 42;
@@ -658,8 +665,8 @@
     self::use(super.{self::A::h} = super.{self::A::h}{dynamic}.-(42));
     super.{self::B::i} = super.{self::A::i}{dynamic}.-(42);
     self::use(super.{self::B::i} = super.{self::A::i}{dynamic}.-(42));
-    let final core::int* #t56 = 87 in super.{self::A::[]=}(#t56, super.{self::A::[]}(#t56){dynamic}.-(42));
-    self::use(let final core::int* #t57 = 87 in let final dynamic #t58 = super.{self::A::[]}(#t57){dynamic}.-(42) in let final void #t59 = super.{self::A::[]=}(#t57, #t58) in #t58);
+    let final core::int #t56 = 87 in super.{self::A::[]=}(#t56, super.{self::A::[]}(#t56){dynamic}.-(42));
+    self::use(let final core::int #t57 = 87 in let final dynamic #t58 = super.{self::A::[]}(#t57){dynamic}.-(42) in let final void #t59 = super.{self::A::[]=}(#t57, #t58) in #t58);
     super.m = invalid-expression "pkg/front_end/testcases/rasta/super.dart:247:13: Error: The operator '-' isn't defined for the class 'void Function()'.
 Try correcting the operator to an existing operator, or defining a '-' operator.
     super.m -= 42;
@@ -679,9 +686,9 @@
   }
 }
 static method use(dynamic x) → dynamic {
-  if(x =={core::Object::==}{(core::Object*) →* core::bool*} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int*})
+  if(x =={core::Object::==}{(core::Object) → core::bool} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int})
     throw "Shouldn't happen";
 }
 static method main() → dynamic {
-  new self::C::•().{self::C::test}(){() →* dynamic};
+  new self::C::•().{self::C::test}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/rasta/super.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/super.dart.weak.modular.expect
index e24c07d..7c84eab 100644
--- a/pkg/front_end/testcases/rasta/super.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/super.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -293,6 +293,22 @@
 //     use(super.n(87));
 //                ^
 //
+// pkg/front_end/testcases/rasta/super.dart:197:11: Warning: Operand of null-aware operation '??=' has type 'void Function()' which excludes null.
+//     super.m ??= 42;
+//           ^
+//
+// pkg/front_end/testcases/rasta/super.dart:198:15: Warning: Operand of null-aware operation '??=' has type 'void Function()' which excludes null.
+//     use(super.m ??= 42);
+//               ^
+//
+// pkg/front_end/testcases/rasta/super.dart:199:11: Warning: Operand of null-aware operation '??=' has type 'void Function()' which excludes null.
+//     super.n ??= 42;
+//           ^
+//
+// pkg/front_end/testcases/rasta/super.dart:200:15: Warning: Operand of null-aware operation '??=' has type 'void Function()' which excludes null.
+//     use(super.n ??= 42);
+//               ^
+//
 // pkg/front_end/testcases/rasta/super.dart:222:13: Error: The operator '+' isn't defined for the class 'void Function()'.
 // Try correcting the operator to an existing operator, or defining a '+' operator.
 //     super.m += 42;
@@ -352,7 +368,7 @@
   field dynamic c = null;
   field dynamic d = null;
   final field dynamic f = null;
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   get e() → dynamic
@@ -370,24 +386,15 @@
     return 117;
   operator unary-() → dynamic
     return 117;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → core::bool
     return true;
   method m() → void {}
   method n() → void {}
   set n(dynamic _) → 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 get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   final field dynamic d = null;
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
   get b() → dynamic
@@ -396,7 +403,7 @@
   set i(dynamic x) → void {}
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
   method test() → dynamic {
@@ -462,13 +469,13 @@
     self::use(let final dynamic #t15 = super.{self::A::h} in let final dynamic #t16 = super.{self::A::h} = #t15{dynamic}.+(1) in #t15);
     super.{self::B::i} = super.{self::A::i}{dynamic}.+(1);
     self::use(let final dynamic #t17 = super.{self::A::i} in let final dynamic #t18 = super.{self::B::i} = #t17{dynamic}.+(1) in #t17);
-    let final core::int* #t19 = 87 in super.{self::A::[]=}(#t19, super.{self::A::[]}(#t19){dynamic}.+(1));
-    self::use(let final core::int* #t20 = 87 in let final dynamic #t21 = super.{self::A::[]}(#t20) in let final void #t22 = super.{self::A::[]=}(#t20, #t21{dynamic}.+(1)) in #t21);
+    let final core::int #t19 = 87 in super.{self::A::[]=}(#t19, super.{self::A::[]}(#t19){dynamic}.+(1));
+    self::use(let final core::int #t20 = 87 in let final dynamic #t21 = super.{self::A::[]}(#t20) in let final void #t22 = super.{self::A::[]=}(#t20, #t21{dynamic}.+(1)) in #t21);
     super.m = invalid-expression "pkg/front_end/testcases/rasta/super.dart:95:12: Error: The operator '+' isn't defined for the class 'void Function()'.
 Try correcting the operator to an existing operator, or defining a '+' operator.
     super.m++;
            ^" in super.{self::A::m}{<unresolved>}.+(1);
-    self::use(let final () →* void #t23 = super.{self::A::m} in let final dynamic #t24 = super.m = invalid-expression "pkg/front_end/testcases/rasta/super.dart:96:16: Error: The operator '+' isn't defined for the class 'void Function()'.
+    self::use(let final () → void #t23 = super.{self::A::m} in let final dynamic #t24 = super.m = invalid-expression "pkg/front_end/testcases/rasta/super.dart:96:16: Error: The operator '+' isn't defined for the class 'void Function()'.
 Try correcting the operator to an existing operator, or defining a '+' operator.
     use(super.m++);
                ^" in #t23{<unresolved>}.+(1) in #t23);
@@ -476,7 +483,7 @@
 Try correcting the operator to an existing operator, or defining a '+' operator.
     super.n++;
            ^" in super.{self::A::n}{<unresolved>}.+(1);
-    self::use(let final () →* void #t25 = super.{self::A::n} in let final dynamic #t26 = super.{self::A::n} = invalid-expression "pkg/front_end/testcases/rasta/super.dart:98:16: Error: The operator '+' isn't defined for the class 'void Function()'.
+    self::use(let final () → void #t25 = super.{self::A::n} in let final dynamic #t26 = super.{self::A::n} = invalid-expression "pkg/front_end/testcases/rasta/super.dart:98:16: Error: The operator '+' isn't defined for the class 'void Function()'.
 Try correcting the operator to an existing operator, or defining a '+' operator.
     use(super.n++);
                ^" in #t25{<unresolved>}.+(1) in #t25);
@@ -498,8 +505,8 @@
     self::use(super.{self::A::h} = super.{self::A::h}{dynamic}.+(1));
     super.{self::B::i} = super.{self::A::i}{dynamic}.+(1);
     self::use(super.{self::B::i} = super.{self::A::i}{dynamic}.+(1));
-    let final core::int* #t27 = 87 in let final dynamic #t28 = super.{self::A::[]}(#t27){dynamic}.+(1) in let final void #t29 = super.{self::A::[]=}(#t27, #t28) in #t28;
-    self::use(let final core::int* #t30 = 87 in let final dynamic #t31 = super.{self::A::[]}(#t30){dynamic}.+(1) in let final void #t32 = super.{self::A::[]=}(#t30, #t31) in #t31);
+    let final core::int #t27 = 87 in let final dynamic #t28 = super.{self::A::[]}(#t27){dynamic}.+(1) in let final void #t29 = super.{self::A::[]=}(#t27, #t28) in #t28;
+    self::use(let final core::int #t30 = 87 in let final dynamic #t31 = super.{self::A::[]}(#t30){dynamic}.+(1) in let final void #t32 = super.{self::A::[]=}(#t30, #t31) in #t31);
     super.m = invalid-expression "pkg/front_end/testcases/rasta/super.dart:120:5: Error: The operator '+' isn't defined for the class 'void Function()'.
 Try correcting the operator to an existing operator, or defining a '+' operator.
     ++super.m;
@@ -575,7 +582,7 @@
     super.{self::B::i} = 42;
     self::use(super.{self::B::i} = 42);
     super.{self::A::[]=}(87, 42);
-    self::use(let final core::int* #t33 = 87 in let final core::int* #t34 = 42 in let final void #t35 = super.{self::A::[]=}(#t33, #t34) in #t34);
+    self::use(let final core::int #t33 = 87 in let final core::int #t34 = 42 in let final void #t35 = super.{self::A::[]=}(#t33, #t34) in #t34);
     super.m = 42;
     self::use(super.m = 42);
     super.{self::A::n} = 42;
@@ -598,12 +605,12 @@
     self::use(let final dynamic #t43 = super.{self::A::h} in #t43 == null ?{dynamic} super.{self::A::h} = 42 : #t43);
     super.{self::A::i} == null ?{dynamic} super.{self::B::i} = 42 : null;
     self::use(let final dynamic #t44 = super.{self::A::i} in #t44 == null ?{dynamic} super.{self::B::i} = 42 : #t44);
-    let final core::int* #t45 = 87 in super.{self::A::[]}(#t45) == null ?{dynamic} super.{self::A::[]=}(#t45, 42) : null;
-    self::use(let final core::int* #t46 = 87 in let final dynamic #t47 = super.{self::A::[]}(#t46) in #t47 == null ?{dynamic} let final core::int* #t48 = 42 in let final void #t49 = super.{self::A::[]=}(#t46, #t48) in #t48 : #t47);
-    super.{self::A::m} == null ?{core::Object*} super.m = 42 : null;
-    self::use(let final () →* void #t50 = super.{self::A::m} in #t50 == null ?{core::Object*} super.m = 42 : #t50);
-    super.{self::A::n} == null ?{core::Object*} super.{self::A::n} = 42 : null;
-    self::use(let final () →* void #t51 = super.{self::A::n} in #t51 == null ?{core::Object*} super.{self::A::n} = 42 : #t51);
+    let final core::int #t45 = 87 in super.{self::A::[]}(#t45) == null ?{dynamic} super.{self::A::[]=}(#t45, 42) : null;
+    self::use(let final core::int #t46 = 87 in let final dynamic #t47 = super.{self::A::[]}(#t46) in #t47 == null ?{dynamic} let final core::int #t48 = 42 in let final void #t49 = super.{self::A::[]=}(#t46, #t48) in #t48 : #t47);
+    super.{self::A::m} == null ?{core::Object} super.m = 42 : null;
+    self::use(let final () → void #t50 = super.{self::A::m} in #t50 == null ?{core::Object} super.m = 42 : #t50);
+    super.{self::A::n} == null ?{core::Object} super.{self::A::n} = 42 : null;
+    self::use(let final () → void #t51 = super.{self::A::n} in #t51 == null ?{core::Object} super.{self::A::n} = 42 : #t51);
     super.{self::A::a} = super.{self::A::a}{dynamic}.+(42);
     self::use(super.{self::A::a} = super.{self::A::a}{dynamic}.+(42));
     super.{self::A::b} = super.{self::B::b}{dynamic}.+(42);
@@ -622,8 +629,8 @@
     self::use(super.{self::A::h} = super.{self::A::h}{dynamic}.+(42));
     super.{self::B::i} = super.{self::A::i}{dynamic}.+(42);
     self::use(super.{self::B::i} = super.{self::A::i}{dynamic}.+(42));
-    let final core::int* #t52 = 87 in super.{self::A::[]=}(#t52, super.{self::A::[]}(#t52){dynamic}.+(42));
-    self::use(let final core::int* #t53 = 87 in let final dynamic #t54 = super.{self::A::[]}(#t53){dynamic}.+(42) in let final void #t55 = super.{self::A::[]=}(#t53, #t54) in #t54);
+    let final core::int #t52 = 87 in super.{self::A::[]=}(#t52, super.{self::A::[]}(#t52){dynamic}.+(42));
+    self::use(let final core::int #t53 = 87 in let final dynamic #t54 = super.{self::A::[]}(#t53){dynamic}.+(42) in let final void #t55 = super.{self::A::[]=}(#t53, #t54) in #t54);
     super.m = invalid-expression "pkg/front_end/testcases/rasta/super.dart:222:13: Error: The operator '+' isn't defined for the class 'void Function()'.
 Try correcting the operator to an existing operator, or defining a '+' operator.
     super.m += 42;
@@ -658,8 +665,8 @@
     self::use(super.{self::A::h} = super.{self::A::h}{dynamic}.-(42));
     super.{self::B::i} = super.{self::A::i}{dynamic}.-(42);
     self::use(super.{self::B::i} = super.{self::A::i}{dynamic}.-(42));
-    let final core::int* #t56 = 87 in super.{self::A::[]=}(#t56, super.{self::A::[]}(#t56){dynamic}.-(42));
-    self::use(let final core::int* #t57 = 87 in let final dynamic #t58 = super.{self::A::[]}(#t57){dynamic}.-(42) in let final void #t59 = super.{self::A::[]=}(#t57, #t58) in #t58);
+    let final core::int #t56 = 87 in super.{self::A::[]=}(#t56, super.{self::A::[]}(#t56){dynamic}.-(42));
+    self::use(let final core::int #t57 = 87 in let final dynamic #t58 = super.{self::A::[]}(#t57){dynamic}.-(42) in let final void #t59 = super.{self::A::[]=}(#t57, #t58) in #t58);
     super.m = invalid-expression "pkg/front_end/testcases/rasta/super.dart:247:13: Error: The operator '-' isn't defined for the class 'void Function()'.
 Try correcting the operator to an existing operator, or defining a '-' operator.
     super.m -= 42;
@@ -679,9 +686,9 @@
   }
 }
 static method use(dynamic x) → dynamic {
-  if(x =={core::Object::==}{(core::Object*) →* core::bool*} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int*})
+  if(x =={core::Object::==}{(core::Object) → core::bool} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int})
     throw "Shouldn't happen";
 }
 static method main() → dynamic {
-  new self::C::•().{self::C::test}(){() →* dynamic};
+  new self::C::•().{self::C::test}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/rasta/super.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/super.dart.weak.outline.expect
index 33b6451..e68282a 100644
--- a/pkg/front_end/testcases/rasta/super.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/super.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,7 +18,7 @@
   field dynamic c;
   field dynamic d;
   final field dynamic f;
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
   get e() → dynamic
     ;
@@ -38,7 +38,7 @@
     ;
   operator unary-() → dynamic
     ;
-  operator ==(dynamic other) → core::bool*
+  operator ==(core::Object other) → core::bool
     ;
   method m() → void
     ;
@@ -46,19 +46,10 @@
     ;
   set n(dynamic _) → 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 get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   final field dynamic d;
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
   get b() → dynamic
     ;
@@ -68,7 +59,7 @@
     ;
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
   method test() → dynamic
     ;
diff --git a/pkg/front_end/testcases/rasta/super_initializer.dart b/pkg/front_end/testcases/rasta/super_initializer.dart
index ce255d2..8793150 100644
--- a/pkg/front_end/testcases/rasta/super_initializer.dart
+++ b/pkg/front_end/testcases/rasta/super_initializer.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.md file.
-// @dart=2.9
+
 class Super {
   Super.arg0();
   Super.arg1(a);
diff --git a/pkg/front_end/testcases/rasta/super_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/super_initializer.dart.textual_outline.expect
index 99130ff..c058c68 100644
--- a/pkg/front_end/testcases/rasta/super_initializer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/super_initializer.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Super {
   Super.arg0();
   Super.arg1(a);
diff --git a/pkg/front_end/testcases/rasta/super_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/super_initializer.dart.textual_outline_modelled.expect
index 6c33e35..65f2d20 100644
--- a/pkg/front_end/testcases/rasta/super_initializer.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/super_initializer.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Sub extends Super {
   Sub.arg0()
       : super.arg0(),
diff --git a/pkg/front_end/testcases/rasta/super_initializer.dart.weak.expect b/pkg/front_end/testcases/rasta/super_initializer.dart.weak.expect
index 03f043f..cf141db 100644
--- a/pkg/front_end/testcases/rasta/super_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/super_initializer.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,39 +18,29 @@
 import "dart:core" as core;
 
 class Super extends core::Object {
-  constructor arg0() → self::Super*
+  constructor arg0() → self::Super
     : super core::Object::•()
     ;
-  constructor arg1(dynamic a) → self::Super*
+  constructor arg1(dynamic a) → self::Super
     : super core::Object::•()
     ;
-  constructor arg2(dynamic a, dynamic b) → self::Super*
+  constructor arg2(dynamic a, dynamic b) → 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 Sub extends self::Super {
   field dynamic field;
-  constructor arg0() → self::Sub*
+  constructor arg0() → self::Sub
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/super_initializer.dart:15:15: Error: Can't have initializers after 'super'.
         field = 42;
               ^", super self::Super::arg0()
     ;
-  constructor arg1(dynamic a) → self::Sub*
+  constructor arg1(dynamic a) → self::Sub
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/rasta/super_initializer.dart:18:15: Error: Can't have initializers after 'super'.
         field = 42;
               ^", super self::Super::arg1(a)
     ;
-  constructor arg2(dynamic a, dynamic b) → self::Sub*
+  constructor arg2(dynamic a, dynamic b) → self::Sub
     : final dynamic #t3 = invalid-expression "pkg/front_end/testcases/rasta/super_initializer.dart:21:15: Error: Can't have initializers after 'super'.
         field = 42;
               ^", super self::Super::arg2(a, b)
diff --git a/pkg/front_end/testcases/rasta/super_initializer.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/super_initializer.dart.weak.modular.expect
index 03f043f..cf141db 100644
--- a/pkg/front_end/testcases/rasta/super_initializer.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/super_initializer.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,39 +18,29 @@
 import "dart:core" as core;
 
 class Super extends core::Object {
-  constructor arg0() → self::Super*
+  constructor arg0() → self::Super
     : super core::Object::•()
     ;
-  constructor arg1(dynamic a) → self::Super*
+  constructor arg1(dynamic a) → self::Super
     : super core::Object::•()
     ;
-  constructor arg2(dynamic a, dynamic b) → self::Super*
+  constructor arg2(dynamic a, dynamic b) → 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 Sub extends self::Super {
   field dynamic field;
-  constructor arg0() → self::Sub*
+  constructor arg0() → self::Sub
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/super_initializer.dart:15:15: Error: Can't have initializers after 'super'.
         field = 42;
               ^", super self::Super::arg0()
     ;
-  constructor arg1(dynamic a) → self::Sub*
+  constructor arg1(dynamic a) → self::Sub
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/rasta/super_initializer.dart:18:15: Error: Can't have initializers after 'super'.
         field = 42;
               ^", super self::Super::arg1(a)
     ;
-  constructor arg2(dynamic a, dynamic b) → self::Sub*
+  constructor arg2(dynamic a, dynamic b) → self::Sub
     : final dynamic #t3 = invalid-expression "pkg/front_end/testcases/rasta/super_initializer.dart:21:15: Error: Can't have initializers after 'super'.
         field = 42;
               ^", super self::Super::arg2(a, b)
diff --git a/pkg/front_end/testcases/rasta/super_initializer.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/super_initializer.dart.weak.outline.expect
index e366002..7a30c6d 100644
--- a/pkg/front_end/testcases/rasta/super_initializer.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/super_initializer.dart.weak.outline.expect
@@ -1,31 +1,21 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Super extends core::Object {
-  constructor arg0() → self::Super*
+  constructor arg0() → self::Super
     ;
-  constructor arg1(dynamic a) → self::Super*
+  constructor arg1(dynamic a) → self::Super
     ;
-  constructor arg2(dynamic a, dynamic b) → self::Super*
+  constructor arg2(dynamic a, dynamic b) → 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 Sub extends self::Super {
   field dynamic field;
-  constructor arg0() → self::Sub*
+  constructor arg0() → self::Sub
     ;
-  constructor arg1(dynamic a) → self::Sub*
+  constructor arg1(dynamic a) → self::Sub
     ;
-  constructor arg2(dynamic a, dynamic b) → self::Sub*
+  constructor arg2(dynamic a, dynamic b) → self::Sub
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/super_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/super_initializer.dart.weak.transformed.expect
index 03f043f..cf141db 100644
--- a/pkg/front_end/testcases/rasta/super_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/super_initializer.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,39 +18,29 @@
 import "dart:core" as core;
 
 class Super extends core::Object {
-  constructor arg0() → self::Super*
+  constructor arg0() → self::Super
     : super core::Object::•()
     ;
-  constructor arg1(dynamic a) → self::Super*
+  constructor arg1(dynamic a) → self::Super
     : super core::Object::•()
     ;
-  constructor arg2(dynamic a, dynamic b) → self::Super*
+  constructor arg2(dynamic a, dynamic b) → 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 Sub extends self::Super {
   field dynamic field;
-  constructor arg0() → self::Sub*
+  constructor arg0() → self::Sub
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/rasta/super_initializer.dart:15:15: Error: Can't have initializers after 'super'.
         field = 42;
               ^", super self::Super::arg0()
     ;
-  constructor arg1(dynamic a) → self::Sub*
+  constructor arg1(dynamic a) → self::Sub
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/rasta/super_initializer.dart:18:15: Error: Can't have initializers after 'super'.
         field = 42;
               ^", super self::Super::arg1(a)
     ;
-  constructor arg2(dynamic a, dynamic b) → self::Sub*
+  constructor arg2(dynamic a, dynamic b) → self::Sub
     : final dynamic #t3 = invalid-expression "pkg/front_end/testcases/rasta/super_initializer.dart:21:15: Error: Can't have initializers after 'super'.
         field = 42;
               ^", super self::Super::arg2(a, b)
diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart b/pkg/front_end/testcases/rasta/super_mixin.dart
index c6d7ab0..913db8e 100644
--- a/pkg/front_end/testcases/rasta/super_mixin.dart
+++ b/pkg/front_end/testcases/rasta/super_mixin.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.md file.
-// @dart=2.9
+
 import "mixin_library.dart" show Mixin;
 
 class Super<S> {
diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/super_mixin.dart.textual_outline.expect
index 92fbf88..73b67ed 100644
--- a/pkg/front_end/testcases/rasta/super_mixin.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/super_mixin.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "mixin_library.dart" show Mixin;
 
 class Super<S> {
diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/super_mixin.dart.textual_outline_modelled.expect
index 330ee1f..526090a 100644
--- a/pkg/front_end/testcases/rasta/super_mixin.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/super_mixin.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "mixin_library.dart" show Mixin;
 
 class C<V> extends Super<V> with Mixin<V> {}
diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart.weak.expect b/pkg/front_end/testcases/rasta/super_mixin.dart.weak.expect
index 0327051..52d7c85 100644
--- a/pkg/front_end/testcases/rasta/super_mixin.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/super_mixin.dart.weak.expect
@@ -1,31 +1,21 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "mixin_library.dart" as mix;
 
 import "org-dartlang-testcase:///mixin_library.dart" show Mixin;
 
-class Super<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Super<self::Super::S*>*
+class Super<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Super<self::Super::S%>
     : super core::Object::•()
     ;
   method foo() → dynamic
     return 40;
   method f() → dynamic
     return 3;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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&Super&Mixin<V extends core::Object* = dynamic> = self::Super<self::_C&Super&Mixin::V*> with mix::Mixin<self::_C&Super&Mixin::V*> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_C&Super&Mixin<self::_C&Super&Mixin::V*>*
+abstract class _C&Super&Mixin<V extends core::Object? = dynamic> = self::Super<self::_C&Super&Mixin::V%> with mix::Mixin<self::_C&Super&Mixin::V%> /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_C&Super&Mixin<self::_C&Super&Mixin::V%>
     : super self::Super::•()
     ;
   mixin-super-stub get x() → dynamic
@@ -40,13 +30,13 @@
     return super.{mix::Mixin::z};
   mixin-super-stub set z(dynamic value) → void
     return super.{mix::Mixin::z} = value;
-  mixin-super-stub get t() → self::_C&Super&Mixin::V*
+  mixin-super-stub get t() → self::_C&Super&Mixin::V?
     return super.{mix::Mixin::t};
-  mixin-super-stub set t(covariant-by-class self::_C&Super&Mixin::V* value) → void
+  mixin-super-stub set t(covariant-by-class self::_C&Super&Mixin::V? value) → void
     return super.{mix::Mixin::t} = value;
   mixin-super-stub method foo() → dynamic
     return super.{mix::Mixin::foo}();
-  mixin-super-stub method g(covariant-by-class self::_C&Super&Mixin::V* a) → self::_C&Super&Mixin::V*
+  mixin-super-stub method g(covariant-by-class self::_C&Super&Mixin::V% a) → self::_C&Super&Mixin::V?
     return super.{mix::Mixin::g}(a);
   mixin-super-stub method h() → dynamic
     return super.{mix::Mixin::h}();
@@ -57,13 +47,13 @@
   mixin-super-stub method publicMethod() → dynamic
     return super.{mix::Mixin::publicMethod}();
 }
-class C<V extends core::Object* = dynamic> extends self::_C&Super&Mixin<self::C::V*> {
-  synthetic constructor •() → self::C<self::C::V*>*
+class C<V extends core::Object? = dynamic> extends self::_C&Super&Mixin<self::C::V%> {
+  synthetic constructor •() → self::C<self::C::V%>
     : super self::_C&Super&Mixin::•()
     ;
 }
 abstract class _D&Super&Mixin = self::Super<dynamic> with mix::Mixin<dynamic> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_D&Super&Mixin*
+  synthetic constructor •() → self::_D&Super&Mixin
     : super self::Super::•()
     ;
   mixin-super-stub get x() → dynamic
@@ -96,12 +86,12 @@
     return super.{mix::Mixin::publicMethod}();
 }
 class D extends self::_D&Super&Mixin {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::_D&Super&Mixin::•()
     ;
 }
-class C2<V extends core::Object* = dynamic> = self::Super<self::C2::V*> with mix::Mixin<self::C2::V*> {
-  synthetic constructor •() → self::C2<self::C2::V*>*
+class C2<V extends core::Object? = dynamic> = self::Super<self::C2::V%> with mix::Mixin<self::C2::V%> {
+  synthetic constructor •() → self::C2<self::C2::V%>
     : super self::Super::•()
     ;
   mixin-super-stub get x() → dynamic
@@ -116,13 +106,13 @@
     return super.{mix::Mixin::z};
   mixin-super-stub set z(dynamic value) → void
     return super.{mix::Mixin::z} = value;
-  mixin-super-stub get t() → self::C2::V*
+  mixin-super-stub get t() → self::C2::V?
     return super.{mix::Mixin::t};
-  mixin-super-stub set t(covariant-by-class self::C2::V* value) → void
+  mixin-super-stub set t(covariant-by-class self::C2::V? value) → void
     return super.{mix::Mixin::t} = value;
   mixin-super-stub method foo() → dynamic
     return super.{mix::Mixin::foo}();
-  mixin-super-stub method g(covariant-by-class self::C2::V* a) → self::C2::V*
+  mixin-super-stub method g(covariant-by-class self::C2::V% a) → self::C2::V?
     return super.{mix::Mixin::g}(a);
   mixin-super-stub method h() → dynamic
     return super.{mix::Mixin::h}();
@@ -134,7 +124,7 @@
     return super.{mix::Mixin::publicMethod}();
 }
 class D2 = self::Super<dynamic> with mix::Mixin<dynamic> {
-  synthetic constructor •() → self::D2*
+  synthetic constructor •() → self::D2
     : super self::Super::•()
     ;
   mixin-super-stub get x() → dynamic
@@ -167,11 +157,11 @@
     return super.{mix::Mixin::publicMethod}();
 }
 static method main() → dynamic {
-  core::print(new self::C::•<dynamic>().{self::_C&Super&Mixin::foo}(){() →* dynamic});
-  core::print(new self::C2::•<dynamic>().{self::C2::foo}(){() →* dynamic});
+  core::print(new self::C::•<dynamic>().{self::_C&Super&Mixin::foo}(){() → dynamic});
+  core::print(new self::C2::•<dynamic>().{self::C2::foo}(){() → dynamic});
 }
 
-library test.mixin_library;
+library test.mixin_library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -182,17 +172,17 @@
 import self as mix;
 import "dart:core" as core;
 
-class Mixin<T extends core::Object* = dynamic> extends core::Object {
+class Mixin<T extends core::Object? = dynamic> extends core::Object {
   field dynamic x = mix::f();
   field dynamic y = null;
   field dynamic z = null;
-  covariant-by-class field mix::Mixin::T* t = null;
-  synthetic constructor •() → mix::Mixin<mix::Mixin::T*>*
+  covariant-by-class field mix::Mixin::T? t = null;
+  synthetic constructor •() → mix::Mixin<mix::Mixin::T%>
     : super core::Object::•()
     ;
   method foo() → dynamic
     return super.foo(){dynamic}.+(mix::f());
-  method g(covariant-by-class mix::Mixin::T* a) → mix::Mixin::T*
+  method g(covariant-by-class mix::Mixin::T% a) → mix::Mixin::T?
     return null;
   method h() → dynamic
     return mix::V();
@@ -201,17 +191,7 @@
   method _privateMethod() → dynamic
     return 49;
   method publicMethod() → dynamic
-    return this.{mix::Mixin::_privateMethod}(){() →* 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
+    return this.{mix::Mixin::_privateMethod}(){() → dynamic};
 }
 static method f() → dynamic
   return 2;
diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/super_mixin.dart.weak.modular.expect
index 0327051..52d7c85 100644
--- a/pkg/front_end/testcases/rasta/super_mixin.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/super_mixin.dart.weak.modular.expect
@@ -1,31 +1,21 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "mixin_library.dart" as mix;
 
 import "org-dartlang-testcase:///mixin_library.dart" show Mixin;
 
-class Super<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Super<self::Super::S*>*
+class Super<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Super<self::Super::S%>
     : super core::Object::•()
     ;
   method foo() → dynamic
     return 40;
   method f() → dynamic
     return 3;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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&Super&Mixin<V extends core::Object* = dynamic> = self::Super<self::_C&Super&Mixin::V*> with mix::Mixin<self::_C&Super&Mixin::V*> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_C&Super&Mixin<self::_C&Super&Mixin::V*>*
+abstract class _C&Super&Mixin<V extends core::Object? = dynamic> = self::Super<self::_C&Super&Mixin::V%> with mix::Mixin<self::_C&Super&Mixin::V%> /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_C&Super&Mixin<self::_C&Super&Mixin::V%>
     : super self::Super::•()
     ;
   mixin-super-stub get x() → dynamic
@@ -40,13 +30,13 @@
     return super.{mix::Mixin::z};
   mixin-super-stub set z(dynamic value) → void
     return super.{mix::Mixin::z} = value;
-  mixin-super-stub get t() → self::_C&Super&Mixin::V*
+  mixin-super-stub get t() → self::_C&Super&Mixin::V?
     return super.{mix::Mixin::t};
-  mixin-super-stub set t(covariant-by-class self::_C&Super&Mixin::V* value) → void
+  mixin-super-stub set t(covariant-by-class self::_C&Super&Mixin::V? value) → void
     return super.{mix::Mixin::t} = value;
   mixin-super-stub method foo() → dynamic
     return super.{mix::Mixin::foo}();
-  mixin-super-stub method g(covariant-by-class self::_C&Super&Mixin::V* a) → self::_C&Super&Mixin::V*
+  mixin-super-stub method g(covariant-by-class self::_C&Super&Mixin::V% a) → self::_C&Super&Mixin::V?
     return super.{mix::Mixin::g}(a);
   mixin-super-stub method h() → dynamic
     return super.{mix::Mixin::h}();
@@ -57,13 +47,13 @@
   mixin-super-stub method publicMethod() → dynamic
     return super.{mix::Mixin::publicMethod}();
 }
-class C<V extends core::Object* = dynamic> extends self::_C&Super&Mixin<self::C::V*> {
-  synthetic constructor •() → self::C<self::C::V*>*
+class C<V extends core::Object? = dynamic> extends self::_C&Super&Mixin<self::C::V%> {
+  synthetic constructor •() → self::C<self::C::V%>
     : super self::_C&Super&Mixin::•()
     ;
 }
 abstract class _D&Super&Mixin = self::Super<dynamic> with mix::Mixin<dynamic> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_D&Super&Mixin*
+  synthetic constructor •() → self::_D&Super&Mixin
     : super self::Super::•()
     ;
   mixin-super-stub get x() → dynamic
@@ -96,12 +86,12 @@
     return super.{mix::Mixin::publicMethod}();
 }
 class D extends self::_D&Super&Mixin {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::_D&Super&Mixin::•()
     ;
 }
-class C2<V extends core::Object* = dynamic> = self::Super<self::C2::V*> with mix::Mixin<self::C2::V*> {
-  synthetic constructor •() → self::C2<self::C2::V*>*
+class C2<V extends core::Object? = dynamic> = self::Super<self::C2::V%> with mix::Mixin<self::C2::V%> {
+  synthetic constructor •() → self::C2<self::C2::V%>
     : super self::Super::•()
     ;
   mixin-super-stub get x() → dynamic
@@ -116,13 +106,13 @@
     return super.{mix::Mixin::z};
   mixin-super-stub set z(dynamic value) → void
     return super.{mix::Mixin::z} = value;
-  mixin-super-stub get t() → self::C2::V*
+  mixin-super-stub get t() → self::C2::V?
     return super.{mix::Mixin::t};
-  mixin-super-stub set t(covariant-by-class self::C2::V* value) → void
+  mixin-super-stub set t(covariant-by-class self::C2::V? value) → void
     return super.{mix::Mixin::t} = value;
   mixin-super-stub method foo() → dynamic
     return super.{mix::Mixin::foo}();
-  mixin-super-stub method g(covariant-by-class self::C2::V* a) → self::C2::V*
+  mixin-super-stub method g(covariant-by-class self::C2::V% a) → self::C2::V?
     return super.{mix::Mixin::g}(a);
   mixin-super-stub method h() → dynamic
     return super.{mix::Mixin::h}();
@@ -134,7 +124,7 @@
     return super.{mix::Mixin::publicMethod}();
 }
 class D2 = self::Super<dynamic> with mix::Mixin<dynamic> {
-  synthetic constructor •() → self::D2*
+  synthetic constructor •() → self::D2
     : super self::Super::•()
     ;
   mixin-super-stub get x() → dynamic
@@ -167,11 +157,11 @@
     return super.{mix::Mixin::publicMethod}();
 }
 static method main() → dynamic {
-  core::print(new self::C::•<dynamic>().{self::_C&Super&Mixin::foo}(){() →* dynamic});
-  core::print(new self::C2::•<dynamic>().{self::C2::foo}(){() →* dynamic});
+  core::print(new self::C::•<dynamic>().{self::_C&Super&Mixin::foo}(){() → dynamic});
+  core::print(new self::C2::•<dynamic>().{self::C2::foo}(){() → dynamic});
 }
 
-library test.mixin_library;
+library test.mixin_library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -182,17 +172,17 @@
 import self as mix;
 import "dart:core" as core;
 
-class Mixin<T extends core::Object* = dynamic> extends core::Object {
+class Mixin<T extends core::Object? = dynamic> extends core::Object {
   field dynamic x = mix::f();
   field dynamic y = null;
   field dynamic z = null;
-  covariant-by-class field mix::Mixin::T* t = null;
-  synthetic constructor •() → mix::Mixin<mix::Mixin::T*>*
+  covariant-by-class field mix::Mixin::T? t = null;
+  synthetic constructor •() → mix::Mixin<mix::Mixin::T%>
     : super core::Object::•()
     ;
   method foo() → dynamic
     return super.foo(){dynamic}.+(mix::f());
-  method g(covariant-by-class mix::Mixin::T* a) → mix::Mixin::T*
+  method g(covariant-by-class mix::Mixin::T% a) → mix::Mixin::T?
     return null;
   method h() → dynamic
     return mix::V();
@@ -201,17 +191,7 @@
   method _privateMethod() → dynamic
     return 49;
   method publicMethod() → dynamic
-    return this.{mix::Mixin::_privateMethod}(){() →* 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
+    return this.{mix::Mixin::_privateMethod}(){() → dynamic};
 }
 static method f() → dynamic
   return 2;
diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/super_mixin.dart.weak.outline.expect
index c1b58e7..cc211fc 100644
--- a/pkg/front_end/testcases/rasta/super_mixin.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/super_mixin.dart.weak.outline.expect
@@ -1,30 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "mixin_library.dart" as mix;
 
 import "org-dartlang-testcase:///mixin_library.dart" show Mixin;
 
-class Super<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Super<self::Super::S*>*
+class Super<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Super<self::Super::S%>
     ;
   method foo() → dynamic
     ;
   method f() → 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&Super&Mixin<V extends core::Object* = dynamic> = self::Super<self::_C&Super&Mixin::V*> with mix::Mixin<self::_C&Super&Mixin::V*> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_C&Super&Mixin<self::_C&Super&Mixin::V*>*
+abstract class _C&Super&Mixin<V extends core::Object? = dynamic> = self::Super<self::_C&Super&Mixin::V%> with mix::Mixin<self::_C&Super&Mixin::V%> /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_C&Super&Mixin<self::_C&Super&Mixin::V%>
     : super self::Super::•()
     ;
   mixin-super-stub get x() → dynamic
@@ -39,13 +29,13 @@
     return super.{mix::Mixin::z};
   mixin-super-stub set z(dynamic value) → void
     return super.{mix::Mixin::z} = value;
-  mixin-super-stub get t() → self::_C&Super&Mixin::V*
+  mixin-super-stub get t() → self::_C&Super&Mixin::V?
     return super.{mix::Mixin::t};
-  mixin-super-stub set t(covariant-by-class self::_C&Super&Mixin::V* value) → void
+  mixin-super-stub set t(covariant-by-class self::_C&Super&Mixin::V? value) → void
     return super.{mix::Mixin::t} = value;
   mixin-super-stub method foo() → dynamic
     return super.{mix::Mixin::foo}();
-  mixin-super-stub method g(covariant-by-class self::_C&Super&Mixin::V* a) → self::_C&Super&Mixin::V*
+  mixin-super-stub method g(covariant-by-class self::_C&Super&Mixin::V% a) → self::_C&Super&Mixin::V?
     return super.{mix::Mixin::g}(a);
   mixin-super-stub method h() → dynamic
     return super.{mix::Mixin::h}();
@@ -56,12 +46,12 @@
   mixin-super-stub method publicMethod() → dynamic
     return super.{mix::Mixin::publicMethod}();
 }
-class C<V extends core::Object* = dynamic> extends self::_C&Super&Mixin<self::C::V*> {
-  synthetic constructor •() → self::C<self::C::V*>*
+class C<V extends core::Object? = dynamic> extends self::_C&Super&Mixin<self::C::V%> {
+  synthetic constructor •() → self::C<self::C::V%>
     ;
 }
 abstract class _D&Super&Mixin = self::Super<dynamic> with mix::Mixin<dynamic> /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_D&Super&Mixin*
+  synthetic constructor •() → self::_D&Super&Mixin
     : super self::Super::•()
     ;
   mixin-super-stub get x() → dynamic
@@ -94,11 +84,11 @@
     return super.{mix::Mixin::publicMethod}();
 }
 class D extends self::_D&Super&Mixin {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
 }
-class C2<V extends core::Object* = dynamic> = self::Super<self::C2::V*> with mix::Mixin<self::C2::V*> {
-  synthetic constructor •() → self::C2<self::C2::V*>*
+class C2<V extends core::Object? = dynamic> = self::Super<self::C2::V%> with mix::Mixin<self::C2::V%> {
+  synthetic constructor •() → self::C2<self::C2::V%>
     : super self::Super::•()
     ;
   mixin-super-stub get x() → dynamic
@@ -113,13 +103,13 @@
     return super.{mix::Mixin::z};
   mixin-super-stub set z(dynamic value) → void
     return super.{mix::Mixin::z} = value;
-  mixin-super-stub get t() → self::C2::V*
+  mixin-super-stub get t() → self::C2::V?
     return super.{mix::Mixin::t};
-  mixin-super-stub set t(covariant-by-class self::C2::V* value) → void
+  mixin-super-stub set t(covariant-by-class self::C2::V? value) → void
     return super.{mix::Mixin::t} = value;
   mixin-super-stub method foo() → dynamic
     return super.{mix::Mixin::foo}();
-  mixin-super-stub method g(covariant-by-class self::C2::V* a) → self::C2::V*
+  mixin-super-stub method g(covariant-by-class self::C2::V% a) → self::C2::V?
     return super.{mix::Mixin::g}(a);
   mixin-super-stub method h() → dynamic
     return super.{mix::Mixin::h}();
@@ -131,7 +121,7 @@
     return super.{mix::Mixin::publicMethod}();
 }
 class D2 = self::Super<dynamic> with mix::Mixin<dynamic> {
-  synthetic constructor •() → self::D2*
+  synthetic constructor •() → self::D2
     : super self::Super::•()
     ;
   mixin-super-stub get x() → dynamic
@@ -166,20 +156,20 @@
 static method main() → dynamic
   ;
 
-library test.mixin_library;
+library test.mixin_library /*isNonNullableByDefault*/;
 import self as mix;
 import "dart:core" as core;
 
-class Mixin<T extends core::Object* = dynamic> extends core::Object {
+class Mixin<T extends core::Object? = dynamic> extends core::Object {
   field dynamic x;
   field dynamic y;
   field dynamic z;
-  covariant-by-class field mix::Mixin::T* t;
-  synthetic constructor •() → mix::Mixin<mix::Mixin::T*>*
+  covariant-by-class field mix::Mixin::T? t;
+  synthetic constructor •() → mix::Mixin<mix::Mixin::T%>
     ;
   method foo() → dynamic
     ;
-  method g(covariant-by-class mix::Mixin::T* a) → mix::Mixin::T*
+  method g(covariant-by-class mix::Mixin::T% a) → mix::Mixin::T?
     ;
   method h() → dynamic
     ;
@@ -189,16 +179,6 @@
     ;
   method publicMethod() → 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 f() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/super_operator.dart b/pkg/front_end/testcases/rasta/super_operator.dart
index 661f0df..a50e586 100644
--- a/pkg/front_end/testcases/rasta/super_operator.dart
+++ b/pkg/front_end/testcases/rasta/super_operator.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.md file.
-// @dart=2.9
+
 class A {
   operator +(String s) => null;
 
diff --git a/pkg/front_end/testcases/rasta/super_operator.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/super_operator.dart.textual_outline.expect
index 7183595..0a07631 100644
--- a/pkg/front_end/testcases/rasta/super_operator.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/super_operator.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   operator +(String s) => null;
   operator [](i) => null;
diff --git a/pkg/front_end/testcases/rasta/super_operator.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/super_operator.dart.textual_outline_modelled.expect
index 6716ede..4ecde10 100644
--- a/pkg/front_end/testcases/rasta/super_operator.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/super_operator.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   operator +(String s) => null;
   operator [](i) => null;
diff --git a/pkg/front_end/testcases/rasta/super_operator.dart.weak.expect b/pkg/front_end/testcases/rasta/super_operator.dart.weak.expect
index 8b04b02..9f78e48 100644
--- a/pkg/front_end/testcases/rasta/super_operator.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/super_operator.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,30 +10,20 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator +(core::String* s) → dynamic
+  operator +(core::String s) → dynamic
     return null;
   operator [](dynamic i) → dynamic
     return null;
   operator []=(dynamic i, dynamic val) → 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
     : super self::A::•()
     ;
-  operator +(core::String* s) → dynamic
+  operator +(core::String s) → dynamic
     return super.{self::A::+}("${s}${s}");
   operator [](dynamic i) → dynamic
     return super.{self::A::[]}(i);
@@ -41,19 +31,9 @@
     return let final dynamic #t1 = let final dynamic #t2 = i in let final dynamic #t3 = i = #t2{dynamic}.+(1) in #t2 in let final dynamic #t4 = super.{self::A::[]}(#t1){dynamic}.+(val) in let final void #t5 = super.{self::A::[]=}(#t1, #t4) in #t4;
 }
 class Autobianchi extends core::Object {
-  synthetic constructor •() → self::Autobianchi*
+  synthetic constructor •() → self::Autobianchi
     : super core::Object::•()
     ;
   method g() → dynamic
     return super.[](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
 }
diff --git a/pkg/front_end/testcases/rasta/super_operator.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/super_operator.dart.weak.modular.expect
index 8b04b02..9f78e48 100644
--- a/pkg/front_end/testcases/rasta/super_operator.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/super_operator.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,30 +10,20 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator +(core::String* s) → dynamic
+  operator +(core::String s) → dynamic
     return null;
   operator [](dynamic i) → dynamic
     return null;
   operator []=(dynamic i, dynamic val) → 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
     : super self::A::•()
     ;
-  operator +(core::String* s) → dynamic
+  operator +(core::String s) → dynamic
     return super.{self::A::+}("${s}${s}");
   operator [](dynamic i) → dynamic
     return super.{self::A::[]}(i);
@@ -41,19 +31,9 @@
     return let final dynamic #t1 = let final dynamic #t2 = i in let final dynamic #t3 = i = #t2{dynamic}.+(1) in #t2 in let final dynamic #t4 = super.{self::A::[]}(#t1){dynamic}.+(val) in let final void #t5 = super.{self::A::[]=}(#t1, #t4) in #t4;
 }
 class Autobianchi extends core::Object {
-  synthetic constructor •() → self::Autobianchi*
+  synthetic constructor •() → self::Autobianchi
     : super core::Object::•()
     ;
   method g() → dynamic
     return super.[](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
 }
diff --git a/pkg/front_end/testcases/rasta/super_operator.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/super_operator.dart.weak.outline.expect
index 49f43e5..3f737d9 100644
--- a/pkg/front_end/testcases/rasta/super_operator.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/super_operator.dart.weak.outline.expect
@@ -1,31 +1,21 @@
-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::String* s) → dynamic
+  operator +(core::String s) → dynamic
     ;
   operator [](dynamic i) → dynamic
     ;
   operator []=(dynamic i, dynamic val) → 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 +(core::String* s) → dynamic
+  operator +(core::String s) → dynamic
     ;
   operator [](dynamic i) → dynamic
     ;
@@ -33,18 +23,8 @@
     ;
 }
 class Autobianchi extends core::Object {
-  synthetic constructor •() → self::Autobianchi*
+  synthetic constructor •() → self::Autobianchi
     ;
   method g() → 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
 }
diff --git a/pkg/front_end/testcases/rasta/supports_reflection.dart b/pkg/front_end/testcases/rasta/supports_reflection.dart
index 3aaf5ea..d14efa0 100644
--- a/pkg/front_end/testcases/rasta/supports_reflection.dart
+++ b/pkg/front_end/testcases/rasta/supports_reflection.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.md file.
 
-// @dart=2.9
-
 main() {
   print(const bool.fromEnvironment("dart.library.mirrors"));
 }
diff --git a/pkg/front_end/testcases/rasta/supports_reflection.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/supports_reflection.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/supports_reflection.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/supports_reflection.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/supports_reflection.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/supports_reflection.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/supports_reflection.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/supports_reflection.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/supports_reflection.dart.weak.expect b/pkg/front_end/testcases/rasta/supports_reflection.dart.weak.expect
index 362665c..8fde628 100644
--- a/pkg/front_end/testcases/rasta/supports_reflection.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/supports_reflection.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/supports_reflection.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/supports_reflection.dart.weak.modular.expect
index 362665c..8fde628 100644
--- a/pkg/front_end/testcases/rasta/supports_reflection.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/supports_reflection.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/supports_reflection.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/supports_reflection.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/rasta/supports_reflection.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/supports_reflection.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/rasta/supports_reflection.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/supports_reflection.dart.weak.transformed.expect
index 362665c..8fde628 100644
--- a/pkg/front_end/testcases/rasta/supports_reflection.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/supports_reflection.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart b/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart
new file mode 100644
index 0000000..250d198
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart
@@ -0,0 +1,62 @@
+/*
+ * 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.
+ */
+
+// @dart=2.9
+
+// Slightly modified copy of
+// `co19/src/Language/Statements/Switch/execution_case_t02.dart`.
+
+/**
+ * @assertion Execution of a case clause case ek: sk of a switch statement
+ * switch (e) {label11 ..label1j1 case e1: s1 … labeln1 ..labelnjn case en: sn default: sn+1}
+ * proceeds as follows:
+ * The expression ek == id  is evaluated  to an object o which is then
+ * subjected to boolean conversion yielding a value v.
+ * If v is not true, the following case,  case ek+1: sk+1 is executed if it exists.
+ * If case ek+1: sk+1 does not exist, then the default clause is executed by executing sn+1.
+ * If v is true, let h be the smallest integer such that h >= k and sh is non-empty.
+ * If no such h exists, let h = n + 1. The sequence of statements sh is then executed.
+ * If execution reaches the point after sh  then a runtime error occurs, unless h = n + 1.
+ * @description Checks that falling through produces a runtime error, unless
+ * the current clause is an empty case clause or the default clause.
+ * @static-warning
+ * @author msyabro
+ * @reviewer rodionov
+ * @issue 7537
+ */
+
+test(value) {
+  var result;
+
+  switch(value) {
+    case 1:  result = 1;
+    break;
+    case 2:  result = 2; /// static warning - case fall-through, see "Switch"
+    case 3:  result = 3; /// static warning - case fall-through, see "Switch"
+    default: result = 4;
+  }
+  return result;
+}
+
+testEmptyCases(value) {
+  var result;
+
+  switch(value) {
+    case 1:
+    case 2: result = 1; /// static warning - case fall-through, see "Switch"
+    case 3:
+    case 4: result = 2;
+    break;
+    case 5:
+    case 6:
+    default:
+  }
+
+  return result;
+}
+
+main() {
+}
diff --git a/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.textual_outline.expect
new file mode 100644
index 0000000..ec313f9
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.textual_outline.expect
@@ -0,0 +1,4 @@
+// @dart = 2.9
+test(value) {}
+testEmptyCases(value) {}
+main() {}
diff --git a/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..13243fe
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.textual_outline_modelled.expect
@@ -0,0 +1,4 @@
+// @dart = 2.9
+main() {}
+test(value) {}
+testEmptyCases(value) {}
diff --git a/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.weak.expect b/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.weak.expect
new file mode 100644
index 0000000..0c06998
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.weak.expect
@@ -0,0 +1,85 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/rasta/switch_execution_case_t01.dart:37:5: Error: Switch case may fall through to the next case.
+//     case 2:  result = 2; /// static warning - case fall-through, see "Switch"
+//     ^
+//
+// pkg/front_end/testcases/rasta/switch_execution_case_t01.dart:38:5: Error: Switch case may fall through to the next case.
+//     case 3:  result = 3; /// static warning - case fall-through, see "Switch"
+//     ^
+//
+// pkg/front_end/testcases/rasta/switch_execution_case_t01.dart:48:5: Error: Switch case may fall through to the next case.
+//     case 1:
+//     ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method test(dynamic value) → dynamic {
+  dynamic result;
+  #L1:
+  switch(value) {
+    #L2:
+    case #C1:
+      {
+        result = 1;
+        break #L1;
+      }
+    #L3:
+    case #C2:
+      {
+        result = 2;
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t01.dart", 37);
+      }
+    #L4:
+    case #C3:
+      {
+        result = 3;
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t01.dart", 38);
+      }
+    #L5:
+    default:
+      {
+        result = 4;
+      }
+  }
+  return result;
+}
+static method testEmptyCases(dynamic value) → dynamic {
+  dynamic result;
+  #L6:
+  switch(value) {
+    #L7:
+    case #C1:
+    case #C2:
+      {
+        result = 1;
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t01.dart", 48);
+      }
+    #L8:
+    case #C3:
+    case #C4:
+      {
+        result = 2;
+        break #L6;
+      }
+    #L9:
+    case #C5:
+    case #C6:
+    default:
+      {}
+  }
+  return result;
+}
+static method main() → dynamic {}
+
+constants  {
+  #C1 = 1
+  #C2 = 2
+  #C3 = 3
+  #C4 = 4
+  #C5 = 5
+  #C6 = 6
+}
diff --git a/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.weak.modular.expect
new file mode 100644
index 0000000..0c06998
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.weak.modular.expect
@@ -0,0 +1,85 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/rasta/switch_execution_case_t01.dart:37:5: Error: Switch case may fall through to the next case.
+//     case 2:  result = 2; /// static warning - case fall-through, see "Switch"
+//     ^
+//
+// pkg/front_end/testcases/rasta/switch_execution_case_t01.dart:38:5: Error: Switch case may fall through to the next case.
+//     case 3:  result = 3; /// static warning - case fall-through, see "Switch"
+//     ^
+//
+// pkg/front_end/testcases/rasta/switch_execution_case_t01.dart:48:5: Error: Switch case may fall through to the next case.
+//     case 1:
+//     ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method test(dynamic value) → dynamic {
+  dynamic result;
+  #L1:
+  switch(value) {
+    #L2:
+    case #C1:
+      {
+        result = 1;
+        break #L1;
+      }
+    #L3:
+    case #C2:
+      {
+        result = 2;
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t01.dart", 37);
+      }
+    #L4:
+    case #C3:
+      {
+        result = 3;
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t01.dart", 38);
+      }
+    #L5:
+    default:
+      {
+        result = 4;
+      }
+  }
+  return result;
+}
+static method testEmptyCases(dynamic value) → dynamic {
+  dynamic result;
+  #L6:
+  switch(value) {
+    #L7:
+    case #C1:
+    case #C2:
+      {
+        result = 1;
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t01.dart", 48);
+      }
+    #L8:
+    case #C3:
+    case #C4:
+      {
+        result = 2;
+        break #L6;
+      }
+    #L9:
+    case #C5:
+    case #C6:
+    default:
+      {}
+  }
+  return result;
+}
+static method main() → dynamic {}
+
+constants  {
+  #C1 = 1
+  #C2 = 2
+  #C3 = 3
+  #C4 = 4
+  #C5 = 5
+  #C6 = 6
+}
diff --git a/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.weak.outline.expect
new file mode 100644
index 0000000..ab9a3c9
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.weak.outline.expect
@@ -0,0 +1,9 @@
+library;
+import self as self;
+
+static method test(dynamic value) → dynamic
+  ;
+static method testEmptyCases(dynamic value) → dynamic
+  ;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.weak.transformed.expect
new file mode 100644
index 0000000..0c06998
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/switch_execution_case_t01.dart.weak.transformed.expect
@@ -0,0 +1,85 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/rasta/switch_execution_case_t01.dart:37:5: Error: Switch case may fall through to the next case.
+//     case 2:  result = 2; /// static warning - case fall-through, see "Switch"
+//     ^
+//
+// pkg/front_end/testcases/rasta/switch_execution_case_t01.dart:38:5: Error: Switch case may fall through to the next case.
+//     case 3:  result = 3; /// static warning - case fall-through, see "Switch"
+//     ^
+//
+// pkg/front_end/testcases/rasta/switch_execution_case_t01.dart:48:5: Error: Switch case may fall through to the next case.
+//     case 1:
+//     ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method test(dynamic value) → dynamic {
+  dynamic result;
+  #L1:
+  switch(value) {
+    #L2:
+    case #C1:
+      {
+        result = 1;
+        break #L1;
+      }
+    #L3:
+    case #C2:
+      {
+        result = 2;
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t01.dart", 37);
+      }
+    #L4:
+    case #C3:
+      {
+        result = 3;
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t01.dart", 38);
+      }
+    #L5:
+    default:
+      {
+        result = 4;
+      }
+  }
+  return result;
+}
+static method testEmptyCases(dynamic value) → dynamic {
+  dynamic result;
+  #L6:
+  switch(value) {
+    #L7:
+    case #C1:
+    case #C2:
+      {
+        result = 1;
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t01.dart", 48);
+      }
+    #L8:
+    case #C3:
+    case #C4:
+      {
+        result = 2;
+        break #L6;
+      }
+    #L9:
+    case #C5:
+    case #C6:
+    default:
+      {}
+  }
+  return result;
+}
+static method main() → dynamic {}
+
+constants  {
+  #C1 = 1
+  #C2 = 2
+  #C3 = 3
+  #C4 = 4
+  #C5 = 5
+  #C6 = 6
+}
diff --git a/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart b/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart
index 98e78d8..e0a06c1 100644
--- a/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart
+++ b/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart
@@ -3,7 +3,7 @@
  * 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
+
 // Slightly modified copy of
 // `co19/src/Language/Statements/Switch/execution_case_t02.dart`.
 
diff --git a/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.textual_outline.expect
index ec313f9..9157edc 100644
--- a/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 test(value) {}
 testEmptyCases(value) {}
 main() {}
diff --git a/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.textual_outline_modelled.expect
index 13243fe..d7ab5d3 100644
--- a/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 main() {}
 test(value) {}
 testEmptyCases(value) {}
diff --git a/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.expect b/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.expect
index 4a25d3e..663fcbe 100644
--- a/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -31,13 +31,11 @@
     case #C2:
       {
         result = 2;
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t02.dart", 35);
       }
     #L4:
     case #C3:
       {
         result = 3;
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t02.dart", 36);
       }
     #L5:
     default:
@@ -56,7 +54,6 @@
     case #C2:
       {
         result = 1;
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t02.dart", 46);
       }
     #L8:
     case #C3:
diff --git a/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.modular.expect
index 4a25d3e..663fcbe 100644
--- a/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -31,13 +31,11 @@
     case #C2:
       {
         result = 2;
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t02.dart", 35);
       }
     #L4:
     case #C3:
       {
         result = 3;
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t02.dart", 36);
       }
     #L5:
     default:
@@ -56,7 +54,6 @@
     case #C2:
       {
         result = 1;
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t02.dart", 46);
       }
     #L8:
     case #C3:
diff --git a/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.outline.expect
index ab9a3c9..1789280 100644
--- a/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method test(dynamic value) → dynamic
diff --git a/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.transformed.expect
index 4a25d3e..663fcbe 100644
--- a/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/switch_execution_case_t02.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -31,13 +31,11 @@
     case #C2:
       {
         result = 2;
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t02.dart", 35);
       }
     #L4:
     case #C3:
       {
         result = 3;
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t02.dart", 36);
       }
     #L5:
     default:
@@ -56,7 +54,6 @@
     case #C2:
       {
         result = 1;
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_execution_case_t02.dart", 46);
       }
     #L8:
     case #C3:
diff --git a/pkg/front_end/testcases/rasta/switch_fall_through.dart b/pkg/front_end/testcases/rasta/switch_fall_through.dart
index 78a52e9..47eea58 100644
--- a/pkg/front_end/testcases/rasta/switch_fall_through.dart
+++ b/pkg/front_end/testcases/rasta/switch_fall_through.dart
@@ -1,7 +1,9 @@
 // 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.md file.
+
 // @dart=2.9
+
 main() {
   switch (1) {
     case 1:
diff --git a/pkg/front_end/testcases/rasta/switch_fall_through.dart.weak.expect b/pkg/front_end/testcases/rasta/switch_fall_through.dart.weak.expect
index c69920c..e542866 100644
--- a/pkg/front_end/testcases/rasta/switch_fall_through.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/switch_fall_through.dart.weak.expect
@@ -2,23 +2,23 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:7:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:9:5: Error: Switch case may fall through to the next case.
 //     case 1:
 //     ^
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:13:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:15:5: Error: Switch case may fall through to the next case.
 //     case 2:
 //     ^
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:20:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:22:5: Error: Switch case may fall through to the next case.
 //     case 3:
 //     ^
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:26:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:28:5: Error: Switch case may fall through to the next case.
 //     case 4:
 //     ^
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:31:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:33:5: Error: Switch case may fall through to the next case.
 //     case 5:
 //     ^
 //
@@ -36,7 +36,7 @@
           break #L1;
           ;
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 7);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 9);
       }
     #L3:
     case #C2:
@@ -47,7 +47,7 @@
             break #L1;
           }
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 13);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 15);
       }
     #L4:
     case #C3:
@@ -58,7 +58,7 @@
         finally {
           break #L1;
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 20);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 22);
       }
     #L5:
     case #C4:
@@ -69,7 +69,7 @@
         }
         finally {
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 26);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 28);
       }
     #L6:
     case #C5:
@@ -79,7 +79,7 @@
         }
         finally {
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 31);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 33);
       }
     #L7:
     case #C6:
diff --git a/pkg/front_end/testcases/rasta/switch_fall_through.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/switch_fall_through.dart.weak.modular.expect
index c69920c..e542866 100644
--- a/pkg/front_end/testcases/rasta/switch_fall_through.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/switch_fall_through.dart.weak.modular.expect
@@ -2,23 +2,23 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:7:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:9:5: Error: Switch case may fall through to the next case.
 //     case 1:
 //     ^
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:13:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:15:5: Error: Switch case may fall through to the next case.
 //     case 2:
 //     ^
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:20:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:22:5: Error: Switch case may fall through to the next case.
 //     case 3:
 //     ^
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:26:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:28:5: Error: Switch case may fall through to the next case.
 //     case 4:
 //     ^
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:31:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:33:5: Error: Switch case may fall through to the next case.
 //     case 5:
 //     ^
 //
@@ -36,7 +36,7 @@
           break #L1;
           ;
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 7);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 9);
       }
     #L3:
     case #C2:
@@ -47,7 +47,7 @@
             break #L1;
           }
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 13);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 15);
       }
     #L4:
     case #C3:
@@ -58,7 +58,7 @@
         finally {
           break #L1;
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 20);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 22);
       }
     #L5:
     case #C4:
@@ -69,7 +69,7 @@
         }
         finally {
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 26);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 28);
       }
     #L6:
     case #C5:
@@ -79,7 +79,7 @@
         }
         finally {
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 31);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 33);
       }
     #L7:
     case #C6:
diff --git a/pkg/front_end/testcases/rasta/switch_fall_through.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/switch_fall_through.dart.weak.transformed.expect
index c69920c..e542866 100644
--- a/pkg/front_end/testcases/rasta/switch_fall_through.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/switch_fall_through.dart.weak.transformed.expect
@@ -2,23 +2,23 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:7:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:9:5: Error: Switch case may fall through to the next case.
 //     case 1:
 //     ^
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:13:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:15:5: Error: Switch case may fall through to the next case.
 //     case 2:
 //     ^
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:20:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:22:5: Error: Switch case may fall through to the next case.
 //     case 3:
 //     ^
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:26:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:28:5: Error: Switch case may fall through to the next case.
 //     case 4:
 //     ^
 //
-// pkg/front_end/testcases/rasta/switch_fall_through.dart:31:5: Error: Switch case may fall through to the next case.
+// pkg/front_end/testcases/rasta/switch_fall_through.dart:33:5: Error: Switch case may fall through to the next case.
 //     case 5:
 //     ^
 //
@@ -36,7 +36,7 @@
           break #L1;
           ;
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 7);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 9);
       }
     #L3:
     case #C2:
@@ -47,7 +47,7 @@
             break #L1;
           }
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 13);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 15);
       }
     #L4:
     case #C3:
@@ -58,7 +58,7 @@
         finally {
           break #L1;
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 20);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 22);
       }
     #L5:
     case #C4:
@@ -69,7 +69,7 @@
         }
         finally {
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 26);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 28);
       }
     #L6:
     case #C5:
@@ -79,7 +79,7 @@
         }
         finally {
         }
-        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 31);
+        throw new core::FallThroughError::_create("org-dartlang-testcase:///switch_fall_through.dart", 33);
       }
     #L7:
     case #C6:
diff --git a/pkg/front_end/testcases/rasta/switch_fall_through2.dart b/pkg/front_end/testcases/rasta/switch_fall_through2.dart
new file mode 100644
index 0000000..422100c
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/switch_fall_through2.dart
@@ -0,0 +1,38 @@
+// 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.md file.
+
+main() {
+  switch (1) {
+    case 1:
+      {
+        "No fall-through error needed.";
+        break;
+        ; // Empty statement.
+      }
+    case 2:
+      {
+        "Fall-through error needed.";
+        if (true) {
+          break;
+        }
+      }
+    case 3:
+      try {
+        "No fall-through error needed.";
+      } finally {
+        break;
+      }
+    case 4:
+      try {
+        "No fall-through error needed.";
+        break;
+      } finally {}
+    case 5:
+      try {
+        "Fall-through error needed.";
+      } finally {}
+    case 10000:
+      "Should be last. No fall-through error, falling through allowed here.";
+  }
+}
diff --git a/pkg/front_end/testcases/rasta/switch_fall_through2.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/switch_fall_through2.dart.textual_outline.expect
new file mode 100644
index 0000000..bae895a
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/switch_fall_through2.dart.textual_outline.expect
@@ -0,0 +1 @@
+main() {}
diff --git a/pkg/front_end/testcases/rasta/switch_fall_through2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/switch_fall_through2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..bae895a
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/switch_fall_through2.dart.textual_outline_modelled.expect
@@ -0,0 +1 @@
+main() {}
diff --git a/pkg/front_end/testcases/rasta/switch_fall_through2.dart.weak.expect b/pkg/front_end/testcases/rasta/switch_fall_through2.dart.weak.expect
new file mode 100644
index 0000000..46d5877
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/switch_fall_through2.dart.weak.expect
@@ -0,0 +1,78 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/rasta/switch_fall_through2.dart:31:5: Error: Switch case may fall through to the next case.
+//     case 5:
+//     ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method main() → dynamic {
+  #L1:
+  switch(1) {
+    #L2:
+    case #C1:
+      {
+        {
+          "No fall-through error needed.";
+          break #L1;
+          ;
+        }
+      }
+    #L3:
+    case #C2:
+      {
+        {
+          "Fall-through error needed.";
+          if(true) {
+            break #L1;
+          }
+        }
+      }
+    #L4:
+    case #C3:
+      {
+        try {
+          "No fall-through error needed.";
+        }
+        finally {
+          break #L1;
+        }
+      }
+    #L5:
+    case #C4:
+      {
+        try {
+          "No fall-through error needed.";
+          break #L1;
+        }
+        finally {
+        }
+      }
+    #L6:
+    case #C5:
+      {
+        try {
+          "Fall-through error needed.";
+        }
+        finally {
+        }
+      }
+    #L7:
+    case #C6:
+      {
+        "Should be last. No fall-through error, falling through allowed here.";
+      }
+  }
+}
+
+constants  {
+  #C1 = 1
+  #C2 = 2
+  #C3 = 3
+  #C4 = 4
+  #C5 = 5
+  #C6 = 10000
+}
diff --git a/pkg/front_end/testcases/rasta/switch_fall_through2.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/switch_fall_through2.dart.weak.modular.expect
new file mode 100644
index 0000000..46d5877
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/switch_fall_through2.dart.weak.modular.expect
@@ -0,0 +1,78 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/rasta/switch_fall_through2.dart:31:5: Error: Switch case may fall through to the next case.
+//     case 5:
+//     ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method main() → dynamic {
+  #L1:
+  switch(1) {
+    #L2:
+    case #C1:
+      {
+        {
+          "No fall-through error needed.";
+          break #L1;
+          ;
+        }
+      }
+    #L3:
+    case #C2:
+      {
+        {
+          "Fall-through error needed.";
+          if(true) {
+            break #L1;
+          }
+        }
+      }
+    #L4:
+    case #C3:
+      {
+        try {
+          "No fall-through error needed.";
+        }
+        finally {
+          break #L1;
+        }
+      }
+    #L5:
+    case #C4:
+      {
+        try {
+          "No fall-through error needed.";
+          break #L1;
+        }
+        finally {
+        }
+      }
+    #L6:
+    case #C5:
+      {
+        try {
+          "Fall-through error needed.";
+        }
+        finally {
+        }
+      }
+    #L7:
+    case #C6:
+      {
+        "Should be last. No fall-through error, falling through allowed here.";
+      }
+  }
+}
+
+constants  {
+  #C1 = 1
+  #C2 = 2
+  #C3 = 3
+  #C4 = 4
+  #C5 = 5
+  #C6 = 10000
+}
diff --git a/pkg/front_end/testcases/rasta/switch_fall_through2.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/switch_fall_through2.dart.weak.outline.expect
new file mode 100644
index 0000000..e2cba6b
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/switch_fall_through2.dart.weak.outline.expect
@@ -0,0 +1,5 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/rasta/switch_fall_through2.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/switch_fall_through2.dart.weak.transformed.expect
new file mode 100644
index 0000000..46d5877
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/switch_fall_through2.dart.weak.transformed.expect
@@ -0,0 +1,78 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/rasta/switch_fall_through2.dart:31:5: Error: Switch case may fall through to the next case.
+//     case 5:
+//     ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method main() → dynamic {
+  #L1:
+  switch(1) {
+    #L2:
+    case #C1:
+      {
+        {
+          "No fall-through error needed.";
+          break #L1;
+          ;
+        }
+      }
+    #L3:
+    case #C2:
+      {
+        {
+          "Fall-through error needed.";
+          if(true) {
+            break #L1;
+          }
+        }
+      }
+    #L4:
+    case #C3:
+      {
+        try {
+          "No fall-through error needed.";
+        }
+        finally {
+          break #L1;
+        }
+      }
+    #L5:
+    case #C4:
+      {
+        try {
+          "No fall-through error needed.";
+          break #L1;
+        }
+        finally {
+        }
+      }
+    #L6:
+    case #C5:
+      {
+        try {
+          "Fall-through error needed.";
+        }
+        finally {
+        }
+      }
+    #L7:
+    case #C6:
+      {
+        "Should be last. No fall-through error, falling through allowed here.";
+      }
+  }
+}
+
+constants  {
+  #C1 = 1
+  #C2 = 2
+  #C3 = 3
+  #C4 = 4
+  #C5 = 5
+  #C6 = 10000
+}
diff --git a/pkg/front_end/testcases/rasta/this_invoke.dart b/pkg/front_end/testcases/rasta/this_invoke.dart
index f96ea7c..42b95f7 100644
--- a/pkg/front_end/testcases/rasta/this_invoke.dart
+++ b/pkg/front_end/testcases/rasta/this_invoke.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.md file.
-// @dart=2.9
+
 class C {
   m(x) => this(x);
   call(x) => 42;
diff --git a/pkg/front_end/testcases/rasta/this_invoke.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/this_invoke.dart.textual_outline.expect
index cdf68c2..ab53b16 100644
--- a/pkg/front_end/testcases/rasta/this_invoke.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/this_invoke.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   m(x) => this(x);
   call(x) => 42;
diff --git a/pkg/front_end/testcases/rasta/this_invoke.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/this_invoke.dart.textual_outline_modelled.expect
index 5be66ca..cabde6d 100644
--- a/pkg/front_end/testcases/rasta/this_invoke.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/this_invoke.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   call(x) => 42;
   m(x) => this(x);
diff --git a/pkg/front_end/testcases/rasta/this_invoke.dart.weak.expect b/pkg/front_end/testcases/rasta/this_invoke.dart.weak.expect
index 37dfbd7..6346817 100644
--- a/pkg/front_end/testcases/rasta/this_invoke.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/this_invoke.dart.weak.expect
@@ -1,26 +1,16 @@
-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 x) → dynamic
-    return this.{self::C::call}(x){(dynamic) →* dynamic};
+    return this.{self::C::call}(x){(dynamic) → dynamic};
   method call(dynamic x) → dynamic
     return 42;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
-  core::print(new self::C::•().{self::C::m}(42){(dynamic) →* dynamic});
+  core::print(new self::C::•().{self::C::m}(42){(dynamic) → dynamic});
 }
diff --git a/pkg/front_end/testcases/rasta/this_invoke.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/this_invoke.dart.weak.modular.expect
index 37dfbd7..6346817 100644
--- a/pkg/front_end/testcases/rasta/this_invoke.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/this_invoke.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-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 x) → dynamic
-    return this.{self::C::call}(x){(dynamic) →* dynamic};
+    return this.{self::C::call}(x){(dynamic) → dynamic};
   method call(dynamic x) → dynamic
     return 42;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
-  core::print(new self::C::•().{self::C::m}(42){(dynamic) →* dynamic});
+  core::print(new self::C::•().{self::C::m}(42){(dynamic) → dynamic});
 }
diff --git a/pkg/front_end/testcases/rasta/this_invoke.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/this_invoke.dart.weak.outline.expect
index 9df04e7..39f5866 100644
--- a/pkg/front_end/testcases/rasta/this_invoke.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/this_invoke.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-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 x) → dynamic
     ;
   method call(dynamic 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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/this_invoke.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/this_invoke.dart.weak.transformed.expect
index 37dfbd7..6346817 100644
--- a/pkg/front_end/testcases/rasta/this_invoke.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/this_invoke.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-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 x) → dynamic
-    return this.{self::C::call}(x){(dynamic) →* dynamic};
+    return this.{self::C::call}(x){(dynamic) → dynamic};
   method call(dynamic x) → dynamic
     return 42;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
-  core::print(new self::C::•().{self::C::m}(42){(dynamic) →* dynamic});
+  core::print(new self::C::•().{self::C::m}(42){(dynamic) → dynamic});
 }
diff --git a/pkg/front_end/testcases/rasta/try_label.dart b/pkg/front_end/testcases/rasta/try_label.dart
index f5ed518..30406ac 100644
--- a/pkg/front_end/testcases/rasta/try_label.dart
+++ b/pkg/front_end/testcases/rasta/try_label.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.md file.
-// @dart=2.9
+
 main() {
   L: try {
     break L;
diff --git a/pkg/front_end/testcases/rasta/try_label.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/try_label.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/try_label.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/try_label.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/try_label.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/try_label.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/try_label.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/try_label.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/try_label.dart.weak.expect b/pkg/front_end/testcases/rasta/try_label.dart.weak.expect
index 14f6249..ead1335 100644
--- a/pkg/front_end/testcases/rasta/try_label.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/try_label.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/try_label.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/try_label.dart.weak.modular.expect
index 14f6249..ead1335 100644
--- a/pkg/front_end/testcases/rasta/try_label.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/try_label.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/try_label.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/try_label.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/rasta/try_label.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/try_label.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/rasta/try_label.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/try_label.dart.weak.transformed.expect
index 14f6249..ead1335 100644
--- a/pkg/front_end/testcases/rasta/try_label.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/try_label.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/type_literals.dart b/pkg/front_end/testcases/rasta/type_literals.dart
index fb2c206..2d8fc23 100644
--- a/pkg/front_end/testcases/rasta/type_literals.dart
+++ b/pkg/front_end/testcases/rasta/type_literals.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.md file.
-// @dart=2.9
+
 typedef void Func();
 
 class C<T> {
diff --git a/pkg/front_end/testcases/rasta/type_literals.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/type_literals.dart.textual_outline.expect
index 7e37f70..3e0fb14 100644
--- a/pkg/front_end/testcases/rasta/type_literals.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/type_literals.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 typedef void Func();
 
 class C<T> {
diff --git a/pkg/front_end/testcases/rasta/type_literals.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/type_literals.dart.textual_outline_modelled.expect
index e5b0266..e51e370 100644
--- a/pkg/front_end/testcases/rasta/type_literals.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/type_literals.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C<T> {
   test() {}
 }
diff --git a/pkg/front_end/testcases/rasta/type_literals.dart.weak.expect b/pkg/front_end/testcases/rasta/type_literals.dart.weak.expect
index de13441..c8eb93c 100644
--- a/pkg/front_end/testcases/rasta/type_literals.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/type_literals.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -282,12 +282,52 @@
 //     use(Func -= 42);
 //         ^^^^
 //
+// pkg/front_end/testcases/rasta/type_literals.dart:74:5: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     C ??= 42;
+//     ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:75:9: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     use(C ??= 42);
+//         ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:76:5: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     dynamic ??= 42;
+//     ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:77:9: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     use(dynamic ??= 42);
+//         ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:78:5: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     T ??= 42;
+//     ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:79:9: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     use(T ??= 42);
+//         ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:80:5: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     Func ??= 42;
+//     ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:81:9: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     use(Func ??= 42);
+//         ^
+//
 import self as self;
 import "dart:core" as core;
 
-typedef Func = () →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef Func = () → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
   method test() → dynamic {
@@ -295,8 +335,8 @@
     self::use(#C1);
     #C2;
     self::use(#C2);
-    self::C::T*;
-    self::use(self::C::T*);
+    self::C::T%;
+    self::use(self::C::T%);
     #C3;
     self::use(#C3);
     new self::C::•<dynamic>();
@@ -442,25 +482,25 @@
     #C1 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:74:5: Error: Can't assign to a type literal.
     C ??= 42;
     ^" : null;
-    self::use(let final core::Type* #t1 = #C1 in #t1 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:75:9: Error: Can't assign to a type literal.
+    self::use(let final core::Type #t1 = #C1 in #t1 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:75:9: Error: Can't assign to a type literal.
     use(C ??= 42);
         ^" : #t1);
     #C2 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:76:5: Error: Can't assign to a type literal.
     dynamic ??= 42;
     ^^^^^^^" : null;
-    self::use(let final core::Type* #t2 = #C2 in #t2 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:77:9: Error: Can't assign to a type literal.
+    self::use(let final core::Type #t2 = #C2 in #t2 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:77:9: Error: Can't assign to a type literal.
     use(dynamic ??= 42);
         ^^^^^^^" : #t2);
-    self::C::T* == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:78:5: Error: Can't assign to a type literal.
+    self::C::T% == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:78:5: Error: Can't assign to a type literal.
     T ??= 42;
     ^" : null;
-    self::use(let final core::Type* #t3 = self::C::T* in #t3 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:79:9: Error: Can't assign to a type literal.
+    self::use(let final core::Type #t3 = self::C::T% in #t3 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:79:9: Error: Can't assign to a type literal.
     use(T ??= 42);
         ^" : #t3);
     #C3 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:80:5: Error: Can't assign to a type literal.
     Func ??= 42;
     ^^^^" : null;
-    self::use(let final core::Type* #t4 = #C3 in #t4 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:81:9: Error: Can't assign to a type literal.
+    self::use(let final core::Type #t4 = #C3 in #t4 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:81:9: Error: Can't assign to a type literal.
     use(Func ??= 42);
         ^^^^" : #t4);
     invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:83:5: Error: Can't assign to a type literal.
@@ -512,23 +552,13 @@
     use(Func -= 42);
         ^^^^");
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 use(dynamic x) → dynamic {
-  if(x =={core::Object::==}{(core::Object*) →* core::bool*} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int*})
+  if(x =={core::Object::==}{(core::Object) → core::bool} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int})
     throw "Shouldn't happen";
 }
 static method main() → dynamic {
-  new self::C::•<dynamic>().{self::C::test}(){() →* dynamic};
+  new self::C::•<dynamic>().{self::C::test}(){() → dynamic};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/rasta/type_literals.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/type_literals.dart.weak.modular.expect
index de13441..c8eb93c 100644
--- a/pkg/front_end/testcases/rasta/type_literals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/type_literals.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -282,12 +282,52 @@
 //     use(Func -= 42);
 //         ^^^^
 //
+// pkg/front_end/testcases/rasta/type_literals.dart:74:5: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     C ??= 42;
+//     ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:75:9: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     use(C ??= 42);
+//         ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:76:5: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     dynamic ??= 42;
+//     ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:77:9: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     use(dynamic ??= 42);
+//         ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:78:5: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     T ??= 42;
+//     ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:79:9: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     use(T ??= 42);
+//         ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:80:5: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     Func ??= 42;
+//     ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:81:9: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     use(Func ??= 42);
+//         ^
+//
 import self as self;
 import "dart:core" as core;
 
-typedef Func = () →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef Func = () → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
   method test() → dynamic {
@@ -295,8 +335,8 @@
     self::use(#C1);
     #C2;
     self::use(#C2);
-    self::C::T*;
-    self::use(self::C::T*);
+    self::C::T%;
+    self::use(self::C::T%);
     #C3;
     self::use(#C3);
     new self::C::•<dynamic>();
@@ -442,25 +482,25 @@
     #C1 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:74:5: Error: Can't assign to a type literal.
     C ??= 42;
     ^" : null;
-    self::use(let final core::Type* #t1 = #C1 in #t1 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:75:9: Error: Can't assign to a type literal.
+    self::use(let final core::Type #t1 = #C1 in #t1 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:75:9: Error: Can't assign to a type literal.
     use(C ??= 42);
         ^" : #t1);
     #C2 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:76:5: Error: Can't assign to a type literal.
     dynamic ??= 42;
     ^^^^^^^" : null;
-    self::use(let final core::Type* #t2 = #C2 in #t2 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:77:9: Error: Can't assign to a type literal.
+    self::use(let final core::Type #t2 = #C2 in #t2 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:77:9: Error: Can't assign to a type literal.
     use(dynamic ??= 42);
         ^^^^^^^" : #t2);
-    self::C::T* == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:78:5: Error: Can't assign to a type literal.
+    self::C::T% == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:78:5: Error: Can't assign to a type literal.
     T ??= 42;
     ^" : null;
-    self::use(let final core::Type* #t3 = self::C::T* in #t3 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:79:9: Error: Can't assign to a type literal.
+    self::use(let final core::Type #t3 = self::C::T% in #t3 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:79:9: Error: Can't assign to a type literal.
     use(T ??= 42);
         ^" : #t3);
     #C3 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:80:5: Error: Can't assign to a type literal.
     Func ??= 42;
     ^^^^" : null;
-    self::use(let final core::Type* #t4 = #C3 in #t4 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:81:9: Error: Can't assign to a type literal.
+    self::use(let final core::Type #t4 = #C3 in #t4 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:81:9: Error: Can't assign to a type literal.
     use(Func ??= 42);
         ^^^^" : #t4);
     invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:83:5: Error: Can't assign to a type literal.
@@ -512,23 +552,13 @@
     use(Func -= 42);
         ^^^^");
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 use(dynamic x) → dynamic {
-  if(x =={core::Object::==}{(core::Object*) →* core::bool*} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int*})
+  if(x =={core::Object::==}{(core::Object) → core::bool} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int})
     throw "Shouldn't happen";
 }
 static method main() → dynamic {
-  new self::C::•<dynamic>().{self::C::test}(){() →* dynamic};
+  new self::C::•<dynamic>().{self::C::test}(){() → dynamic};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/rasta/type_literals.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/type_literals.dart.weak.outline.expect
index cb3829a..eb7f1e9 100644
--- a/pkg/front_end/testcases/rasta/type_literals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/type_literals.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef Func = () →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef Func = () → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
   method test() → 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 use(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/type_literals.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/type_literals.dart.weak.transformed.expect
index 6d33972..0d73a96 100644
--- a/pkg/front_end/testcases/rasta/type_literals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/type_literals.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -282,12 +282,52 @@
 //     use(Func -= 42);
 //         ^^^^
 //
+// pkg/front_end/testcases/rasta/type_literals.dart:74:5: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     C ??= 42;
+//     ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:75:9: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     use(C ??= 42);
+//         ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:76:5: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     dynamic ??= 42;
+//     ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:77:9: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     use(dynamic ??= 42);
+//         ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:78:5: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     T ??= 42;
+//     ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:79:9: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     use(T ??= 42);
+//         ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:80:5: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     Func ??= 42;
+//     ^
+//
+// pkg/front_end/testcases/rasta/type_literals.dart:81:9: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//     use(Func ??= 42);
+//         ^
+//
 import self as self;
 import "dart:core" as core;
 
-typedef Func = () →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef Func = () → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
   method test() → dynamic {
@@ -295,8 +335,8 @@
     self::use(#C1);
     #C2;
     self::use(#C2);
-    self::C::T*;
-    self::use(self::C::T*);
+    self::C::T%;
+    self::use(self::C::T%);
     #C3;
     self::use(#C3);
     new self::C::•<dynamic>();
@@ -442,25 +482,25 @@
     #C1 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:74:5: Error: Can't assign to a type literal.
     C ??= 42;
     ^" : null;
-    self::use(let final core::Type* #t1 = #C1 in #t1 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:75:9: Error: Can't assign to a type literal.
+    self::use(let final core::Type #t1 = #C1 in #t1 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:75:9: Error: Can't assign to a type literal.
     use(C ??= 42);
         ^" : #t1);
     #C2 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:76:5: Error: Can't assign to a type literal.
     dynamic ??= 42;
     ^^^^^^^" : null;
-    self::use(let final core::Type* #t2 = #C2 in #t2 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:77:9: Error: Can't assign to a type literal.
+    self::use(let final core::Type #t2 = #C2 in #t2 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:77:9: Error: Can't assign to a type literal.
     use(dynamic ??= 42);
         ^^^^^^^" : #t2);
-    self::C::T* == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:78:5: Error: Can't assign to a type literal.
+    self::C::T% == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:78:5: Error: Can't assign to a type literal.
     T ??= 42;
     ^" : null;
-    self::use(let final core::Type* #t3 = self::C::T* in #t3 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:79:9: Error: Can't assign to a type literal.
+    self::use(let final core::Type #t3 = self::C::T% in #t3 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:79:9: Error: Can't assign to a type literal.
     use(T ??= 42);
         ^" : #t3);
     #C3 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:80:5: Error: Can't assign to a type literal.
     Func ??= 42;
     ^^^^" : null;
-    self::use(let final core::Type* #t4 = #C3 in #t4 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:81:9: Error: Can't assign to a type literal.
+    self::use(let final core::Type #t4 = #C3 in #t4 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:81:9: Error: Can't assign to a type literal.
     use(Func ??= 42);
         ^^^^" : #t4);
     invalid-expression "pkg/front_end/testcases/rasta/type_literals.dart:83:5: Error: Can't assign to a type literal.
@@ -512,23 +552,13 @@
     use(Func -= 42);
         ^^^^");
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 use(dynamic x) → dynamic {
-  if(x =={core::Object::==}{(core::Object*) →* core::bool*} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int*})
+  if(x =={core::Object::==}{(core::Object) → core::bool} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int})
     throw "Shouldn't happen";
 }
 static method main() → dynamic {
-  new self::C::•<dynamic>().{self::C::test}(){() →* dynamic};
+  new self::C::•<dynamic>().{self::C::test}(){() → dynamic};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/rasta/type_with_parse_error.dart b/pkg/front_end/testcases/rasta/type_with_parse_error.dart
index 9a78135..ac9bb02 100644
--- a/pkg/front_end/testcases/rasta/type_with_parse_error.dart
+++ b/pkg/front_end/testcases/rasta/type_with_parse_error.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.md file.
-// @dart=2.9
+
 main() {
   // When analyzing this, the class element for B hasn't tried to parse its
   // members and isn't yet malformed.
diff --git a/pkg/front_end/testcases/rasta/type_with_parse_error.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/type_with_parse_error.dart.textual_outline.expect
index e8283f8..10499e7 100644
--- a/pkg/front_end/testcases/rasta/type_with_parse_error.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/type_with_parse_error.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 main() {}
 
 class A {
diff --git a/pkg/front_end/testcases/rasta/type_with_parse_error.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/type_with_parse_error.dart.textual_outline_modelled.expect
index 56354fb..a2249be 100644
--- a/pkg/front_end/testcases/rasta/type_with_parse_error.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/type_with_parse_error.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   foo() {}
 }
diff --git a/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.expect b/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.expect
index 3d3d7f0..99501ae 100644
--- a/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -6,43 +6,27 @@
 //   int i
 //       ^
 //
+// pkg/front_end/testcases/rasta/type_with_parse_error.dart:21:7: Error: Field 'i' should be initialized because its type 'int' doesn't allow null.
+//   int i
+//       ^
+//
 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::•()
     ;
   method foo() → dynamic {
-    new self::B::•<self::A*>();
+    new self::B::•<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<T extends core::Object* = dynamic> extends core::Object {
-  field core::int* i = null;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  field core::int i = null;
+  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
 }
 static method main() → dynamic {
-  new self::B::•<self::A*>();
+  new self::B::•<self::A>();
 }
diff --git a/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.modular.expect
index 3d3d7f0..99501ae 100644
--- a/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -6,43 +6,27 @@
 //   int i
 //       ^
 //
+// pkg/front_end/testcases/rasta/type_with_parse_error.dart:21:7: Error: Field 'i' should be initialized because its type 'int' doesn't allow null.
+//   int i
+//       ^
+//
 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::•()
     ;
   method foo() → dynamic {
-    new self::B::•<self::A*>();
+    new self::B::•<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<T extends core::Object* = dynamic> extends core::Object {
-  field core::int* i = null;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  field core::int i = null;
+  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
 }
 static method main() → dynamic {
-  new self::B::•<self::A*>();
+  new self::B::•<self::A>();
 }
diff --git a/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.outline.expect
index 3b79ff3..67fc476 100644
--- a/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,35 +10,15 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
   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
 }
-class B<T extends core::Object* = dynamic> extends core::Object {
-  field core::int* i;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  field core::int i;
+  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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.transformed.expect
index 3d3d7f0..99501ae 100644
--- a/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/type_with_parse_error.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -6,43 +6,27 @@
 //   int i
 //       ^
 //
+// pkg/front_end/testcases/rasta/type_with_parse_error.dart:21:7: Error: Field 'i' should be initialized because its type 'int' doesn't allow null.
+//   int i
+//       ^
+//
 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::•()
     ;
   method foo() → dynamic {
-    new self::B::•<self::A*>();
+    new self::B::•<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<T extends core::Object* = dynamic> extends core::Object {
-  field core::int* i = null;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  field core::int i = null;
+  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
 }
 static method main() → dynamic {
-  new self::B::•<self::A*>();
+  new self::B::•<self::A>();
 }
diff --git a/pkg/front_end/testcases/rasta/typedef.dart b/pkg/front_end/testcases/rasta/typedef.dart
index 3478fe6..37e26a6 100644
--- a/pkg/front_end/testcases/rasta/typedef.dart
+++ b/pkg/front_end/testcases/rasta/typedef.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.md file.
-// @dart=2.9
+
 typedef void Foo();
 
 main() {
diff --git a/pkg/front_end/testcases/rasta/typedef.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/typedef.dart.textual_outline.expect
index b660849..3c109123 100644
--- a/pkg/front_end/testcases/rasta/typedef.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/typedef.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 typedef void Foo();
 main() {}
diff --git a/pkg/front_end/testcases/rasta/typedef.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/typedef.dart.textual_outline_modelled.expect
index 0584615..7f7ac99 100644
--- a/pkg/front_end/testcases/rasta/typedef.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/typedef.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
 typedef void Foo();
diff --git a/pkg/front_end/testcases/rasta/typedef.dart.weak.expect b/pkg/front_end/testcases/rasta/typedef.dart.weak.expect
index 72932b9..2145069 100644
--- a/pkg/front_end/testcases/rasta/typedef.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/typedef.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,10 +14,15 @@
 //   Foo();
 //   ^^^
 //
+// pkg/front_end/testcases/rasta/typedef.dart:10:3: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//   Foo ??= null;
+//   ^
+//
 import self as self;
 import "dart:core" as core;
 
-typedef Foo = () →* void;
+typedef Foo = () → void;
 static method main() → dynamic {
   core::print(#C1);
   invalid-expression "pkg/front_end/testcases/rasta/typedef.dart:9:3: Error: Can't assign to a type literal.
diff --git a/pkg/front_end/testcases/rasta/typedef.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/typedef.dart.weak.modular.expect
index 72932b9..2145069 100644
--- a/pkg/front_end/testcases/rasta/typedef.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/typedef.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,10 +14,15 @@
 //   Foo();
 //   ^^^
 //
+// pkg/front_end/testcases/rasta/typedef.dart:10:3: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//   Foo ??= null;
+//   ^
+//
 import self as self;
 import "dart:core" as core;
 
-typedef Foo = () →* void;
+typedef Foo = () → void;
 static method main() → dynamic {
   core::print(#C1);
   invalid-expression "pkg/front_end/testcases/rasta/typedef.dart:9:3: Error: Can't assign to a type literal.
diff --git a/pkg/front_end/testcases/rasta/typedef.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/typedef.dart.weak.outline.expect
index e00807a..df89837 100644
--- a/pkg/front_end/testcases/rasta/typedef.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/typedef.dart.weak.outline.expect
@@ -1,6 +1,6 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
-typedef Foo = () →* void;
+typedef Foo = () → void;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/typedef.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/typedef.dart.weak.transformed.expect
index aaaf1fc..fe58e59 100644
--- a/pkg/front_end/testcases/rasta/typedef.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/typedef.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,10 +14,15 @@
 //   Foo();
 //   ^^^
 //
+// pkg/front_end/testcases/rasta/typedef.dart:10:3: Warning: Operand of null-aware operation '??=' has type 'Type' which excludes null.
+//  - 'Type' is from 'dart:core'.
+//   Foo ??= null;
+//   ^
+//
 import self as self;
 import "dart:core" as core;
 
-typedef Foo = () →* void;
+typedef Foo = () → void;
 static method main() → dynamic {
   core::print(#C1);
   invalid-expression "pkg/front_end/testcases/rasta/typedef.dart:9:3: Error: Can't assign to a type literal.
diff --git a/pkg/front_end/testcases/rasta/unresolved.dart b/pkg/front_end/testcases/rasta/unresolved.dart
index 551af83..39c690c 100644
--- a/pkg/front_end/testcases/rasta/unresolved.dart
+++ b/pkg/front_end/testcases/rasta/unresolved.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.md file.
-// @dart=2.9
+
 main() {
   new Missing();
 }
diff --git a/pkg/front_end/testcases/rasta/unresolved.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/unresolved.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/unresolved.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/unresolved.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/unresolved.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/unresolved.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/rasta/unresolved.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/unresolved.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/rasta/unresolved.dart.weak.expect b/pkg/front_end/testcases/rasta/unresolved.dart.weak.expect
index 39e56f4..7e0acd7 100644
--- a/pkg/front_end/testcases/rasta/unresolved.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/unresolved.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/unresolved.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/unresolved.dart.weak.modular.expect
index 39e56f4..7e0acd7 100644
--- a/pkg/front_end/testcases/rasta/unresolved.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/unresolved.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/unresolved.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/unresolved.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/rasta/unresolved.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/unresolved.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/rasta/unresolved.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/unresolved.dart.weak.transformed.expect
index 39e56f4..7e0acd7 100644
--- a/pkg/front_end/testcases/rasta/unresolved.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/unresolved.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/rasta/unresolved_constructor.dart b/pkg/front_end/testcases/rasta/unresolved_constructor.dart
index 3d78bec..3106df6 100644
--- a/pkg/front_end/testcases/rasta/unresolved_constructor.dart
+++ b/pkg/front_end/testcases/rasta/unresolved_constructor.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.md file.
-// @dart=2.9
+
 class Foo {
   Foo(x, y);
 }
diff --git a/pkg/front_end/testcases/rasta/unresolved_constructor.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/unresolved_constructor.dart.textual_outline.expect
index cd083e3..36e85d2 100644
--- a/pkg/front_end/testcases/rasta/unresolved_constructor.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_constructor.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Foo {
   Foo(x, y);
 }
diff --git a/pkg/front_end/testcases/rasta/unresolved_constructor.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/unresolved_constructor.dart.textual_outline_modelled.expect
index cd083e3..36e85d2 100644
--- a/pkg/front_end/testcases/rasta/unresolved_constructor.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_constructor.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Foo {
   Foo(x, y);
 }
diff --git a/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.expect b/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.expect
index fc47b33..a334f52 100644
--- a/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,19 +17,9 @@
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  constructor •(dynamic x, dynamic y) → self::Foo*
+  constructor •(dynamic x, dynamic y) → self::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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/rasta/unresolved_constructor.dart:10:10: Error: Too few positional arguments: 2 required, 0 given.
diff --git a/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.modular.expect
index fc47b33..a334f52 100644
--- a/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,19 +17,9 @@
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  constructor •(dynamic x, dynamic y) → self::Foo*
+  constructor •(dynamic x, dynamic y) → self::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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/rasta/unresolved_constructor.dart:10:10: Error: Too few positional arguments: 2 required, 0 given.
diff --git a/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.outline.expect
index 1e02225..a3a491c 100644
--- a/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.outline.expect
@@ -1,20 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  constructor •(dynamic x, dynamic y) → self::Foo*
+  constructor •(dynamic x, dynamic y) → self::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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.transformed.expect
index fc47b33..a334f52 100644
--- a/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_constructor.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,19 +17,9 @@
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  constructor •(dynamic x, dynamic y) → self::Foo*
+  constructor •(dynamic x, dynamic y) → self::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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/rasta/unresolved_constructor.dart:10:10: Error: Too few positional arguments: 2 required, 0 given.
diff --git a/pkg/front_end/testcases/rasta/unresolved_for_in.dart b/pkg/front_end/testcases/rasta/unresolved_for_in.dart
index f4954fa..b9e9c1b 100644
--- a/pkg/front_end/testcases/rasta/unresolved_for_in.dart
+++ b/pkg/front_end/testcases/rasta/unresolved_for_in.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.md file.
-// @dart=2.9
+
 import 'dart:collection' as collection;
 
 typedef void VoidFunction();
diff --git a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.textual_outline.expect
index fb34d84..2b61e89 100644
--- a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:collection' as collection;
 
 typedef void VoidFunction();
diff --git a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.textual_outline_modelled.expect
index 8de2ab7..4d7cff8 100644
--- a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:collection' as collection;
 
 class Fisk {
diff --git a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.expect b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.expect
index 1600ec3..0f321ea 100644
--- a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -87,13 +87,13 @@
 
 import "dart:collection" as collection;
 
-typedef VoidFunction = () →* void;
+typedef VoidFunction = () → void;
 class Fisk extends core::Object {
-  synthetic constructor •() → self::Fisk*
+  synthetic constructor •() → self::Fisk
     : super core::Object::•()
     ;
   method it1(dynamic x) → dynamic {
-    for (final dynamic #t1 in x as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+    for (final dynamic #t1 in x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
       invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:11:10: Error: The setter 'key' isn't defined for the class 'Fisk'.
  - 'Fisk' is from 'pkg/front_end/testcases/rasta/unresolved_for_in.dart'.
 Try correcting the name to the name of an existing setter, or defining a setter or field named 'key'.
@@ -109,13 +109,13 @@
       print(key);
             ^^^" in this{<unresolved>}.key);
     }
-    for (final dynamic #t2 in x as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+    for (final dynamic #t2 in x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
       invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:14:10: Error: Can't assign to a type literal.
     for (Fisk in x) {
          ^^^^";
       core::print(#C1);
     }
-    for (final dynamic #t3 in x as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+    for (final dynamic #t3 in x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
       invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:17:10: Error: A prefix can't be used as an expression.
     for (collection in x) {
          ^^^^^^^^^^";
@@ -123,7 +123,7 @@
       print(collection);
             ^^^^^^^^^^");
     }
-    for (final dynamic #t4 in x as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+    for (final dynamic #t4 in x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
       invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:20:10: Error: Can't assign to a type literal.
     for (VoidFunction in x) {
          ^^^^^^^^^^^^";
@@ -133,7 +133,7 @@
       invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:23:10: Error: Can't assign to this, so it can't be used in a for-in loop.
     for (1 in x) {
          ^";
-      for (final dynamic #t5 in x as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+      for (final dynamic #t5 in x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
         invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:23:10: Error: Can't assign to this, so it can't be used in a for-in loop.
     for (1 in x) {
          ^";
@@ -146,20 +146,10 @@
       }
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 arguments) → dynamic {
   new self::Fisk::•();
-  for (final dynamic #t6 in arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+  for (final dynamic #t6 in arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
     invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:31:8: Error: Setter not found: 'key'.
   for (key in arguments) {
        ^^^";
@@ -167,13 +157,13 @@
     print(key);
           ^^^");
   }
-  for (final dynamic #t7 in arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+  for (final dynamic #t7 in arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
     invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:34:8: Error: Can't assign to a type literal.
   for (Fisk in arguments) {
        ^^^^";
     core::print(#C1);
   }
-  for (final dynamic #t8 in arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+  for (final dynamic #t8 in arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
     invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:37:8: Error: A prefix can't be used as an expression.
   for (collection in arguments) {
        ^^^^^^^^^^";
@@ -181,7 +171,7 @@
     print(collection);
           ^^^^^^^^^^");
   }
-  for (final dynamic #t9 in arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+  for (final dynamic #t9 in arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
     invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:40:8: Error: Can't assign to a type literal.
   for (VoidFunction in arguments) {
        ^^^^^^^^^^^^";
@@ -191,7 +181,7 @@
     invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:43:8: Error: Can't assign to this, so it can't be used in a for-in loop.
   for (1 in arguments) {
        ^";
-    for (final dynamic #t10 in arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+    for (final dynamic #t10 in arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
       invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:43:8: Error: Can't assign to this, so it can't be used in a for-in loop.
   for (1 in arguments) {
        ^";
diff --git a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.modular.expect
index 1600ec3..0f321ea 100644
--- a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -87,13 +87,13 @@
 
 import "dart:collection" as collection;
 
-typedef VoidFunction = () →* void;
+typedef VoidFunction = () → void;
 class Fisk extends core::Object {
-  synthetic constructor •() → self::Fisk*
+  synthetic constructor •() → self::Fisk
     : super core::Object::•()
     ;
   method it1(dynamic x) → dynamic {
-    for (final dynamic #t1 in x as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+    for (final dynamic #t1 in x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
       invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:11:10: Error: The setter 'key' isn't defined for the class 'Fisk'.
  - 'Fisk' is from 'pkg/front_end/testcases/rasta/unresolved_for_in.dart'.
 Try correcting the name to the name of an existing setter, or defining a setter or field named 'key'.
@@ -109,13 +109,13 @@
       print(key);
             ^^^" in this{<unresolved>}.key);
     }
-    for (final dynamic #t2 in x as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+    for (final dynamic #t2 in x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
       invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:14:10: Error: Can't assign to a type literal.
     for (Fisk in x) {
          ^^^^";
       core::print(#C1);
     }
-    for (final dynamic #t3 in x as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+    for (final dynamic #t3 in x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
       invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:17:10: Error: A prefix can't be used as an expression.
     for (collection in x) {
          ^^^^^^^^^^";
@@ -123,7 +123,7 @@
       print(collection);
             ^^^^^^^^^^");
     }
-    for (final dynamic #t4 in x as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+    for (final dynamic #t4 in x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
       invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:20:10: Error: Can't assign to a type literal.
     for (VoidFunction in x) {
          ^^^^^^^^^^^^";
@@ -133,7 +133,7 @@
       invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:23:10: Error: Can't assign to this, so it can't be used in a for-in loop.
     for (1 in x) {
          ^";
-      for (final dynamic #t5 in x as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+      for (final dynamic #t5 in x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
         invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:23:10: Error: Can't assign to this, so it can't be used in a for-in loop.
     for (1 in x) {
          ^";
@@ -146,20 +146,10 @@
       }
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 arguments) → dynamic {
   new self::Fisk::•();
-  for (final dynamic #t6 in arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+  for (final dynamic #t6 in arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
     invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:31:8: Error: Setter not found: 'key'.
   for (key in arguments) {
        ^^^";
@@ -167,13 +157,13 @@
     print(key);
           ^^^");
   }
-  for (final dynamic #t7 in arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+  for (final dynamic #t7 in arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
     invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:34:8: Error: Can't assign to a type literal.
   for (Fisk in arguments) {
        ^^^^";
     core::print(#C1);
   }
-  for (final dynamic #t8 in arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+  for (final dynamic #t8 in arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
     invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:37:8: Error: A prefix can't be used as an expression.
   for (collection in arguments) {
        ^^^^^^^^^^";
@@ -181,7 +171,7 @@
     print(collection);
           ^^^^^^^^^^");
   }
-  for (final dynamic #t9 in arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+  for (final dynamic #t9 in arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
     invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:40:8: Error: Can't assign to a type literal.
   for (VoidFunction in arguments) {
        ^^^^^^^^^^^^";
@@ -191,7 +181,7 @@
     invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:43:8: Error: Can't assign to this, so it can't be used in a for-in loop.
   for (1 in arguments) {
        ^";
-    for (final dynamic #t10 in arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+    for (final dynamic #t10 in arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
       invalid-expression "pkg/front_end/testcases/rasta/unresolved_for_in.dart:43:8: Error: Can't assign to this, so it can't be used in a for-in loop.
   for (1 in arguments) {
        ^";
diff --git a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.outline.expect
index 0d5f4f3..797922d 100644
--- a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "dart:collection" as collection;
 
-typedef VoidFunction = () →* void;
+typedef VoidFunction = () → void;
 class Fisk extends core::Object {
-  synthetic constructor •() → self::Fisk*
+  synthetic constructor •() → self::Fisk
     ;
   method it1(dynamic 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
 }
 static method main(dynamic arguments) → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.transformed.expect
index f07fe0b..1246663 100644
--- a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -87,14 +87,14 @@
 
 import "dart:collection" as collection;
 
-typedef VoidFunction = () →* void;
+typedef VoidFunction = () → void;
 class Fisk extends core::Object {
-  synthetic constructor •() → self::Fisk*
+  synthetic constructor •() → self::Fisk
     : super core::Object::•()
     ;
   method it1(dynamic x) → dynamic {
     {
-      core::Iterator<dynamic>* :sync-for-iterator = (x as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = (x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
         final dynamic #t1 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -116,7 +116,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = (x as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = (x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{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};
         {
@@ -128,7 +128,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = (x as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = (x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
         final dynamic #t3 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -142,7 +142,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = (x as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = (x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{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};
         {
@@ -158,7 +158,7 @@
     for (1 in x) {
          ^";
       {
-        core::Iterator<dynamic>* :sync-for-iterator = (x as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+        core::Iterator<dynamic> :sync-for-iterator = (x as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
           final dynamic #t5 = :sync-for-iterator.{core::Iterator::current}{dynamic};
           {
@@ -176,21 +176,11 @@
       }
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 arguments) → dynamic {
   new self::Fisk::•();
   {
-    core::Iterator<dynamic>* :sync-for-iterator = (arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+    core::Iterator<dynamic> :sync-for-iterator = (arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{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};
       {
@@ -204,7 +194,7 @@
     }
   }
   {
-    core::Iterator<dynamic>* :sync-for-iterator = (arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+    core::Iterator<dynamic> :sync-for-iterator = (arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
       final dynamic #t7 = :sync-for-iterator.{core::Iterator::current}{dynamic};
       {
@@ -216,7 +206,7 @@
     }
   }
   {
-    core::Iterator<dynamic>* :sync-for-iterator = (arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+    core::Iterator<dynamic> :sync-for-iterator = (arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{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};
       {
@@ -230,7 +220,7 @@
     }
   }
   {
-    core::Iterator<dynamic>* :sync-for-iterator = (arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+    core::Iterator<dynamic> :sync-for-iterator = (arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
       final dynamic #t9 = :sync-for-iterator.{core::Iterator::current}{dynamic};
       {
@@ -246,7 +236,7 @@
   for (1 in arguments) {
        ^";
     {
-      core::Iterator<dynamic>* :sync-for-iterator = (arguments as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = (arguments as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{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};
         {
diff --git a/pkg/front_end/testcases/rasta/unresolved_recovery.dart b/pkg/front_end/testcases/rasta/unresolved_recovery.dart
index 58b69e3..1cc6bf2 100644
--- a/pkg/front_end/testcases/rasta/unresolved_recovery.dart
+++ b/pkg/front_end/testcases/rasta/unresolved_recovery.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.md file.
-// @dart=2.9
+
 class E {
   foo() {
     super[4] = 42;
diff --git a/pkg/front_end/testcases/rasta/unresolved_recovery.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/unresolved_recovery.dart.textual_outline.expect
index ee554bb..b529ebe 100644
--- a/pkg/front_end/testcases/rasta/unresolved_recovery.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_recovery.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class E {
   foo() {}
 }
diff --git a/pkg/front_end/testcases/rasta/unresolved_recovery.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/unresolved_recovery.dart.textual_outline_modelled.expect
index 03749c1..97cd820 100644
--- a/pkg/front_end/testcases/rasta/unresolved_recovery.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_recovery.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 beforeTestMissingTry() {}
 
 class E {
diff --git a/pkg/front_end/testcases/rasta/unresolved_recovery.dart.weak.expect b/pkg/front_end/testcases/rasta/unresolved_recovery.dart.weak.expect
index 8bd61ac..ea9041e 100644
--- a/pkg/front_end/testcases/rasta/unresolved_recovery.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_recovery.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -47,26 +47,16 @@
 import "dart:core" as core;
 
 class E extends core::Object {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super core::Object::•()
     ;
   method foo() → dynamic {
     super.[]=(4, 42);
-    let final core::int* #t1 = 4 in invalid-expression "pkg/front_end/testcases/rasta/unresolved_recovery.dart:8:10: Error: Superclass has no method named '[]='.
+    let final core::int #t1 = 4 in invalid-expression "pkg/front_end/testcases/rasta/unresolved_recovery.dart:8:10: Error: Superclass has no method named '[]='.
     super[4] += 5;
          ^";
     return super.[](2);
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 beforeTestMissingTry() → dynamic {
   self::testMissingTry();
diff --git a/pkg/front_end/testcases/rasta/unresolved_recovery.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/unresolved_recovery.dart.weak.modular.expect
index 8bd61ac..ea9041e 100644
--- a/pkg/front_end/testcases/rasta/unresolved_recovery.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_recovery.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -47,26 +47,16 @@
 import "dart:core" as core;
 
 class E extends core::Object {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super core::Object::•()
     ;
   method foo() → dynamic {
     super.[]=(4, 42);
-    let final core::int* #t1 = 4 in invalid-expression "pkg/front_end/testcases/rasta/unresolved_recovery.dart:8:10: Error: Superclass has no method named '[]='.
+    let final core::int #t1 = 4 in invalid-expression "pkg/front_end/testcases/rasta/unresolved_recovery.dart:8:10: Error: Superclass has no method named '[]='.
     super[4] += 5;
          ^";
     return super.[](2);
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 beforeTestMissingTry() → dynamic {
   self::testMissingTry();
diff --git a/pkg/front_end/testcases/rasta/unresolved_recovery.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/unresolved_recovery.dart.weak.outline.expect
index 6ed351c..238e8d0 100644
--- a/pkg/front_end/testcases/rasta/unresolved_recovery.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_recovery.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class E extends core::Object {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     ;
   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 beforeTestMissingTry() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/unsupported_platform_library.dart b/pkg/front_end/testcases/rasta/unsupported_platform_library.dart
index 0e70c0f..fa8123d 100644
--- a/pkg/front_end/testcases/rasta/unsupported_platform_library.dart
+++ b/pkg/front_end/testcases/rasta/unsupported_platform_library.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.md file.
-// @dart=2.9
+
 import 'dart:html';
 import 'dart:io';
 
diff --git a/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.textual_outline.expect
index c1068f2..afaa1af 100644
--- a/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:html';
 import 'dart:io';
 
diff --git a/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.textual_outline_modelled.expect
index c1068f2..afaa1af 100644
--- a/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:html';
 import 'dart:io';
 
diff --git a/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.expect b/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.expect
index 7651a58..b04fa96 100644
--- a/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.expect
@@ -5,7 +5,7 @@
 // import 'dart:html';
 //        ^
 //
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "dart:html";
diff --git a/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.modular.expect
index 7651a58..b04fa96 100644
--- a/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.modular.expect
@@ -5,7 +5,7 @@
 // import 'dart:html';
 //        ^
 //
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "dart:html";
diff --git a/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.outline.expect
index b80948b..a02b3f2 100644
--- a/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.outline.expect
@@ -5,7 +5,7 @@
 // import 'dart:html';
 //        ^
 //
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "dart:html";
diff --git a/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.transformed.expect
index 22b2878..81935cb 100644
--- a/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/unsupported_platform_library.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "dart:html";
diff --git a/pkg/front_end/testcases/regress/ambiguous_builder_01.dart b/pkg/front_end/testcases/regress/ambiguous_builder_01.dart
index 7f31b89..d3a38362 100644
--- a/pkg/front_end/testcases/regress/ambiguous_builder_01.dart
+++ b/pkg/front_end/testcases/regress/ambiguous_builder_01.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.md file.
-// @dart=2.9
+
 x.y = 42;
 x.z = true;
 void foo() {
diff --git a/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.textual_outline.expect b/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.textual_outline.expect
index 25343fd..e649b85 100644
--- a/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 x(){}
 .
 y = 42;
diff --git a/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.expect b/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.expect
index d9c6c13..d6c6d8e 100644
--- a/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -56,8 +56,8 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::int* y = 42;
-static field core::bool* z = true;
+static field core::int y = 42;
+static field core::bool z = true;
 static method x() → dynamic {}
 static method foo() → void {
   if(!(invalid-expression "pkg/front_end/testcases/regress/ambiguous_builder_01.dart:8:7: Error: Can't use 'x' because it is declared more than once.
diff --git a/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.modular.expect b/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.modular.expect
index d9c6c13..d6c6d8e 100644
--- a/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -56,8 +56,8 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::int* y = 42;
-static field core::bool* z = true;
+static field core::int y = 42;
+static field core::bool z = true;
 static method x() → dynamic {}
 static method foo() → void {
   if(!(invalid-expression "pkg/front_end/testcases/regress/ambiguous_builder_01.dart:8:7: Error: Can't use 'x' because it is declared more than once.
diff --git a/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.outline.expect b/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.outline.expect
index e8152c0..54f1ca6 100644
--- a/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -48,8 +48,8 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::int* y;
-static field core::bool* z;
+static field core::int y;
+static field core::bool z;
 static method x() → dynamic
   ;
 static method foo() → void
diff --git a/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.transformed.expect
index d9c6c13..d6c6d8e 100644
--- a/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/ambiguous_builder_01.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -56,8 +56,8 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::int* y = 42;
-static field core::bool* z = true;
+static field core::int y = 42;
+static field core::bool z = true;
 static method x() → dynamic {}
 static method foo() → void {
   if(!(invalid-expression "pkg/front_end/testcases/regress/ambiguous_builder_01.dart:8:7: Error: Can't use 'x' because it is declared more than once.
diff --git a/pkg/front_end/testcases/regress/issue_29937.dart b/pkg/front_end/testcases/regress/issue_29937.dart
index 503c5b8..fcbb92c 100644
--- a/pkg/front_end/testcases/regress/issue_29937.dart
+++ b/pkg/front_end/testcases/regress/issue_29937.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() {
   [f() {}];
 }
diff --git a/pkg/front_end/testcases/regress/issue_29937.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29937.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/regress/issue_29937.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29937.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29937.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_29937.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/regress/issue_29937.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_29937.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29937.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29937.dart.weak.expect
index 07a6b9a7..2df04ab 100644
--- a/pkg/front_end/testcases/regress/issue_29937.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29937.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,5 +9,5 @@
 import self as self;
 
 static method main() → dynamic {
-  <() →* Null>[let final () →* Null f = () → Null {} in f];
+  <() → Null>[let final () → Null f = () → Null {} in f];
 }
diff --git a/pkg/front_end/testcases/regress/issue_29937.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29937.dart.weak.modular.expect
index 07a6b9a7..2df04ab 100644
--- a/pkg/front_end/testcases/regress/issue_29937.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29937.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,5 +9,5 @@
 import self as self;
 
 static method main() → dynamic {
-  <() →* Null>[let final () →* Null f = () → Null {} in f];
+  <() → Null>[let final () → Null f = () → Null {} in f];
 }
diff --git a/pkg/front_end/testcases/regress/issue_29937.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29937.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/regress/issue_29937.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29937.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/regress/issue_29937.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29937.dart.weak.transformed.expect
index 462aa91..860524d 100644
--- a/pkg/front_end/testcases/regress/issue_29937.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29937.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,5 +10,5 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::_GrowableList::_literal1<() →* Null>(let final () →* Null f = () → Null {} in f);
+  core::_GrowableList::_literal1<() → Null>(let final () → Null f = () → Null {} in f);
 }
diff --git a/pkg/front_end/testcases/regress/issue_29940.dart b/pkg/front_end/testcases/regress/issue_29940.dart
index dcebf16..70bba6a 100644
--- a/pkg/front_end/testcases/regress/issue_29940.dart
+++ b/pkg/front_end/testcases/regress/issue_29940.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 a = "";
   a.b c = null;
diff --git a/pkg/front_end/testcases/regress/issue_29940.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29940.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/regress/issue_29940.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29940.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29940.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_29940.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/regress/issue_29940.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_29940.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29940.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29940.dart.weak.expect
index 9a448c5..274cea7 100644
--- a/pkg/front_end/testcases/regress/issue_29940.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29940.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,6 +10,6 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::String* a = "";
+  core::String a = "";
   has-declared-initializer invalid-type c = null;
 }
diff --git a/pkg/front_end/testcases/regress/issue_29940.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29940.dart.weak.modular.expect
index 9a448c5..274cea7 100644
--- a/pkg/front_end/testcases/regress/issue_29940.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29940.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,6 +10,6 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::String* a = "";
+  core::String a = "";
   has-declared-initializer invalid-type c = null;
 }
diff --git a/pkg/front_end/testcases/regress/issue_29940.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29940.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/regress/issue_29940.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29940.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/regress/issue_29940.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29940.dart.weak.transformed.expect
index 9a448c5..274cea7 100644
--- a/pkg/front_end/testcases/regress/issue_29940.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29940.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,6 +10,6 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::String* a = "";
+  core::String a = "";
   has-declared-initializer invalid-type c = null;
 }
diff --git a/pkg/front_end/testcases/regress/issue_29941.dart b/pkg/front_end/testcases/regress/issue_29941.dart
index 6653493..6cf1d7e 100644
--- a/pkg/front_end/testcases/regress/issue_29941.dart
+++ b/pkg/front_end/testcases/regress/issue_29941.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
+
 bad() {
   var a = "";
   a."";
diff --git a/pkg/front_end/testcases/regress/issue_29941.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29941.dart.textual_outline.expect
index 2397af0..59cd59e 100644
--- a/pkg/front_end/testcases/regress/issue_29941.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29941.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 bad() {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29941.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_29941.dart.textual_outline_modelled.expect
index 2397af0..59cd59e 100644
--- a/pkg/front_end/testcases/regress/issue_29941.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_29941.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 bad() {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29941.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29941.dart.weak.expect
index 82b995b..61e6ca4 100644
--- a/pkg/front_end/testcases/regress/issue_29941.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29941.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,7 +11,7 @@
 import "dart:core" as core;
 
 static method bad() → dynamic {
-  core::String* a = "";
+  core::String a = "";
   invalid-expression "pkg/front_end/testcases/regress/issue_29941.dart:7:5: Error: Expected an identifier, but got '\"\"'.
 Try inserting an identifier before '\"\"'.
   a.\"\";
diff --git a/pkg/front_end/testcases/regress/issue_29941.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29941.dart.weak.modular.expect
index 82b995b..61e6ca4 100644
--- a/pkg/front_end/testcases/regress/issue_29941.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29941.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,7 +11,7 @@
 import "dart:core" as core;
 
 static method bad() → dynamic {
-  core::String* a = "";
+  core::String a = "";
   invalid-expression "pkg/front_end/testcases/regress/issue_29941.dart:7:5: Error: Expected an identifier, but got '\"\"'.
 Try inserting an identifier before '\"\"'.
   a.\"\";
diff --git a/pkg/front_end/testcases/regress/issue_29941.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29941.dart.weak.outline.expect
index 81debf2..9f56f49 100644
--- a/pkg/front_end/testcases/regress/issue_29941.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29941.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method bad() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_29941.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29941.dart.weak.transformed.expect
index 82b995b..61e6ca4 100644
--- a/pkg/front_end/testcases/regress/issue_29941.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29941.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,7 +11,7 @@
 import "dart:core" as core;
 
 static method bad() → dynamic {
-  core::String* a = "";
+  core::String a = "";
   invalid-expression "pkg/front_end/testcases/regress/issue_29941.dart:7:5: Error: Expected an identifier, but got '\"\"'.
 Try inserting an identifier before '\"\"'.
   a.\"\";
diff --git a/pkg/front_end/testcases/regress/issue_29942.dart b/pkg/front_end/testcases/regress/issue_29942.dart
index a59e71b..6117e09 100644
--- a/pkg/front_end/testcases/regress/issue_29942.dart
+++ b/pkg/front_end/testcases/regress/issue_29942.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() {
 }
 
diff --git a/pkg/front_end/testcases/regress/issue_29942.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29942.dart.textual_outline.expect
index 7b59ab6..7dbc73c 100644
--- a/pkg/front_end/testcases/regress/issue_29942.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29942.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
 f() = h() => null;
diff --git a/pkg/front_end/testcases/regress/issue_29942.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29942.dart.weak.expect
index f545925..1bb672f 100644
--- a/pkg/front_end/testcases/regress/issue_29942.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29942.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,4 +15,4 @@
 
 static method main() → dynamic {}
 static method f() → dynamic
-  return let final () →* Null h = () → Null => null in h;
+  return let final () → Null h = () → Null => null in h;
diff --git a/pkg/front_end/testcases/regress/issue_29942.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29942.dart.weak.modular.expect
index f545925..1bb672f 100644
--- a/pkg/front_end/testcases/regress/issue_29942.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29942.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,4 +15,4 @@
 
 static method main() → dynamic {}
 static method f() → dynamic
-  return let final () →* Null h = () → Null => null in h;
+  return let final () → Null h = () → Null => null in h;
diff --git a/pkg/front_end/testcases/regress/issue_29942.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29942.dart.weak.outline.expect
index 1f16ad6..d64c144 100644
--- a/pkg/front_end/testcases/regress/issue_29942.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29942.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29942.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29942.dart.weak.transformed.expect
index f545925..1bb672f 100644
--- a/pkg/front_end/testcases/regress/issue_29942.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29942.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,4 +15,4 @@
 
 static method main() → dynamic {}
 static method f() → dynamic
-  return let final () →* Null h = () → Null => null in h;
+  return let final () → Null h = () → Null => null in h;
diff --git a/pkg/front_end/testcases/regress/issue_29943.dart b/pkg/front_end/testcases/regress/issue_29943.dart
index a16b699..b375a92 100644
--- a/pkg/front_end/testcases/regress/issue_29943.dart
+++ b/pkg/front_end/testcases/regress/issue_29943.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
+
 bad() {
   x.(null);
 }
diff --git a/pkg/front_end/testcases/regress/issue_29943.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29943.dart.textual_outline.expect
index 2397af0..59cd59e 100644
--- a/pkg/front_end/testcases/regress/issue_29943.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29943.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 bad() {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29943.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_29943.dart.textual_outline_modelled.expect
index 2397af0..59cd59e 100644
--- a/pkg/front_end/testcases/regress/issue_29943.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_29943.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 bad() {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29943.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29943.dart.weak.expect
index cc07a5e..039f11eb 100644
--- a/pkg/front_end/testcases/regress/issue_29943.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29943.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29943.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29943.dart.weak.modular.expect
index cc07a5e..039f11eb 100644
--- a/pkg/front_end/testcases/regress/issue_29943.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29943.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29943.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29943.dart.weak.outline.expect
index 81debf2..9f56f49 100644
--- a/pkg/front_end/testcases/regress/issue_29943.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29943.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method bad() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_29943.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29943.dart.weak.transformed.expect
index cc07a5e..039f11eb 100644
--- a/pkg/front_end/testcases/regress/issue_29943.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29943.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29944.dart b/pkg/front_end/testcases/regress/issue_29944.dart
index 535993f..a938fee 100644
--- a/pkg/front_end/testcases/regress/issue_29944.dart
+++ b/pkg/front_end/testcases/regress/issue_29944.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();
   var C;
diff --git a/pkg/front_end/testcases/regress/issue_29944.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29944.dart.textual_outline.expect
index 9c83e12..84b02fb 100644
--- a/pkg/front_end/testcases/regress/issue_29944.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29944.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   C();
   var C;
diff --git a/pkg/front_end/testcases/regress/issue_29944.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29944.dart.weak.expect
index 4ad1117..589168e 100644
--- a/pkg/front_end/testcases/regress/issue_29944.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29944.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,19 +12,9 @@
 
 class C extends core::Object {
   field dynamic C = null;
-  constructor •() → self::C*
+  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
 }
 static method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/regress/issue_29944.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29944.dart.weak.modular.expect
index 4ad1117..589168e 100644
--- a/pkg/front_end/testcases/regress/issue_29944.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29944.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,19 +12,9 @@
 
 class C extends core::Object {
   field dynamic C = null;
-  constructor •() → self::C*
+  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
 }
 static method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/regress/issue_29944.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29944.dart.weak.outline.expect
index 8d3ae5d..847c365 100644
--- a/pkg/front_end/testcases/regress/issue_29944.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29944.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,18 +12,8 @@
 
 class C extends core::Object {
   field dynamic C;
-  constructor •() → self::C*
+  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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_29944.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29944.dart.weak.transformed.expect
index 4ad1117..589168e 100644
--- a/pkg/front_end/testcases/regress/issue_29944.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29944.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,19 +12,9 @@
 
 class C extends core::Object {
   field dynamic C = null;
-  constructor •() → self::C*
+  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
 }
 static method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/regress/issue_29945.dart b/pkg/front_end/testcases/regress/issue_29945.dart
index 0bf5840..dd63202 100644
--- a/pkg/front_end/testcases/regress/issue_29945.dart
+++ b/pkg/front_end/testcases/regress/issue_29945.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() {
   s.bool x = null;
 }
diff --git a/pkg/front_end/testcases/regress/issue_29945.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29945.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/regress/issue_29945.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29945.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29945.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_29945.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/regress/issue_29945.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_29945.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29945.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29945.dart.weak.expect
index d77ee07..7fba4f8 100644
--- a/pkg/front_end/testcases/regress/issue_29945.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29945.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29945.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29945.dart.weak.modular.expect
index d77ee07..7fba4f8 100644
--- a/pkg/front_end/testcases/regress/issue_29945.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29945.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29945.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29945.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/regress/issue_29945.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29945.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/regress/issue_29945.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29945.dart.weak.transformed.expect
index d77ee07..7fba4f8 100644
--- a/pkg/front_end/testcases/regress/issue_29945.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29945.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29975.dart b/pkg/front_end/testcases/regress/issue_29975.dart
index 2b754c1..69f2e31 100644
--- a/pkg/front_end/testcases/regress/issue_29975.dart
+++ b/pkg/front_end/testcases/regress/issue_29975.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
+
 typedef void F();
 typedef void F();
 
diff --git a/pkg/front_end/testcases/regress/issue_29975.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29975.dart.textual_outline.expect
index a25da4a..e3e4824 100644
--- a/pkg/front_end/testcases/regress/issue_29975.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29975.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 typedef void F();
 typedef void F();
 void main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29975.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_29975.dart.textual_outline_modelled.expect
index a25da4a..e3e4824 100644
--- a/pkg/front_end/testcases/regress/issue_29975.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_29975.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 typedef void F();
 typedef void F();
 void main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29975.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29975.dart.weak.expect
index cb75715..f2c1554 100644
--- a/pkg/front_end/testcases/regress/issue_29975.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29975.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,5 +11,5 @@
 //
 import self as self;
 
-typedef F = () →* void;
+typedef F = () → void;
 static method main() → void {}
diff --git a/pkg/front_end/testcases/regress/issue_29975.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29975.dart.weak.modular.expect
index cb75715..f2c1554 100644
--- a/pkg/front_end/testcases/regress/issue_29975.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29975.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,5 +11,5 @@
 //
 import self as self;
 
-typedef F = () →* void;
+typedef F = () → void;
 static method main() → void {}
diff --git a/pkg/front_end/testcases/regress/issue_29975.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29975.dart.weak.outline.expect
index caabaf6..4194754 100644
--- a/pkg/front_end/testcases/regress/issue_29975.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29975.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,6 +11,6 @@
 //
 import self as self;
 
-typedef F = () →* void;
+typedef F = () → void;
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/regress/issue_29975.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29975.dart.weak.transformed.expect
index cb75715..f2c1554 100644
--- a/pkg/front_end/testcases/regress/issue_29975.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29975.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,5 +11,5 @@
 //
 import self as self;
 
-typedef F = () →* void;
+typedef F = () → void;
 static method main() → void {}
diff --git a/pkg/front_end/testcases/regress/issue_29976.dart b/pkg/front_end/testcases/regress/issue_29976.dart
index c5e859d..3d2a10c 100644
--- a/pkg/front_end/testcases/regress/issue_29976.dart
+++ b/pkg/front_end/testcases/regress/issue_29976.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
+
 get x => null;
 
 void main() {
diff --git a/pkg/front_end/testcases/regress/issue_29976.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29976.dart.weak.expect
index b65bb80..0f72310 100644
--- a/pkg/front_end/testcases/regress/issue_29976.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29976.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29976.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29976.dart.weak.modular.expect
index b65bb80..0f72310 100644
--- a/pkg/front_end/testcases/regress/issue_29976.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29976.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29976.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29976.dart.weak.outline.expect
index e1cb793..fcf3f2a 100644
--- a/pkg/front_end/testcases/regress/issue_29976.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29976.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29976.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29976.dart.weak.transformed.expect
index b65bb80..0f72310 100644
--- a/pkg/front_end/testcases/regress/issue_29976.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29976.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29977.dart b/pkg/front_end/testcases/regress/issue_29977.dart
index d8594ce..958074a 100644
--- a/pkg/front_end/testcases/regress/issue_29977.dart
+++ b/pkg/front_end/testcases/regress/issue_29977.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 'data:async';
 
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29977.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29977.dart.textual_outline.expect
index d4b5e9c..86b4d9e 100644
--- a/pkg/front_end/testcases/regress/issue_29977.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29977.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'data:async';
 
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29977.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_29977.dart.textual_outline_modelled.expect
index d4b5e9c..86b4d9e 100644
--- a/pkg/front_end/testcases/regress/issue_29977.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_29977.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'data:async';
 
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29977.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29977.dart.weak.expect
index b0dc750..4ce4154 100644
--- a/pkg/front_end/testcases/regress/issue_29977.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29977.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29977.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29977.dart.weak.modular.expect
index b0dc750..4ce4154 100644
--- a/pkg/front_end/testcases/regress/issue_29977.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29977.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29977.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29977.dart.weak.outline.expect
index 06b2df4..9cbb03e 100644
--- a/pkg/front_end/testcases/regress/issue_29977.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29977.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29977.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29977.dart.weak.transformed.expect
index b0dc750..4ce4154 100644
--- a/pkg/front_end/testcases/regress/issue_29977.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29977.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29978.dart b/pkg/front_end/testcases/regress/issue_29978.dart
index 5169226..997d9aa 100644
--- a/pkg/front_end/testcases/regress/issue_29978.dart
+++ b/pkg/front_end/testcases/regress/issue_29978.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
+
 foo(a, b) => null;
 
 main() {
diff --git a/pkg/front_end/testcases/regress/issue_29978.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29978.dart.textual_outline.expect
index 7df13fc..2a44271 100644
--- a/pkg/front_end/testcases/regress/issue_29978.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29978.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 foo(a, b) => null;
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29978.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_29978.dart.textual_outline_modelled.expect
index 7df13fc..2a44271 100644
--- a/pkg/front_end/testcases/regress/issue_29978.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_29978.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 foo(a, b) => null;
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29978.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29978.dart.weak.expect
index a166dcf..34a58b5 100644
--- a/pkg/front_end/testcases/regress/issue_29978.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29978.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,5 +11,5 @@
 static method foo(dynamic a, dynamic b) → dynamic
   return null;
 static method main() → dynamic {
-  self::foo(null, let final () →* Null f = () → Null {} in f);
+  self::foo(null, let final () → Null f = () → Null {} in f);
 }
diff --git a/pkg/front_end/testcases/regress/issue_29978.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29978.dart.weak.modular.expect
index a166dcf..34a58b5 100644
--- a/pkg/front_end/testcases/regress/issue_29978.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29978.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,5 +11,5 @@
 static method foo(dynamic a, dynamic b) → dynamic
   return null;
 static method main() → dynamic {
-  self::foo(null, let final () →* Null f = () → Null {} in f);
+  self::foo(null, let final () → Null f = () → Null {} in f);
 }
diff --git a/pkg/front_end/testcases/regress/issue_29978.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29978.dart.weak.outline.expect
index 21955b2..8884d25 100644
--- a/pkg/front_end/testcases/regress/issue_29978.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29978.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method foo(dynamic a, dynamic b) → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_29978.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29978.dart.weak.transformed.expect
index a166dcf..34a58b5 100644
--- a/pkg/front_end/testcases/regress/issue_29978.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29978.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,5 +11,5 @@
 static method foo(dynamic a, dynamic b) → dynamic
   return null;
 static method main() → dynamic {
-  self::foo(null, let final () →* Null f = () → Null {} in f);
+  self::foo(null, let final () → Null f = () → Null {} in f);
 }
diff --git a/pkg/front_end/testcases/regress/issue_29979.dart b/pkg/front_end/testcases/regress/issue_29979.dart
index 4034b94..c6bfd12 100644
--- a/pkg/front_end/testcases/regress/issue_29979.dart
+++ b/pkg/front_end/testcases/regress/issue_29979.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() {
   (f() {})();
 }
diff --git a/pkg/front_end/testcases/regress/issue_29979.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29979.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/regress/issue_29979.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29979.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29979.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_29979.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/regress/issue_29979.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_29979.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29979.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29979.dart.weak.expect
index 66cb15d..453aa64 100644
--- a/pkg/front_end/testcases/regress/issue_29979.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29979.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,5 +9,5 @@
 import self as self;
 
 static method main() → dynamic {
-  (let final () →* Null f = () → Null {} in f)(){() →* Null};
+  (let final () → Null f = () → Null {} in f)(){() → Null};
 }
diff --git a/pkg/front_end/testcases/regress/issue_29979.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29979.dart.weak.modular.expect
index 66cb15d..453aa64 100644
--- a/pkg/front_end/testcases/regress/issue_29979.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29979.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,5 +9,5 @@
 import self as self;
 
 static method main() → dynamic {
-  (let final () →* Null f = () → Null {} in f)(){() →* Null};
+  (let final () → Null f = () → Null {} in f)(){() → Null};
 }
diff --git a/pkg/front_end/testcases/regress/issue_29979.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29979.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/regress/issue_29979.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29979.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/regress/issue_29979.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29979.dart.weak.transformed.expect
index 66cb15d..453aa64 100644
--- a/pkg/front_end/testcases/regress/issue_29979.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29979.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,5 +9,5 @@
 import self as self;
 
 static method main() → dynamic {
-  (let final () →* Null f = () → Null {} in f)(){() →* Null};
+  (let final () → Null f = () → Null {} in f)(){() → Null};
 }
diff --git a/pkg/front_end/testcases/regress/issue_29980.dart b/pkg/front_end/testcases/regress/issue_29980.dart
index be250c4..184c87a 100644
--- a/pkg/front_end/testcases/regress/issue_29980.dart
+++ b/pkg/front_end/testcases/regress/issue_29980.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() {
   x.y z;
 }
diff --git a/pkg/front_end/testcases/regress/issue_29980.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29980.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/regress/issue_29980.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29980.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29980.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_29980.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/regress/issue_29980.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_29980.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29980.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29980.dart.weak.expect
index 1e683cf..4aded02 100644
--- a/pkg/front_end/testcases/regress/issue_29980.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29980.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29980.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29980.dart.weak.modular.expect
index 1e683cf..4aded02 100644
--- a/pkg/front_end/testcases/regress/issue_29980.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29980.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29980.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29980.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/regress/issue_29980.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29980.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/regress/issue_29980.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29980.dart.weak.transformed.expect
index 1e683cf..4aded02 100644
--- a/pkg/front_end/testcases/regress/issue_29980.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29980.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29981.dart b/pkg/front_end/testcases/regress/issue_29981.dart
index fe5cb48..354f8ce 100644
--- a/pkg/front_end/testcases/regress/issue_29981.dart
+++ b/pkg/front_end/testcases/regress/issue_29981.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<T> {
   C<String, String> field;
 }
diff --git a/pkg/front_end/testcases/regress/issue_29981.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29981.dart.textual_outline.expect
index 6cf0086..2dd5595 100644
--- a/pkg/front_end/testcases/regress/issue_29981.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29981.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C<T> {
   C<String, String> field;
 }
diff --git a/pkg/front_end/testcases/regress/issue_29981.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_29981.dart.textual_outline_modelled.expect
index 6cf0086..2dd5595 100644
--- a/pkg/front_end/testcases/regress/issue_29981.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_29981.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C<T> {
   C<String, String> field;
 }
diff --git a/pkg/front_end/testcases/regress/issue_29981.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29981.dart.weak.expect
index d56e571..99e313c 100644
--- a/pkg/front_end/testcases/regress/issue_29981.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29981.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,21 +9,11 @@
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
+class C<T extends core::Object? = dynamic> extends core::Object {
   field invalid-type field = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+  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() → dynamic {
   core::print(new self::C::•<dynamic>());
diff --git a/pkg/front_end/testcases/regress/issue_29981.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29981.dart.weak.modular.expect
index d56e571..99e313c 100644
--- a/pkg/front_end/testcases/regress/issue_29981.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29981.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,21 +9,11 @@
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
+class C<T extends core::Object? = dynamic> extends core::Object {
   field invalid-type field = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+  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() → dynamic {
   core::print(new self::C::•<dynamic>());
diff --git a/pkg/front_end/testcases/regress/issue_29981.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29981.dart.weak.outline.expect
index 18fd38b..ccbe055 100644
--- a/pkg/front_end/testcases/regress/issue_29981.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29981.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,20 +9,10 @@
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
+class C<T extends core::Object? = dynamic> extends core::Object {
   field invalid-type field;
-  synthetic constructor •() → self::C<self::C::T*>*
+  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() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_29981.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29981.dart.weak.transformed.expect
index d56e571..99e313c 100644
--- a/pkg/front_end/testcases/regress/issue_29981.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29981.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,21 +9,11 @@
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
+class C<T extends core::Object? = dynamic> extends core::Object {
   field invalid-type field = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+  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() → dynamic {
   core::print(new self::C::•<dynamic>());
diff --git a/pkg/front_end/testcases/regress/issue_29982.dart b/pkg/front_end/testcases/regress/issue_29982.dart
index 2047a2a..4108de0 100644
--- a/pkg/front_end/testcases/regress/issue_29982.dart
+++ b/pkg/front_end/testcases/regress/issue_29982.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 eh = {"éh": "éh"};
   print('${eh[éh']}');
diff --git a/pkg/front_end/testcases/regress/issue_29982.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29982.dart.weak.expect
index 382c715..b69f989 100644
--- a/pkg/front_end/testcases/regress/issue_29982.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29982.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -41,8 +41,8 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::Map<core::String*, core::String*>* eh = <core::String*, core::String*>{"\u0233h": "\u0233h"};
+  core::Map<core::String, core::String> eh = <core::String, core::String>{"\u0233h": "\u0233h"};
   core::print("${eh.{core::Map::[]}(invalid-expression "pkg/front_end/testcases/regress/issue_29982.dart:7:15: Error: Undefined name '\u0233h'.
   print('\${eh[\u0233h']}');
-              ^^"){(core::Object*) →* core::String*}}");
+              ^^"){(core::Object?) → core::String?}}");
 }
diff --git a/pkg/front_end/testcases/regress/issue_29982.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29982.dart.weak.modular.expect
index 382c715..b69f989 100644
--- a/pkg/front_end/testcases/regress/issue_29982.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29982.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -41,8 +41,8 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::Map<core::String*, core::String*>* eh = <core::String*, core::String*>{"\u0233h": "\u0233h"};
+  core::Map<core::String, core::String> eh = <core::String, core::String>{"\u0233h": "\u0233h"};
   core::print("${eh.{core::Map::[]}(invalid-expression "pkg/front_end/testcases/regress/issue_29982.dart:7:15: Error: Undefined name '\u0233h'.
   print('\${eh[\u0233h']}');
-              ^^"){(core::Object*) →* core::String*}}");
+              ^^"){(core::Object?) → core::String?}}");
 }
diff --git a/pkg/front_end/testcases/regress/issue_29982.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29982.dart.weak.outline.expect
index 2b7388c..c6e9342 100644
--- a/pkg/front_end/testcases/regress/issue_29982.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29982.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29982.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29982.dart.weak.transformed.expect
index 382c715..b69f989 100644
--- a/pkg/front_end/testcases/regress/issue_29982.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29982.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -41,8 +41,8 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::Map<core::String*, core::String*>* eh = <core::String*, core::String*>{"\u0233h": "\u0233h"};
+  core::Map<core::String, core::String> eh = <core::String, core::String>{"\u0233h": "\u0233h"};
   core::print("${eh.{core::Map::[]}(invalid-expression "pkg/front_end/testcases/regress/issue_29982.dart:7:15: Error: Undefined name '\u0233h'.
   print('\${eh[\u0233h']}');
-              ^^"){(core::Object*) →* core::String*}}");
+              ^^"){(core::Object?) → core::String?}}");
 }
diff --git a/pkg/front_end/testcases/regress/issue_29983.dart b/pkg/front_end/testcases/regress/issue_29983.dart
index 736b29b..a2ffd95 100644
--- a/pkg/front_end/testcases/regress/issue_29983.dart
+++ b/pkg/front_end/testcases/regress/issue_29983.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
+
 f() sync* {
   // Returning value from generator: forbidden.
   return missing;
diff --git a/pkg/front_end/testcases/regress/issue_29983.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29983.dart.textual_outline.expect
index 16f1982..352a7fd 100644
--- a/pkg/front_end/testcases/regress/issue_29983.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29983.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 f() sync* {}
 g() sync* => dummy;
 h() sync* {}
diff --git a/pkg/front_end/testcases/regress/issue_29983.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29983.dart.weak.expect
index 990d69c..a23c69e 100644
--- a/pkg/front_end/testcases/regress/issue_29983.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29983.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -31,6 +31,6 @@
 g() sync* => dummy;
              ^";
 static method h() → dynamic sync* {
-  (() → core::String* => "return")(){() →* core::String*};
+  (() → core::String => "return")(){() → core::String};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_29983.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29983.dart.weak.modular.expect
index 990d69c..a23c69e 100644
--- a/pkg/front_end/testcases/regress/issue_29983.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29983.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -31,6 +31,6 @@
 g() sync* => dummy;
              ^";
 static method h() → dynamic sync* {
-  (() → core::String* => "return")(){() →* core::String*};
+  (() → core::String => "return")(){() → core::String};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_29983.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29983.dart.weak.outline.expect
index 6f674f3..973fdf6 100644
--- a/pkg/front_end/testcases/regress/issue_29983.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29983.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method f() → dynamic sync* 
diff --git a/pkg/front_end/testcases/regress/issue_29983.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29983.dart.weak.transformed.expect
index 38371ce..692911f 100644
--- a/pkg/front_end/testcases/regress/issue_29983.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29983.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -22,10 +22,10 @@
 import "dart:core" as core;
 
 static method f() → dynamic /* originally sync* */ {
-  function :sync_op_gen() → (core::_SyncIterator<dynamic>*, dynamic, dynamic) →* core::bool* {
-    core::int* :await_jump_var = 0;
+  function :sync_op_gen() → (core::_SyncIterator<dynamic>?, dynamic, dynamic) → core::bool* {
+    core::int :await_jump_var = 0;
     dynamic :await_ctx_var;
-    function :sync_op(core::_SyncIterator<dynamic>* :iterator, dynamic :exception, dynamic :stack_trace) → core::bool* yielding {
+    function :sync_op(core::_SyncIterator<dynamic>? :iterator, dynamic :exception, dynamic :stack_trace) → core::bool* yielding {
       {
         invalid-expression "pkg/front_end/testcases/regress/issue_29983.dart:7:3: Error: 'sync*' and 'async*' can't return a value.
   return missing;
@@ -38,10 +38,10 @@
   return new core::_SyncIterable::•<dynamic>(:sync_op_gen);
 }
 static method g() → dynamic /* originally sync* */ {
-  function :sync_op_gen() → (core::_SyncIterator<dynamic>*, dynamic, dynamic) →* core::bool* {
-    core::int* :await_jump_var = 0;
+  function :sync_op_gen() → (core::_SyncIterator<dynamic>?, dynamic, dynamic) → core::bool* {
+    core::int :await_jump_var = 0;
     dynamic :await_ctx_var;
-    function :sync_op(core::_SyncIterator<dynamic>* :iterator, dynamic :exception, dynamic :stack_trace) → core::bool* yielding {
+    function :sync_op(core::_SyncIterator<dynamic>? :iterator, dynamic :exception, dynamic :stack_trace) → core::bool* yielding {
       invalid-expression "pkg/front_end/testcases/regress/issue_29983.dart:11:14: Error: 'sync*' and 'async*' can't return a value.
 g() sync* => dummy;
              ^";
@@ -52,12 +52,12 @@
   return new core::_SyncIterable::•<dynamic>(:sync_op_gen);
 }
 static method h() → dynamic /* originally sync* */ {
-  function :sync_op_gen() → (core::_SyncIterator<dynamic>*, dynamic, dynamic) →* core::bool* {
-    core::int* :await_jump_var = 0;
+  function :sync_op_gen() → (core::_SyncIterator<dynamic>?, dynamic, dynamic) → core::bool* {
+    core::int :await_jump_var = 0;
     dynamic :await_ctx_var;
-    function :sync_op(core::_SyncIterator<dynamic>* :iterator, dynamic :exception, dynamic :stack_trace) → core::bool* yielding {
+    function :sync_op(core::_SyncIterator<dynamic>? :iterator, dynamic :exception, dynamic :stack_trace) → core::bool* yielding {
       {
-        (() → core::String* => "return")(){() →* core::String*};
+        (() → core::String => "return")(){() → core::String};
       }
       return false;
     }
diff --git a/pkg/front_end/testcases/regress/issue_29984.dart b/pkg/front_end/testcases/regress/issue_29984.dart
index f0804ae..e55ab01 100644
--- a/pkg/front_end/testcases/regress/issue_29984.dart
+++ b/pkg/front_end/testcases/regress/issue_29984.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
+
 bad() {
   for (int i = i;; false) {}
 }
diff --git a/pkg/front_end/testcases/regress/issue_29984.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29984.dart.textual_outline.expect
index 2397af0..59cd59e 100644
--- a/pkg/front_end/testcases/regress/issue_29984.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29984.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 bad() {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29984.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_29984.dart.textual_outline_modelled.expect
index 2397af0..59cd59e 100644
--- a/pkg/front_end/testcases/regress/issue_29984.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_29984.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 bad() {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29984.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29984.dart.weak.expect
index 0c71c56..df667bd 100644
--- a/pkg/front_end/testcases/regress/issue_29984.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29984.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,7 +17,7 @@
 import "dart:core" as core;
 
 static method bad() → dynamic {
-  for (core::int* i = invalid-expression "pkg/front_end/testcases/regress/issue_29984.dart:6:12: Error: Can't declare 'i' because it was already used in this scope.
+  for (core::int i = invalid-expression "pkg/front_end/testcases/regress/issue_29984.dart:6:12: Error: Can't declare 'i' because it was already used in this scope.
   for (int i = i;; false) {}
            ^" in invalid-expression "pkg/front_end/testcases/regress/issue_29984.dart:6:16: Error: Undefined name 'i'.
   for (int i = i;; false) {}
diff --git a/pkg/front_end/testcases/regress/issue_29984.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29984.dart.weak.modular.expect
index 0c71c56..df667bd 100644
--- a/pkg/front_end/testcases/regress/issue_29984.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29984.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,7 +17,7 @@
 import "dart:core" as core;
 
 static method bad() → dynamic {
-  for (core::int* i = invalid-expression "pkg/front_end/testcases/regress/issue_29984.dart:6:12: Error: Can't declare 'i' because it was already used in this scope.
+  for (core::int i = invalid-expression "pkg/front_end/testcases/regress/issue_29984.dart:6:12: Error: Can't declare 'i' because it was already used in this scope.
   for (int i = i;; false) {}
            ^" in invalid-expression "pkg/front_end/testcases/regress/issue_29984.dart:6:16: Error: Undefined name 'i'.
   for (int i = i;; false) {}
diff --git a/pkg/front_end/testcases/regress/issue_29984.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29984.dart.weak.outline.expect
index 81debf2..9f56f49 100644
--- a/pkg/front_end/testcases/regress/issue_29984.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29984.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method bad() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_29984.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29984.dart.weak.transformed.expect
index 0c71c56..df667bd 100644
--- a/pkg/front_end/testcases/regress/issue_29984.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29984.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,7 +17,7 @@
 import "dart:core" as core;
 
 static method bad() → dynamic {
-  for (core::int* i = invalid-expression "pkg/front_end/testcases/regress/issue_29984.dart:6:12: Error: Can't declare 'i' because it was already used in this scope.
+  for (core::int i = invalid-expression "pkg/front_end/testcases/regress/issue_29984.dart:6:12: Error: Can't declare 'i' because it was already used in this scope.
   for (int i = i;; false) {}
            ^" in invalid-expression "pkg/front_end/testcases/regress/issue_29984.dart:6:16: Error: Undefined name 'i'.
   for (int i = i;; false) {}
diff --git a/pkg/front_end/testcases/regress/issue_29985.dart b/pkg/front_end/testcases/regress/issue_29985.dart
index e777de7..d0999ee 100644
--- a/pkg/front_end/testcases/regress/issue_29985.dart
+++ b/pkg/front_end/testcases/regress/issue_29985.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
+
 bad() {
   🔛
 }
diff --git a/pkg/front_end/testcases/regress/issue_29985.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29985.dart.weak.expect
index ca444a5..5ea90cf 100644
--- a/pkg/front_end/testcases/regress/issue_29985.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29985.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29985.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29985.dart.weak.modular.expect
index ca444a5..5ea90cf 100644
--- a/pkg/front_end/testcases/regress/issue_29985.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29985.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29985.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29985.dart.weak.outline.expect
index 69da87f..c1ca3fa 100644
--- a/pkg/front_end/testcases/regress/issue_29985.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29985.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29985.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29985.dart.weak.transformed.expect
index ca444a5..5ea90cf 100644
--- a/pkg/front_end/testcases/regress/issue_29985.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29985.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29986.dart b/pkg/front_end/testcases/regress/issue_29986.dart
index d7f123d..42fb594 100644
--- a/pkg/front_end/testcases/regress/issue_29986.dart
+++ b/pkg/front_end/testcases/regress/issue_29986.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() {
 }
 
diff --git a/pkg/front_end/testcases/regress/issue_29986.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29986.dart.textual_outline.expect
index 0533144..9278487 100644
--- a/pkg/front_end/testcases/regress/issue_29986.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29986.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
 C(this.name);
diff --git a/pkg/front_end/testcases/regress/issue_29986.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29986.dart.weak.expect
index f0b03d5..a4fd935 100644
--- a/pkg/front_end/testcases/regress/issue_29986.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29986.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29986.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29986.dart.weak.modular.expect
index f0b03d5..a4fd935 100644
--- a/pkg/front_end/testcases/regress/issue_29986.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29986.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29986.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29986.dart.weak.outline.expect
index 6556bc9..b8962fd 100644
--- a/pkg/front_end/testcases/regress/issue_29986.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29986.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29986.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29986.dart.weak.transformed.expect
index f0b03d5..a4fd935 100644
--- a/pkg/front_end/testcases/regress/issue_29986.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29986.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29987.dart b/pkg/front_end/testcases/regress/issue_29987.dart
index 46adde9..78c7779 100644
--- a/pkg/front_end/testcases/regress/issue_29987.dart
+++ b/pkg/front_end/testcases/regress/issue_29987.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 "dart_:core";
 
 main() {
diff --git a/pkg/front_end/testcases/regress/issue_29987.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_29987.dart.textual_outline.expect
index 3f9947c..b891f0b 100644
--- a/pkg/front_end/testcases/regress/issue_29987.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29987.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "dart_:core";
 
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29987.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_29987.dart.textual_outline_modelled.expect
index 3f9947c..b891f0b 100644
--- a/pkg/front_end/testcases/regress/issue_29987.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_29987.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "dart_:core";
 
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_29987.dart.weak.expect b/pkg/front_end/testcases/regress/issue_29987.dart.weak.expect
index bd49b16..ca4cbbb 100644
--- a/pkg/front_end/testcases/regress/issue_29987.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_29987.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29987.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_29987.dart.weak.modular.expect
index bd49b16..ca4cbbb 100644
--- a/pkg/front_end/testcases/regress/issue_29987.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_29987.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29987.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_29987.dart.weak.outline.expect
index f9a5de8..9d59b0d 100644
--- a/pkg/front_end/testcases/regress/issue_29987.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_29987.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_29987.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_29987.dart.weak.transformed.expect
index bd49b16..ca4cbbb 100644
--- a/pkg/front_end/testcases/regress/issue_29987.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29987.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_30834.dart b/pkg/front_end/testcases/regress/issue_30834.dart
index 3b38f5e..12a2a33 100644
--- a/pkg/front_end/testcases/regress/issue_30834.dart
+++ b/pkg/front_end/testcases/regress/issue_30834.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 A {
   set A(v) {}
 }
diff --git a/pkg/front_end/testcases/regress/issue_30834.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_30834.dart.textual_outline.expect
index e4eaeba..0f21945 100644
--- a/pkg/front_end/testcases/regress/issue_30834.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_30834.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   set A(v) {}
 }
diff --git a/pkg/front_end/testcases/regress/issue_30834.dart.weak.expect b/pkg/front_end/testcases/regress/issue_30834.dart.weak.expect
index 6f89ffe..e4def34 100644
--- a/pkg/front_end/testcases/regress/issue_30834.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_30834.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,22 +11,12 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   set A(dynamic v) → 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 main() → dynamic {
-  self::A* a = new self::A::•();
+  self::A a = new self::A::•();
   a.{self::A::A} = 5;
 }
diff --git a/pkg/front_end/testcases/regress/issue_30834.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_30834.dart.weak.modular.expect
index 6f89ffe..e4def34 100644
--- a/pkg/front_end/testcases/regress/issue_30834.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_30834.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,22 +11,12 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   set A(dynamic v) → 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 main() → dynamic {
-  self::A* a = new self::A::•();
+  self::A a = new self::A::•();
   a.{self::A::A} = 5;
 }
diff --git a/pkg/front_end/testcases/regress/issue_30834.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_30834.dart.weak.outline.expect
index 38def95..c4c554c 100644
--- a/pkg/front_end/testcases/regress/issue_30834.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_30834.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,20 +11,10 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
   set A(dynamic v) → 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 main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_30834.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_30834.dart.weak.transformed.expect
index 6f89ffe..e4def34 100644
--- a/pkg/front_end/testcases/regress/issue_30834.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_30834.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,22 +11,12 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   set A(dynamic v) → 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 main() → dynamic {
-  self::A* a = new self::A::•();
+  self::A a = new self::A::•();
   a.{self::A::A} = 5;
 }
diff --git a/pkg/front_end/testcases/regress/issue_30836.dart b/pkg/front_end/testcases/regress/issue_30836.dart
index 4c408d4..a674a5c 100644
--- a/pkg/front_end/testcases/regress/issue_30836.dart
+++ b/pkg/front_end/testcases/regress/issue_30836.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 {
   final int x;
   A() {}
diff --git a/pkg/front_end/testcases/regress/issue_30836.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_30836.dart.textual_outline.expect
index 98cfbdf..5a96f26 100644
--- a/pkg/front_end/testcases/regress/issue_30836.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_30836.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   final int x;
   A() {}
diff --git a/pkg/front_end/testcases/regress/issue_30836.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_30836.dart.textual_outline_modelled.expect
index 60ea563..32f0ddd 100644
--- a/pkg/front_end/testcases/regress/issue_30836.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_30836.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A() {}
   final int x;
diff --git a/pkg/front_end/testcases/regress/issue_30836.dart.weak.expect b/pkg/front_end/testcases/regress/issue_30836.dart.weak.expect
index 422b26c..34766f3 100644
--- a/pkg/front_end/testcases/regress/issue_30836.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_30836.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,17 +11,7 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  final field core::int* x = null;
-  constructor •() → self::A*
+  final field core::int x = null;
+  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
 }
diff --git a/pkg/front_end/testcases/regress/issue_30836.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_30836.dart.weak.modular.expect
index 422b26c..34766f3 100644
--- a/pkg/front_end/testcases/regress/issue_30836.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_30836.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,17 +11,7 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  final field core::int* x = null;
-  constructor •() → self::A*
+  final field core::int x = null;
+  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
 }
diff --git a/pkg/front_end/testcases/regress/issue_30836.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_30836.dart.weak.outline.expect
index c05ba76..ed2a8d7 100644
--- a/pkg/front_end/testcases/regress/issue_30836.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_30836.dart.weak.outline.expect
@@ -1,19 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  final field core::int* x;
-  constructor •() → self::A*
+  final 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
 }
diff --git a/pkg/front_end/testcases/regress/issue_30836.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_30836.dart.weak.transformed.expect
index 422b26c..34766f3 100644
--- a/pkg/front_end/testcases/regress/issue_30836.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_30836.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,17 +11,7 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  final field core::int* x = null;
-  constructor •() → self::A*
+  final field core::int x = null;
+  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
 }
diff --git a/pkg/front_end/testcases/regress/issue_30838.dart b/pkg/front_end/testcases/regress/issue_30838.dart
index aeb388f..1c52adb 100644
--- a/pkg/front_end/testcases/regress/issue_30838.dart
+++ b/pkg/front_end/testcases/regress/issue_30838.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
+
 typedef Foo<S> = S Function<T>(T x);
 int foo<T>(T x) => 3;
 Foo<int> bar() => foo;
@@ -10,7 +10,7 @@
 }
 
 class A {
-  Foo<int> f;
+  Foo<int> f = throw '';
   void test() {
     f<String>("hello");
   }
diff --git a/pkg/front_end/testcases/regress/issue_30838.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_30838.dart.textual_outline.expect
index 011ce8e..980ab88 100644
--- a/pkg/front_end/testcases/regress/issue_30838.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_30838.dart.textual_outline.expect
@@ -1,11 +1,10 @@
-// @dart = 2.9
 typedef Foo<S> = S Function<T>(T x);
 int foo<T>(T x) => 3;
 Foo<int> bar() => foo;
 void test1() {}
 
 class A {
-  Foo<int> f;
+  Foo<int> f = throw '';
   void test() {}
 }
 
diff --git a/pkg/front_end/testcases/regress/issue_30838.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_30838.dart.textual_outline_modelled.expect
index 6ee1927..496953b 100644
--- a/pkg/front_end/testcases/regress/issue_30838.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_30838.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
 Foo<int> bar() => foo;
 
 class A {
-  Foo<int> f;
+  Foo<int> f = throw '';
   void test() {}
 }
 
diff --git a/pkg/front_end/testcases/regress/issue_30838.dart.weak.expect b/pkg/front_end/testcases/regress/issue_30838.dart.weak.expect
index f1431a1..9b17684 100644
--- a/pkg/front_end/testcases/regress/issue_30838.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_30838.dart.weak.expect
@@ -1,33 +1,23 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef Foo<S extends core::Object* = dynamic> = <T extends core::Object* = dynamic>(T*) →* S*;
+typedef Foo<S extends core::Object? = dynamic> = <T extends core::Object? = dynamic>(T%) → S%;
 class A extends core::Object {
-  field <T extends core::Object* = dynamic>(T*) →* core::int* f = null;
-  synthetic constructor •() → self::A*
+  field <T extends core::Object? = dynamic>(T%) → core::int f = throw "";
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   method test() → void {
-    let final core::String* #t1 = "hello" in this.{self::A::f}{<T extends core::Object* = dynamic>(T*) →* core::int*}<core::String*>(#t1){(core::String*) →* core::int*};
+    let final core::String #t1 = "hello" in this.{self::A::f}{<T extends core::Object? = dynamic>(T%) → core::int}<core::String>(#t1){(core::String) → 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
 }
-static method foo<T extends core::Object* = dynamic>(self::foo::T* x) → core::int*
+static method foo<T extends core::Object? = dynamic>(self::foo::T% x) → core::int
   return 3;
-static method bar() → <T extends core::Object* = dynamic>(T*) →* core::int*
+static method bar() → <T extends core::Object? = dynamic>(T%) → core::int
   return #C1;
 static method test1() → void {
-  self::bar()<core::String*>("hello"){(core::String*) →* core::int*};
+  self::bar()<core::String>("hello"){(core::String) → core::int};
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/regress/issue_30838.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_30838.dart.weak.modular.expect
index f1431a1..9b17684 100644
--- a/pkg/front_end/testcases/regress/issue_30838.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_30838.dart.weak.modular.expect
@@ -1,33 +1,23 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef Foo<S extends core::Object* = dynamic> = <T extends core::Object* = dynamic>(T*) →* S*;
+typedef Foo<S extends core::Object? = dynamic> = <T extends core::Object? = dynamic>(T%) → S%;
 class A extends core::Object {
-  field <T extends core::Object* = dynamic>(T*) →* core::int* f = null;
-  synthetic constructor •() → self::A*
+  field <T extends core::Object? = dynamic>(T%) → core::int f = throw "";
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   method test() → void {
-    let final core::String* #t1 = "hello" in this.{self::A::f}{<T extends core::Object* = dynamic>(T*) →* core::int*}<core::String*>(#t1){(core::String*) →* core::int*};
+    let final core::String #t1 = "hello" in this.{self::A::f}{<T extends core::Object? = dynamic>(T%) → core::int}<core::String>(#t1){(core::String) → 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
 }
-static method foo<T extends core::Object* = dynamic>(self::foo::T* x) → core::int*
+static method foo<T extends core::Object? = dynamic>(self::foo::T% x) → core::int
   return 3;
-static method bar() → <T extends core::Object* = dynamic>(T*) →* core::int*
+static method bar() → <T extends core::Object? = dynamic>(T%) → core::int
   return #C1;
 static method test1() → void {
-  self::bar()<core::String*>("hello"){(core::String*) →* core::int*};
+  self::bar()<core::String>("hello"){(core::String) → core::int};
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/regress/issue_30838.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_30838.dart.weak.outline.expect
index 8c35b53..e29e598 100644
--- a/pkg/front_end/testcases/regress/issue_30838.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_30838.dart.weak.outline.expect
@@ -1,28 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef Foo<S extends core::Object* = dynamic> = <T extends core::Object* = dynamic>(T*) →* S*;
+typedef Foo<S extends core::Object? = dynamic> = <T extends core::Object? = dynamic>(T%) → S%;
 class A extends core::Object {
-  field <T extends core::Object* = dynamic>(T*) →* core::int* f;
-  synthetic constructor •() → self::A*
+  field <T extends core::Object? = dynamic>(T%) → core::int f;
+  synthetic constructor •() → self::A
     ;
   method test() → 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 foo<T extends core::Object* = dynamic>(self::foo::T* x) → core::int*
+static method foo<T extends core::Object? = dynamic>(self::foo::T% x) → core::int
   ;
-static method bar() → <T extends core::Object* = dynamic>(T*) →* core::int*
+static method bar() → <T extends core::Object? = dynamic>(T%) → core::int
   ;
 static method test1() → void
   ;
diff --git a/pkg/front_end/testcases/regress/issue_30838.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_30838.dart.weak.transformed.expect
index d1bd2c9..06e5a1d 100644
--- a/pkg/front_end/testcases/regress/issue_30838.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_30838.dart.weak.transformed.expect
@@ -1,33 +1,23 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef Foo<S extends core::Object* = dynamic> = <T extends core::Object* = dynamic>(T*) →* S*;
+typedef Foo<S extends core::Object? = dynamic> = <T extends core::Object? = dynamic>(T%) → S%;
 class A extends core::Object {
-  field <T extends core::Object* = dynamic>(T*) →* core::int* f = null;
-  synthetic constructor •() → self::A*
+  field <T extends core::Object? = dynamic>(T%) → core::int f = throw "";
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   method test() → void {
-    let final core::String* #t1 = "hello" in this.{self::A::f}{<T extends core::Object* = dynamic>(T*) →* core::int*}<core::String*>(#t1){(core::String*) →* core::int*};
+    let final core::String #t1 = "hello" in this.{self::A::f}{<T extends core::Object? = dynamic>(T%) → core::int}<core::String>(#t1){(core::String) → 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
 }
-static method foo<T extends core::Object* = dynamic>(self::foo::T* x) → core::int*
+static method foo<T extends core::Object? = dynamic>(self::foo::T% x) → core::int
   return 3;
-static method bar() → <T extends core::Object* = dynamic>(T*) →* core::int*
+static method bar() → <T extends core::Object? = dynamic>(T%) → core::int
   return #C1;
 static method test1() → void {
-  self::bar()<core::String*>("hello"){(core::String*) →* core::int*};
+  self::bar()<core::String>("hello"){(core::String) → core::int};
 }
 static method main() → dynamic {}
 
@@ -37,4 +27,4 @@
 
 Extra constant evaluation status:
 Evaluated: VariableGet @ org-dartlang-testcase:///issue_30838.dart:15:15 -> StringConstant("hello")
-Extra constant evaluation: evaluated: 7, effectively constant: 1
+Extra constant evaluation: evaluated: 8, effectively constant: 1
diff --git a/pkg/front_end/testcases/regress/issue_30981.dart b/pkg/front_end/testcases/regress/issue_30981.dart
index eacdc1e..09e7fd8 100644
--- a/pkg/front_end/testcases/regress/issue_30981.dart
+++ b/pkg/front_end/testcases/regress/issue_30981.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 A {
   get A {
     print("Actually, I'm a getter, not a constructor.");
diff --git a/pkg/front_end/testcases/regress/issue_30981.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_30981.dart.textual_outline.expect
index 3a6d1c8..4e0b986 100644
--- a/pkg/front_end/testcases/regress/issue_30981.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_30981.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   get A {}
 }
diff --git a/pkg/front_end/testcases/regress/issue_30981.dart.weak.expect b/pkg/front_end/testcases/regress/issue_30981.dart.weak.expect
index c413ee9..867cea6 100644
--- a/pkg/front_end/testcases/regress/issue_30981.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_30981.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,22 +11,12 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   get A() → dynamic {
     core::print("Actually, I'm a getter, not a constructor.");
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   new self::A::•();
diff --git a/pkg/front_end/testcases/regress/issue_30981.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_30981.dart.weak.modular.expect
index c413ee9..867cea6 100644
--- a/pkg/front_end/testcases/regress/issue_30981.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_30981.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,22 +11,12 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   get A() → dynamic {
     core::print("Actually, I'm a getter, not a constructor.");
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   new self::A::•();
diff --git a/pkg/front_end/testcases/regress/issue_30981.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_30981.dart.weak.outline.expect
index d2c3725..d57a3eb 100644
--- a/pkg/front_end/testcases/regress/issue_30981.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_30981.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,20 +11,10 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
   get 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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_30981.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_30981.dart.weak.transformed.expect
index c413ee9..867cea6 100644
--- a/pkg/front_end/testcases/regress/issue_30981.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_30981.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,22 +11,12 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   get A() → dynamic {
     core::print("Actually, I'm a getter, not a constructor.");
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   new self::A::•();
diff --git a/pkg/front_end/testcases/regress/issue_30994.dart b/pkg/front_end/testcases/regress/issue_30994.dart
index 6cfe28e..4f355c7 100644
--- a/pkg/front_end/testcases/regress/issue_30994.dart
+++ b/pkg/front_end/testcases/regress/issue_30994.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 lib;
 part '$foo';
 part '$foo/bar';
diff --git a/pkg/front_end/testcases/regress/issue_30994.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_30994.dart.textual_outline.expect
index 7b888eb..d76d046 100644
--- a/pkg/front_end/testcases/regress/issue_30994.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_30994.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library lib;
 part '$foo';
 part '$foo/bar';
diff --git a/pkg/front_end/testcases/regress/issue_30994.dart.weak.expect b/pkg/front_end/testcases/regress/issue_30994.dart.weak.expect
index 23676b0..5e9f6e6 100644
--- a/pkg/front_end/testcases/regress/issue_30994.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_30994.dart.weak.expect
@@ -1,4 +1,4 @@
-library lib;
+library lib /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -32,13 +32,13 @@
 //
 import self as self;
 
-part org-dartlang-malformed-uri:bad247;
-part org-dartlang-malformed-uri:bad260;
-part org-dartlang-malformed-uri:bad277;
-part org-dartlang-malformed-uri:bad294;
-part org-dartlang-malformed-uri:bad310;
-part org-dartlang-malformed-uri:bad331;
-part org-dartlang-malformed-uri:bad360;
+part org-dartlang-malformed-uri:bad235;
+part org-dartlang-malformed-uri:bad248;
+part org-dartlang-malformed-uri:bad265;
+part org-dartlang-malformed-uri:bad282;
+part org-dartlang-malformed-uri:bad298;
+part org-dartlang-malformed-uri:bad319;
+part org-dartlang-malformed-uri:bad348;
 static method main() → dynamic {}
 
 library /*isNonNullableByDefault*/;
diff --git a/pkg/front_end/testcases/regress/issue_30994.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_30994.dart.weak.modular.expect
index 23676b0..5e9f6e6 100644
--- a/pkg/front_end/testcases/regress/issue_30994.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_30994.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library lib;
+library lib /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -32,13 +32,13 @@
 //
 import self as self;
 
-part org-dartlang-malformed-uri:bad247;
-part org-dartlang-malformed-uri:bad260;
-part org-dartlang-malformed-uri:bad277;
-part org-dartlang-malformed-uri:bad294;
-part org-dartlang-malformed-uri:bad310;
-part org-dartlang-malformed-uri:bad331;
-part org-dartlang-malformed-uri:bad360;
+part org-dartlang-malformed-uri:bad235;
+part org-dartlang-malformed-uri:bad248;
+part org-dartlang-malformed-uri:bad265;
+part org-dartlang-malformed-uri:bad282;
+part org-dartlang-malformed-uri:bad298;
+part org-dartlang-malformed-uri:bad319;
+part org-dartlang-malformed-uri:bad348;
 static method main() → dynamic {}
 
 library /*isNonNullableByDefault*/;
diff --git a/pkg/front_end/testcases/regress/issue_30994.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_30994.dart.weak.outline.expect
index cd7a4c9..f9f9c54 100644
--- a/pkg/front_end/testcases/regress/issue_30994.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_30994.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library lib;
+library lib /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -32,13 +32,13 @@
 //
 import self as self;
 
-part org-dartlang-malformed-uri:bad247;
-part org-dartlang-malformed-uri:bad260;
-part org-dartlang-malformed-uri:bad277;
-part org-dartlang-malformed-uri:bad294;
-part org-dartlang-malformed-uri:bad310;
-part org-dartlang-malformed-uri:bad331;
-part org-dartlang-malformed-uri:bad360;
+part org-dartlang-malformed-uri:bad235;
+part org-dartlang-malformed-uri:bad248;
+part org-dartlang-malformed-uri:bad265;
+part org-dartlang-malformed-uri:bad282;
+part org-dartlang-malformed-uri:bad298;
+part org-dartlang-malformed-uri:bad319;
+part org-dartlang-malformed-uri:bad348;
 static method main() → dynamic
   ;
 
diff --git a/pkg/front_end/testcases/regress/issue_30994.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_30994.dart.weak.transformed.expect
index 23676b0..5e9f6e6 100644
--- a/pkg/front_end/testcases/regress/issue_30994.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_30994.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library lib;
+library lib /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -32,13 +32,13 @@
 //
 import self as self;
 
-part org-dartlang-malformed-uri:bad247;
-part org-dartlang-malformed-uri:bad260;
-part org-dartlang-malformed-uri:bad277;
-part org-dartlang-malformed-uri:bad294;
-part org-dartlang-malformed-uri:bad310;
-part org-dartlang-malformed-uri:bad331;
-part org-dartlang-malformed-uri:bad360;
+part org-dartlang-malformed-uri:bad235;
+part org-dartlang-malformed-uri:bad248;
+part org-dartlang-malformed-uri:bad265;
+part org-dartlang-malformed-uri:bad282;
+part org-dartlang-malformed-uri:bad298;
+part org-dartlang-malformed-uri:bad319;
+part org-dartlang-malformed-uri:bad348;
 static method main() → dynamic {}
 
 library /*isNonNullableByDefault*/;
diff --git a/pkg/front_end/testcases/regress/issue_31155.dart b/pkg/front_end/testcases/regress/issue_31155.dart
index fd6b43a..5e9082b 100644
--- a/pkg/front_end/testcases/regress/issue_31155.dart
+++ b/pkg/front_end/testcases/regress/issue_31155.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 {}
 
 class B {
diff --git a/pkg/front_end/testcases/regress/issue_31155.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31155.dart.textual_outline.expect
index 89f0128..a4da467 100644
--- a/pkg/front_end/testcases/regress/issue_31155.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31155.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {}
 class B {}
 class C {
diff --git a/pkg/front_end/testcases/regress/issue_31155.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31155.dart.weak.expect
index 2f83d69..2a97a23 100644
--- a/pkg/front_end/testcases/regress/issue_31155.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31155.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,49 +11,19 @@
 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
 }
 class C extends core::Object {
-  field core::Map<self::A*, self::B*>* f = <self::A*, self::B*>{};
-  synthetic constructor •() → self::C*
+  field core::Map<self::A, self::B> f = <self::A, self::B>{};
+  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
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/regress/issue_31155.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31155.dart.weak.modular.expect
index 2f83d69..2a97a23 100644
--- a/pkg/front_end/testcases/regress/issue_31155.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31155.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,49 +11,19 @@
 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
 }
 class C extends core::Object {
-  field core::Map<self::A*, self::B*>* f = <self::A*, self::B*>{};
-  synthetic constructor •() → self::C*
+  field core::Map<self::A, self::B> f = <self::A, self::B>{};
+  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
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/regress/issue_31155.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31155.dart.weak.outline.expect
index 2a3e5ef..c529779 100644
--- a/pkg/front_end/testcases/regress/issue_31155.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31155.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,47 +11,17 @@
 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
 }
 class C extends core::Object {
-  field core::Map<self::A*, self::B*>* f;
-  synthetic constructor •() → self::C*
+  field core::Map<self::A, self::B> f;
+  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
 }
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/regress/issue_31155.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31155.dart.weak.transformed.expect
index 2f83d69..2a97a23 100644
--- a/pkg/front_end/testcases/regress/issue_31155.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31155.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,49 +11,19 @@
 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
 }
 class C extends core::Object {
-  field core::Map<self::A*, self::B*>* f = <self::A*, self::B*>{};
-  synthetic constructor •() → self::C*
+  field core::Map<self::A, self::B> f = <self::A, self::B>{};
+  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
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/regress/issue_31157.dart b/pkg/front_end/testcases/regress/issue_31157.dart
index 3ba832e..f45fa8e 100644
--- a/pkg/front_end/testcases/regress/issue_31157.dart
+++ b/pkg/front_end/testcases/regress/issue_31157.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
+
 bad() {
   return null?.(1);
 }
diff --git a/pkg/front_end/testcases/regress/issue_31157.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31157.dart.textual_outline.expect
index 2397af0..59cd59e 100644
--- a/pkg/front_end/testcases/regress/issue_31157.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31157.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 bad() {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31157.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31157.dart.textual_outline_modelled.expect
index 2397af0..59cd59e 100644
--- a/pkg/front_end/testcases/regress/issue_31157.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_31157.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 bad() {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31157.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31157.dart.weak.expect
index f999813..0d85ca7 100644
--- a/pkg/front_end/testcases/regress/issue_31157.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31157.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_31157.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31157.dart.weak.modular.expect
index f999813..0d85ca7 100644
--- a/pkg/front_end/testcases/regress/issue_31157.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31157.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_31157.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31157.dart.weak.outline.expect
index 81debf2..9f56f49 100644
--- a/pkg/front_end/testcases/regress/issue_31157.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31157.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method bad() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_31157.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31157.dart.weak.transformed.expect
index f999813..0d85ca7 100644
--- a/pkg/front_end/testcases/regress/issue_31157.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31157.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_31171.dart b/pkg/front_end/testcases/regress/issue_31171.dart
index e57f24d..c7ffc48 100644
--- a/pkg/front_end/testcases/regress/issue_31171.dart
+++ b/pkg/front_end/testcases/regress/issue_31171.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
+
 main() {}
 
 typedef T = 
diff --git a/pkg/front_end/testcases/regress/issue_31171.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31171.dart.textual_outline.expect
index fd4484b..fb9c573 100644
--- a/pkg/front_end/testcases/regress/issue_31171.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31171.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 main() {}
 typedef T = ;
 typedef F = Map<String, dynamic> Function();
diff --git a/pkg/front_end/testcases/regress/issue_31171.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31171.dart.weak.expect
index 7b520a3..6fe03c2 100644
--- a/pkg/front_end/testcases/regress/issue_31171.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31171.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,5 +18,5 @@
 import "dart:core" as core;
 
 typedef T = invalid-type;
-typedef F = () →* core::Map<core::String*, dynamic>*;
+typedef F = () → core::Map<core::String, dynamic>;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31171.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31171.dart.weak.modular.expect
index 7b520a3..6fe03c2 100644
--- a/pkg/front_end/testcases/regress/issue_31171.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31171.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,5 +18,5 @@
 import "dart:core" as core;
 
 typedef T = invalid-type;
-typedef F = () →* core::Map<core::String*, dynamic>*;
+typedef F = () → core::Map<core::String, dynamic>;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31171.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31171.dart.weak.outline.expect
index 1b5d642..91ef7c2 100644
--- a/pkg/front_end/testcases/regress/issue_31171.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31171.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,6 +18,6 @@
 import "dart:core" as core;
 
 typedef T = invalid-type;
-typedef F = () →* core::Map<core::String*, dynamic>*;
+typedef F = () → core::Map<core::String, dynamic>;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_31171.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31171.dart.weak.transformed.expect
index 7b520a3..6fe03c2 100644
--- a/pkg/front_end/testcases/regress/issue_31171.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31171.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,5 +18,5 @@
 import "dart:core" as core;
 
 typedef T = invalid-type;
-typedef F = () →* core::Map<core::String*, dynamic>*;
+typedef F = () → core::Map<core::String, dynamic>;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31180.dart b/pkg/front_end/testcases/regress/issue_31180.dart
index 0d88261..a19affa 100644
--- a/pkg/front_end/testcases/regress/issue_31180.dart
+++ b/pkg/front_end/testcases/regress/issue_31180.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
+
 bad() {
   return null?[1];
 }
diff --git a/pkg/front_end/testcases/regress/issue_31180.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31180.dart.weak.expect
index 821c285..c9dfe0e 100644
--- a/pkg/front_end/testcases/regress/issue_31180.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31180.dart.weak.expect
@@ -2,11 +2,11 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_31180.dart:6:15: Error: Null safety features are disabled for this library.
+// pkg/front_end/testcases/regress/issue_31180.dart:8:15: Error: Null safety features are disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.12 or higher.
 //   return null?[1];
 //               ^
-// pkg/front_end/testcases/regress/issue_31180.dart:4:1: Context: This is the annotation that opts out this library from null safety features.
+// pkg/front_end/testcases/regress/issue_31180.dart:5:1: Context: This is the annotation that opts out this library from null safety features.
 // // @dart=2.9
 // ^^^^^^^^^^^^
 //
diff --git a/pkg/front_end/testcases/regress/issue_31180.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31180.dart.weak.modular.expect
index 821c285..c9dfe0e 100644
--- a/pkg/front_end/testcases/regress/issue_31180.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31180.dart.weak.modular.expect
@@ -2,11 +2,11 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_31180.dart:6:15: Error: Null safety features are disabled for this library.
+// pkg/front_end/testcases/regress/issue_31180.dart:8:15: Error: Null safety features are disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.12 or higher.
 //   return null?[1];
 //               ^
-// pkg/front_end/testcases/regress/issue_31180.dart:4:1: Context: This is the annotation that opts out this library from null safety features.
+// pkg/front_end/testcases/regress/issue_31180.dart:5:1: Context: This is the annotation that opts out this library from null safety features.
 // // @dart=2.9
 // ^^^^^^^^^^^^
 //
diff --git a/pkg/front_end/testcases/regress/issue_31180_2.dart b/pkg/front_end/testcases/regress/issue_31180_2.dart
new file mode 100644
index 0000000..7109223
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_31180_2.dart
@@ -0,0 +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.
+
+bad() {
+  return null?[1];
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31180_2.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31180_2.dart.textual_outline.expect
new file mode 100644
index 0000000..59cd59e
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_31180_2.dart.textual_outline.expect
@@ -0,0 +1,2 @@
+bad() {}
+main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31180_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31180_2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..59cd59e
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_31180_2.dart.textual_outline_modelled.expect
@@ -0,0 +1,2 @@
+bad() {}
+main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31180_2.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31180_2.dart.weak.expect
new file mode 100644
index 0000000..85b466a
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_31180_2.dart.weak.expect
@@ -0,0 +1,7 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+
+static method bad() → dynamic {
+  return let final has-declared-initializer dynamic #t1 = null in #t1 == null ?{dynamic} null : #t1{dynamic}.[](1);
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31180_2.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31180_2.dart.weak.modular.expect
new file mode 100644
index 0000000..85b466a
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_31180_2.dart.weak.modular.expect
@@ -0,0 +1,7 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+
+static method bad() → dynamic {
+  return let final has-declared-initializer dynamic #t1 = null in #t1 == null ?{dynamic} null : #t1{dynamic}.[](1);
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31180_2.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31180_2.dart.weak.outline.expect
new file mode 100644
index 0000000..9f56f49
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_31180_2.dart.weak.outline.expect
@@ -0,0 +1,7 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+
+static method bad() → dynamic
+  ;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/regress/issue_31181.dart b/pkg/front_end/testcases/regress/issue_31181.dart
index 611e587..0cb1658 100644
--- a/pkg/front_end/testcases/regress/issue_31181.dart
+++ b/pkg/front_end/testcases/regress/issue_31181.dart
@@ -1,9 +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
+
 typedef Foo<T> = T Function<T>(T a);
 
-Foo x;
+Foo x = throw '';
 
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31181.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31181.dart.textual_outline.expect
index 4d5a8eb..27cdd6e 100644
--- a/pkg/front_end/testcases/regress/issue_31181.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31181.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 typedef Foo<T> = T Function<T>(T a);
-Foo x;
+Foo x = throw '';
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31181.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31181.dart.textual_outline_modelled.expect
index eaba308..9c2db1c 100644
--- a/pkg/front_end/testcases/regress/issue_31181.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_31181.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
-Foo x;
+Foo x = throw '';
 main() {}
 typedef Foo<T> = T Function<T>(T a);
diff --git a/pkg/front_end/testcases/regress/issue_31181.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31181.dart.weak.expect
index 20bc5b5..80017df 100644
--- a/pkg/front_end/testcases/regress/issue_31181.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31181.dart.weak.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef Foo<unrelated T extends core::Object* = dynamic> = <T extends core::Object* = dynamic>(T*) →* T*;
-static field <T extends core::Object* = dynamic>(T*) →* T* x;
+typedef Foo<unrelated T extends core::Object? = dynamic> = <T extends core::Object? = dynamic>(T%) → T%;
+static field <T extends core::Object? = dynamic>(T%) → T% x = throw "";
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31181.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31181.dart.weak.modular.expect
index 20bc5b5..80017df 100644
--- a/pkg/front_end/testcases/regress/issue_31181.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31181.dart.weak.modular.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef Foo<unrelated T extends core::Object* = dynamic> = <T extends core::Object* = dynamic>(T*) →* T*;
-static field <T extends core::Object* = dynamic>(T*) →* T* x;
+typedef Foo<unrelated T extends core::Object? = dynamic> = <T extends core::Object? = dynamic>(T%) → T%;
+static field <T extends core::Object? = dynamic>(T%) → T% x = throw "";
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31181.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31181.dart.weak.outline.expect
index 2181f89..f17c649 100644
--- a/pkg/front_end/testcases/regress/issue_31181.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31181.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef Foo<unrelated T extends core::Object* = dynamic> = <T extends core::Object* = dynamic>(T*) →* T*;
-static field <T extends core::Object* = dynamic>(T*) →* T* x;
+typedef Foo<unrelated T extends core::Object? = dynamic> = <T extends core::Object? = dynamic>(T%) → T%;
+static field <T extends core::Object? = dynamic>(T%) → T% x;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_31181.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31181.dart.weak.transformed.expect
index 20bc5b5..80017df 100644
--- a/pkg/front_end/testcases/regress/issue_31181.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31181.dart.weak.transformed.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef Foo<unrelated T extends core::Object* = dynamic> = <T extends core::Object* = dynamic>(T*) →* T*;
-static field <T extends core::Object* = dynamic>(T*) →* T* x;
+typedef Foo<unrelated T extends core::Object? = dynamic> = <T extends core::Object? = dynamic>(T%) → T%;
+static field <T extends core::Object? = dynamic>(T%) → T% x = throw "";
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31183.dart b/pkg/front_end/testcases/regress/issue_31183.dart
index 177c12e..4416b71 100644
--- a/pkg/front_end/testcases/regress/issue_31183.dart
+++ b/pkg/front_end/testcases/regress/issue_31183.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 {
   operator unary- => 0;
 }
diff --git a/pkg/front_end/testcases/regress/issue_31183.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31183.dart.textual_outline.expect
index ab453b5..36ac0b8 100644
--- a/pkg/front_end/testcases/regress/issue_31183.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31183.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   operator unary- ()=> 0;
 }
diff --git a/pkg/front_end/testcases/regress/issue_31183.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31183.dart.weak.expect
index 3c62f2d..8fa5525 100644
--- a/pkg/front_end/testcases/regress/issue_31183.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31183.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,21 +15,11 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   operator unary-() → dynamic
     return 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
 }
 static method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/regress/issue_31183.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31183.dart.weak.modular.expect
index 3c62f2d..8fa5525 100644
--- a/pkg/front_end/testcases/regress/issue_31183.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31183.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,21 +15,11 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   operator unary-() → dynamic
     return 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
 }
 static method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/regress/issue_31183.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31183.dart.weak.outline.expect
index ab4dc0e..1b72925 100644
--- a/pkg/front_end/testcases/regress/issue_31183.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31183.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,20 +15,10 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
   operator unary-() → 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/regress/issue_31183.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31183.dart.weak.transformed.expect
index 3c62f2d..8fa5525 100644
--- a/pkg/front_end/testcases/regress/issue_31183.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31183.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,21 +15,11 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   operator unary-() → dynamic
     return 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
 }
 static method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/regress/issue_31184.dart b/pkg/front_end/testcases/regress/issue_31184.dart
index 73fd726..83f1665 100644
--- a/pkg/front_end/testcases/regress/issue_31184.dart
+++ b/pkg/front_end/testcases/regress/issue_31184.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
+
 bad() {
   for (int i = 0, i > 10; i++) {}
 }
diff --git a/pkg/front_end/testcases/regress/issue_31184.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31184.dart.textual_outline.expect
index 2397af0..59cd59e 100644
--- a/pkg/front_end/testcases/regress/issue_31184.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31184.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 bad() {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31184.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31184.dart.textual_outline_modelled.expect
index 2397af0..59cd59e 100644
--- a/pkg/front_end/testcases/regress/issue_31184.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_31184.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 bad() {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31184.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31184.dart.weak.expect
index 60fc8d2..c799515 100644
--- a/pkg/front_end/testcases/regress/issue_31184.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31184.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -22,11 +22,11 @@
 import "dart:core" as core;
 
 static method bad() → dynamic {
-  for (core::int* i = 0, core::int* i = invalid-expression "pkg/front_end/testcases/regress/issue_31184.dart:6:19: Error: 'i' is already declared in this scope.
+  for (core::int i = 0, core::int i = invalid-expression "pkg/front_end/testcases/regress/issue_31184.dart:6:19: Error: 'i' is already declared in this scope.
   for (int i = 0, i > 10; i++) {}
                   ^"; invalid-expression "pkg/front_end/testcases/regress/issue_31184.dart:6:21: Error: This couldn't be parsed.
   for (int i = 0, i > 10; i++) {}
-                    ^"{<invalid>}.>(10); i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+                    ^"{<invalid>}.>(10); i = i.{core::num::+}(1){(core::num) → core::int}) {
   }
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31184.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31184.dart.weak.modular.expect
index 60fc8d2..c799515 100644
--- a/pkg/front_end/testcases/regress/issue_31184.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31184.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -22,11 +22,11 @@
 import "dart:core" as core;
 
 static method bad() → dynamic {
-  for (core::int* i = 0, core::int* i = invalid-expression "pkg/front_end/testcases/regress/issue_31184.dart:6:19: Error: 'i' is already declared in this scope.
+  for (core::int i = 0, core::int i = invalid-expression "pkg/front_end/testcases/regress/issue_31184.dart:6:19: Error: 'i' is already declared in this scope.
   for (int i = 0, i > 10; i++) {}
                   ^"; invalid-expression "pkg/front_end/testcases/regress/issue_31184.dart:6:21: Error: This couldn't be parsed.
   for (int i = 0, i > 10; i++) {}
-                    ^"{<invalid>}.>(10); i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+                    ^"{<invalid>}.>(10); i = i.{core::num::+}(1){(core::num) → core::int}) {
   }
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31184.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31184.dart.weak.outline.expect
index 81debf2..9f56f49 100644
--- a/pkg/front_end/testcases/regress/issue_31184.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31184.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method bad() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_31184.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31184.dart.weak.transformed.expect
index 60fc8d2..c799515 100644
--- a/pkg/front_end/testcases/regress/issue_31184.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31184.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -22,11 +22,11 @@
 import "dart:core" as core;
 
 static method bad() → dynamic {
-  for (core::int* i = 0, core::int* i = invalid-expression "pkg/front_end/testcases/regress/issue_31184.dart:6:19: Error: 'i' is already declared in this scope.
+  for (core::int i = 0, core::int i = invalid-expression "pkg/front_end/testcases/regress/issue_31184.dart:6:19: Error: 'i' is already declared in this scope.
   for (int i = 0, i > 10; i++) {}
                   ^"; invalid-expression "pkg/front_end/testcases/regress/issue_31184.dart:6:21: Error: This couldn't be parsed.
   for (int i = 0, i > 10; i++) {}
-                    ^"{<invalid>}.>(10); i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+                    ^"{<invalid>}.>(10); i = i.{core::num::+}(1){(core::num) → core::int}) {
   }
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31185.dart b/pkg/front_end/testcases/regress/issue_31185.dart
index e68d121..568d2af 100644
--- a/pkg/front_end/testcases/regress/issue_31185.dart
+++ b/pkg/front_end/testcases/regress/issue_31185.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
+
 int i = 5;
 
 int test1() {
diff --git a/pkg/front_end/testcases/regress/issue_31185.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31185.dart.textual_outline.expect
index 8127b46..4a2b0ae 100644
--- a/pkg/front_end/testcases/regress/issue_31185.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31185.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 int i = 5;
 int test1() {}
 int test2() {}
diff --git a/pkg/front_end/testcases/regress/issue_31185.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31185.dart.textual_outline_modelled.expect
index 8127b46..4a2b0ae 100644
--- a/pkg/front_end/testcases/regress/issue_31185.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_31185.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 int i = 5;
 int test1() {}
 int test2() {}
diff --git a/pkg/front_end/testcases/regress/issue_31185.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31185.dart.weak.expect
index ec82b98..3de61ff 100644
--- a/pkg/front_end/testcases/regress/issue_31185.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31185.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,12 +17,12 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::int* i = 5;
-static method test1() → core::int* {
-  return let final core::int* #t1 = self::i in let final core::int* #t2 = self::i = #t1.{core::num::+}(1){(core::num*) →* core::int*} in #t1;
+static field core::int i = 5;
+static method test1() → core::int {
+  return let final core::int #t1 = self::i in let final core::int #t2 = self::i = #t1.{core::num::+}(1){(core::num) → core::int} in #t1;
   self::i;
 }
-static method test2() → core::int* {
+static method test2() → core::int {
   return invalid-expression "pkg/front_end/testcases/regress/issue_31185.dart:12:12: Error: Can't assign to a parenthesized expression.
   return (i) ++ (i);
            ^";
diff --git a/pkg/front_end/testcases/regress/issue_31185.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31185.dart.weak.modular.expect
index ec82b98..3de61ff 100644
--- a/pkg/front_end/testcases/regress/issue_31185.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31185.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,12 +17,12 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::int* i = 5;
-static method test1() → core::int* {
-  return let final core::int* #t1 = self::i in let final core::int* #t2 = self::i = #t1.{core::num::+}(1){(core::num*) →* core::int*} in #t1;
+static field core::int i = 5;
+static method test1() → core::int {
+  return let final core::int #t1 = self::i in let final core::int #t2 = self::i = #t1.{core::num::+}(1){(core::num) → core::int} in #t1;
   self::i;
 }
-static method test2() → core::int* {
+static method test2() → core::int {
   return invalid-expression "pkg/front_end/testcases/regress/issue_31185.dart:12:12: Error: Can't assign to a parenthesized expression.
   return (i) ++ (i);
            ^";
diff --git a/pkg/front_end/testcases/regress/issue_31185.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31185.dart.weak.outline.expect
index 2dca69f..4bbfba6 100644
--- a/pkg/front_end/testcases/regress/issue_31185.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31185.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static field core::int* i;
-static method test1() → core::int*
+static field core::int i;
+static method test1() → core::int
   ;
-static method test2() → core::int*
+static method test2() → core::int
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_31185.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31185.dart.weak.transformed.expect
index ec82b98..3de61ff 100644
--- a/pkg/front_end/testcases/regress/issue_31185.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31185.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,12 +17,12 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::int* i = 5;
-static method test1() → core::int* {
-  return let final core::int* #t1 = self::i in let final core::int* #t2 = self::i = #t1.{core::num::+}(1){(core::num*) →* core::int*} in #t1;
+static field core::int i = 5;
+static method test1() → core::int {
+  return let final core::int #t1 = self::i in let final core::int #t2 = self::i = #t1.{core::num::+}(1){(core::num) → core::int} in #t1;
   self::i;
 }
-static method test2() → core::int* {
+static method test2() → core::int {
   return invalid-expression "pkg/front_end/testcases/regress/issue_31185.dart:12:12: Error: Can't assign to a parenthesized expression.
   return (i) ++ (i);
            ^";
diff --git a/pkg/front_end/testcases/regress/issue_31186.dart b/pkg/front_end/testcases/regress/issue_31186.dart
index 370ac3d..1bf5d57 100644
--- a/pkg/front_end/testcases/regress/issue_31186.dart
+++ b/pkg/front_end/testcases/regress/issue_31186.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
+
 bad() {
   return null?.true;
 }
diff --git a/pkg/front_end/testcases/regress/issue_31186.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31186.dart.textual_outline.expect
index 2397af0..59cd59e 100644
--- a/pkg/front_end/testcases/regress/issue_31186.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31186.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 bad() {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31186.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31186.dart.textual_outline_modelled.expect
index 2397af0..59cd59e 100644
--- a/pkg/front_end/testcases/regress/issue_31186.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_31186.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 bad() {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31186.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31186.dart.weak.expect
index ce4b4c6..937ac82 100644
--- a/pkg/front_end/testcases/regress/issue_31186.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31186.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_31186.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31186.dart.weak.modular.expect
index ce4b4c6..937ac82 100644
--- a/pkg/front_end/testcases/regress/issue_31186.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31186.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_31186.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31186.dart.weak.outline.expect
index 81debf2..9f56f49 100644
--- a/pkg/front_end/testcases/regress/issue_31186.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31186.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method bad() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_31186.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31186.dart.weak.transformed.expect
index ce4b4c6..937ac82 100644
--- a/pkg/front_end/testcases/regress/issue_31186.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31186.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_31187.dart b/pkg/front_end/testcases/regress/issue_31187.dart
index da76294..2cf6bf8 100644
--- a/pkg/front_end/testcases/regress/issue_31187.dart
+++ b/pkg/front_end/testcases/regress/issue_31187.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
+
 bad() {
   return null?.1;
 }
diff --git a/pkg/front_end/testcases/regress/issue_31187.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31187.dart.textual_outline.expect
index 2397af0..59cd59e 100644
--- a/pkg/front_end/testcases/regress/issue_31187.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31187.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 bad() {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31187.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31187.dart.textual_outline_modelled.expect
index 2397af0..59cd59e 100644
--- a/pkg/front_end/testcases/regress/issue_31187.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_31187.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 bad() {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31187.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31187.dart.weak.expect
index 77462b2..786b8ec 100644
--- a/pkg/front_end/testcases/regress/issue_31187.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31187.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_31187.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31187.dart.weak.modular.expect
index 77462b2..786b8ec 100644
--- a/pkg/front_end/testcases/regress/issue_31187.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31187.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_31187.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31187.dart.weak.outline.expect
index 81debf2..9f56f49 100644
--- a/pkg/front_end/testcases/regress/issue_31187.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31187.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method bad() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_31187.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31187.dart.weak.transformed.expect
index 77462b2..786b8ec 100644
--- a/pkg/front_end/testcases/regress/issue_31187.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31187.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_31188.dart b/pkg/front_end/testcases/regress/issue_31188.dart
index 8782935..766d20b 100644
--- a/pkg/front_end/testcases/regress/issue_31188.dart
+++ b/pkg/front_end/testcases/regress/issue_31188.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
+
+// @dart=2.14
+
 main() {}
 
 type T = Map<A, B>
diff --git a/pkg/front_end/testcases/regress/issue_31188.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31188.dart.textual_outline.expect
index 2c07051..f583e96 100644
--- a/pkg/front_end/testcases/regress/issue_31188.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31188.dart.textual_outline.expect
@@ -1,3 +1,3 @@
-// @dart = 2.9
+// @dart = 2.14
 main() {}
 type T = Map<A, B> ;
diff --git a/pkg/front_end/testcases/regress/issue_31188.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31188.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..d41cad3
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_31188.dart.textual_outline_modelled.expect
@@ -0,0 +1,2 @@
+main() {}
+type T = Map<A, B>;
diff --git a/pkg/front_end/testcases/regress/issue_31188.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31188.dart.weak.expect
index 6917875..6e3d725 100644
--- a/pkg/front_end/testcases/regress/issue_31188.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31188.dart.weak.expect
@@ -1,34 +1,34 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:18: Error: Expected ';' after this.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:18: Error: Expected ';' after this.
 // type T = Map<A, B>
 //                  ^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:1: Error: Type 'type' not found.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:1: Error: Type 'type' not found.
 // type T = Map<A, B>
 // ^^^^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:1: Error: 'type' isn't a type.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:1: Error: 'type' isn't a type.
 // type T = Map<A, B>
 // ^^^^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:14: Error: 'A' isn't a type.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:14: Error: 'A' isn't a type.
 // type T = Map<A, B>
 //              ^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:17: Error: 'B' isn't a type.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:17: Error: 'B' isn't a type.
 // type T = Map<A, B>
 //                 ^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:13: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:13: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 // type T = Map<A, B>
 //             ^
-// pkg/front_end/testcases/regress/issue_31188.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_31188.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
 import self as self;
 import "dart:core" as core;
diff --git a/pkg/front_end/testcases/regress/issue_31188.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31188.dart.weak.modular.expect
index 6917875..6e3d725 100644
--- a/pkg/front_end/testcases/regress/issue_31188.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31188.dart.weak.modular.expect
@@ -1,34 +1,34 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:18: Error: Expected ';' after this.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:18: Error: Expected ';' after this.
 // type T = Map<A, B>
 //                  ^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:1: Error: Type 'type' not found.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:1: Error: Type 'type' not found.
 // type T = Map<A, B>
 // ^^^^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:1: Error: 'type' isn't a type.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:1: Error: 'type' isn't a type.
 // type T = Map<A, B>
 // ^^^^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:14: Error: 'A' isn't a type.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:14: Error: 'A' isn't a type.
 // type T = Map<A, B>
 //              ^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:17: Error: 'B' isn't a type.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:17: Error: 'B' isn't a type.
 // type T = Map<A, B>
 //                 ^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:13: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:13: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 // type T = Map<A, B>
 //             ^
-// pkg/front_end/testcases/regress/issue_31188.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_31188.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
 import self as self;
 import "dart:core" as core;
diff --git a/pkg/front_end/testcases/regress/issue_31188.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31188.dart.weak.outline.expect
index 71e9e57..42f7058 100644
--- a/pkg/front_end/testcases/regress/issue_31188.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31188.dart.weak.outline.expect
@@ -1,12 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:18: Error: Expected ';' after this.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:18: Error: Expected ';' after this.
 // type T = Map<A, B>
 //                  ^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:1: Error: Type 'type' not found.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:1: Error: Type 'type' not found.
 // type T = Map<A, B>
 // ^^^^
 //
diff --git a/pkg/front_end/testcases/regress/issue_31188.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31188.dart.weak.transformed.expect
index 6917875..6e3d725 100644
--- a/pkg/front_end/testcases/regress/issue_31188.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31188.dart.weak.transformed.expect
@@ -1,34 +1,34 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:18: Error: Expected ';' after this.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:18: Error: Expected ';' after this.
 // type T = Map<A, B>
 //                  ^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:1: Error: Type 'type' not found.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:1: Error: Type 'type' not found.
 // type T = Map<A, B>
 // ^^^^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:1: Error: 'type' isn't a type.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:1: Error: 'type' isn't a type.
 // type T = Map<A, B>
 // ^^^^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:14: Error: 'A' isn't a type.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:14: Error: 'A' isn't a type.
 // type T = Map<A, B>
 //              ^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:17: Error: 'B' isn't a type.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:17: Error: 'B' isn't a type.
 // type T = Map<A, B>
 //                 ^
 //
-// pkg/front_end/testcases/regress/issue_31188.dart:7:13: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_31188.dart:9:13: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 // type T = Map<A, B>
 //             ^
-// pkg/front_end/testcases/regress/issue_31188.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_31188.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
 import self as self;
 import "dart:core" as core;
diff --git a/pkg/front_end/testcases/regress/issue_31188_2.dart b/pkg/front_end/testcases/regress/issue_31188_2.dart
new file mode 100644
index 0000000..197dfae
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_31188_2.dart
@@ -0,0 +1,8 @@
+// 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.
+
+main() {}
+
+type T = Map<A, B>
+
diff --git a/pkg/front_end/testcases/regress/issue_31188_2.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31188_2.dart.textual_outline.expect
new file mode 100644
index 0000000..d41cad3
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_31188_2.dart.textual_outline.expect
@@ -0,0 +1,2 @@
+main() {}
+type T = Map<A, B>;
diff --git a/pkg/front_end/testcases/regress/issue_31188_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31188_2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..d41cad3
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_31188_2.dart.textual_outline_modelled.expect
@@ -0,0 +1,2 @@
+main() {}
+type T = Map<A, B>;
diff --git a/pkg/front_end/testcases/regress/issue_31188_2.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31188_2.dart.weak.expect
new file mode 100644
index 0000000..cd6a285
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_31188_2.dart.weak.expect
@@ -0,0 +1,33 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:18: Error: Expected ';' after this.
+// type T = Map<A, B>
+//                  ^
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:1: Error: Type 'type' not found.
+// type T = Map<A, B>
+// ^^^^
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:1: Error: 'type' isn't a type.
+// type T = Map<A, B>
+// ^^^^
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:14: Error: 'A' isn't a type.
+// type T = Map<A, B>
+//              ^
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:17: Error: 'B' isn't a type.
+// type T = Map<A, B>
+//                 ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field invalid-type T = #C1;
+static method main() → dynamic {}
+
+constants  {
+  #C1 = TypeLiteralConstant(core::Map<invalid-type, invalid-type>*)
+}
diff --git a/pkg/front_end/testcases/regress/issue_31188_2.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31188_2.dart.weak.modular.expect
new file mode 100644
index 0000000..cd6a285
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_31188_2.dart.weak.modular.expect
@@ -0,0 +1,33 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:18: Error: Expected ';' after this.
+// type T = Map<A, B>
+//                  ^
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:1: Error: Type 'type' not found.
+// type T = Map<A, B>
+// ^^^^
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:1: Error: 'type' isn't a type.
+// type T = Map<A, B>
+// ^^^^
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:14: Error: 'A' isn't a type.
+// type T = Map<A, B>
+//              ^
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:17: Error: 'B' isn't a type.
+// type T = Map<A, B>
+//                 ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field invalid-type T = #C1;
+static method main() → dynamic {}
+
+constants  {
+  #C1 = TypeLiteralConstant(core::Map<invalid-type, invalid-type>*)
+}
diff --git a/pkg/front_end/testcases/regress/issue_31188_2.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31188_2.dart.weak.outline.expect
new file mode 100644
index 0000000..4beac13
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_31188_2.dart.weak.outline.expect
@@ -0,0 +1,17 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:18: Error: Expected ';' after this.
+// type T = Map<A, B>
+//                  ^
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:1: Error: Type 'type' not found.
+// type T = Map<A, B>
+// ^^^^
+//
+import self as self;
+
+static field invalid-type T;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/regress/issue_31188_2.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31188_2.dart.weak.transformed.expect
new file mode 100644
index 0000000..cd6a285
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_31188_2.dart.weak.transformed.expect
@@ -0,0 +1,33 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:18: Error: Expected ';' after this.
+// type T = Map<A, B>
+//                  ^
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:1: Error: Type 'type' not found.
+// type T = Map<A, B>
+// ^^^^
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:1: Error: 'type' isn't a type.
+// type T = Map<A, B>
+// ^^^^
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:14: Error: 'A' isn't a type.
+// type T = Map<A, B>
+//              ^
+//
+// pkg/front_end/testcases/regress/issue_31188_2.dart:7:17: Error: 'B' isn't a type.
+// type T = Map<A, B>
+//                 ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field invalid-type T = #C1;
+static method main() → dynamic {}
+
+constants  {
+  #C1 = TypeLiteralConstant(core::Map<invalid-type, invalid-type>*)
+}
diff --git a/pkg/front_end/testcases/regress/issue_31190.dart b/pkg/front_end/testcases/regress/issue_31190.dart
index 22e5680..3375687 100644
--- a/pkg/front_end/testcases/regress/issue_31190.dart
+++ b/pkg/front_end/testcases/regress/issue_31190.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 Typed<T> {
   T<U> v;
 }
diff --git a/pkg/front_end/testcases/regress/issue_31190.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31190.dart.textual_outline.expect
index 2e1c860..52c03bd 100644
--- a/pkg/front_end/testcases/regress/issue_31190.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31190.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Typed<T> {
   T<U> v;
 }
diff --git a/pkg/front_end/testcases/regress/issue_31190.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31190.dart.textual_outline_modelled.expect
index 2e1c860..52c03bd 100644
--- a/pkg/front_end/testcases/regress/issue_31190.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_31190.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Typed<T> {
   T<U> v;
 }
diff --git a/pkg/front_end/testcases/regress/issue_31190.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31190.dart.weak.expect
index 728db79..b23ef13 100644
--- a/pkg/front_end/testcases/regress/issue_31190.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31190.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,20 +18,10 @@
 import self as self;
 import "dart:core" as core;
 
-class Typed<T extends core::Object* = dynamic> extends core::Object {
+class Typed<T extends core::Object? = dynamic> extends core::Object {
   field invalid-type v = null;
-  synthetic constructor •() → self::Typed<self::Typed::T*>*
+  synthetic constructor •() → self::Typed<self::Typed::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() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31190.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31190.dart.weak.modular.expect
index 728db79..b23ef13 100644
--- a/pkg/front_end/testcases/regress/issue_31190.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31190.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,20 +18,10 @@
 import self as self;
 import "dart:core" as core;
 
-class Typed<T extends core::Object* = dynamic> extends core::Object {
+class Typed<T extends core::Object? = dynamic> extends core::Object {
   field invalid-type v = null;
-  synthetic constructor •() → self::Typed<self::Typed::T*>*
+  synthetic constructor •() → self::Typed<self::Typed::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() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31190.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31190.dart.weak.outline.expect
index 29b1b41..06496ac 100644
--- a/pkg/front_end/testcases/regress/issue_31190.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31190.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,20 +14,10 @@
 import self as self;
 import "dart:core" as core;
 
-class Typed<T extends core::Object* = dynamic> extends core::Object {
+class Typed<T extends core::Object? = dynamic> extends core::Object {
   field invalid-type v;
-  synthetic constructor •() → self::Typed<self::Typed::T*>*
+  synthetic constructor •() → self::Typed<self::Typed::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() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_31190.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31190.dart.weak.transformed.expect
index 728db79..b23ef13 100644
--- a/pkg/front_end/testcases/regress/issue_31190.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31190.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,20 +18,10 @@
 import self as self;
 import "dart:core" as core;
 
-class Typed<T extends core::Object* = dynamic> extends core::Object {
+class Typed<T extends core::Object? = dynamic> extends core::Object {
   field invalid-type v = null;
-  synthetic constructor •() → self::Typed<self::Typed::T*>*
+  synthetic constructor •() → self::Typed<self::Typed::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() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31192.dart b/pkg/front_end/testcases/regress/issue_31192.dart
index 37c8bf0..c450e25 100644
--- a/pkg/front_end/testcases/regress/issue_31192.dart
+++ b/pkg/front_end/testcases/regress/issue_31192.dart
@@ -1,9 +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
+
 class Increment {
-  int x;
+  late int x;
   Increment() : x++ {}
 }
 
diff --git a/pkg/front_end/testcases/regress/issue_31192.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31192.dart.textual_outline.expect
index eb0e814..1bbd124 100644
--- a/pkg/front_end/testcases/regress/issue_31192.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31192.dart.textual_outline.expect
@@ -1,5 +1,5 @@
-// @dart = 2.9
 class Increment {
+  late
   int x;
   Increment() : =x++ {}
 }
diff --git a/pkg/front_end/testcases/regress/issue_31192.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31192.dart.weak.expect
index 0640c28..94958a4 100644
--- a/pkg/front_end/testcases/regress/issue_31192.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31192.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,20 +15,10 @@
 import "dart:core" as core;
 
 class Increment extends core::Object {
-  field core::int* x = null;
-  constructor •() → self::Increment*
+  late field core::int x;
+  constructor •() → self::Increment
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_31192.dart:7:17: Error: This couldn't be parsed.
   Increment() : 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 main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31192.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31192.dart.weak.modular.expect
index 0640c28..94958a4 100644
--- a/pkg/front_end/testcases/regress/issue_31192.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31192.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,20 +15,10 @@
 import "dart:core" as core;
 
 class Increment extends core::Object {
-  field core::int* x = null;
-  constructor •() → self::Increment*
+  late field core::int x;
+  constructor •() → self::Increment
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_31192.dart:7:17: Error: This couldn't be parsed.
   Increment() : 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 main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31192.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31192.dart.weak.outline.expect
index 442a920..653cbd5 100644
--- a/pkg/front_end/testcases/regress/issue_31192.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31192.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,19 +11,9 @@
 import "dart:core" as core;
 
 class Increment extends core::Object {
-  field core::int* x;
-  constructor •() → self::Increment*
+  late field core::int x;
+  constructor •() → self::Increment
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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/regress/issue_31192.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31192.dart.weak.transformed.expect
index 0640c28..94958a4 100644
--- a/pkg/front_end/testcases/regress/issue_31192.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31192.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,20 +15,10 @@
 import "dart:core" as core;
 
 class Increment extends core::Object {
-  field core::int* x = null;
-  constructor •() → self::Increment*
+  late field core::int x;
+  constructor •() → self::Increment
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_31192.dart:7:17: Error: This couldn't be parsed.
   Increment() : 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 main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31198.dart b/pkg/front_end/testcases/regress/issue_31198.dart
index 06128f9..15dca60 100644
--- a/pkg/front_end/testcases/regress/issue_31198.dart
+++ b/pkg/front_end/testcases/regress/issue_31198.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
+
 abstract class A {}
 
 class B extends A {
diff --git a/pkg/front_end/testcases/regress/issue_31198.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31198.dart.textual_outline.expect
index aa17508..1fcf675 100644
--- a/pkg/front_end/testcases/regress/issue_31198.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31198.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class A {}
 class B extends A {
   B(): super().foo() {}
diff --git a/pkg/front_end/testcases/regress/issue_31198.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31198.dart.weak.expect
index ecfe034..63411d2 100644
--- a/pkg/front_end/testcases/regress/issue_31198.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31198.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -33,31 +33,21 @@
 import "dart:core" as core;
 
 abstract 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 self::A {
-  constructor •() → self::B*
+  constructor •() → self::B
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_31198.dart:8:8: Error: Can't use 'super' as an expression.
 To delegate a constructor to a super constructor, put the super call as an initializer.
   B(): super().foo() {}
        ^"{dynamic}.foo() {}
-  constructor named1() → self::B*
+  constructor named1() → self::B
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/regress/issue_31198.dart:9:23: Error: Expected identifier, but got 'super'.
   B.named1(): super().super() {}
                       ^^^^^" {}
-  constructor named2() → self::B*
+  constructor named2() → self::B
     : final dynamic #t3 = invalid-expression "pkg/front_end/testcases/regress/issue_31198.dart:10:23: Error: Expected an identifier, but got '('.
 Try inserting an identifier before '('.
   B.named2(): super().() {}
diff --git a/pkg/front_end/testcases/regress/issue_31198.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31198.dart.weak.modular.expect
index ecfe034..63411d2 100644
--- a/pkg/front_end/testcases/regress/issue_31198.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31198.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -33,31 +33,21 @@
 import "dart:core" as core;
 
 abstract 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 self::A {
-  constructor •() → self::B*
+  constructor •() → self::B
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_31198.dart:8:8: Error: Can't use 'super' as an expression.
 To delegate a constructor to a super constructor, put the super call as an initializer.
   B(): super().foo() {}
        ^"{dynamic}.foo() {}
-  constructor named1() → self::B*
+  constructor named1() → self::B
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/regress/issue_31198.dart:9:23: Error: Expected identifier, but got 'super'.
   B.named1(): super().super() {}
                       ^^^^^" {}
-  constructor named2() → self::B*
+  constructor named2() → self::B
     : final dynamic #t3 = invalid-expression "pkg/front_end/testcases/regress/issue_31198.dart:10:23: Error: Expected an identifier, but got '('.
 Try inserting an identifier before '('.
   B.named2(): super().() {}
diff --git a/pkg/front_end/testcases/regress/issue_31198.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31198.dart.weak.outline.expect
index e898940..b6f2598b 100644
--- a/pkg/front_end/testcases/regress/issue_31198.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31198.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,25 +11,15 @@
 import "dart:core" as core;
 
 abstract 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 self::A {
-  constructor •() → self::B*
+  constructor •() → self::B
     ;
-  constructor named1() → self::B*
+  constructor named1() → self::B
     ;
-  constructor named2() → self::B*
+  constructor named2() → self::B
     ;
 }
 static method bad() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_31198.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31198.dart.weak.transformed.expect
index ecfe034..63411d2 100644
--- a/pkg/front_end/testcases/regress/issue_31198.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31198.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -33,31 +33,21 @@
 import "dart:core" as core;
 
 abstract 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 self::A {
-  constructor •() → self::B*
+  constructor •() → self::B
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_31198.dart:8:8: Error: Can't use 'super' as an expression.
 To delegate a constructor to a super constructor, put the super call as an initializer.
   B(): super().foo() {}
        ^"{dynamic}.foo() {}
-  constructor named1() → self::B*
+  constructor named1() → self::B
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/regress/issue_31198.dart:9:23: Error: Expected identifier, but got 'super'.
   B.named1(): super().super() {}
                       ^^^^^" {}
-  constructor named2() → self::B*
+  constructor named2() → self::B
     : final dynamic #t3 = invalid-expression "pkg/front_end/testcases/regress/issue_31198.dart:10:23: Error: Expected an identifier, but got '('.
 Try inserting an identifier before '('.
   B.named2(): super().() {}
diff --git a/pkg/front_end/testcases/regress/issue_31213.dart b/pkg/front_end/testcases/regress/issue_31213.dart
index 7926161..f4b522a 100644
--- a/pkg/front_end/testcases/regress/issue_31213.dart
+++ b/pkg/front_end/testcases/regress/issue_31213.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
+
 typedef C<A, K> = int Function<B>(A x, K y, B v);
 typedef D<K> = C<A, K> Function<A>(int z);
 
diff --git a/pkg/front_end/testcases/regress/issue_31213.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31213.dart.textual_outline.expect
index a41c084..87e854f 100644
--- a/pkg/front_end/testcases/regress/issue_31213.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31213.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 typedef C<A, K> = int Function<B>(A x, K y, B v);
 typedef D<K> = C<A, K> Function<A>(int z);
 dynamic producer<K>() {}
diff --git a/pkg/front_end/testcases/regress/issue_31213.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31213.dart.textual_outline_modelled.expect
index 18f2130..480f6f2 100644
--- a/pkg/front_end/testcases/regress/issue_31213.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_31213.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 dynamic producer<K>() {}
 main() {}
 typedef C<A, K> = int Function<B>(A x, K y, B v);
diff --git a/pkg/front_end/testcases/regress/issue_31213.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31213.dart.weak.expect
index 59e271c..c9f689a 100644
--- a/pkg/front_end/testcases/regress/issue_31213.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31213.dart.weak.expect
@@ -1,14 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef C<contravariant A extends core::Object* = dynamic, contravariant K extends core::Object* = dynamic> = <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
-typedef D<contravariant K extends core::Object* = dynamic> = <A extends core::Object* = dynamic>(core::int*) →* <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
-static method producer<K extends core::Object* = dynamic>() → dynamic {
-  return <A extends core::Object* = dynamic>(core::int* v1) → <B extends core::Object* = dynamic>(A*, self::producer::K*, B*) →* core::int* {
-    return <B extends core::Object* = dynamic>(A* v2, self::producer::K* v3, B* v4) → core::int* => 0;
+typedef C<contravariant A extends core::Object? = dynamic, contravariant K extends core::Object? = dynamic> = <B extends core::Object? = dynamic>(A%, K%, B%) → core::int;
+typedef D<contravariant K extends core::Object? = dynamic> = <A extends core::Object? = dynamic>(core::int) → <B extends core::Object? = dynamic>(A%, K%, B%) → core::int;
+static method producer<K extends core::Object? = dynamic>() → dynamic {
+  return <A extends core::Object? = dynamic>(core::int v1) → <B extends core::Object? = dynamic>(A%, self::producer::K%, B%) → core::int {
+    return <B extends core::Object? = dynamic>(A% v2, self::producer::K% v3, B% v4) → core::int => 0;
   };
 }
 static method main() → dynamic {
-  assert(self::producer<core::String*>() is <A extends core::Object* = dynamic>(core::int*) →* <B extends core::Object* = dynamic>(A*, core::String*, B*) →* core::int*);
+  assert(self::producer<core::String>() is{ForNonNullableByDefault} <A extends core::Object? = dynamic>(core::int) → <B extends core::Object? = dynamic>(A%, core::String, B%) → core::int);
 }
diff --git a/pkg/front_end/testcases/regress/issue_31213.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31213.dart.weak.modular.expect
index 59e271c..c9f689a 100644
--- a/pkg/front_end/testcases/regress/issue_31213.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31213.dart.weak.modular.expect
@@ -1,14 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef C<contravariant A extends core::Object* = dynamic, contravariant K extends core::Object* = dynamic> = <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
-typedef D<contravariant K extends core::Object* = dynamic> = <A extends core::Object* = dynamic>(core::int*) →* <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
-static method producer<K extends core::Object* = dynamic>() → dynamic {
-  return <A extends core::Object* = dynamic>(core::int* v1) → <B extends core::Object* = dynamic>(A*, self::producer::K*, B*) →* core::int* {
-    return <B extends core::Object* = dynamic>(A* v2, self::producer::K* v3, B* v4) → core::int* => 0;
+typedef C<contravariant A extends core::Object? = dynamic, contravariant K extends core::Object? = dynamic> = <B extends core::Object? = dynamic>(A%, K%, B%) → core::int;
+typedef D<contravariant K extends core::Object? = dynamic> = <A extends core::Object? = dynamic>(core::int) → <B extends core::Object? = dynamic>(A%, K%, B%) → core::int;
+static method producer<K extends core::Object? = dynamic>() → dynamic {
+  return <A extends core::Object? = dynamic>(core::int v1) → <B extends core::Object? = dynamic>(A%, self::producer::K%, B%) → core::int {
+    return <B extends core::Object? = dynamic>(A% v2, self::producer::K% v3, B% v4) → core::int => 0;
   };
 }
 static method main() → dynamic {
-  assert(self::producer<core::String*>() is <A extends core::Object* = dynamic>(core::int*) →* <B extends core::Object* = dynamic>(A*, core::String*, B*) →* core::int*);
+  assert(self::producer<core::String>() is{ForNonNullableByDefault} <A extends core::Object? = dynamic>(core::int) → <B extends core::Object? = dynamic>(A%, core::String, B%) → core::int);
 }
diff --git a/pkg/front_end/testcases/regress/issue_31213.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31213.dart.weak.outline.expect
index b80b64a..5b20d23 100644
--- a/pkg/front_end/testcases/regress/issue_31213.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31213.dart.weak.outline.expect
@@ -1,10 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef C<contravariant A extends core::Object* = dynamic, contravariant K extends core::Object* = dynamic> = <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
-typedef D<contravariant K extends core::Object* = dynamic> = <A extends core::Object* = dynamic>(core::int*) →* <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
-static method producer<K extends core::Object* = dynamic>() → dynamic
+typedef C<contravariant A extends core::Object? = dynamic, contravariant K extends core::Object? = dynamic> = <B extends core::Object? = dynamic>(A%, K%, B%) → core::int;
+typedef D<contravariant K extends core::Object? = dynamic> = <A extends core::Object? = dynamic>(core::int) → <B extends core::Object? = dynamic>(A%, K%, B%) → core::int;
+static method producer<K extends core::Object? = dynamic>() → dynamic
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_31213.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31213.dart.weak.transformed.expect
index 59e271c..c9f689a 100644
--- a/pkg/front_end/testcases/regress/issue_31213.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31213.dart.weak.transformed.expect
@@ -1,14 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef C<contravariant A extends core::Object* = dynamic, contravariant K extends core::Object* = dynamic> = <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
-typedef D<contravariant K extends core::Object* = dynamic> = <A extends core::Object* = dynamic>(core::int*) →* <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
-static method producer<K extends core::Object* = dynamic>() → dynamic {
-  return <A extends core::Object* = dynamic>(core::int* v1) → <B extends core::Object* = dynamic>(A*, self::producer::K*, B*) →* core::int* {
-    return <B extends core::Object* = dynamic>(A* v2, self::producer::K* v3, B* v4) → core::int* => 0;
+typedef C<contravariant A extends core::Object? = dynamic, contravariant K extends core::Object? = dynamic> = <B extends core::Object? = dynamic>(A%, K%, B%) → core::int;
+typedef D<contravariant K extends core::Object? = dynamic> = <A extends core::Object? = dynamic>(core::int) → <B extends core::Object? = dynamic>(A%, K%, B%) → core::int;
+static method producer<K extends core::Object? = dynamic>() → dynamic {
+  return <A extends core::Object? = dynamic>(core::int v1) → <B extends core::Object? = dynamic>(A%, self::producer::K%, B%) → core::int {
+    return <B extends core::Object? = dynamic>(A% v2, self::producer::K% v3, B% v4) → core::int => 0;
   };
 }
 static method main() → dynamic {
-  assert(self::producer<core::String*>() is <A extends core::Object* = dynamic>(core::int*) →* <B extends core::Object* = dynamic>(A*, core::String*, B*) →* core::int*);
+  assert(self::producer<core::String>() is{ForNonNullableByDefault} <A extends core::Object? = dynamic>(core::int) → <B extends core::Object? = dynamic>(A%, core::String, B%) → core::int);
 }
diff --git a/pkg/front_end/testcases/regress/issue_31299.dart b/pkg/front_end/testcases/regress/issue_31299.dart
index ddb4089..27c47ab 100644
--- a/pkg/front_end/testcases/regress/issue_31299.dart
+++ b/pkg/front_end/testcases/regress/issue_31299.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 A {
   int m;
   A() : m = 1;
diff --git a/pkg/front_end/testcases/regress/issue_31299.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31299.dart.textual_outline.expect
index cb3f73f..0298c3a 100644
--- a/pkg/front_end/testcases/regress/issue_31299.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31299.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   int m;
   A() : m = 1;
diff --git a/pkg/front_end/testcases/regress/issue_31299.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31299.dart.textual_outline_modelled.expect
index fd9c762..d2c8de1 100644
--- a/pkg/front_end/testcases/regress/issue_31299.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_31299.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A() : m = 1;
   A.foo() : m = 2;
diff --git a/pkg/front_end/testcases/regress/issue_31299.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31299.dart.weak.expect
index c1f0dcb..d942c26 100644
--- a/pkg/front_end/testcases/regress/issue_31299.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31299.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,31 +18,21 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* m;
-  constructor •() → self::A*
+  field core::int m;
+  constructor •() → self::A
     : self::A::m = 1, super core::Object::•()
     ;
-  constructor foo() → self::A*
+  constructor foo() → self::A
     : self::A::m = 2, super core::Object::•()
     ;
-  method foo(core::int* a, core::int* b) → core::int*
-    return a.{core::num::+}(b.{core::num::*}(this.{self::A::m}{core::int*}){(core::num*) →* core::int*}){(core::num*) →* 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
+  method foo(core::int a, core::int b) → core::int
+    return a.{core::num::+}(b.{core::num::*}(this.{self::A::m}{core::int}){(core::num) → core::int}){(core::num) → core::int};
 }
 static method test() → dynamic {
   invalid-expression "pkg/front_end/testcases/regress/issue_31299.dart:15:14: Error: Too few positional arguments: 2 required, 0 given.
   new A().foo();
-             ^" in new self::A::•().{self::A::foo}{<inapplicable>}.(){() →* invalid-type};
-  new self::A::•().{self::A::foo}(1, 2){(core::int*, core::int*) →* core::int*};
+             ^" in new self::A::•().{self::A::foo}{<inapplicable>}.(){() → invalid-type};
+  new self::A::•().{self::A::foo}(1, 2){(core::int, core::int) → core::int};
   new self::A::foo();
   invalid-expression "pkg/front_end/testcases/regress/issue_31299.dart:18:12: Error: Too many positional arguments: 0 allowed, but 2 found.
 Try removing the extra positional arguments.
diff --git a/pkg/front_end/testcases/regress/issue_31299.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31299.dart.weak.modular.expect
index c1f0dcb..d942c26 100644
--- a/pkg/front_end/testcases/regress/issue_31299.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31299.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,31 +18,21 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* m;
-  constructor •() → self::A*
+  field core::int m;
+  constructor •() → self::A
     : self::A::m = 1, super core::Object::•()
     ;
-  constructor foo() → self::A*
+  constructor foo() → self::A
     : self::A::m = 2, super core::Object::•()
     ;
-  method foo(core::int* a, core::int* b) → core::int*
-    return a.{core::num::+}(b.{core::num::*}(this.{self::A::m}{core::int*}){(core::num*) →* core::int*}){(core::num*) →* 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
+  method foo(core::int a, core::int b) → core::int
+    return a.{core::num::+}(b.{core::num::*}(this.{self::A::m}{core::int}){(core::num) → core::int}){(core::num) → core::int};
 }
 static method test() → dynamic {
   invalid-expression "pkg/front_end/testcases/regress/issue_31299.dart:15:14: Error: Too few positional arguments: 2 required, 0 given.
   new A().foo();
-             ^" in new self::A::•().{self::A::foo}{<inapplicable>}.(){() →* invalid-type};
-  new self::A::•().{self::A::foo}(1, 2){(core::int*, core::int*) →* core::int*};
+             ^" in new self::A::•().{self::A::foo}{<inapplicable>}.(){() → invalid-type};
+  new self::A::•().{self::A::foo}(1, 2){(core::int, core::int) → core::int};
   new self::A::foo();
   invalid-expression "pkg/front_end/testcases/regress/issue_31299.dart:18:12: Error: Too many positional arguments: 0 allowed, but 2 found.
 Try removing the extra positional arguments.
diff --git a/pkg/front_end/testcases/regress/issue_31299.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31299.dart.weak.outline.expect
index 9869b3b..514d2ca 100644
--- a/pkg/front_end/testcases/regress/issue_31299.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31299.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* m;
-  constructor •() → self::A*
+  field core::int m;
+  constructor •() → self::A
     ;
-  constructor foo() → self::A*
+  constructor foo() → self::A
     ;
-  method foo(core::int* a, core::int* b) → core::int*
+  method foo(core::int a, core::int b) → 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
 }
 static method test() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_31299.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31299.dart.weak.transformed.expect
index c1f0dcb..d942c26 100644
--- a/pkg/front_end/testcases/regress/issue_31299.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31299.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,31 +18,21 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* m;
-  constructor •() → self::A*
+  field core::int m;
+  constructor •() → self::A
     : self::A::m = 1, super core::Object::•()
     ;
-  constructor foo() → self::A*
+  constructor foo() → self::A
     : self::A::m = 2, super core::Object::•()
     ;
-  method foo(core::int* a, core::int* b) → core::int*
-    return a.{core::num::+}(b.{core::num::*}(this.{self::A::m}{core::int*}){(core::num*) →* core::int*}){(core::num*) →* 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
+  method foo(core::int a, core::int b) → core::int
+    return a.{core::num::+}(b.{core::num::*}(this.{self::A::m}{core::int}){(core::num) → core::int}){(core::num) → core::int};
 }
 static method test() → dynamic {
   invalid-expression "pkg/front_end/testcases/regress/issue_31299.dart:15:14: Error: Too few positional arguments: 2 required, 0 given.
   new A().foo();
-             ^" in new self::A::•().{self::A::foo}{<inapplicable>}.(){() →* invalid-type};
-  new self::A::•().{self::A::foo}(1, 2){(core::int*, core::int*) →* core::int*};
+             ^" in new self::A::•().{self::A::foo}{<inapplicable>}.(){() → invalid-type};
+  new self::A::•().{self::A::foo}(1, 2){(core::int, core::int) → core::int};
   new self::A::foo();
   invalid-expression "pkg/front_end/testcases/regress/issue_31299.dart:18:12: Error: Too many positional arguments: 0 allowed, but 2 found.
 Try removing the extra positional arguments.
diff --git a/pkg/front_end/testcases/regress/issue_31766.dart b/pkg/front_end/testcases/regress/issue_31766.dart
index 538400c..491cb00 100644
--- a/pkg/front_end/testcases/regress/issue_31766.dart
+++ b/pkg/front_end/testcases/regress/issue_31766.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 A {
   foo() => null;
 }
diff --git a/pkg/front_end/testcases/regress/issue_31766.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31766.dart.textual_outline.expect
index 2aac28f..27434f1 100644
--- a/pkg/front_end/testcases/regress/issue_31766.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31766.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   foo() => null;
 }
diff --git a/pkg/front_end/testcases/regress/issue_31766.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31766.dart.textual_outline_modelled.expect
index 2aac28f..27434f1 100644
--- a/pkg/front_end/testcases/regress/issue_31766.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_31766.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   foo() => null;
 }
diff --git a/pkg/front_end/testcases/regress/issue_31766.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31766.dart.weak.expect
index ec4557f..8acce0b 100644
--- a/pkg/front_end/testcases/regress/issue_31766.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31766.dart.weak.expect
@@ -1,30 +1,20 @@
-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::•()
     ;
   method foo() → 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
 }
 static method main() → dynamic {
-  function bar<T extends self::A*>(T* t) → void {
-    core::print("t.foo()=${t.{self::A::foo}(){() →* dynamic}}");
+  function bar<T extends self::A>(T t) → void {
+    core::print("t.foo()=${t.{self::A::foo}(){() → dynamic}}");
   }
-  bar<self::A*>(new self::A::•()){(self::A*) →* void};
-  (<S extends self::A*>(S* s) → Null {
-    core::print("s.foo()=${s.{self::A::foo}(){() →* dynamic}}");
-  })<self::A*>(new self::A::•()){(self::A*) →* Null};
+  bar<self::A>(new self::A::•()){(self::A) → void};
+  (<S extends self::A>(S s) → Null {
+    core::print("s.foo()=${s.{self::A::foo}(){() → dynamic}}");
+  })<self::A>(new self::A::•()){(self::A) → Null};
 }
diff --git a/pkg/front_end/testcases/regress/issue_31766.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31766.dart.weak.modular.expect
index ec4557f..8acce0b 100644
--- a/pkg/front_end/testcases/regress/issue_31766.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31766.dart.weak.modular.expect
@@ -1,30 +1,20 @@
-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::•()
     ;
   method foo() → 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
 }
 static method main() → dynamic {
-  function bar<T extends self::A*>(T* t) → void {
-    core::print("t.foo()=${t.{self::A::foo}(){() →* dynamic}}");
+  function bar<T extends self::A>(T t) → void {
+    core::print("t.foo()=${t.{self::A::foo}(){() → dynamic}}");
   }
-  bar<self::A*>(new self::A::•()){(self::A*) →* void};
-  (<S extends self::A*>(S* s) → Null {
-    core::print("s.foo()=${s.{self::A::foo}(){() →* dynamic}}");
-  })<self::A*>(new self::A::•()){(self::A*) →* Null};
+  bar<self::A>(new self::A::•()){(self::A) → void};
+  (<S extends self::A>(S s) → Null {
+    core::print("s.foo()=${s.{self::A::foo}(){() → dynamic}}");
+  })<self::A>(new self::A::•()){(self::A) → Null};
 }
diff --git a/pkg/front_end/testcases/regress/issue_31766.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31766.dart.weak.outline.expect
index c973003..9c602fb 100644
--- a/pkg/front_end/testcases/regress/issue_31766.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31766.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-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
     ;
   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 main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_31766.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31766.dart.weak.transformed.expect
index ec4557f..8acce0b 100644
--- a/pkg/front_end/testcases/regress/issue_31766.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31766.dart.weak.transformed.expect
@@ -1,30 +1,20 @@
-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::•()
     ;
   method foo() → 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
 }
 static method main() → dynamic {
-  function bar<T extends self::A*>(T* t) → void {
-    core::print("t.foo()=${t.{self::A::foo}(){() →* dynamic}}");
+  function bar<T extends self::A>(T t) → void {
+    core::print("t.foo()=${t.{self::A::foo}(){() → dynamic}}");
   }
-  bar<self::A*>(new self::A::•()){(self::A*) →* void};
-  (<S extends self::A*>(S* s) → Null {
-    core::print("s.foo()=${s.{self::A::foo}(){() →* dynamic}}");
-  })<self::A*>(new self::A::•()){(self::A*) →* Null};
+  bar<self::A>(new self::A::•()){(self::A) → void};
+  (<S extends self::A>(S s) → Null {
+    core::print("s.foo()=${s.{self::A::foo}(){() → dynamic}}");
+  })<self::A>(new self::A::•()){(self::A) → Null};
 }
diff --git a/pkg/front_end/testcases/regress/issue_31846.dart b/pkg/front_end/testcases/regress/issue_31846.dart
index 4619403..593212f 100644
--- a/pkg/front_end/testcases/regress/issue_31846.dart
+++ b/pkg/front_end/testcases/regress/issue_31846.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
+
 main() {
   print(main is Function());
   print((<T>(T x) => x).runtimeType);
diff --git a/pkg/front_end/testcases/regress/issue_31846.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31846.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/regress/issue_31846.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31846.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31846.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31846.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/regress/issue_31846.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_31846.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_31846.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31846.dart.weak.expect
index a893a8d..f8c19ed 100644
--- a/pkg/front_end/testcases/regress/issue_31846.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31846.dart.weak.expect
@@ -1,15 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::print(#C1 is () →* dynamic);
-  core::print((<T extends core::Object* = dynamic>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends core::num*>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends core::Comparable<T*>* = core::Comparable<dynamic>*>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends core::Comparable<S*>* = core::Comparable<dynamic>*, S extends core::Object* = dynamic>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends (T*) →* dynamic = (Null) →* dynamic>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends core::List<core::List<T*>*>* = core::List<core::List<dynamic>*>*>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
+  core::print(#C1 is{ForNonNullableByDefault} () → dynamic);
+  core::print((<T extends core::Object? = dynamic>(T% x) → T% => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends core::num>(T x) → T => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends core::Comparable<T> = core::Comparable<dynamic>>(T x) → T => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends core::Comparable<S%> = core::Comparable<dynamic>, S extends core::Object? = dynamic>(T x) → T => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends (T) → dynamic = (Null) → dynamic>(T x) → T => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends core::List<core::List<T>> = core::List<core::List<dynamic>>>(T x) → T => x).{core::Object::runtimeType}{core::Type});
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/regress/issue_31846.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31846.dart.weak.modular.expect
index a893a8d..f8c19ed 100644
--- a/pkg/front_end/testcases/regress/issue_31846.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31846.dart.weak.modular.expect
@@ -1,15 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::print(#C1 is () →* dynamic);
-  core::print((<T extends core::Object* = dynamic>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends core::num*>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends core::Comparable<T*>* = core::Comparable<dynamic>*>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends core::Comparable<S*>* = core::Comparable<dynamic>*, S extends core::Object* = dynamic>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends (T*) →* dynamic = (Null) →* dynamic>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends core::List<core::List<T*>*>* = core::List<core::List<dynamic>*>*>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
+  core::print(#C1 is{ForNonNullableByDefault} () → dynamic);
+  core::print((<T extends core::Object? = dynamic>(T% x) → T% => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends core::num>(T x) → T => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends core::Comparable<T> = core::Comparable<dynamic>>(T x) → T => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends core::Comparable<S%> = core::Comparable<dynamic>, S extends core::Object? = dynamic>(T x) → T => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends (T) → dynamic = (Null) → dynamic>(T x) → T => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends core::List<core::List<T>> = core::List<core::List<dynamic>>>(T x) → T => x).{core::Object::runtimeType}{core::Type});
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/regress/issue_31846.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31846.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/regress/issue_31846.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31846.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/regress/issue_31846.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31846.dart.weak.transformed.expect
index e1b75c5..7f0dc5e 100644
--- a/pkg/front_end/testcases/regress/issue_31846.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31846.dart.weak.transformed.expect
@@ -1,15 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::print(#C1 is () →* dynamic);
-  core::print((<T extends core::Object* = dynamic>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends core::num*>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends core::Comparable<T*>* = core::Comparable<dynamic>*>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends core::Comparable<S*>* = core::Comparable<dynamic>*, S extends core::Object* = dynamic>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends (T*) →* dynamic = (Null) →* dynamic>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
-  core::print((<T extends core::List<core::List<T*>*>* = core::List<core::List<dynamic>*>*>(T* x) → T* => x).{core::Object::runtimeType}{core::Type*});
+  core::print(#C1 is{ForNonNullableByDefault} () → dynamic);
+  core::print((<T extends core::Object? = dynamic>(T% x) → T% => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends core::num>(T x) → T => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends core::Comparable<T> = core::Comparable<dynamic>>(T x) → T => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends core::Comparable<S%> = core::Comparable<dynamic>, S extends core::Object? = dynamic>(T x) → T => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends (T) → dynamic = (Null) → dynamic>(T x) → T => x).{core::Object::runtimeType}{core::Type});
+  core::print((<T extends core::List<core::List<T>> = core::List<core::List<dynamic>>>(T x) → T => x).{core::Object::runtimeType}{core::Type});
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/regress/issue_31996.dart b/pkg/front_end/testcases/regress/issue_31996.dart
index ee35029..90260dc 100644
--- a/pkg/front_end/testcases/regress/issue_31996.dart
+++ b/pkg/front_end/testcases/regress/issue_31996.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
+
 abstract class B<T> {}
 
 abstract class C<T> {}
diff --git a/pkg/front_end/testcases/regress/issue_31996.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31996.dart.textual_outline.expect
index d130780..7ebf1bc 100644
--- a/pkg/front_end/testcases/regress/issue_31996.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31996.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class B<T> {}
 
 abstract class C<T> {}
diff --git a/pkg/front_end/testcases/regress/issue_31996.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31996.dart.textual_outline_modelled.expect
index d130780..7ebf1bc 100644
--- a/pkg/front_end/testcases/regress/issue_31996.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_31996.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class B<T> {}
 
 abstract class C<T> {}
diff --git a/pkg/front_end/testcases/regress/issue_31996.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31996.dart.weak.expect
index 6cf6fb4..4d307ab 100644
--- a/pkg/front_end/testcases/regress/issue_31996.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31996.dart.weak.expect
@@ -1,59 +1,29 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-abstract class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+abstract class B<T extends core::Object? = dynamic> extends core::Object {
+  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
 }
-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
 }
 class Base extends core::Object implements self::B<dynamic> {
-  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
 }
-class Child1 extends self::Base implements self::C<core::int*> {
-  synthetic constructor •() → self::Child1*
+class Child1 extends self::Base implements self::C<core::int> {
+  synthetic constructor •() → self::Child1
     : super self::Base::•()
     ;
 }
-class Child2 extends self::Base implements self::C<core::double*> {
-  synthetic constructor •() → self::Child2*
+class Child2 extends self::Base implements self::C<core::double> {
+  synthetic constructor •() → self::Child2
     : super self::Base::•()
     ;
 }
diff --git a/pkg/front_end/testcases/regress/issue_31996.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_31996.dart.weak.modular.expect
index 6cf6fb4..4d307ab 100644
--- a/pkg/front_end/testcases/regress/issue_31996.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_31996.dart.weak.modular.expect
@@ -1,59 +1,29 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-abstract class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+abstract class B<T extends core::Object? = dynamic> extends core::Object {
+  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
 }
-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
 }
 class Base extends core::Object implements self::B<dynamic> {
-  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
 }
-class Child1 extends self::Base implements self::C<core::int*> {
-  synthetic constructor •() → self::Child1*
+class Child1 extends self::Base implements self::C<core::int> {
+  synthetic constructor •() → self::Child1
     : super self::Base::•()
     ;
 }
-class Child2 extends self::Base implements self::C<core::double*> {
-  synthetic constructor •() → self::Child2*
+class Child2 extends self::Base implements self::C<core::double> {
+  synthetic constructor •() → self::Child2
     : super self::Base::•()
     ;
 }
diff --git a/pkg/front_end/testcases/regress/issue_31996.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31996.dart.weak.outline.expect
index 52e736c..a5980c3 100644
--- a/pkg/front_end/testcases/regress/issue_31996.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31996.dart.weak.outline.expect
@@ -1,55 +1,25 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-abstract class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+abstract class B<T extends core::Object? = dynamic> extends core::Object {
+  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
 }
-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
 }
 class Base extends core::Object implements self::B<dynamic> {
-  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
-}
-class Child1 extends self::Base implements self::C<core::int*> {
-  synthetic constructor •() → self::Child1*
+  synthetic constructor •() → self::Base
     ;
 }
-class Child2 extends self::Base implements self::C<core::double*> {
-  synthetic constructor •() → self::Child2*
+class Child1 extends self::Base implements self::C<core::int> {
+  synthetic constructor •() → self::Child1
+    ;
+}
+class Child2 extends self::Base implements self::C<core::double> {
+  synthetic constructor •() → self::Child2
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_31996.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31996.dart.weak.transformed.expect
index 6cf6fb4..4d307ab 100644
--- a/pkg/front_end/testcases/regress/issue_31996.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31996.dart.weak.transformed.expect
@@ -1,59 +1,29 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-abstract class B<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+abstract class B<T extends core::Object? = dynamic> extends core::Object {
+  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
 }
-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
 }
 class Base extends core::Object implements self::B<dynamic> {
-  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
 }
-class Child1 extends self::Base implements self::C<core::int*> {
-  synthetic constructor •() → self::Child1*
+class Child1 extends self::Base implements self::C<core::int> {
+  synthetic constructor •() → self::Child1
     : super self::Base::•()
     ;
 }
-class Child2 extends self::Base implements self::C<core::double*> {
-  synthetic constructor •() → self::Child2*
+class Child2 extends self::Base implements self::C<core::double> {
+  synthetic constructor •() → self::Child2
     : super self::Base::•()
     ;
 }
diff --git a/pkg/front_end/testcases/regress/issue_32182.dart b/pkg/front_end/testcases/regress/issue_32182.dart
index c3c6a72..7e42146 100644
--- a/pkg/front_end/testcases/regress/issue_32182.dart
+++ b/pkg/front_end/testcases/regress/issue_32182.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 "issue_32182.dart" as self;
 
 class A<T> {}
diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline.expect
index 25ad7e6..22f0c87 100644
--- a/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "issue_32182.dart" as self;
 
 class A<T> {}
diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline_modelled.expect
index 0a9400b..f0f5e79 100644
--- a/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "issue_32182.dart" as self;
 
 class A<T> {}
diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.weak.expect b/pkg/front_end/testcases/regress/issue_32182.dart.weak.expect
index 3b90e8d..ff49484 100644
--- a/pkg/front_end/testcases/regress/issue_32182.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_32182.dart.weak.expect
@@ -1,53 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "org-dartlang-testcase:///issue_32182.dart" as self;
 
-class A<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::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 M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     : super core::Object::•()
     ;
   method m() → dynamic
     return 42;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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&A&M = self::A<self::A<dynamic>*> with self::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_C&A&M*
+abstract class _C&A&M = self::A<self::A<dynamic>> with self::M /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_C&A&M
     : super self::A::•()
     ;
   mixin-super-stub method m() → dynamic
     return super.{self::M::m}();
 }
 class C extends self::_C&A&M {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::_C&A&M::•()
     ;
 }
 static method main() → dynamic {
-  new self::C::•().{self::_C&A&M::m}(){() →* dynamic}{dynamic}.+(1);
+  new self::C::•().{self::_C&A&M::m}(){() → dynamic}{dynamic}.+(1);
 }
diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_32182.dart.weak.modular.expect
index 3b90e8d..ff49484 100644
--- a/pkg/front_end/testcases/regress/issue_32182.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_32182.dart.weak.modular.expect
@@ -1,53 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "org-dartlang-testcase:///issue_32182.dart" as self;
 
-class A<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::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 M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     : super core::Object::•()
     ;
   method m() → dynamic
     return 42;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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&A&M = self::A<self::A<dynamic>*> with self::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_C&A&M*
+abstract class _C&A&M = self::A<self::A<dynamic>> with self::M /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_C&A&M
     : super self::A::•()
     ;
   mixin-super-stub method m() → dynamic
     return super.{self::M::m}();
 }
 class C extends self::_C&A&M {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::_C&A&M::•()
     ;
 }
 static method main() → dynamic {
-  new self::C::•().{self::_C&A&M::m}(){() →* dynamic}{dynamic}.+(1);
+  new self::C::•().{self::_C&A&M::m}(){() → dynamic}{dynamic}.+(1);
 }
diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_32182.dart.weak.outline.expect
index 2836f3f..b80c90b 100644
--- a/pkg/front_end/testcases/regress/issue_32182.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_32182.dart.weak.outline.expect
@@ -1,48 +1,28 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "org-dartlang-testcase:///issue_32182.dart" as self;
 
-class A<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::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 M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     ;
   method 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
 }
-abstract class _C&A&M = self::A<self::A<dynamic>*> with self::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_C&A&M*
+abstract class _C&A&M = self::A<self::A<dynamic>> with self::M /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_C&A&M
     : super self::A::•()
     ;
   mixin-super-stub method m() → dynamic
     return super.{self::M::m}();
 }
 class C extends self::_C&A&M {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_32182.dart.weak.transformed.expect
index afa52c8..6fcf27a 100644
--- a/pkg/front_end/testcases/regress/issue_32182.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_32182.dart.weak.transformed.expect
@@ -1,53 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "org-dartlang-testcase:///issue_32182.dart" as self;
 
-class A<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::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 M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     : super core::Object::•()
     ;
   method m() → dynamic
     return 42;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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&A&M extends self::A<self::A<dynamic>*> implements self::M /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_C&A&M*
+abstract class _C&A&M extends self::A<self::A<dynamic>> implements self::M /*isAnonymousMixin,isEliminatedMixin*/  {
+  synthetic constructor •() → self::_C&A&M
     : super self::A::•()
     ;
   method m() → dynamic
     return 42;
 }
 class C extends self::_C&A&M {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::_C&A&M::•()
     ;
 }
 static method main() → dynamic {
-  new self::C::•().{self::_C&A&M::m}(){() →* dynamic}{dynamic}.+(1);
+  new self::C::•().{self::_C&A&M::m}(){() → dynamic}{dynamic}.+(1);
 }
diff --git a/pkg/front_end/testcases/regress/issue_32196.dart b/pkg/front_end/testcases/regress/issue_32196.dart
index 9eb700b..254d45c 100644
--- a/pkg/front_end/testcases/regress/issue_32196.dart
+++ b/pkg/front_end/testcases/regress/issue_32196.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 A {
   final String name;
   A.get(this.name);
diff --git a/pkg/front_end/testcases/regress/issue_32196.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_32196.dart.textual_outline.expect
index 4fb58cb..7fecce8 100644
--- a/pkg/front_end/testcases/regress/issue_32196.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_32196.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   final String name;
   A.get(this.name);
diff --git a/pkg/front_end/testcases/regress/issue_32196.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_32196.dart.textual_outline_modelled.expect
index 8c1fac1..13664b5 100644
--- a/pkg/front_end/testcases/regress/issue_32196.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_32196.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A.get(this.name);
   A.set(this.name);
diff --git a/pkg/front_end/testcases/regress/issue_32196.dart.weak.expect b/pkg/front_end/testcases/regress/issue_32196.dart.weak.expect
index d1c71d6..c26c0a6 100644
--- a/pkg/front_end/testcases/regress/issue_32196.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_32196.dart.weak.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  final field core::String* name;
-  constructor get(core::String* name) → self::A*
+  final field core::String name;
+  constructor get(core::String name) → self::A
     : self::A::name = name, super core::Object::•()
     ;
-  constructor set(core::String* name) → self::A*
+  constructor set(core::String name) → self::A
     : self::A::name = name, 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 {
   new self::A::get("get");
diff --git a/pkg/front_end/testcases/regress/issue_32196.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_32196.dart.weak.modular.expect
index d1c71d6..c26c0a6 100644
--- a/pkg/front_end/testcases/regress/issue_32196.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_32196.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  final field core::String* name;
-  constructor get(core::String* name) → self::A*
+  final field core::String name;
+  constructor get(core::String name) → self::A
     : self::A::name = name, super core::Object::•()
     ;
-  constructor set(core::String* name) → self::A*
+  constructor set(core::String name) → self::A
     : self::A::name = name, 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 {
   new self::A::get("get");
diff --git a/pkg/front_end/testcases/regress/issue_32196.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_32196.dart.weak.outline.expect
index 69ba040..a211da4 100644
--- a/pkg/front_end/testcases/regress/issue_32196.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_32196.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  final field core::String* name;
-  constructor get(core::String* name) → self::A*
+  final field core::String name;
+  constructor get(core::String name) → self::A
     ;
-  constructor set(core::String* name) → self::A*
+  constructor set(core::String name) → 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 method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_32196.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_32196.dart.weak.transformed.expect
index d1c71d6..c26c0a6 100644
--- a/pkg/front_end/testcases/regress/issue_32196.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_32196.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  final field core::String* name;
-  constructor get(core::String* name) → self::A*
+  final field core::String name;
+  constructor get(core::String name) → self::A
     : self::A::name = name, super core::Object::•()
     ;
-  constructor set(core::String* name) → self::A*
+  constructor set(core::String name) → self::A
     : self::A::name = name, 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 {
   new self::A::get("get");
diff --git a/pkg/front_end/testcases/regress/issue_32200.dart b/pkg/front_end/testcases/regress/issue_32200.dart
index 4a8fb85..efdc4a0 100644
--- a/pkg/front_end/testcases/regress/issue_32200.dart
+++ b/pkg/front_end/testcases/regress/issue_32200.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 "issue_32200.dart" as self;
 
 class Foo {
diff --git a/pkg/front_end/testcases/regress/issue_32200.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_32200.dart.textual_outline.expect
index 7a5a831..7912167 100644
--- a/pkg/front_end/testcases/regress/issue_32200.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_32200.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "issue_32200.dart" as self;
 
 class Foo {
diff --git a/pkg/front_end/testcases/regress/issue_32200.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_32200.dart.textual_outline_modelled.expect
index 7a5a831..7912167 100644
--- a/pkg/front_end/testcases/regress/issue_32200.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_32200.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "issue_32200.dart" as self;
 
 class Foo {
diff --git a/pkg/front_end/testcases/regress/issue_32200.dart.weak.expect b/pkg/front_end/testcases/regress/issue_32200.dart.weak.expect
index d70c7d0..ee4488d 100644
--- a/pkg/front_end/testcases/regress/issue_32200.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_32200.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,21 +13,11 @@
 
 class Foo extends core::Object {
   field invalid-type self = null;
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::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
 }
 static method main() → dynamic {
-  self::Foo* instance = new self::Foo::•();
+  self::Foo instance = new self::Foo::•();
   instance.{self::Foo::self} = instance;
 }
diff --git a/pkg/front_end/testcases/regress/issue_32200.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_32200.dart.weak.modular.expect
index d70c7d0..ee4488d 100644
--- a/pkg/front_end/testcases/regress/issue_32200.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_32200.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,21 +13,11 @@
 
 class Foo extends core::Object {
   field invalid-type self = null;
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::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
 }
 static method main() → dynamic {
-  self::Foo* instance = new self::Foo::•();
+  self::Foo instance = new self::Foo::•();
   instance.{self::Foo::self} = instance;
 }
diff --git a/pkg/front_end/testcases/regress/issue_32200.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_32200.dart.weak.outline.expect
index b4f4759..174d091 100644
--- a/pkg/front_end/testcases/regress/issue_32200.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_32200.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,18 +13,8 @@
 
 class Foo extends core::Object {
   field invalid-type self;
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_32200.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_32200.dart.weak.transformed.expect
index d70c7d0..ee4488d 100644
--- a/pkg/front_end/testcases/regress/issue_32200.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_32200.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,21 +13,11 @@
 
 class Foo extends core::Object {
   field invalid-type self = null;
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::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
 }
 static method main() → dynamic {
-  self::Foo* instance = new self::Foo::•();
+  self::Foo instance = new self::Foo::•();
   instance.{self::Foo::self} = instance;
 }
diff --git a/pkg/front_end/testcases/regress/issue_32660.dart b/pkg/front_end/testcases/regress/issue_32660.dart
index 429407f..8c9d660 100644
--- a/pkg/front_end/testcases/regress/issue_32660.dart
+++ b/pkg/front_end/testcases/regress/issue_32660.dart
@@ -1,13 +1,13 @@
 // 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 A {
   foo(int x) => x;
 }
 
 class B {
-  foo(int x, {int y}) => y;
+  foo(int x, {int? y}) => y;
 }
 
 class C extends A implements B {
@@ -22,7 +22,7 @@
 }
 
 class E extends D {
-  foo(int x, {int y});
+  foo(int x, {int? y});
 
   noSuchMethod(i) {
     print(i.namedArguments);
diff --git a/pkg/front_end/testcases/regress/issue_32660.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_32660.dart.textual_outline.expect
index e03e095..35ce7d1 100644
--- a/pkg/front_end/testcases/regress/issue_32660.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_32660.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 class A {
   foo(int x) => x;
 }
 
 class B {
-  foo(int x, {int y}) => y;
+  foo(int x, {int? y}) => y;
 }
 
 class C extends A implements B {
@@ -16,7 +15,7 @@
 }
 
 class E extends D {
-  foo(int x, {int y});
+  foo(int x, {int? y});
   noSuchMethod(i) {}
 }
 
diff --git a/pkg/front_end/testcases/regress/issue_32660.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_32660.dart.textual_outline_modelled.expect
index e03e095..35ce7d1 100644
--- a/pkg/front_end/testcases/regress/issue_32660.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_32660.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 class A {
   foo(int x) => x;
 }
 
 class B {
-  foo(int x, {int y}) => y;
+  foo(int x, {int? y}) => y;
 }
 
 class C extends A implements B {
@@ -16,7 +15,7 @@
 }
 
 class E extends D {
-  foo(int x, {int y});
+  foo(int x, {int? y});
   noSuchMethod(i) {}
 }
 
diff --git a/pkg/front_end/testcases/regress/issue_32660.dart.weak.expect b/pkg/front_end/testcases/regress/issue_32660.dart.weak.expect
index ec03c53..7c6c6d0 100644
--- a/pkg/front_end/testcases/regress/issue_32660.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_32660.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,7 +9,7 @@
 //   foo(int x) => x;
 //   ^
 // pkg/front_end/testcases/regress/issue_32660.dart:10:3: Context: This is the overridden method ('foo').
-//   foo(int x, {int y}) => y;
+//   foo(int x, {int? y}) => y;
 //   ^
 //
 // pkg/front_end/testcases/regress/issue_32660.dart:24:7: Error: The implementation of 'foo' in the non-abstract class 'E' does not conform to its interface.
@@ -19,86 +19,56 @@
 //   foo(int x) => x;
 //   ^
 // pkg/front_end/testcases/regress/issue_32660.dart:25:3: Context: This is the overridden method ('foo').
-//   foo(int x, {int y});
+//   foo(int x, {int? y});
 //   ^
 //
 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::•()
     ;
-  method foo(core::int* x) → dynamic
+  method foo(core::int x) → dynamic
     return x;
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  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::•()
     ;
-  method foo(core::int* x, {core::int* y = #C1}) → dynamic
+  method foo(core::int x, {core::int? y = #C1}) → dynamic
     return y;
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C extends self::A implements self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::A::•()
     ;
-  method noSuchMethod(core::Invocation* i) → dynamic {
+  method noSuchMethod(core::Invocation i) → dynamic {
     core::print("No such method!");
     return 42;
   }
-  abstract member-signature method foo(core::int* x, {core::int* y = #C1}) → dynamic; -> self::B::foo
+  abstract member-signature method foo(core::int x, {core::int? y = #C1}) → dynamic; -> self::B::foo
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super core::Object::•()
     ;
-  method foo(core::int* x) → dynamic
+  method foo(core::int x) → dynamic
     return x;
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  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::•()
     ;
-  abstract method foo(core::int* x, {core::int* y = #C1}) → dynamic;
-  method noSuchMethod(core::Invocation* i) → dynamic {
-    core::print(i.{core::Invocation::namedArguments}{core::Map<core::Symbol*, dynamic>*});
+  abstract method foo(core::int x, {core::int? y = #C1}) → dynamic;
+  method noSuchMethod(core::Invocation i) → dynamic {
+    core::print(i.{core::Invocation::namedArguments}{core::Map<core::Symbol, dynamic>});
     return 42;
   }
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•();
-  self::E* e = new self::E::•();
+  self::C c = new self::C::•();
+  self::E e = new self::E::•();
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/regress/issue_32660.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_32660.dart.weak.modular.expect
index ec03c53..7c6c6d0 100644
--- a/pkg/front_end/testcases/regress/issue_32660.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_32660.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,7 +9,7 @@
 //   foo(int x) => x;
 //   ^
 // pkg/front_end/testcases/regress/issue_32660.dart:10:3: Context: This is the overridden method ('foo').
-//   foo(int x, {int y}) => y;
+//   foo(int x, {int? y}) => y;
 //   ^
 //
 // pkg/front_end/testcases/regress/issue_32660.dart:24:7: Error: The implementation of 'foo' in the non-abstract class 'E' does not conform to its interface.
@@ -19,86 +19,56 @@
 //   foo(int x) => x;
 //   ^
 // pkg/front_end/testcases/regress/issue_32660.dart:25:3: Context: This is the overridden method ('foo').
-//   foo(int x, {int y});
+//   foo(int x, {int? y});
 //   ^
 //
 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::•()
     ;
-  method foo(core::int* x) → dynamic
+  method foo(core::int x) → dynamic
     return x;
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  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::•()
     ;
-  method foo(core::int* x, {core::int* y = #C1}) → dynamic
+  method foo(core::int x, {core::int? y = #C1}) → dynamic
     return y;
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C extends self::A implements self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::A::•()
     ;
-  method noSuchMethod(core::Invocation* i) → dynamic {
+  method noSuchMethod(core::Invocation i) → dynamic {
     core::print("No such method!");
     return 42;
   }
-  abstract member-signature method foo(core::int* x, {core::int* y = #C1}) → dynamic; -> self::B::foo
+  abstract member-signature method foo(core::int x, {core::int? y = #C1}) → dynamic; -> self::B::foo
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super core::Object::•()
     ;
-  method foo(core::int* x) → dynamic
+  method foo(core::int x) → dynamic
     return x;
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  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::•()
     ;
-  abstract method foo(core::int* x, {core::int* y = #C1}) → dynamic;
-  method noSuchMethod(core::Invocation* i) → dynamic {
-    core::print(i.{core::Invocation::namedArguments}{core::Map<core::Symbol*, dynamic>*});
+  abstract method foo(core::int x, {core::int? y = #C1}) → dynamic;
+  method noSuchMethod(core::Invocation i) → dynamic {
+    core::print(i.{core::Invocation::namedArguments}{core::Map<core::Symbol, dynamic>});
     return 42;
   }
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•();
-  self::E* e = new self::E::•();
+  self::C c = new self::C::•();
+  self::E e = new self::E::•();
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/regress/issue_32660.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_32660.dart.weak.outline.expect
index d6cfde1..1580e0f 100644
--- a/pkg/front_end/testcases/regress/issue_32660.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_32660.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,7 +9,7 @@
 //   foo(int x) => x;
 //   ^
 // pkg/front_end/testcases/regress/issue_32660.dart:10:3: Context: This is the overridden method ('foo').
-//   foo(int x, {int y}) => y;
+//   foo(int x, {int? y}) => y;
 //   ^
 //
 // pkg/front_end/testcases/regress/issue_32660.dart:24:7: Error: The implementation of 'foo' in the non-abstract class 'E' does not conform to its interface.
@@ -19,72 +19,42 @@
 //   foo(int x) => x;
 //   ^
 // pkg/front_end/testcases/regress/issue_32660.dart:25:3: Context: This is the overridden method ('foo').
-//   foo(int x, {int y});
+//   foo(int x, {int? y});
 //   ^
 //
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
-  method foo(core::int* x) → dynamic
+  method foo(core::int x) → dynamic
     ;
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  method foo(core::int* x, {core::int* y = null}) → dynamic
+  method foo(core::int x, {core::int? y = null}) → dynamic
     ;
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C extends self::A implements self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  method noSuchMethod(core::Invocation* i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     ;
-  abstract member-signature method foo(core::int* x, {core::int* y}) → dynamic; -> self::B::foo
+  abstract member-signature method foo(core::int x, {core::int? y}) → dynamic; -> self::B::foo
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
-  method foo(core::int* x) → dynamic
+  method foo(core::int x) → dynamic
     ;
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class E extends self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     ;
-  abstract method foo(core::int* x, {core::int* y = null}) → dynamic;
-  method noSuchMethod(core::Invocation* i) → dynamic
+  abstract method foo(core::int x, {core::int? y = null}) → dynamic;
+  method noSuchMethod(core::Invocation i) → dynamic
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_32660.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_32660.dart.weak.transformed.expect
index ec03c53..7c6c6d0 100644
--- a/pkg/front_end/testcases/regress/issue_32660.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_32660.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,7 +9,7 @@
 //   foo(int x) => x;
 //   ^
 // pkg/front_end/testcases/regress/issue_32660.dart:10:3: Context: This is the overridden method ('foo').
-//   foo(int x, {int y}) => y;
+//   foo(int x, {int? y}) => y;
 //   ^
 //
 // pkg/front_end/testcases/regress/issue_32660.dart:24:7: Error: The implementation of 'foo' in the non-abstract class 'E' does not conform to its interface.
@@ -19,86 +19,56 @@
 //   foo(int x) => x;
 //   ^
 // pkg/front_end/testcases/regress/issue_32660.dart:25:3: Context: This is the overridden method ('foo').
-//   foo(int x, {int y});
+//   foo(int x, {int? y});
 //   ^
 //
 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::•()
     ;
-  method foo(core::int* x) → dynamic
+  method foo(core::int x) → dynamic
     return x;
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  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::•()
     ;
-  method foo(core::int* x, {core::int* y = #C1}) → dynamic
+  method foo(core::int x, {core::int? y = #C1}) → dynamic
     return y;
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C extends self::A implements self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::A::•()
     ;
-  method noSuchMethod(core::Invocation* i) → dynamic {
+  method noSuchMethod(core::Invocation i) → dynamic {
     core::print("No such method!");
     return 42;
   }
-  abstract member-signature method foo(core::int* x, {core::int* y = #C1}) → dynamic; -> self::B::foo
+  abstract member-signature method foo(core::int x, {core::int? y = #C1}) → dynamic; -> self::B::foo
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super core::Object::•()
     ;
-  method foo(core::int* x) → dynamic
+  method foo(core::int x) → dynamic
     return x;
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  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::•()
     ;
-  abstract method foo(core::int* x, {core::int* y = #C1}) → dynamic;
-  method noSuchMethod(core::Invocation* i) → dynamic {
-    core::print(i.{core::Invocation::namedArguments}{core::Map<core::Symbol*, dynamic>*});
+  abstract method foo(core::int x, {core::int? y = #C1}) → dynamic;
+  method noSuchMethod(core::Invocation i) → dynamic {
+    core::print(i.{core::Invocation::namedArguments}{core::Map<core::Symbol, dynamic>});
     return 42;
   }
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•();
-  self::E* e = new self::E::•();
+  self::C c = new self::C::•();
+  self::E e = new self::E::•();
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/regress/issue_32972.dart b/pkg/front_end/testcases/regress/issue_32972.dart
index 578caf4..23a1482 100644
--- a/pkg/front_end/testcases/regress/issue_32972.dart
+++ b/pkg/front_end/testcases/regress/issue_32972.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 foo<X>(X i) {
   print(i);
 }
diff --git a/pkg/front_end/testcases/regress/issue_32972.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_32972.dart.textual_outline.expect
index c57478f..afd767f 100644
--- a/pkg/front_end/testcases/regress/issue_32972.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_32972.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 void foo<X>(X i) {}
 
 class Foo {
diff --git a/pkg/front_end/testcases/regress/issue_32972.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_32972.dart.textual_outline_modelled.expect
index a04fc20..fedb95a 100644
--- a/pkg/front_end/testcases/regress/issue_32972.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_32972.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Bar<X, Y> {}
 
 class Foo {
diff --git a/pkg/front_end/testcases/regress/issue_32972.dart.weak.expect b/pkg/front_end/testcases/regress/issue_32972.dart.weak.expect
index 660b650..200c245 100644
--- a/pkg/front_end/testcases/regress/issue_32972.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_32972.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -31,60 +31,40 @@
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : super core::Object::•()
     ;
-  static method foo<X extends core::Object* = dynamic>(self::Foo::foo::X* i) → dynamic {
+  static method foo<X extends core::Object? = dynamic>(self::Foo::foo::X% i) → dynamic {
     core::print(i);
   }
-  method bar<X extends core::Object* = dynamic>(self::Foo::bar::X* i) → dynamic {
+  method bar<X extends core::Object? = dynamic>(self::Foo::bar::X% i) → dynamic {
     core::print(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 Bar<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Bar<self::Bar::X*, self::Bar::Y*>*
+class Bar<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Bar<self::Bar::X%, self::Bar::Y%>
     : 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 foo<X extends core::Object* = dynamic>(self::foo::X* i) → void {
+static method foo<X extends core::Object? = dynamic>(self::foo::X% i) → void {
   core::print(i);
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/regress/issue_32972.dart:22:3: Error: Expected 1 type arguments.
   foo<String, String>(\"hello world\");
   ^";
-  self::foo<core::String*>("hello world");
+  self::foo<core::String>("hello world");
   invalid-expression "pkg/front_end/testcases/regress/issue_32972.dart:24:7: Error: Expected 1 type arguments.
   Foo.foo<int, int>(42);
       ^";
-  self::Foo::foo<core::int*>(42);
-  self::Foo* f = new self::Foo::•();
+  self::Foo::foo<core::int>(42);
+  self::Foo f = new self::Foo::•();
   invalid-expression "pkg/front_end/testcases/regress/issue_32972.dart:27:5: Error: Expected 1 type arguments.
   f.bar<double, double>(42.42);
-    ^" in f.{self::Foo::bar}{<inapplicable>}.<core::double*, core::double*>(42.42){(invalid-type) →* invalid-type};
-  f.{self::Foo::bar}<core::double*>(42.42){(core::double*) →* dynamic};
+    ^" in f.{self::Foo::bar}{<inapplicable>}.<core::double, core::double>(42.42){(invalid-type) → invalid-type};
+  f.{self::Foo::bar}<core::double>(42.42){(core::double) → dynamic};
   invalid-expression "pkg/front_end/testcases/regress/issue_32972.dart:29:7: Error: Expected 2 type arguments.
   new Bar<String>();
       ^";
-  new self::Bar::•<core::String*, core::String*>();
+  new self::Bar::•<core::String, core::String>();
 }
diff --git a/pkg/front_end/testcases/regress/issue_32972.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_32972.dart.weak.modular.expect
index 660b650..200c245 100644
--- a/pkg/front_end/testcases/regress/issue_32972.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_32972.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -31,60 +31,40 @@
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : super core::Object::•()
     ;
-  static method foo<X extends core::Object* = dynamic>(self::Foo::foo::X* i) → dynamic {
+  static method foo<X extends core::Object? = dynamic>(self::Foo::foo::X% i) → dynamic {
     core::print(i);
   }
-  method bar<X extends core::Object* = dynamic>(self::Foo::bar::X* i) → dynamic {
+  method bar<X extends core::Object? = dynamic>(self::Foo::bar::X% i) → dynamic {
     core::print(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 Bar<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Bar<self::Bar::X*, self::Bar::Y*>*
+class Bar<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Bar<self::Bar::X%, self::Bar::Y%>
     : 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 foo<X extends core::Object* = dynamic>(self::foo::X* i) → void {
+static method foo<X extends core::Object? = dynamic>(self::foo::X% i) → void {
   core::print(i);
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/regress/issue_32972.dart:22:3: Error: Expected 1 type arguments.
   foo<String, String>(\"hello world\");
   ^";
-  self::foo<core::String*>("hello world");
+  self::foo<core::String>("hello world");
   invalid-expression "pkg/front_end/testcases/regress/issue_32972.dart:24:7: Error: Expected 1 type arguments.
   Foo.foo<int, int>(42);
       ^";
-  self::Foo::foo<core::int*>(42);
-  self::Foo* f = new self::Foo::•();
+  self::Foo::foo<core::int>(42);
+  self::Foo f = new self::Foo::•();
   invalid-expression "pkg/front_end/testcases/regress/issue_32972.dart:27:5: Error: Expected 1 type arguments.
   f.bar<double, double>(42.42);
-    ^" in f.{self::Foo::bar}{<inapplicable>}.<core::double*, core::double*>(42.42){(invalid-type) →* invalid-type};
-  f.{self::Foo::bar}<core::double*>(42.42){(core::double*) →* dynamic};
+    ^" in f.{self::Foo::bar}{<inapplicable>}.<core::double, core::double>(42.42){(invalid-type) → invalid-type};
+  f.{self::Foo::bar}<core::double>(42.42){(core::double) → dynamic};
   invalid-expression "pkg/front_end/testcases/regress/issue_32972.dart:29:7: Error: Expected 2 type arguments.
   new Bar<String>();
       ^";
-  new self::Bar::•<core::String*, core::String*>();
+  new self::Bar::•<core::String, core::String>();
 }
diff --git a/pkg/front_end/testcases/regress/issue_32972.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_32972.dart.weak.outline.expect
index 456f978..d9df500 100644
--- a/pkg/front_end/testcases/regress/issue_32972.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_32972.dart.weak.outline.expect
@@ -1,40 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     ;
-  static method foo<X extends core::Object* = dynamic>(self::Foo::foo::X* i) → dynamic
+  static method foo<X extends core::Object? = dynamic>(self::Foo::foo::X% i) → dynamic
     ;
-  method bar<X extends core::Object* = dynamic>(self::Foo::bar::X* i) → dynamic
+  method bar<X extends core::Object? = dynamic>(self::Foo::bar::X% i) → 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<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Bar<self::Bar::X*, self::Bar::Y*>*
+class Bar<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Bar<self::Bar::X%, self::Bar::Y%>
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 foo<X extends core::Object* = dynamic>(self::foo::X* i) → void
+static method foo<X extends core::Object? = dynamic>(self::foo::X% i) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_32972.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_32972.dart.weak.transformed.expect
index 660b650..200c245 100644
--- a/pkg/front_end/testcases/regress/issue_32972.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_32972.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -31,60 +31,40 @@
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : super core::Object::•()
     ;
-  static method foo<X extends core::Object* = dynamic>(self::Foo::foo::X* i) → dynamic {
+  static method foo<X extends core::Object? = dynamic>(self::Foo::foo::X% i) → dynamic {
     core::print(i);
   }
-  method bar<X extends core::Object* = dynamic>(self::Foo::bar::X* i) → dynamic {
+  method bar<X extends core::Object? = dynamic>(self::Foo::bar::X% i) → dynamic {
     core::print(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 Bar<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Bar<self::Bar::X*, self::Bar::Y*>*
+class Bar<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Bar<self::Bar::X%, self::Bar::Y%>
     : 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 foo<X extends core::Object* = dynamic>(self::foo::X* i) → void {
+static method foo<X extends core::Object? = dynamic>(self::foo::X% i) → void {
   core::print(i);
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/regress/issue_32972.dart:22:3: Error: Expected 1 type arguments.
   foo<String, String>(\"hello world\");
   ^";
-  self::foo<core::String*>("hello world");
+  self::foo<core::String>("hello world");
   invalid-expression "pkg/front_end/testcases/regress/issue_32972.dart:24:7: Error: Expected 1 type arguments.
   Foo.foo<int, int>(42);
       ^";
-  self::Foo::foo<core::int*>(42);
-  self::Foo* f = new self::Foo::•();
+  self::Foo::foo<core::int>(42);
+  self::Foo f = new self::Foo::•();
   invalid-expression "pkg/front_end/testcases/regress/issue_32972.dart:27:5: Error: Expected 1 type arguments.
   f.bar<double, double>(42.42);
-    ^" in f.{self::Foo::bar}{<inapplicable>}.<core::double*, core::double*>(42.42){(invalid-type) →* invalid-type};
-  f.{self::Foo::bar}<core::double*>(42.42){(core::double*) →* dynamic};
+    ^" in f.{self::Foo::bar}{<inapplicable>}.<core::double, core::double>(42.42){(invalid-type) → invalid-type};
+  f.{self::Foo::bar}<core::double>(42.42){(core::double) → dynamic};
   invalid-expression "pkg/front_end/testcases/regress/issue_32972.dart:29:7: Error: Expected 2 type arguments.
   new Bar<String>();
       ^";
-  new self::Bar::•<core::String*, core::String*>();
+  new self::Bar::•<core::String, core::String>();
 }
diff --git a/pkg/front_end/testcases/regress/issue_33452.dart b/pkg/front_end/testcases/regress/issue_33452.dart
index 9e94976..bd8c790 100644
--- a/pkg/front_end/testcases/regress/issue_33452.dart
+++ b/pkg/front_end/testcases/regress/issue_33452.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 ExistingClass {
   ExistingClass.existingConstructor();
 }
diff --git a/pkg/front_end/testcases/regress/issue_33452.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_33452.dart.textual_outline.expect
index fcbd268..eff2983 100644
--- a/pkg/front_end/testcases/regress/issue_33452.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_33452.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class ExistingClass {
   ExistingClass.existingConstructor();
 }
diff --git a/pkg/front_end/testcases/regress/issue_33452.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_33452.dart.textual_outline_modelled.expect
index fcbd268..eff2983 100644
--- a/pkg/front_end/testcases/regress/issue_33452.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_33452.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class ExistingClass {
   ExistingClass.existingConstructor();
 }
diff --git a/pkg/front_end/testcases/regress/issue_33452.dart.weak.expect b/pkg/front_end/testcases/regress/issue_33452.dart.weak.expect
index 0f3ef8d..153005e 100644
--- a/pkg/front_end/testcases/regress/issue_33452.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_33452.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -30,19 +30,9 @@
 import "dart:core" as core;
 
 class ExistingClass extends core::Object {
-  constructor existingConstructor() → self::ExistingClass*
+  constructor existingConstructor() → self::ExistingClass
     : 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 {
   invalid-type x = invalid-expression "pkg/front_end/testcases/regress/issue_33452.dart:10:29: Error: Couldn't find constructor 'ExistingClass.nonExistingConstructor'.
diff --git a/pkg/front_end/testcases/regress/issue_33452.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_33452.dart.weak.modular.expect
index 0f3ef8d..153005e 100644
--- a/pkg/front_end/testcases/regress/issue_33452.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_33452.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -30,19 +30,9 @@
 import "dart:core" as core;
 
 class ExistingClass extends core::Object {
-  constructor existingConstructor() → self::ExistingClass*
+  constructor existingConstructor() → self::ExistingClass
     : 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 {
   invalid-type x = invalid-expression "pkg/front_end/testcases/regress/issue_33452.dart:10:29: Error: Couldn't find constructor 'ExistingClass.nonExistingConstructor'.
diff --git a/pkg/front_end/testcases/regress/issue_33452.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_33452.dart.weak.outline.expect
index 11d9af2..b6db5ef 100644
--- a/pkg/front_end/testcases/regress/issue_33452.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_33452.dart.weak.outline.expect
@@ -1,20 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class ExistingClass extends core::Object {
-  constructor existingConstructor() → self::ExistingClass*
+  constructor existingConstructor() → self::ExistingClass
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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/regress/issue_33452.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_33452.dart.weak.transformed.expect
index 0f3ef8d..153005e 100644
--- a/pkg/front_end/testcases/regress/issue_33452.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_33452.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -30,19 +30,9 @@
 import "dart:core" as core;
 
 class ExistingClass extends core::Object {
-  constructor existingConstructor() → self::ExistingClass*
+  constructor existingConstructor() → self::ExistingClass
     : 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 {
   invalid-type x = invalid-expression "pkg/front_end/testcases/regress/issue_33452.dart:10:29: Error: Couldn't find constructor 'ExistingClass.nonExistingConstructor'.
diff --git a/pkg/front_end/testcases/regress/issue_33672.dart b/pkg/front_end/testcases/regress/issue_33672.dart
index b35af71d..f302c8a 100644
--- a/pkg/front_end/testcases/regress/issue_33672.dart
+++ b/pkg/front_end/testcases/regress/issue_33672.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
+
 main() {
   int count = 0;
   yield: for (int a = 0; a < 10; ++a) {
diff --git a/pkg/front_end/testcases/regress/issue_33672.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_33672.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/regress/issue_33672.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_33672.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_33672.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_33672.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/regress/issue_33672.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_33672.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_33672.dart.weak.expect b/pkg/front_end/testcases/regress/issue_33672.dart.weak.expect
index 7caa5cb..6531e98 100644
--- a/pkg/front_end/testcases/regress/issue_33672.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_33672.dart.weak.expect
@@ -1,18 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::int* count = 0;
+  core::int count = 0;
   #L1:
-  for (core::int* a = 0; a.{core::num::<}(10){(core::num*) →* core::bool*}; a = a.{core::num::+}(1){(core::num*) →* core::int*}) {
-    for (core::int* b = 0; b.{core::num::<}(10){(core::num*) →* core::bool*}; b = b.{core::num::+}(1){(core::num*) →* core::int*}) {
-      count = count.{core::num::+}(1){(core::num*) →* core::int*};
-      if(count =={core::num::==}{(core::Object*) →* core::bool*} 27)
+  for (core::int a = 0; a.{core::num::<}(10){(core::num) → core::bool}; a = a.{core::num::+}(1){(core::num) → core::int}) {
+    for (core::int b = 0; b.{core::num::<}(10){(core::num) → core::bool}; b = b.{core::num::+}(1){(core::num) → core::int}) {
+      count = count.{core::num::+}(1){(core::num) → core::int};
+      if(count =={core::num::==}{(core::Object) → core::bool} 27)
         break #L1;
     }
-    count = count.{core::num::+}(1){(core::num*) →* core::int*};
+    count = count.{core::num::+}(1){(core::num) → core::int};
   }
-  if(!(count =={core::num::==}{(core::Object*) →* core::bool*} 27))
+  if(!(count =={core::num::==}{(core::Object) → core::bool} 27))
     throw "failed: ${count}";
 }
diff --git a/pkg/front_end/testcases/regress/issue_33672.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_33672.dart.weak.modular.expect
index 7caa5cb..6531e98 100644
--- a/pkg/front_end/testcases/regress/issue_33672.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_33672.dart.weak.modular.expect
@@ -1,18 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::int* count = 0;
+  core::int count = 0;
   #L1:
-  for (core::int* a = 0; a.{core::num::<}(10){(core::num*) →* core::bool*}; a = a.{core::num::+}(1){(core::num*) →* core::int*}) {
-    for (core::int* b = 0; b.{core::num::<}(10){(core::num*) →* core::bool*}; b = b.{core::num::+}(1){(core::num*) →* core::int*}) {
-      count = count.{core::num::+}(1){(core::num*) →* core::int*};
-      if(count =={core::num::==}{(core::Object*) →* core::bool*} 27)
+  for (core::int a = 0; a.{core::num::<}(10){(core::num) → core::bool}; a = a.{core::num::+}(1){(core::num) → core::int}) {
+    for (core::int b = 0; b.{core::num::<}(10){(core::num) → core::bool}; b = b.{core::num::+}(1){(core::num) → core::int}) {
+      count = count.{core::num::+}(1){(core::num) → core::int};
+      if(count =={core::num::==}{(core::Object) → core::bool} 27)
         break #L1;
     }
-    count = count.{core::num::+}(1){(core::num*) →* core::int*};
+    count = count.{core::num::+}(1){(core::num) → core::int};
   }
-  if(!(count =={core::num::==}{(core::Object*) →* core::bool*} 27))
+  if(!(count =={core::num::==}{(core::Object) → core::bool} 27))
     throw "failed: ${count}";
 }
diff --git a/pkg/front_end/testcases/regress/issue_33672.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_33672.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/regress/issue_33672.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_33672.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/regress/issue_33672.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_33672.dart.weak.transformed.expect
index 7caa5cb..6531e98 100644
--- a/pkg/front_end/testcases/regress/issue_33672.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_33672.dart.weak.transformed.expect
@@ -1,18 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::int* count = 0;
+  core::int count = 0;
   #L1:
-  for (core::int* a = 0; a.{core::num::<}(10){(core::num*) →* core::bool*}; a = a.{core::num::+}(1){(core::num*) →* core::int*}) {
-    for (core::int* b = 0; b.{core::num::<}(10){(core::num*) →* core::bool*}; b = b.{core::num::+}(1){(core::num*) →* core::int*}) {
-      count = count.{core::num::+}(1){(core::num*) →* core::int*};
-      if(count =={core::num::==}{(core::Object*) →* core::bool*} 27)
+  for (core::int a = 0; a.{core::num::<}(10){(core::num) → core::bool}; a = a.{core::num::+}(1){(core::num) → core::int}) {
+    for (core::int b = 0; b.{core::num::<}(10){(core::num) → core::bool}; b = b.{core::num::+}(1){(core::num) → core::int}) {
+      count = count.{core::num::+}(1){(core::num) → core::int};
+      if(count =={core::num::==}{(core::Object) → core::bool} 27)
         break #L1;
     }
-    count = count.{core::num::+}(1){(core::num*) →* core::int*};
+    count = count.{core::num::+}(1){(core::num) → core::int};
   }
-  if(!(count =={core::num::==}{(core::Object*) →* core::bool*} 27))
+  if(!(count =={core::num::==}{(core::Object) → core::bool} 27))
     throw "failed: ${count}";
 }
diff --git a/pkg/front_end/testcases/regress/issue_34225.dart b/pkg/front_end/testcases/regress/issue_34225.dart
index d9470a5..e058ee7 100644
--- a/pkg/front_end/testcases/regress/issue_34225.dart
+++ b/pkg/front_end/testcases/regress/issue_34225.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 set C(v) {} //# 01: compile-time error
 }
diff --git a/pkg/front_end/testcases/regress/issue_34225.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_34225.dart.textual_outline.expect
index e268fae..ab71dd0 100644
--- a/pkg/front_end/testcases/regress/issue_34225.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34225.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   static set C(v) {}
 }
diff --git a/pkg/front_end/testcases/regress/issue_34225.dart.weak.expect b/pkg/front_end/testcases/regress/issue_34225.dart.weak.expect
index 2a92ec9..4598ab4 100644
--- a/pkg/front_end/testcases/regress/issue_34225.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_34225.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -22,44 +22,24 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   static set C(dynamic v) → 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 D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super core::Object::•()
     ;
   set D(dynamic v) → 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 main() → dynamic {
-  self::C* c = new self::C::•();
+  self::C c = new self::C::•();
   invalid-expression "pkg/front_end/testcases/regress/issue_34225.dart:15:5: Error: The setter 'C' isn't defined for the class 'C'.
  - 'C' is from 'pkg/front_end/testcases/regress/issue_34225.dart'.
 Try correcting the name to the name of an existing setter, or defining a setter or field named 'C'.
   c.C = 5;
     ^" in c{<unresolved>}.C = 5;
-  self::D* d = new self::D::•();
+  self::D d = new self::D::•();
   d.{self::D::D} = 5;
 }
diff --git a/pkg/front_end/testcases/regress/issue_34225.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_34225.dart.weak.modular.expect
index 2a92ec9..4598ab4 100644
--- a/pkg/front_end/testcases/regress/issue_34225.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_34225.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -22,44 +22,24 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   static set C(dynamic v) → 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 D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super core::Object::•()
     ;
   set D(dynamic v) → 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 main() → dynamic {
-  self::C* c = new self::C::•();
+  self::C c = new self::C::•();
   invalid-expression "pkg/front_end/testcases/regress/issue_34225.dart:15:5: Error: The setter 'C' isn't defined for the class 'C'.
  - 'C' is from 'pkg/front_end/testcases/regress/issue_34225.dart'.
 Try correcting the name to the name of an existing setter, or defining a setter or field named 'C'.
   c.C = 5;
     ^" in c{<unresolved>}.C = 5;
-  self::D* d = new self::D::•();
+  self::D d = new self::D::•();
   d.{self::D::D} = 5;
 }
diff --git a/pkg/front_end/testcases/regress/issue_34225.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_34225.dart.weak.outline.expect
index 5944ff5..bd191bb 100644
--- a/pkg/front_end/testcases/regress/issue_34225.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34225.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,36 +16,16 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
   static set C(dynamic v) → 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 D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
   set D(dynamic v) → 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 main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_34225.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_34225.dart.weak.transformed.expect
index 2a92ec9..4598ab4 100644
--- a/pkg/front_end/testcases/regress/issue_34225.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_34225.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -22,44 +22,24 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   static set C(dynamic v) → 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 D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super core::Object::•()
     ;
   set D(dynamic v) → 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 main() → dynamic {
-  self::C* c = new self::C::•();
+  self::C c = new self::C::•();
   invalid-expression "pkg/front_end/testcases/regress/issue_34225.dart:15:5: Error: The setter 'C' isn't defined for the class 'C'.
  - 'C' is from 'pkg/front_end/testcases/regress/issue_34225.dart'.
 Try correcting the name to the name of an existing setter, or defining a setter or field named 'C'.
   c.C = 5;
     ^" in c{<unresolved>}.C = 5;
-  self::D* d = new self::D::•();
+  self::D d = new self::D::•();
   d.{self::D::D} = 5;
 }
diff --git a/pkg/front_end/testcases/regress/issue_34291.dart b/pkg/front_end/testcases/regress/issue_34291.dart
index ee7e3f0..4011208 100644
--- a/pkg/front_end/testcases/regress/issue_34291.dart
+++ b/pkg/front_end/testcases/regress/issue_34291.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 "issue_34291_lib.dart" as lib;
 
 class B {}
diff --git a/pkg/front_end/testcases/regress/issue_34291.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_34291.dart.textual_outline.expect
index 16dbb06..0019a54 100644
--- a/pkg/front_end/testcases/regress/issue_34291.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34291.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "issue_34291_lib.dart" as lib;
 
 class B {}
diff --git a/pkg/front_end/testcases/regress/issue_34291.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_34291.dart.textual_outline_modelled.expect
index 16dbb06..0019a54 100644
--- a/pkg/front_end/testcases/regress/issue_34291.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_34291.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "issue_34291_lib.dart" as lib;
 
 class B {}
diff --git a/pkg/front_end/testcases/regress/issue_34291.dart.weak.expect b/pkg/front_end/testcases/regress/issue_34291.dart.weak.expect
index 13bbe76..e9fdd4e 100644
--- a/pkg/front_end/testcases/regress/issue_34291.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_34291.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,39 +12,19 @@
 import "org-dartlang-testcase:///issue_34291_lib.dart" as lib;
 
 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
 }
 static method foo() → invalid-type {}
 static method main() → dynamic {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self2::A*
+  synthetic constructor •() → self2::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
 }
diff --git a/pkg/front_end/testcases/regress/issue_34291.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_34291.dart.weak.modular.expect
index 13bbe76..e9fdd4e 100644
--- a/pkg/front_end/testcases/regress/issue_34291.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_34291.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,39 +12,19 @@
 import "org-dartlang-testcase:///issue_34291_lib.dart" as lib;
 
 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
 }
 static method foo() → invalid-type {}
 static method main() → dynamic {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self2::A*
+  synthetic constructor •() → self2::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
 }
diff --git a/pkg/front_end/testcases/regress/issue_34291.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_34291.dart.weak.outline.expect
index 79da717..0f59580 100644
--- a/pkg/front_end/testcases/regress/issue_34291.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34291.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,39 +12,19 @@
 import "org-dartlang-testcase:///issue_34291_lib.dart" as lib;
 
 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
 }
 static method foo() → invalid-type
   ;
 static method main() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self2::A*
+  synthetic constructor •() → self2::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
 }
diff --git a/pkg/front_end/testcases/regress/issue_34291.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_34291.dart.weak.transformed.expect
index 13bbe76..e9fdd4e 100644
--- a/pkg/front_end/testcases/regress/issue_34291.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_34291.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,39 +12,19 @@
 import "org-dartlang-testcase:///issue_34291_lib.dart" as lib;
 
 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
 }
 static method foo() → invalid-type {}
 static method main() → dynamic {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self2::A*
+  synthetic constructor •() → self2::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
 }
diff --git a/pkg/front_end/testcases/regress/issue_34291_lib.dart b/pkg/front_end/testcases/regress/issue_34291_lib.dart
index 2a07a00..a0e9344 100644
--- a/pkg/front_end/testcases/regress/issue_34291_lib.dart
+++ b/pkg/front_end/testcases/regress/issue_34291_lib.dart
@@ -1,5 +1,5 @@
 // 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 A {}
diff --git a/pkg/front_end/testcases/regress/issue_34403.dart b/pkg/front_end/testcases/regress/issue_34403.dart
index cbdf2da..37cff18 100644
--- a/pkg/front_end/testcases/regress/issue_34403.dart
+++ b/pkg/front_end/testcases/regress/issue_34403.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
+
+// @dart=2.14
+
 import 'issue_34403_lib.dart' as p;
 
 class C<T> {
diff --git a/pkg/front_end/testcases/regress/issue_34403.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_34403.dart.textual_outline.expect
index b26df927..17317b8 100644
--- a/pkg/front_end/testcases/regress/issue_34403.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34403.dart.textual_outline.expect
@@ -1,4 +1,4 @@
-// @dart = 2.9
+// @dart = 2.14
 import 'issue_34403_lib.dart' as p;
 
 class C<T> {
diff --git a/pkg/front_end/testcases/regress/issue_34403.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_34403.dart.textual_outline_modelled.expect
index b26df927..17317b8 100644
--- a/pkg/front_end/testcases/regress/issue_34403.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_34403.dart.textual_outline_modelled.expect
@@ -1,4 +1,4 @@
-// @dart = 2.9
+// @dart = 2.14
 import 'issue_34403_lib.dart' as p;
 
 class C<T> {
diff --git a/pkg/front_end/testcases/regress/issue_34403.dart.weak.expect b/pkg/front_end/testcases/regress/issue_34403.dart.weak.expect
index a31d72a..2d0471d 100644
--- a/pkg/front_end/testcases/regress/issue_34403.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_34403.dart.weak.expect
@@ -1,115 +1,115 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:16:14: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:18:14: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var c1 = C.bar<int>();
 //              ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:18:18: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:20:18: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var c2 = new C.bar<int>();
 //                  ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:20:13: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_34403.dart:22:13: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 //   var c3 = C<String>.bar<int>();
 //             ^
-// pkg/front_end/testcases/regress/issue_34403.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_34403.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:20:22: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:22:22: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var c3 = C<String>.bar<int>();
 //                      ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:22:26: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:24:26: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var c4 = new C<String>.bar<int>();
 //                          ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:25:16: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:27:16: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const d1 = D.foo<int>();
 //                ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:27:22: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:29:22: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const d2 = const D.foo<int>();
 //                      ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:29:15: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_34403.dart:31:15: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 //   const d3 = D<String>.foo<int>();
 //               ^
-// pkg/front_end/testcases/regress/issue_34403.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_34403.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:29:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:31:24: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const d3 = D<String>.foo<int>();
 //                        ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:31:30: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:33:30: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const d4 = const D<String>.foo<int>();
 //                              ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:34:16: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:36:16: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var e1 = p.E.bar<int>();
 //                ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:36:20: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:38:20: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var e2 = new p.E.bar<int>();
 //                    ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:38:15: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_34403.dart:40:15: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 //   var e3 = p.E<String>.bar<int>();
 //               ^
-// pkg/front_end/testcases/regress/issue_34403.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_34403.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:38:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:40:24: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var e3 = p.E<String>.bar<int>();
 //                        ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:40:28: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:42:28: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var e4 = new p.E<String>.bar<int>();
 //                            ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:43:18: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:45:18: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const f1 = p.F.foo<int>();
 //                  ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:45:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:47:24: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const f2 = const p.F.foo<int>();
 //                        ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:47:17: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_34403.dart:49:17: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 //   const f3 = p.F<String>.foo<int>();
 //                 ^
-// pkg/front_end/testcases/regress/issue_34403.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_34403.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:47:26: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:49:26: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const f3 = p.F<String>.foo<int>();
 //                          ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:49:32: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:51:32: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const f4 = const p.F<String>.foo<int>();
 //                                ^^^
@@ -120,96 +120,56 @@
 
 import "org-dartlang-testcase:///issue_34403_lib.dart" as p;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  constructor bar() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → 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
 }
-class D<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const constructor foo() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → self::D<self::D::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() → dynamic {
-  self::C<core::int*>* c1 = new self::C::bar<core::int*>();
-  c1.{self::C::toString}(){() →* core::String*};
-  self::C<core::int*>* c2 = new self::C::bar<core::int*>();
-  c2.{self::C::toString}(){() →* core::String*};
-  self::C<core::int*>* c3 = new self::C::bar<core::int*>();
-  c3.{self::C::toString}(){() →* core::String*};
-  self::C<core::String*>* c4 = new self::C::bar<core::String*>();
-  c4.{self::C::toString}(){() →* core::String*};
-  #C1.{self::D::toString}(){() →* core::String*};
-  #C1.{self::D::toString}(){() →* core::String*};
-  #C1.{self::D::toString}(){() →* core::String*};
-  #C2.{self::D::toString}(){() →* core::String*};
-  iss::E<core::int*>* e1 = new iss::E::bar<core::int*>();
-  e1.{iss::E::toString}(){() →* core::String*};
-  iss::E<dynamic>* e2 = new iss::E::bar<dynamic>();
-  e2.{iss::E::toString}(){() →* core::String*};
-  iss::E<core::int*>* e3 = new iss::E::bar<core::int*>();
-  e3.{iss::E::toString}(){() →* core::String*};
-  iss::E<core::String*>* e4 = new iss::E::bar<core::String*>();
-  e4.{iss::E::toString}(){() →* core::String*};
-  #C3.{iss::F::toString}(){() →* core::String*};
-  #C4.{iss::F::toString}(){() →* core::String*};
-  #C3.{iss::F::toString}(){() →* core::String*};
-  #C5.{iss::F::toString}(){() →* core::String*};
+  self::C<core::int> c1 = new self::C::bar<core::int>();
+  c1.{core::Object::toString}(){() → core::String};
+  self::C<core::int> c2 = new self::C::bar<core::int>();
+  c2.{core::Object::toString}(){() → core::String};
+  self::C<core::int> c3 = new self::C::bar<core::int>();
+  c3.{core::Object::toString}(){() → core::String};
+  self::C<core::String> c4 = new self::C::bar<core::String>();
+  c4.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C2.{core::Object::toString}(){() → core::String};
+  iss::E<core::int> e1 = new iss::E::bar<core::int>();
+  e1.{core::Object::toString}(){() → core::String};
+  iss::E<dynamic> e2 = new iss::E::bar<dynamic>();
+  e2.{core::Object::toString}(){() → core::String};
+  iss::E<core::int> e3 = new iss::E::bar<core::int>();
+  e3.{core::Object::toString}(){() → core::String};
+  iss::E<core::String> e4 = new iss::E::bar<core::String>();
+  e4.{core::Object::toString}(){() → core::String};
+  #C3.{core::Object::toString}(){() → core::String};
+  #C4.{core::Object::toString}(){() → core::String};
+  #C3.{core::Object::toString}(){() → core::String};
+  #C5.{core::Object::toString}(){() → core::String};
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as iss;
 import "dart:core" as core;
 
-class E<T extends core::Object* = dynamic> extends core::Object {
-  constructor bar() → iss::E<iss::E::T*>*
+class E<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → iss::E<iss::E::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 F<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const constructor foo() → iss::F<iss::F::T*>*
+class F<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → iss::F<iss::F::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
 }
 
 constants  {
@@ -223,6 +183,6 @@
 
 Constructor coverage from constants:
 org-dartlang-testcase:///issue_34403.dart:
-- D.foo (from org-dartlang-testcase:///issue_34403.dart:12:9)
+- D.foo (from org-dartlang-testcase:///issue_34403.dart:14:9)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
-- F.foo (from org-dartlang-testcase:///issue_34403_lib.dart:10:9)
+- F.foo (from org-dartlang-testcase:///issue_34403_lib.dart:12:9)
diff --git a/pkg/front_end/testcases/regress/issue_34403.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_34403.dart.weak.modular.expect
index a31d72a..2d0471d 100644
--- a/pkg/front_end/testcases/regress/issue_34403.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_34403.dart.weak.modular.expect
@@ -1,115 +1,115 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:16:14: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:18:14: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var c1 = C.bar<int>();
 //              ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:18:18: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:20:18: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var c2 = new C.bar<int>();
 //                  ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:20:13: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_34403.dart:22:13: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 //   var c3 = C<String>.bar<int>();
 //             ^
-// pkg/front_end/testcases/regress/issue_34403.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_34403.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:20:22: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:22:22: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var c3 = C<String>.bar<int>();
 //                      ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:22:26: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:24:26: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var c4 = new C<String>.bar<int>();
 //                          ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:25:16: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:27:16: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const d1 = D.foo<int>();
 //                ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:27:22: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:29:22: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const d2 = const D.foo<int>();
 //                      ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:29:15: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_34403.dart:31:15: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 //   const d3 = D<String>.foo<int>();
 //               ^
-// pkg/front_end/testcases/regress/issue_34403.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_34403.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:29:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:31:24: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const d3 = D<String>.foo<int>();
 //                        ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:31:30: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:33:30: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const d4 = const D<String>.foo<int>();
 //                              ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:34:16: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:36:16: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var e1 = p.E.bar<int>();
 //                ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:36:20: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:38:20: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var e2 = new p.E.bar<int>();
 //                    ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:38:15: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_34403.dart:40:15: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 //   var e3 = p.E<String>.bar<int>();
 //               ^
-// pkg/front_end/testcases/regress/issue_34403.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_34403.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:38:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:40:24: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var e3 = p.E<String>.bar<int>();
 //                        ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:40:28: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:42:28: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var e4 = new p.E<String>.bar<int>();
 //                            ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:43:18: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:45:18: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const f1 = p.F.foo<int>();
 //                  ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:45:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:47:24: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const f2 = const p.F.foo<int>();
 //                        ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:47:17: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_34403.dart:49:17: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 //   const f3 = p.F<String>.foo<int>();
 //                 ^
-// pkg/front_end/testcases/regress/issue_34403.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_34403.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:47:26: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:49:26: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const f3 = p.F<String>.foo<int>();
 //                          ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:49:32: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:51:32: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const f4 = const p.F<String>.foo<int>();
 //                                ^^^
@@ -120,96 +120,56 @@
 
 import "org-dartlang-testcase:///issue_34403_lib.dart" as p;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  constructor bar() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → 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
 }
-class D<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const constructor foo() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → self::D<self::D::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() → dynamic {
-  self::C<core::int*>* c1 = new self::C::bar<core::int*>();
-  c1.{self::C::toString}(){() →* core::String*};
-  self::C<core::int*>* c2 = new self::C::bar<core::int*>();
-  c2.{self::C::toString}(){() →* core::String*};
-  self::C<core::int*>* c3 = new self::C::bar<core::int*>();
-  c3.{self::C::toString}(){() →* core::String*};
-  self::C<core::String*>* c4 = new self::C::bar<core::String*>();
-  c4.{self::C::toString}(){() →* core::String*};
-  #C1.{self::D::toString}(){() →* core::String*};
-  #C1.{self::D::toString}(){() →* core::String*};
-  #C1.{self::D::toString}(){() →* core::String*};
-  #C2.{self::D::toString}(){() →* core::String*};
-  iss::E<core::int*>* e1 = new iss::E::bar<core::int*>();
-  e1.{iss::E::toString}(){() →* core::String*};
-  iss::E<dynamic>* e2 = new iss::E::bar<dynamic>();
-  e2.{iss::E::toString}(){() →* core::String*};
-  iss::E<core::int*>* e3 = new iss::E::bar<core::int*>();
-  e3.{iss::E::toString}(){() →* core::String*};
-  iss::E<core::String*>* e4 = new iss::E::bar<core::String*>();
-  e4.{iss::E::toString}(){() →* core::String*};
-  #C3.{iss::F::toString}(){() →* core::String*};
-  #C4.{iss::F::toString}(){() →* core::String*};
-  #C3.{iss::F::toString}(){() →* core::String*};
-  #C5.{iss::F::toString}(){() →* core::String*};
+  self::C<core::int> c1 = new self::C::bar<core::int>();
+  c1.{core::Object::toString}(){() → core::String};
+  self::C<core::int> c2 = new self::C::bar<core::int>();
+  c2.{core::Object::toString}(){() → core::String};
+  self::C<core::int> c3 = new self::C::bar<core::int>();
+  c3.{core::Object::toString}(){() → core::String};
+  self::C<core::String> c4 = new self::C::bar<core::String>();
+  c4.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C2.{core::Object::toString}(){() → core::String};
+  iss::E<core::int> e1 = new iss::E::bar<core::int>();
+  e1.{core::Object::toString}(){() → core::String};
+  iss::E<dynamic> e2 = new iss::E::bar<dynamic>();
+  e2.{core::Object::toString}(){() → core::String};
+  iss::E<core::int> e3 = new iss::E::bar<core::int>();
+  e3.{core::Object::toString}(){() → core::String};
+  iss::E<core::String> e4 = new iss::E::bar<core::String>();
+  e4.{core::Object::toString}(){() → core::String};
+  #C3.{core::Object::toString}(){() → core::String};
+  #C4.{core::Object::toString}(){() → core::String};
+  #C3.{core::Object::toString}(){() → core::String};
+  #C5.{core::Object::toString}(){() → core::String};
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as iss;
 import "dart:core" as core;
 
-class E<T extends core::Object* = dynamic> extends core::Object {
-  constructor bar() → iss::E<iss::E::T*>*
+class E<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → iss::E<iss::E::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 F<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const constructor foo() → iss::F<iss::F::T*>*
+class F<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → iss::F<iss::F::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
 }
 
 constants  {
@@ -223,6 +183,6 @@
 
 Constructor coverage from constants:
 org-dartlang-testcase:///issue_34403.dart:
-- D.foo (from org-dartlang-testcase:///issue_34403.dart:12:9)
+- D.foo (from org-dartlang-testcase:///issue_34403.dart:14:9)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
-- F.foo (from org-dartlang-testcase:///issue_34403_lib.dart:10:9)
+- F.foo (from org-dartlang-testcase:///issue_34403_lib.dart:12:9)
diff --git a/pkg/front_end/testcases/regress/issue_34403.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_34403.dart.weak.outline.expect
index 748f874..23f446b 100644
--- a/pkg/front_end/testcases/regress/issue_34403.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34403.dart.weak.outline.expect
@@ -1,71 +1,31 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "org-dartlang-testcase:///issue_34403_lib.dart" as p;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  constructor bar() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → 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
 }
-class D<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const constructor foo() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → self::D<self::D::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() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
-class E<T extends core::Object* = dynamic> extends core::Object {
-  constructor bar() → self2::E<self2::E::T*>*
+class E<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → self2::E<self2::E::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 F<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const constructor foo() → self2::F<self2::F::T*>*
+class F<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → self2::F<self2::F::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
 }
diff --git a/pkg/front_end/testcases/regress/issue_34403.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_34403.dart.weak.transformed.expect
index a31d72a..2d0471d 100644
--- a/pkg/front_end/testcases/regress/issue_34403.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_34403.dart.weak.transformed.expect
@@ -1,115 +1,115 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:16:14: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:18:14: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var c1 = C.bar<int>();
 //              ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:18:18: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:20:18: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var c2 = new C.bar<int>();
 //                  ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:20:13: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_34403.dart:22:13: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 //   var c3 = C<String>.bar<int>();
 //             ^
-// pkg/front_end/testcases/regress/issue_34403.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_34403.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:20:22: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:22:22: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var c3 = C<String>.bar<int>();
 //                      ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:22:26: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:24:26: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var c4 = new C<String>.bar<int>();
 //                          ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:25:16: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:27:16: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const d1 = D.foo<int>();
 //                ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:27:22: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:29:22: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const d2 = const D.foo<int>();
 //                      ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:29:15: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_34403.dart:31:15: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 //   const d3 = D<String>.foo<int>();
 //               ^
-// pkg/front_end/testcases/regress/issue_34403.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_34403.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:29:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:31:24: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const d3 = D<String>.foo<int>();
 //                        ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:31:30: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:33:30: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const d4 = const D<String>.foo<int>();
 //                              ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:34:16: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:36:16: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var e1 = p.E.bar<int>();
 //                ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:36:20: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:38:20: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var e2 = new p.E.bar<int>();
 //                    ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:38:15: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_34403.dart:40:15: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 //   var e3 = p.E<String>.bar<int>();
 //               ^
-// pkg/front_end/testcases/regress/issue_34403.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_34403.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:38:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:40:24: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var e3 = p.E<String>.bar<int>();
 //                        ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:40:28: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:42:28: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   var e4 = new p.E<String>.bar<int>();
 //                            ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:43:18: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:45:18: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const f1 = p.F.foo<int>();
 //                  ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:45:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:47:24: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const f2 = const p.F.foo<int>();
 //                        ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:47:17: Error: The 'constructor-tearoffs' language feature is disabled for this library.
+// pkg/front_end/testcases/regress/issue_34403.dart:49:17: Error: The 'constructor-tearoffs' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
 //   const f3 = p.F<String>.foo<int>();
 //                 ^
-// pkg/front_end/testcases/regress/issue_34403.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
+// pkg/front_end/testcases/regress/issue_34403.dart:5:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
+// // @dart=2.14
+// ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:47:26: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:49:26: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const f3 = p.F<String>.foo<int>();
 //                          ^^^
 //
-// pkg/front_end/testcases/regress/issue_34403.dart:49:32: Error: A constructor invocation can't have type arguments after the constructor name.
+// pkg/front_end/testcases/regress/issue_34403.dart:51:32: Error: A constructor invocation can't have type arguments after the constructor name.
 // Try removing the type arguments or placing them after the class name.
 //   const f4 = const p.F<String>.foo<int>();
 //                                ^^^
@@ -120,96 +120,56 @@
 
 import "org-dartlang-testcase:///issue_34403_lib.dart" as p;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  constructor bar() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → 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
 }
-class D<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const constructor foo() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → self::D<self::D::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() → dynamic {
-  self::C<core::int*>* c1 = new self::C::bar<core::int*>();
-  c1.{self::C::toString}(){() →* core::String*};
-  self::C<core::int*>* c2 = new self::C::bar<core::int*>();
-  c2.{self::C::toString}(){() →* core::String*};
-  self::C<core::int*>* c3 = new self::C::bar<core::int*>();
-  c3.{self::C::toString}(){() →* core::String*};
-  self::C<core::String*>* c4 = new self::C::bar<core::String*>();
-  c4.{self::C::toString}(){() →* core::String*};
-  #C1.{self::D::toString}(){() →* core::String*};
-  #C1.{self::D::toString}(){() →* core::String*};
-  #C1.{self::D::toString}(){() →* core::String*};
-  #C2.{self::D::toString}(){() →* core::String*};
-  iss::E<core::int*>* e1 = new iss::E::bar<core::int*>();
-  e1.{iss::E::toString}(){() →* core::String*};
-  iss::E<dynamic>* e2 = new iss::E::bar<dynamic>();
-  e2.{iss::E::toString}(){() →* core::String*};
-  iss::E<core::int*>* e3 = new iss::E::bar<core::int*>();
-  e3.{iss::E::toString}(){() →* core::String*};
-  iss::E<core::String*>* e4 = new iss::E::bar<core::String*>();
-  e4.{iss::E::toString}(){() →* core::String*};
-  #C3.{iss::F::toString}(){() →* core::String*};
-  #C4.{iss::F::toString}(){() →* core::String*};
-  #C3.{iss::F::toString}(){() →* core::String*};
-  #C5.{iss::F::toString}(){() →* core::String*};
+  self::C<core::int> c1 = new self::C::bar<core::int>();
+  c1.{core::Object::toString}(){() → core::String};
+  self::C<core::int> c2 = new self::C::bar<core::int>();
+  c2.{core::Object::toString}(){() → core::String};
+  self::C<core::int> c3 = new self::C::bar<core::int>();
+  c3.{core::Object::toString}(){() → core::String};
+  self::C<core::String> c4 = new self::C::bar<core::String>();
+  c4.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C2.{core::Object::toString}(){() → core::String};
+  iss::E<core::int> e1 = new iss::E::bar<core::int>();
+  e1.{core::Object::toString}(){() → core::String};
+  iss::E<dynamic> e2 = new iss::E::bar<dynamic>();
+  e2.{core::Object::toString}(){() → core::String};
+  iss::E<core::int> e3 = new iss::E::bar<core::int>();
+  e3.{core::Object::toString}(){() → core::String};
+  iss::E<core::String> e4 = new iss::E::bar<core::String>();
+  e4.{core::Object::toString}(){() → core::String};
+  #C3.{core::Object::toString}(){() → core::String};
+  #C4.{core::Object::toString}(){() → core::String};
+  #C3.{core::Object::toString}(){() → core::String};
+  #C5.{core::Object::toString}(){() → core::String};
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as iss;
 import "dart:core" as core;
 
-class E<T extends core::Object* = dynamic> extends core::Object {
-  constructor bar() → iss::E<iss::E::T*>*
+class E<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → iss::E<iss::E::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 F<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const constructor foo() → iss::F<iss::F::T*>*
+class F<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → iss::F<iss::F::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
 }
 
 constants  {
@@ -223,6 +183,6 @@
 
 Constructor coverage from constants:
 org-dartlang-testcase:///issue_34403.dart:
-- D.foo (from org-dartlang-testcase:///issue_34403.dart:12:9)
+- D.foo (from org-dartlang-testcase:///issue_34403.dart:14:9)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
-- F.foo (from org-dartlang-testcase:///issue_34403_lib.dart:10:9)
+- F.foo (from org-dartlang-testcase:///issue_34403_lib.dart:12:9)
diff --git a/pkg/front_end/testcases/regress/issue_34403_2.dart b/pkg/front_end/testcases/regress/issue_34403_2.dart
new file mode 100644
index 0000000..157dbf0
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_34403_2.dart
@@ -0,0 +1,51 @@
+// 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.
+
+import 'issue_34403_lib.dart' as p;
+
+class C<T> {
+  C.bar();
+}
+
+class D<T> {
+  const D.foo();
+}
+
+main() {
+  var c1 = C.bar<int>();
+  c1.toString();
+  var c2 = new C.bar<int>();
+  c2.toString();
+  var c3 = C<String>.bar<int>();
+  c3.toString();
+  var c4 = new C<String>.bar<int>();
+  c4.toString();
+
+  const d1 = D.foo<int>();
+  d1.toString();
+  const d2 = const D.foo<int>();
+  d2.toString();
+  const d3 = D<String>.foo<int>();
+  d3.toString();
+  const d4 = const D<String>.foo<int>();
+  d4.toString();
+
+  var e1 = p.E.bar<int>();
+  e1.toString();
+  var e2 = new p.E.bar<int>();
+  e2.toString();
+  var e3 = p.E<String>.bar<int>();
+  e3.toString();
+  var e4 = new p.E<String>.bar<int>();
+  e4.toString();
+
+  const f1 = p.F.foo<int>();
+  f1.toString();
+  const f2 = const p.F.foo<int>();
+  f2.toString();
+  const f3 = p.F<String>.foo<int>();
+  f3.toString();
+  const f4 = const p.F<String>.foo<int>();
+  f4.toString();
+}
diff --git a/pkg/front_end/testcases/regress/issue_34403_2.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_34403_2.dart.textual_outline.expect
new file mode 100644
index 0000000..6ec803e
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_34403_2.dart.textual_outline.expect
@@ -0,0 +1,11 @@
+import 'issue_34403_lib.dart' as p;
+
+class C<T> {
+  C.bar();
+}
+
+class D<T> {
+  const D.foo();
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/regress/issue_34403_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_34403_2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..6ec803e
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_34403_2.dart.textual_outline_modelled.expect
@@ -0,0 +1,11 @@
+import 'issue_34403_lib.dart' as p;
+
+class C<T> {
+  C.bar();
+}
+
+class D<T> {
+  const D.foo();
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/regress/issue_34403_2.dart.weak.expect b/pkg/front_end/testcases/regress/issue_34403_2.dart.weak.expect
new file mode 100644
index 0000000..bb6af05
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_34403_2.dart.weak.expect
@@ -0,0 +1,156 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:16:14: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var c1 = C.bar<int>();
+//              ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:18:18: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var c2 = new C.bar<int>();
+//                  ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:20:22: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var c3 = C<String>.bar<int>();
+//                      ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:22:26: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var c4 = new C<String>.bar<int>();
+//                          ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:25:16: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const d1 = D.foo<int>();
+//                ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:27:22: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const d2 = const D.foo<int>();
+//                      ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:29:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const d3 = D<String>.foo<int>();
+//                        ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:31:30: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const d4 = const D<String>.foo<int>();
+//                              ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:34:16: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var e1 = p.E.bar<int>();
+//                ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:36:20: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var e2 = new p.E.bar<int>();
+//                    ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:38:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var e3 = p.E<String>.bar<int>();
+//                        ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:40:28: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var e4 = new p.E<String>.bar<int>();
+//                            ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:43:18: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const f1 = p.F.foo<int>();
+//                  ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:45:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const f2 = const p.F.foo<int>();
+//                        ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:47:26: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const f3 = p.F<String>.foo<int>();
+//                          ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:49:32: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const f4 = const p.F<String>.foo<int>();
+//                                ^^^
+//
+import self as self;
+import "dart:core" as core;
+import "issue_34403_lib.dart" as iss;
+
+import "org-dartlang-testcase:///issue_34403_lib.dart" as p;
+
+class C<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → self::C<self::C::T%>
+    : super core::Object::•()
+    ;
+}
+class D<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → self::D<self::D::T%>
+    : super core::Object::•()
+    ;
+}
+static method main() → dynamic {
+  self::C<core::int> c1 = new self::C::bar<core::int>();
+  c1.{core::Object::toString}(){() → core::String};
+  self::C<core::int> c2 = new self::C::bar<core::int>();
+  c2.{core::Object::toString}(){() → core::String};
+  self::C<core::int> c3 = new self::C::bar<core::int>();
+  c3.{core::Object::toString}(){() → core::String};
+  self::C<core::String> c4 = new self::C::bar<core::String>();
+  c4.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C2.{core::Object::toString}(){() → core::String};
+  iss::E<core::int> e1 = new iss::E::bar<core::int>();
+  e1.{core::Object::toString}(){() → core::String};
+  iss::E<dynamic> e2 = new iss::E::bar<dynamic>();
+  e2.{core::Object::toString}(){() → core::String};
+  iss::E<core::int> e3 = new iss::E::bar<core::int>();
+  e3.{core::Object::toString}(){() → core::String};
+  iss::E<core::String> e4 = new iss::E::bar<core::String>();
+  e4.{core::Object::toString}(){() → core::String};
+  #C3.{core::Object::toString}(){() → core::String};
+  #C4.{core::Object::toString}(){() → core::String};
+  #C3.{core::Object::toString}(){() → core::String};
+  #C5.{core::Object::toString}(){() → core::String};
+}
+
+library /*isNonNullableByDefault*/;
+import self as iss;
+import "dart:core" as core;
+
+class E<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → iss::E<iss::E::T%>
+    : super core::Object::•()
+    ;
+}
+class F<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → iss::F<iss::F::T%>
+    : super core::Object::•()
+    ;
+}
+
+constants  {
+  #C1 = self::D<core::int*> {}
+  #C2 = self::D<core::String*> {}
+  #C3 = iss::F<core::int*> {}
+  #C4 = iss::F<dynamic> {}
+  #C5 = iss::F<core::String*> {}
+}
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_34403_2.dart:
+- D.foo (from org-dartlang-testcase:///issue_34403_2.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- F.foo (from org-dartlang-testcase:///issue_34403_lib.dart:12:9)
diff --git a/pkg/front_end/testcases/regress/issue_34403_2.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_34403_2.dart.weak.modular.expect
new file mode 100644
index 0000000..bb6af05
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_34403_2.dart.weak.modular.expect
@@ -0,0 +1,156 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:16:14: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var c1 = C.bar<int>();
+//              ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:18:18: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var c2 = new C.bar<int>();
+//                  ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:20:22: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var c3 = C<String>.bar<int>();
+//                      ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:22:26: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var c4 = new C<String>.bar<int>();
+//                          ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:25:16: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const d1 = D.foo<int>();
+//                ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:27:22: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const d2 = const D.foo<int>();
+//                      ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:29:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const d3 = D<String>.foo<int>();
+//                        ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:31:30: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const d4 = const D<String>.foo<int>();
+//                              ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:34:16: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var e1 = p.E.bar<int>();
+//                ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:36:20: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var e2 = new p.E.bar<int>();
+//                    ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:38:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var e3 = p.E<String>.bar<int>();
+//                        ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:40:28: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var e4 = new p.E<String>.bar<int>();
+//                            ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:43:18: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const f1 = p.F.foo<int>();
+//                  ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:45:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const f2 = const p.F.foo<int>();
+//                        ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:47:26: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const f3 = p.F<String>.foo<int>();
+//                          ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:49:32: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const f4 = const p.F<String>.foo<int>();
+//                                ^^^
+//
+import self as self;
+import "dart:core" as core;
+import "issue_34403_lib.dart" as iss;
+
+import "org-dartlang-testcase:///issue_34403_lib.dart" as p;
+
+class C<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → self::C<self::C::T%>
+    : super core::Object::•()
+    ;
+}
+class D<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → self::D<self::D::T%>
+    : super core::Object::•()
+    ;
+}
+static method main() → dynamic {
+  self::C<core::int> c1 = new self::C::bar<core::int>();
+  c1.{core::Object::toString}(){() → core::String};
+  self::C<core::int> c2 = new self::C::bar<core::int>();
+  c2.{core::Object::toString}(){() → core::String};
+  self::C<core::int> c3 = new self::C::bar<core::int>();
+  c3.{core::Object::toString}(){() → core::String};
+  self::C<core::String> c4 = new self::C::bar<core::String>();
+  c4.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C2.{core::Object::toString}(){() → core::String};
+  iss::E<core::int> e1 = new iss::E::bar<core::int>();
+  e1.{core::Object::toString}(){() → core::String};
+  iss::E<dynamic> e2 = new iss::E::bar<dynamic>();
+  e2.{core::Object::toString}(){() → core::String};
+  iss::E<core::int> e3 = new iss::E::bar<core::int>();
+  e3.{core::Object::toString}(){() → core::String};
+  iss::E<core::String> e4 = new iss::E::bar<core::String>();
+  e4.{core::Object::toString}(){() → core::String};
+  #C3.{core::Object::toString}(){() → core::String};
+  #C4.{core::Object::toString}(){() → core::String};
+  #C3.{core::Object::toString}(){() → core::String};
+  #C5.{core::Object::toString}(){() → core::String};
+}
+
+library /*isNonNullableByDefault*/;
+import self as iss;
+import "dart:core" as core;
+
+class E<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → iss::E<iss::E::T%>
+    : super core::Object::•()
+    ;
+}
+class F<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → iss::F<iss::F::T%>
+    : super core::Object::•()
+    ;
+}
+
+constants  {
+  #C1 = self::D<core::int*> {}
+  #C2 = self::D<core::String*> {}
+  #C3 = iss::F<core::int*> {}
+  #C4 = iss::F<dynamic> {}
+  #C5 = iss::F<core::String*> {}
+}
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_34403_2.dart:
+- D.foo (from org-dartlang-testcase:///issue_34403_2.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- F.foo (from org-dartlang-testcase:///issue_34403_lib.dart:12:9)
diff --git a/pkg/front_end/testcases/regress/issue_34403_2.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_34403_2.dart.weak.outline.expect
new file mode 100644
index 0000000..23f446b
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_34403_2.dart.weak.outline.expect
@@ -0,0 +1,31 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "org-dartlang-testcase:///issue_34403_lib.dart" as p;
+
+class C<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → self::C<self::C::T%>
+    ;
+}
+class D<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → self::D<self::D::T%>
+    : super core::Object::•()
+    ;
+}
+static method main() → dynamic
+  ;
+
+library /*isNonNullableByDefault*/;
+import self as self2;
+import "dart:core" as core;
+
+class E<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → self2::E<self2::E::T%>
+    ;
+}
+class F<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → self2::F<self2::F::T%>
+    : super core::Object::•()
+    ;
+}
diff --git a/pkg/front_end/testcases/regress/issue_34403_2.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_34403_2.dart.weak.transformed.expect
new file mode 100644
index 0000000..bb6af05
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_34403_2.dart.weak.transformed.expect
@@ -0,0 +1,156 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:16:14: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var c1 = C.bar<int>();
+//              ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:18:18: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var c2 = new C.bar<int>();
+//                  ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:20:22: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var c3 = C<String>.bar<int>();
+//                      ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:22:26: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var c4 = new C<String>.bar<int>();
+//                          ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:25:16: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const d1 = D.foo<int>();
+//                ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:27:22: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const d2 = const D.foo<int>();
+//                      ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:29:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const d3 = D<String>.foo<int>();
+//                        ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:31:30: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const d4 = const D<String>.foo<int>();
+//                              ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:34:16: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var e1 = p.E.bar<int>();
+//                ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:36:20: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var e2 = new p.E.bar<int>();
+//                    ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:38:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var e3 = p.E<String>.bar<int>();
+//                        ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:40:28: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   var e4 = new p.E<String>.bar<int>();
+//                            ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:43:18: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const f1 = p.F.foo<int>();
+//                  ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:45:24: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const f2 = const p.F.foo<int>();
+//                        ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:47:26: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const f3 = p.F<String>.foo<int>();
+//                          ^^^
+//
+// pkg/front_end/testcases/regress/issue_34403_2.dart:49:32: Error: A constructor invocation can't have type arguments after the constructor name.
+// Try removing the type arguments or placing them after the class name.
+//   const f4 = const p.F<String>.foo<int>();
+//                                ^^^
+//
+import self as self;
+import "dart:core" as core;
+import "issue_34403_lib.dart" as iss;
+
+import "org-dartlang-testcase:///issue_34403_lib.dart" as p;
+
+class C<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → self::C<self::C::T%>
+    : super core::Object::•()
+    ;
+}
+class D<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → self::D<self::D::T%>
+    : super core::Object::•()
+    ;
+}
+static method main() → dynamic {
+  self::C<core::int> c1 = new self::C::bar<core::int>();
+  c1.{core::Object::toString}(){() → core::String};
+  self::C<core::int> c2 = new self::C::bar<core::int>();
+  c2.{core::Object::toString}(){() → core::String};
+  self::C<core::int> c3 = new self::C::bar<core::int>();
+  c3.{core::Object::toString}(){() → core::String};
+  self::C<core::String> c4 = new self::C::bar<core::String>();
+  c4.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C1.{core::Object::toString}(){() → core::String};
+  #C2.{core::Object::toString}(){() → core::String};
+  iss::E<core::int> e1 = new iss::E::bar<core::int>();
+  e1.{core::Object::toString}(){() → core::String};
+  iss::E<dynamic> e2 = new iss::E::bar<dynamic>();
+  e2.{core::Object::toString}(){() → core::String};
+  iss::E<core::int> e3 = new iss::E::bar<core::int>();
+  e3.{core::Object::toString}(){() → core::String};
+  iss::E<core::String> e4 = new iss::E::bar<core::String>();
+  e4.{core::Object::toString}(){() → core::String};
+  #C3.{core::Object::toString}(){() → core::String};
+  #C4.{core::Object::toString}(){() → core::String};
+  #C3.{core::Object::toString}(){() → core::String};
+  #C5.{core::Object::toString}(){() → core::String};
+}
+
+library /*isNonNullableByDefault*/;
+import self as iss;
+import "dart:core" as core;
+
+class E<T extends core::Object? = dynamic> extends core::Object {
+  constructor bar() → iss::E<iss::E::T%>
+    : super core::Object::•()
+    ;
+}
+class F<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor foo() → iss::F<iss::F::T%>
+    : super core::Object::•()
+    ;
+}
+
+constants  {
+  #C1 = self::D<core::int*> {}
+  #C2 = self::D<core::String*> {}
+  #C3 = iss::F<core::int*> {}
+  #C4 = iss::F<dynamic> {}
+  #C5 = iss::F<core::String*> {}
+}
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_34403_2.dart:
+- D.foo (from org-dartlang-testcase:///issue_34403_2.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- F.foo (from org-dartlang-testcase:///issue_34403_lib.dart:12:9)
diff --git a/pkg/front_end/testcases/regress/issue_34403_2_lib.dart b/pkg/front_end/testcases/regress/issue_34403_2_lib.dart
new file mode 100644
index 0000000..51e0085
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_34403_2_lib.dart
@@ -0,0 +1,11 @@
+// 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.
+
+class E<T> {
+  E.bar();
+}
+
+class F<T> {
+  const F.foo();
+}
diff --git a/pkg/front_end/testcases/regress/issue_34403_lib.dart b/pkg/front_end/testcases/regress/issue_34403_lib.dart
index 0a78e41..4253297 100644
--- a/pkg/front_end/testcases/regress/issue_34403_lib.dart
+++ b/pkg/front_end/testcases/regress/issue_34403_lib.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
+
+// @dart=2.14
+
 class E<T> {
   E.bar();
 }
diff --git a/pkg/front_end/testcases/regress/issue_34498.dart b/pkg/front_end/testcases/regress/issue_34498.dart
index 0880816..aec52e6 100644
--- a/pkg/front_end/testcases/regress/issue_34498.dart
+++ b/pkg/front_end/testcases/regress/issue_34498.dart
@@ -1,11 +1,11 @@
 // 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 'issue_34498_lib.dart' as lib;
 
 class A {
-  lib.MyClass get lib => null; // (1)
+  lib.MyClass? get lib => null; // (1)
 
   foo foo() {}
 
@@ -14,7 +14,7 @@
 
 class B extends A {}
 
-final A a = null;
+final A? a = null;
 
 class C<T> {
   T<String> foo() {}
diff --git a/pkg/front_end/testcases/regress/issue_34498.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_34498.dart.textual_outline.expect
index 5522b80..99b31c4 100644
--- a/pkg/front_end/testcases/regress/issue_34498.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34498.dart.textual_outline.expect
@@ -1,15 +1,14 @@
-// @dart = 2.9
 import 'issue_34498_lib.dart' as lib;
 
 class A {
-  lib.MyClass get lib => null;
+  lib.MyClass? get lib => null;
   foo foo() {}
   Missing bar() {}
 }
 
 class B extends A {}
 
-final A a = null;
+final A? a = null;
 
 class C<T> {
   T<String> foo() {}
diff --git a/pkg/front_end/testcases/regress/issue_34498.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_34498.dart.textual_outline_modelled.expect
index b84c73c..e1b064c 100644
--- a/pkg/front_end/testcases/regress/issue_34498.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_34498.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 import 'issue_34498_lib.dart' as lib;
 
 class A {
   Missing bar() {}
   foo foo() {}
-  lib.MyClass get lib => null;
+  lib.MyClass? get lib => null;
 }
 
 class B extends A {}
@@ -13,5 +12,5 @@
   T<String> foo() {}
 }
 
-final A a = null;
+final A? a = null;
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_34498.dart.weak.expect b/pkg/front_end/testcases/regress/issue_34498.dart.weak.expect
index fa054b4..6cdd190 100644
--- a/pkg/front_end/testcases/regress/issue_34498.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_34498.dart.weak.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
 // pkg/front_end/testcases/regress/issue_34498.dart:8:3: Error: 'lib.MyClass' can't be used as a type because 'lib' doesn't refer to an import prefix.
-//   lib.MyClass get lib => null; // (1)
+//   lib.MyClass? get lib => null; // (1)
 //   ^^^^^^^^^^^
 //
 // pkg/front_end/testcases/regress/issue_34498.dart:10:3: Error: 'foo' isn't a type.
@@ -28,64 +28,34 @@
 import "org-dartlang-testcase:///issue_34498_lib.dart" as lib;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   get lib() → invalid-type
     return null;
   method foo() → invalid-type {}
   method bar() → 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
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
 }
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
   method foo() → 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 final field self::A* a = null;
+static final field self::A? a = null;
 static method main() → dynamic {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class MyClass extends core::Object {
-  synthetic constructor •() → self2::MyClass*
+  synthetic constructor •() → self2::MyClass
     : 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/regress/issue_34498.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_34498.dart.weak.modular.expect
index fa054b4..6cdd190 100644
--- a/pkg/front_end/testcases/regress/issue_34498.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_34498.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
 // pkg/front_end/testcases/regress/issue_34498.dart:8:3: Error: 'lib.MyClass' can't be used as a type because 'lib' doesn't refer to an import prefix.
-//   lib.MyClass get lib => null; // (1)
+//   lib.MyClass? get lib => null; // (1)
 //   ^^^^^^^^^^^
 //
 // pkg/front_end/testcases/regress/issue_34498.dart:10:3: Error: 'foo' isn't a type.
@@ -28,64 +28,34 @@
 import "org-dartlang-testcase:///issue_34498_lib.dart" as lib;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   get lib() → invalid-type
     return null;
   method foo() → invalid-type {}
   method bar() → 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
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
 }
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
   method foo() → 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 final field self::A* a = null;
+static final field self::A? a = null;
 static method main() → dynamic {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class MyClass extends core::Object {
-  synthetic constructor •() → self2::MyClass*
+  synthetic constructor •() → self2::MyClass
     : 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/regress/issue_34498.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_34498.dart.weak.outline.expect
index a5828de..55ff30a 100644
--- a/pkg/front_end/testcases/regress/issue_34498.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34498.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
 // pkg/front_end/testcases/regress/issue_34498.dart:8:3: Error: 'lib.MyClass' can't be used as a type because 'lib' doesn't refer to an import prefix.
-//   lib.MyClass get lib => null; // (1)
+//   lib.MyClass? get lib => null; // (1)
 //   ^^^^^^^^^^^
 //
 // pkg/front_end/testcases/regress/issue_34498.dart:10:3: Error: 'foo' isn't a type.
@@ -28,7 +28,7 @@
 import "org-dartlang-testcase:///issue_34498_lib.dart" as lib;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
   get lib() → invalid-type
     ;
@@ -36,56 +36,26 @@
     ;
   method bar() → 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
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
 }
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
   method foo() → 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 final field self::A* a;
+static final field self::A? a;
 static method main() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class MyClass extends core::Object {
-  synthetic constructor •() → self2::MyClass*
+  synthetic constructor •() → self2::MyClass
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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/regress/issue_34498.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_34498.dart.weak.transformed.expect
index fa054b4..6cdd190 100644
--- a/pkg/front_end/testcases/regress/issue_34498.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_34498.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
 // pkg/front_end/testcases/regress/issue_34498.dart:8:3: Error: 'lib.MyClass' can't be used as a type because 'lib' doesn't refer to an import prefix.
-//   lib.MyClass get lib => null; // (1)
+//   lib.MyClass? get lib => null; // (1)
 //   ^^^^^^^^^^^
 //
 // pkg/front_end/testcases/regress/issue_34498.dart:10:3: Error: 'foo' isn't a type.
@@ -28,64 +28,34 @@
 import "org-dartlang-testcase:///issue_34498_lib.dart" as lib;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   get lib() → invalid-type
     return null;
   method foo() → invalid-type {}
   method bar() → 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
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
 }
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
   method foo() → 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 final field self::A* a = null;
+static final field self::A? a = null;
 static method main() → dynamic {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class MyClass extends core::Object {
-  synthetic constructor •() → self2::MyClass*
+  synthetic constructor •() → self2::MyClass
     : 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/regress/issue_34498_lib.dart b/pkg/front_end/testcases/regress/issue_34498_lib.dart
index bbefaa9..a1b2795 100644
--- a/pkg/front_end/testcases/regress/issue_34498_lib.dart
+++ b/pkg/front_end/testcases/regress/issue_34498_lib.dart
@@ -1,5 +1,5 @@
 // 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 MyClass {}
diff --git a/pkg/front_end/testcases/regress/issue_34563.dart b/pkg/front_end/testcases/regress/issue_34563.dart
index 1ba791b..84109cc 100644
--- a/pkg/front_end/testcases/regress/issue_34563.dart
+++ b/pkg/front_end/testcases/regress/issue_34563.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
+
 mixin M1 {
   int get m => 1;
 }
diff --git a/pkg/front_end/testcases/regress/issue_34563.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_34563.dart.textual_outline.expect
index 623f632..61b16e2 100644
--- a/pkg/front_end/testcases/regress/issue_34563.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34563.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 mixin M1 {
   int get m => 1;
 }
diff --git a/pkg/front_end/testcases/regress/issue_34563.dart.weak.expect b/pkg/front_end/testcases/regress/issue_34563.dart.weak.expect
index 201e0fa..c2bdb53 100644
--- a/pkg/front_end/testcases/regress/issue_34563.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_34563.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -46,92 +46,32 @@
 import "dart:core" as core;
 
 abstract class M1 extends core::Object /*isMixinDeclaration*/  {
-  get m() → core::int*
+  get m() → 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
 }
 abstract class M2 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 M3 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
 }
 class C1 extends core::Object {
-  synthetic constructor •() → self::C1*
+  synthetic constructor •() → self::C1
     : super core::Object::•()
     ;
-  get c() → core::int*
+  get c() → core::int
     return 2;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 C3 extends core::Object {
-  synthetic constructor •() → self::C3*
+  synthetic constructor •() → self::C3
     : 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 {
-  self::C2* c2 = new self::C2::•();
+  self::C2 c2 = new self::C2::•();
   invalid-expression "pkg/front_end/testcases/regress/issue_34563.dart:23:6: Error: The getter 'm' isn't defined for the class 'C2'.
  - 'C2' is from 'pkg/front_end/testcases/regress/issue_34563.dart'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'm'.
@@ -141,7 +81,7 @@
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'c'.
   c2.m + c2.c;
             ^" in c2{<unresolved>}.c);
-  self::C3* c3 = new self::C3::•();
+  self::C3 c3 = new self::C3::•();
   invalid-expression "pkg/front_end/testcases/regress/issue_34563.dart:25:6: Error: The getter 'm' isn't defined for the class 'C3'.
  - 'C3' is from 'pkg/front_end/testcases/regress/issue_34563.dart'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'm'.
diff --git a/pkg/front_end/testcases/regress/issue_34563.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_34563.dart.weak.modular.expect
index 201e0fa..c2bdb53 100644
--- a/pkg/front_end/testcases/regress/issue_34563.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_34563.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -46,92 +46,32 @@
 import "dart:core" as core;
 
 abstract class M1 extends core::Object /*isMixinDeclaration*/  {
-  get m() → core::int*
+  get m() → 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
 }
 abstract class M2 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 M3 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
 }
 class C1 extends core::Object {
-  synthetic constructor •() → self::C1*
+  synthetic constructor •() → self::C1
     : super core::Object::•()
     ;
-  get c() → core::int*
+  get c() → core::int
     return 2;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 C3 extends core::Object {
-  synthetic constructor •() → self::C3*
+  synthetic constructor •() → self::C3
     : 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 {
-  self::C2* c2 = new self::C2::•();
+  self::C2 c2 = new self::C2::•();
   invalid-expression "pkg/front_end/testcases/regress/issue_34563.dart:23:6: Error: The getter 'm' isn't defined for the class 'C2'.
  - 'C2' is from 'pkg/front_end/testcases/regress/issue_34563.dart'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'm'.
@@ -141,7 +81,7 @@
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'c'.
   c2.m + c2.c;
             ^" in c2{<unresolved>}.c);
-  self::C3* c3 = new self::C3::•();
+  self::C3 c3 = new self::C3::•();
   invalid-expression "pkg/front_end/testcases/regress/issue_34563.dart:25:6: Error: The getter 'm' isn't defined for the class 'C3'.
  - 'C3' is from 'pkg/front_end/testcases/regress/issue_34563.dart'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'm'.
diff --git a/pkg/front_end/testcases/regress/issue_34563.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_34563.dart.weak.outline.expect
index 1a2844e..a3834c6 100644
--- a/pkg/front_end/testcases/regress/issue_34563.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34563.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -22,86 +22,26 @@
 import "dart:core" as core;
 
 abstract class M1 extends core::Object /*isMixinDeclaration*/  {
-  get m() → core::int*
+  get m() → 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
 }
 abstract class M2 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 M3 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
 }
 class C1 extends core::Object {
-  synthetic constructor •() → self::C1*
+  synthetic constructor •() → self::C1
     ;
-  get c() → core::int*
+  get c() → 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 C2 extends core::Object {
-  synthetic constructor •() → self::C2*
+  synthetic constructor •() → self::C2
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 C3 extends core::Object {
-  synthetic constructor •() → self::C3*
+  synthetic constructor •() → self::C3
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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/regress/issue_34563.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_34563.dart.weak.transformed.expect
index 201e0fa..c2bdb53 100644
--- a/pkg/front_end/testcases/regress/issue_34563.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_34563.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -46,92 +46,32 @@
 import "dart:core" as core;
 
 abstract class M1 extends core::Object /*isMixinDeclaration*/  {
-  get m() → core::int*
+  get m() → 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
 }
 abstract class M2 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 M3 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
 }
 class C1 extends core::Object {
-  synthetic constructor •() → self::C1*
+  synthetic constructor •() → self::C1
     : super core::Object::•()
     ;
-  get c() → core::int*
+  get c() → core::int
     return 2;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 C3 extends core::Object {
-  synthetic constructor •() → self::C3*
+  synthetic constructor •() → self::C3
     : 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 {
-  self::C2* c2 = new self::C2::•();
+  self::C2 c2 = new self::C2::•();
   invalid-expression "pkg/front_end/testcases/regress/issue_34563.dart:23:6: Error: The getter 'm' isn't defined for the class 'C2'.
  - 'C2' is from 'pkg/front_end/testcases/regress/issue_34563.dart'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'm'.
@@ -141,7 +81,7 @@
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'c'.
   c2.m + c2.c;
             ^" in c2{<unresolved>}.c);
-  self::C3* c3 = new self::C3::•();
+  self::C3 c3 = new self::C3::•();
   invalid-expression "pkg/front_end/testcases/regress/issue_34563.dart:25:6: Error: The getter 'm' isn't defined for the class 'C3'.
  - 'C3' is from 'pkg/front_end/testcases/regress/issue_34563.dart'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'm'.
diff --git a/pkg/front_end/testcases/regress/issue_34610.dart b/pkg/front_end/testcases/regress/issue_34610.dart
index ed93b92..da9d50a 100644
--- a/pkg/front_end/testcases/regress/issue_34610.dart
+++ b/pkg/front_end/testcases/regress/issue_34610.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 A { get A.named => null; get bar => 1; }
 
 class B { B.named : super(); get bar => 1; }
diff --git a/pkg/front_end/testcases/regress/issue_34610.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_34610.dart.textual_outline.expect
index 76f6547..176c1c6 100644
--- a/pkg/front_end/testcases/regress/issue_34610.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34610.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   get A.named ()=> null;
   get bar => 1;
diff --git a/pkg/front_end/testcases/regress/issue_34610.dart.weak.expect b/pkg/front_end/testcases/regress/issue_34610.dart.weak.expect
index db6cda1..3bbc877 100644
--- a/pkg/front_end/testcases/regress/issue_34610.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_34610.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -36,7 +36,7 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor named() → self::A*
+  constructor named() → self::A
     : super core::Object::•()
     invalid-expression "pkg/front_end/testcases/regress/issue_34610.dart:5:26: Error: Constructors can't have a return type.
 Try removing the return type.
@@ -44,36 +44,16 @@
                          ^";
   get bar() → dynamic
     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 {
-  constructor named() → self::B*
+  constructor named() → self::B
     : super core::Object::•()
     ;
   get bar() → dynamic
     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 C extends core::Object {
-  constructor named() → self::C*
+  constructor named() → self::C
     : super core::Object::•()
     invalid-expression "pkg/front_end/testcases/regress/issue_34610.dart:9:22: Error: Constructors can't have a return type.
 Try removing the return type.
@@ -81,29 +61,19 @@
                      ^";
   get bar() → dynamic
     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
 }
 static method main() → dynamic {
   try {
     core::print(new self::A::named().{self::A::bar}{dynamic});
     throw "expected exception";
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   core::print(new self::B::named().{self::B::bar}{dynamic});
   try {
     core::print(new self::C::named().{self::C::bar}{dynamic});
     throw "expected exception";
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
 }
diff --git a/pkg/front_end/testcases/regress/issue_34610.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_34610.dart.weak.modular.expect
index db6cda1..3bbc877 100644
--- a/pkg/front_end/testcases/regress/issue_34610.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_34610.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -36,7 +36,7 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor named() → self::A*
+  constructor named() → self::A
     : super core::Object::•()
     invalid-expression "pkg/front_end/testcases/regress/issue_34610.dart:5:26: Error: Constructors can't have a return type.
 Try removing the return type.
@@ -44,36 +44,16 @@
                          ^";
   get bar() → dynamic
     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 {
-  constructor named() → self::B*
+  constructor named() → self::B
     : super core::Object::•()
     ;
   get bar() → dynamic
     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 C extends core::Object {
-  constructor named() → self::C*
+  constructor named() → self::C
     : super core::Object::•()
     invalid-expression "pkg/front_end/testcases/regress/issue_34610.dart:9:22: Error: Constructors can't have a return type.
 Try removing the return type.
@@ -81,29 +61,19 @@
                      ^";
   get bar() → dynamic
     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
 }
 static method main() → dynamic {
   try {
     core::print(new self::A::named().{self::A::bar}{dynamic});
     throw "expected exception";
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   core::print(new self::B::named().{self::B::bar}{dynamic});
   try {
     core::print(new self::C::named().{self::C::bar}{dynamic});
     throw "expected exception";
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
 }
diff --git a/pkg/front_end/testcases/regress/issue_34610.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_34610.dart.weak.outline.expect
index 57bde4c..b49f277 100644
--- a/pkg/front_end/testcases/regress/issue_34610.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34610.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -26,52 +26,22 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor named() → self::A*
+  constructor named() → self::A
     ;
   get bar() → 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 {
-  constructor named() → self::B*
+  constructor named() → self::B
     ;
   get bar() → 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 C extends core::Object {
-  constructor named() → self::C*
+  constructor named() → self::C
     ;
   get bar() → 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/regress/issue_34610.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_34610.dart.weak.transformed.expect
index db6cda1..3bbc877 100644
--- a/pkg/front_end/testcases/regress/issue_34610.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_34610.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -36,7 +36,7 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor named() → self::A*
+  constructor named() → self::A
     : super core::Object::•()
     invalid-expression "pkg/front_end/testcases/regress/issue_34610.dart:5:26: Error: Constructors can't have a return type.
 Try removing the return type.
@@ -44,36 +44,16 @@
                          ^";
   get bar() → dynamic
     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 {
-  constructor named() → self::B*
+  constructor named() → self::B
     : super core::Object::•()
     ;
   get bar() → dynamic
     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 C extends core::Object {
-  constructor named() → self::C*
+  constructor named() → self::C
     : super core::Object::•()
     invalid-expression "pkg/front_end/testcases/regress/issue_34610.dart:9:22: Error: Constructors can't have a return type.
 Try removing the return type.
@@ -81,29 +61,19 @@
                      ^";
   get bar() → dynamic
     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
 }
 static method main() → dynamic {
   try {
     core::print(new self::A::named().{self::A::bar}{dynamic});
     throw "expected exception";
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   core::print(new self::B::named().{self::B::bar}{dynamic});
   try {
     core::print(new self::C::named().{self::C::bar}{dynamic});
     throw "expected exception";
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
 }
diff --git a/pkg/front_end/testcases/regress/issue_34614.dart b/pkg/front_end/testcases/regress/issue_34614.dart
index 8cdbe47..aedbef3a 100644
--- a/pkg/front_end/testcases/regress/issue_34614.dart
+++ b/pkg/front_end/testcases/regress/issue_34614.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 { C. }
 
 main() {
diff --git a/pkg/front_end/testcases/regress/issue_34614.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_34614.dart.textual_outline.expect
index 24394ba..9b80699 100644
--- a/pkg/front_end/testcases/regress/issue_34614.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34614.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   C. (){}
 }
diff --git a/pkg/front_end/testcases/regress/issue_34614.dart.weak.expect b/pkg/front_end/testcases/regress/issue_34614.dart.weak.expect
index 9092aae..b66711f 100644
--- a/pkg/front_end/testcases/regress/issue_34614.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_34614.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -20,21 +20,11 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  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
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•();
-  c.{self::C::toString}(){() →* core::String*};
+  self::C c = new self::C::•();
+  c.{core::Object::toString}(){() → core::String};
 }
diff --git a/pkg/front_end/testcases/regress/issue_34614.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_34614.dart.weak.modular.expect
index 9092aae..b66711f 100644
--- a/pkg/front_end/testcases/regress/issue_34614.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_34614.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -20,21 +20,11 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  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
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•();
-  c.{self::C::toString}(){() →* core::String*};
+  self::C c = new self::C::•();
+  c.{core::Object::toString}(){() → core::String};
 }
diff --git a/pkg/front_end/testcases/regress/issue_34614.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_34614.dart.weak.outline.expect
index 3132fad..c4341ef 100644
--- a/pkg/front_end/testcases/regress/issue_34614.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34614.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -20,18 +20,8 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_34614.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_34614.dart.weak.transformed.expect
index 9092aae..b66711f 100644
--- a/pkg/front_end/testcases/regress/issue_34614.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_34614.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -20,21 +20,11 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  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
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•();
-  c.{self::C::toString}(){() →* core::String*};
+  self::C c = new self::C::•();
+  c.{core::Object::toString}(){() → core::String};
 }
diff --git a/pkg/front_end/testcases/regress/issue_34850.dart b/pkg/front_end/testcases/regress/issue_34850.dart
index d61c5ff..052530e 100644
--- a/pkg/front_end/testcases/regress/issue_34850.dart
+++ b/pkg/front_end/testcases/regress/issue_34850.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
+
 <foo<
 
 int f1() {
diff --git a/pkg/front_end/testcases/regress/issue_34850.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_34850.dart.textual_outline.expect
index 9e78bc0..7024734 100644
--- a/pkg/front_end/testcases/regress/issue_34850.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34850.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 <
 foo< int >f1() {}
 foo Future<List<int>> (){}
diff --git a/pkg/front_end/testcases/regress/issue_34850.dart.weak.expect b/pkg/front_end/testcases/regress/issue_34850.dart.weak.expect
index 460422e..eff3876 100644
--- a/pkg/front_end/testcases/regress/issue_34850.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_34850.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -48,7 +48,7 @@
 static method f1() → invalid-type {
   return null;
 }
-static method Future<List extends core::Object* = dynamic>() → invalid-type {}
+static method Future<List extends core::Object? = dynamic>() → invalid-type {}
 static method f2() → dynamic async /* futureValueType= dynamic */ 
   return null;
 static method f3() → invalid-type async /* futureValueType= invalid-type */ {
diff --git a/pkg/front_end/testcases/regress/issue_34850.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_34850.dart.weak.modular.expect
index 460422e..eff3876 100644
--- a/pkg/front_end/testcases/regress/issue_34850.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_34850.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -48,7 +48,7 @@
 static method f1() → invalid-type {
   return null;
 }
-static method Future<List extends core::Object* = dynamic>() → invalid-type {}
+static method Future<List extends core::Object? = dynamic>() → invalid-type {}
 static method f2() → dynamic async /* futureValueType= dynamic */ 
   return null;
 static method f3() → invalid-type async /* futureValueType= invalid-type */ {
diff --git a/pkg/front_end/testcases/regress/issue_34850.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_34850.dart.weak.outline.expect
index 34f987e..e76b343 100644
--- a/pkg/front_end/testcases/regress/issue_34850.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34850.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -47,7 +47,7 @@
 
 static method f1() → invalid-type
   ;
-static method Future<List extends core::Object* = dynamic>() → invalid-type
+static method Future<List extends core::Object? = dynamic>() → invalid-type
   ;
 static method f2() → dynamic async 
   ;
diff --git a/pkg/front_end/testcases/regress/issue_34850.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_34850.dart.weak.transformed.expect
index e1979d3..88fac78 100644
--- a/pkg/front_end/testcases/regress/issue_34850.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_34850.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -50,14 +50,14 @@
 static method f1() → invalid-type {
   return null;
 }
-static method Future<List extends core::Object* = dynamic>() → invalid-type {}
+static method Future<List extends core::Object? = dynamic>() → invalid-type {}
 static method f2() → dynamic /* futureValueType= 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;
-  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 {
@@ -69,22 +69,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 f3() → invalid-type /* futureValueType= invalid-type */ /* 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;
-  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 {
@@ -96,22 +96,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 /* futureValueType= 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 
@@ -127,12 +127,12 @@
       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/regress/issue_35151.dart b/pkg/front_end/testcases/regress/issue_35151.dart
index 8c372eb..7c36418 100644
--- a/pkg/front_end/testcases/regress/issue_35151.dart
+++ b/pkg/front_end/testcases/regress/issue_35151.dart
@@ -1,9 +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
+
 class A {
-  int a;
+  int a = 0;
 }
 
 class B extends A {
diff --git a/pkg/front_end/testcases/regress/issue_35151.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_35151.dart.textual_outline.expect
index 375f782..de24b92 100644
--- a/pkg/front_end/testcases/regress/issue_35151.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35151.dart.textual_outline.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
 class A {
-  int a;
+  int a = 0;
 }
 class B extends A {
   B() : super.a = 42;
diff --git a/pkg/front_end/testcases/regress/issue_35151.dart.weak.expect b/pkg/front_end/testcases/regress/issue_35151.dart.weak.expect
index 146d622..a1693a5 100644
--- a/pkg/front_end/testcases/regress/issue_35151.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_35151.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -20,23 +20,13 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* a = null;
-  synthetic constructor •() → self::A*
+  field core::int a = 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 B extends self::A {
-  constructor •() → self::B*
+  constructor •() → self::B
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_35151.dart:10:15: Error: Not a valid initializer.
 To initialize a field, use the syntax 'name = value'.
   B() : super.a = 42;
@@ -44,31 +34,21 @@
     ;
 }
 class C extends core::Object {
-  constructor •() → self::C*
+  constructor •() → self::C
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/regress/issue_35151.dart:14:9: Error: Can't access 'super' in a field initializer.
   C() : super = 42;
         ^^^^^"
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   try {
-    self::B* b = new self::B::•();
+    self::B b = new self::B::•();
   }
-  on dynamic catch(final dynamic _) {
+  on core::Object catch(final core::Object _) {
   }
   try {
-    self::C* c = new self::C::•();
+    self::C c = new self::C::•();
   }
-  on dynamic catch(final dynamic _) {
+  on core::Object catch(final core::Object _) {
   }
 }
diff --git a/pkg/front_end/testcases/regress/issue_35151.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_35151.dart.weak.modular.expect
index 146d622..a1693a5 100644
--- a/pkg/front_end/testcases/regress/issue_35151.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_35151.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -20,23 +20,13 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* a = null;
-  synthetic constructor •() → self::A*
+  field core::int a = 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 B extends self::A {
-  constructor •() → self::B*
+  constructor •() → self::B
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_35151.dart:10:15: Error: Not a valid initializer.
 To initialize a field, use the syntax 'name = value'.
   B() : super.a = 42;
@@ -44,31 +34,21 @@
     ;
 }
 class C extends core::Object {
-  constructor •() → self::C*
+  constructor •() → self::C
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/regress/issue_35151.dart:14:9: Error: Can't access 'super' in a field initializer.
   C() : super = 42;
         ^^^^^"
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   try {
-    self::B* b = new self::B::•();
+    self::B b = new self::B::•();
   }
-  on dynamic catch(final dynamic _) {
+  on core::Object catch(final core::Object _) {
   }
   try {
-    self::C* c = new self::C::•();
+    self::C c = new self::C::•();
   }
-  on dynamic catch(final dynamic _) {
+  on core::Object catch(final core::Object _) {
   }
 }
diff --git a/pkg/front_end/testcases/regress/issue_35151.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_35151.dart.weak.outline.expect
index 478d47a..3da6b9b 100644
--- a/pkg/front_end/testcases/regress/issue_35151.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35151.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,37 +11,17 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* a;
-  synthetic constructor •() → self::A*
+  field core::int 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 self::A {
-  constructor •() → self::B*
+  constructor •() → self::B
     ;
 }
 class C extends core::Object {
-  constructor •() → self::C*
+  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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_35151.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_35151.dart.weak.transformed.expect
index 146d622..a1693a5 100644
--- a/pkg/front_end/testcases/regress/issue_35151.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_35151.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -20,23 +20,13 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* a = null;
-  synthetic constructor •() → self::A*
+  field core::int a = 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 B extends self::A {
-  constructor •() → self::B*
+  constructor •() → self::B
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_35151.dart:10:15: Error: Not a valid initializer.
 To initialize a field, use the syntax 'name = value'.
   B() : super.a = 42;
@@ -44,31 +34,21 @@
     ;
 }
 class C extends core::Object {
-  constructor •() → self::C*
+  constructor •() → self::C
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/regress/issue_35151.dart:14:9: Error: Can't access 'super' in a field initializer.
   C() : super = 42;
         ^^^^^"
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   try {
-    self::B* b = new self::B::•();
+    self::B b = new self::B::•();
   }
-  on dynamic catch(final dynamic _) {
+  on core::Object catch(final core::Object _) {
   }
   try {
-    self::C* c = new self::C::•();
+    self::C c = new self::C::•();
   }
-  on dynamic catch(final dynamic _) {
+  on core::Object catch(final core::Object _) {
   }
 }
diff --git a/pkg/front_end/testcases/regress/issue_35177.dart b/pkg/front_end/testcases/regress/issue_35177.dart
index 7fb29a5..8cbb06d 100644
--- a/pkg/front_end/testcases/regress/issue_35177.dart
+++ b/pkg/front_end/testcases/regress/issue_35177.dart
@@ -1,8 +1,8 @@
 // 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
-main() {
-  dynamic Function() f;
+
+test() {
+  dynamic Function() f = () {};
   (f)()<int>();
 }
diff --git a/pkg/front_end/testcases/regress/issue_35177.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_35177.dart.textual_outline.expect
index 7c126a2..a9f9e5f 100644
--- a/pkg/front_end/testcases/regress/issue_35177.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35177.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/regress/issue_35177.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_35177.dart.textual_outline_modelled.expect
index 7c126a2..a9f9e5f 100644
--- a/pkg/front_end/testcases/regress/issue_35177.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_35177.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/regress/issue_35177.dart.weak.expect b/pkg/front_end/testcases/regress/issue_35177.dart.weak.expect
index d0eb552..27aa3f7 100644
--- a/pkg/front_end/testcases/regress/issue_35177.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_35177.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method main() → dynamic {
-  () →* dynamic f;
-  f(){() →* dynamic}{dynamic}.call<core::int*>();
+static method test() → dynamic {
+  () → dynamic f = () → Null {};
+  f(){() → dynamic}{dynamic}.call<core::int>();
 }
diff --git a/pkg/front_end/testcases/regress/issue_35177.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_35177.dart.weak.modular.expect
index d0eb552..27aa3f7 100644
--- a/pkg/front_end/testcases/regress/issue_35177.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_35177.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method main() → dynamic {
-  () →* dynamic f;
-  f(){() →* dynamic}{dynamic}.call<core::int*>();
+static method test() → dynamic {
+  () → dynamic f = () → Null {};
+  f(){() → dynamic}{dynamic}.call<core::int>();
 }
diff --git a/pkg/front_end/testcases/regress/issue_35177.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_35177.dart.weak.outline.expect
index 6a28c0d..eef3152 100644
--- a/pkg/front_end/testcases/regress/issue_35177.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35177.dart.weak.outline.expect
@@ -1,5 +1,5 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
-static method main() → dynamic
+static method test() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_35177.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_35177.dart.weak.transformed.expect
index d0eb552..27aa3f7 100644
--- a/pkg/front_end/testcases/regress/issue_35177.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_35177.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method main() → dynamic {
-  () →* dynamic f;
-  f(){() →* dynamic}{dynamic}.call<core::int*>();
+static method test() → dynamic {
+  () → dynamic f = () → Null {};
+  f(){() → dynamic}{dynamic}.call<core::int>();
 }
diff --git a/pkg/front_end/testcases/regress/issue_35213.dart b/pkg/front_end/testcases/regress/issue_35213.dart
index e231fb7..37a9f1c 100644
--- a/pkg/front_end/testcases/regress/issue_35213.dart
+++ b/pkg/front_end/testcases/regress/issue_35213.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
+
 f(int a int b) { }
 
 main() {
diff --git a/pkg/front_end/testcases/regress/issue_35213.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_35213.dart.textual_outline.expect
index b241519..55bc6cb 100644
--- a/pkg/front_end/testcases/regress/issue_35213.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35213.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 f(int a, int b) {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_35213.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_35213.dart.textual_outline_modelled.expect
index b241519..55bc6cb 100644
--- a/pkg/front_end/testcases/regress/issue_35213.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_35213.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 f(int a, int b) {}
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_35213.dart.weak.expect b/pkg/front_end/testcases/regress/issue_35213.dart.weak.expect
index e97491d..a03f07f 100644
--- a/pkg/front_end/testcases/regress/issue_35213.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_35213.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,7 +9,7 @@
 import self as self;
 import "dart:core" as core;
 
-static method f(core::int* a, core::int* b) → dynamic {}
+static method f(core::int a, core::int b) → dynamic {}
 static method main() → dynamic {
   self::f(2, 3);
 }
diff --git a/pkg/front_end/testcases/regress/issue_35213.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_35213.dart.weak.modular.expect
index e97491d..a03f07f 100644
--- a/pkg/front_end/testcases/regress/issue_35213.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_35213.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,7 +9,7 @@
 import self as self;
 import "dart:core" as core;
 
-static method f(core::int* a, core::int* b) → dynamic {}
+static method f(core::int a, core::int b) → dynamic {}
 static method main() → dynamic {
   self::f(2, 3);
 }
diff --git a/pkg/front_end/testcases/regress/issue_35213.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_35213.dart.weak.outline.expect
index 0a51465..1f8ba07 100644
--- a/pkg/front_end/testcases/regress/issue_35213.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35213.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,7 +9,7 @@
 import self as self;
 import "dart:core" as core;
 
-static method f(core::int* a, core::int* b) → dynamic
+static method f(core::int a, core::int b) → dynamic
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_35213.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_35213.dart.weak.transformed.expect
index e97491d..a03f07f 100644
--- a/pkg/front_end/testcases/regress/issue_35213.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_35213.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,7 +9,7 @@
 import self as self;
 import "dart:core" as core;
 
-static method f(core::int* a, core::int* b) → dynamic {}
+static method f(core::int a, core::int b) → dynamic {}
 static method main() → dynamic {
   self::f(2, 3);
 }
diff --git a/pkg/front_end/testcases/regress/issue_35220.dart b/pkg/front_end/testcases/regress/issue_35220.dart
index 1f52884..93b8134 100644
--- a/pkg/front_end/testcases/regress/issue_35220.dart
+++ b/pkg/front_end/testcases/regress/issue_35220.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.md file.
-// @dart=2.9
+
 class A {
   A bad() { return true != 2; }
 }
diff --git a/pkg/front_end/testcases/regress/issue_35220.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_35220.dart.textual_outline.expect
index 178e278..81e059b 100644
--- a/pkg/front_end/testcases/regress/issue_35220.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35220.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A bad() {}
 }
diff --git a/pkg/front_end/testcases/regress/issue_35220.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_35220.dart.textual_outline_modelled.expect
index 178e278..81e059b 100644
--- a/pkg/front_end/testcases/regress/issue_35220.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_35220.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A bad() {}
 }
diff --git a/pkg/front_end/testcases/regress/issue_35220.dart.weak.expect b/pkg/front_end/testcases/regress/issue_35220.dart.weak.expect
index cab6aea..b2fb1b7 100644
--- a/pkg/front_end/testcases/regress/issue_35220.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_35220.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_35220.dart:6:25: Error: A value of type 'bool' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/regress/issue_35220.dart:6:25: Error: A value of type 'bool' can't be returned from a function with return type 'A'.
 //  - 'A' is from 'pkg/front_end/testcases/regress/issue_35220.dart'.
 //   A bad() { return true != 2; }
 //                         ^
@@ -11,24 +11,14 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  method bad() → self::A* {
-    return invalid-expression "pkg/front_end/testcases/regress/issue_35220.dart:6:25: Error: A value of type 'bool' can't be assigned to a variable of type 'A'.
+  method bad() → self::A {
+    return invalid-expression "pkg/front_end/testcases/regress/issue_35220.dart:6:25: Error: A value of type 'bool' can't be returned from a function with return type 'A'.
  - 'A' is from 'pkg/front_end/testcases/regress/issue_35220.dart'.
   A bad() { return true != 2; }
-                        ^" in !(true =={core::Object::==}{(core::Object*) →* core::bool*} 2) as{TypeError} self::A*;
+                        ^" in !(true =={core::Object::==}{(core::Object) → core::bool} 2) as{TypeError,ForNonNullableByDefault} 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 method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_35220.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_35220.dart.weak.modular.expect
index cab6aea..b2fb1b7 100644
--- a/pkg/front_end/testcases/regress/issue_35220.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_35220.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_35220.dart:6:25: Error: A value of type 'bool' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/regress/issue_35220.dart:6:25: Error: A value of type 'bool' can't be returned from a function with return type 'A'.
 //  - 'A' is from 'pkg/front_end/testcases/regress/issue_35220.dart'.
 //   A bad() { return true != 2; }
 //                         ^
@@ -11,24 +11,14 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  method bad() → self::A* {
-    return invalid-expression "pkg/front_end/testcases/regress/issue_35220.dart:6:25: Error: A value of type 'bool' can't be assigned to a variable of type 'A'.
+  method bad() → self::A {
+    return invalid-expression "pkg/front_end/testcases/regress/issue_35220.dart:6:25: Error: A value of type 'bool' can't be returned from a function with return type 'A'.
  - 'A' is from 'pkg/front_end/testcases/regress/issue_35220.dart'.
   A bad() { return true != 2; }
-                        ^" in !(true =={core::Object::==}{(core::Object*) →* core::bool*} 2) as{TypeError} self::A*;
+                        ^" in !(true =={core::Object::==}{(core::Object) → core::bool} 2) as{TypeError,ForNonNullableByDefault} 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 method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_35220.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_35220.dart.weak.outline.expect
index 8e1c8d8..1cbe284 100644
--- a/pkg/front_end/testcases/regress/issue_35220.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35220.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-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
     ;
-  method bad() → self::A*
+  method bad() → 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 method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_35220.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_35220.dart.weak.transformed.expect
index cab6aea..b2fb1b7 100644
--- a/pkg/front_end/testcases/regress/issue_35220.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_35220.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_35220.dart:6:25: Error: A value of type 'bool' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/regress/issue_35220.dart:6:25: Error: A value of type 'bool' can't be returned from a function with return type 'A'.
 //  - 'A' is from 'pkg/front_end/testcases/regress/issue_35220.dart'.
 //   A bad() { return true != 2; }
 //                         ^
@@ -11,24 +11,14 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  method bad() → self::A* {
-    return invalid-expression "pkg/front_end/testcases/regress/issue_35220.dart:6:25: Error: A value of type 'bool' can't be assigned to a variable of type 'A'.
+  method bad() → self::A {
+    return invalid-expression "pkg/front_end/testcases/regress/issue_35220.dart:6:25: Error: A value of type 'bool' can't be returned from a function with return type 'A'.
  - 'A' is from 'pkg/front_end/testcases/regress/issue_35220.dart'.
   A bad() { return true != 2; }
-                        ^" in !(true =={core::Object::==}{(core::Object*) →* core::bool*} 2) as{TypeError} self::A*;
+                        ^" in !(true =={core::Object::==}{(core::Object) → core::bool} 2) as{TypeError,ForNonNullableByDefault} 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 method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_35258.dart b/pkg/front_end/testcases/regress/issue_35258.dart
index 941ce25..486fae4 100644
--- a/pkg/front_end/testcases/regress/issue_35258.dart
+++ b/pkg/front_end/testcases/regress/issue_35258.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
+
 main() {
   new C(42);
 }
diff --git a/pkg/front_end/testcases/regress/issue_35258.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_35258.dart.textual_outline.expect
index bf2e71f..639a601 100644
--- a/pkg/front_end/testcases/regress/issue_35258.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35258.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 main() {}
 
 class C {
diff --git a/pkg/front_end/testcases/regress/issue_35258.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_35258.dart.textual_outline_modelled.expect
index 4a88bcb..f4d4891 100644
--- a/pkg/front_end/testcases/regress/issue_35258.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_35258.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   C() {}
   C(this.d) {}
diff --git a/pkg/front_end/testcases/regress/issue_35258.dart.weak.expect b/pkg/front_end/testcases/regress/issue_35258.dart.weak.expect
index 33c1bb2..4fd98f1 100644
--- a/pkg/front_end/testcases/regress/issue_35258.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_35258.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -23,18 +23,8 @@
 
 class C extends core::Object {
   final field dynamic d = null;
-  constructor •() → self::C*
+  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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/regress/issue_35258.dart:6:7: Error: Can't use 'C' because it is declared more than once.
diff --git a/pkg/front_end/testcases/regress/issue_35258.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_35258.dart.weak.modular.expect
index 33c1bb2..4fd98f1 100644
--- a/pkg/front_end/testcases/regress/issue_35258.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_35258.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -23,18 +23,8 @@
 
 class C extends core::Object {
   final field dynamic d = null;
-  constructor •() → self::C*
+  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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/regress/issue_35258.dart:6:7: Error: Can't use 'C' because it is declared more than once.
diff --git a/pkg/front_end/testcases/regress/issue_35258.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_35258.dart.weak.outline.expect
index 6f0a04b..52c6688 100644
--- a/pkg/front_end/testcases/regress/issue_35258.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35258.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,18 +14,8 @@
 
 class C extends core::Object {
   final field dynamic d;
-  constructor •() → self::C*
+  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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_35258.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_35258.dart.weak.transformed.expect
index 33c1bb2..4fd98f1 100644
--- a/pkg/front_end/testcases/regress/issue_35258.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_35258.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -23,18 +23,8 @@
 
 class C extends core::Object {
   final field dynamic d = null;
-  constructor •() → self::C*
+  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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/regress/issue_35258.dart:6:7: Error: Can't use 'C' because it is declared more than once.
diff --git a/pkg/front_end/testcases/regress/issue_35259.dart b/pkg/front_end/testcases/regress/issue_35259.dart
index 1cee48a2..10246aa 100644
--- a/pkg/front_end/testcases/regress/issue_35259.dart
+++ b/pkg/front_end/testcases/regress/issue_35259.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 Supertype {
   factory Supertype() = Unresolved;
   factory Supertype() = Unresolved;
diff --git a/pkg/front_end/testcases/regress/issue_35259.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_35259.dart.textual_outline.expect
index 423a8e9..a47d649 100644
--- a/pkg/front_end/testcases/regress/issue_35259.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35259.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Supertype {
   factory Supertype() = Unresolved;
   factory Supertype() = Unresolved;
diff --git a/pkg/front_end/testcases/regress/issue_35259.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_35259.dart.textual_outline_modelled.expect
index 423a8e9..a47d649 100644
--- a/pkg/front_end/testcases/regress/issue_35259.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_35259.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Supertype {
   factory Supertype() = Unresolved;
   factory Supertype() = Unresolved;
diff --git a/pkg/front_end/testcases/regress/issue_35259.dart.weak.expect b/pkg/front_end/testcases/regress/issue_35259.dart.weak.expect
index 6a366d0..80f4a7e 100644
--- a/pkg/front_end/testcases/regress/issue_35259.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_35259.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -33,21 +33,11 @@
 import "dart:core" as core;
 
 class Supertype extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  static factory •() → self::Supertype*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  static factory •() → self::Supertype
     return invalid-expression "pkg/front_end/testcases/regress/issue_35259.dart:6:25: Error: Redirection constructor target not found: 'Unresolved'
   factory Supertype() = Unresolved;
                         ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   core::print(invalid-expression "pkg/front_end/testcases/regress/issue_35259.dart:11:13: Error: Can't use 'Supertype' because it is declared more than once.
diff --git a/pkg/front_end/testcases/regress/issue_35259.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_35259.dart.weak.modular.expect
index 6a366d0..80f4a7e 100644
--- a/pkg/front_end/testcases/regress/issue_35259.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_35259.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -33,21 +33,11 @@
 import "dart:core" as core;
 
 class Supertype extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  static factory •() → self::Supertype*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  static factory •() → self::Supertype
     return invalid-expression "pkg/front_end/testcases/regress/issue_35259.dart:6:25: Error: Redirection constructor target not found: 'Unresolved'
   factory Supertype() = Unresolved;
                         ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   core::print(invalid-expression "pkg/front_end/testcases/regress/issue_35259.dart:11:13: Error: Can't use 'Supertype' because it is declared more than once.
diff --git a/pkg/front_end/testcases/regress/issue_35259.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_35259.dart.weak.outline.expect
index da1fe3e..bab0db5 100644
--- a/pkg/front_end/testcases/regress/issue_35259.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35259.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -29,21 +29,11 @@
 import "dart:core" as core;
 
 class Supertype extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[self::Supertype::•];
-  static factory •() → self::Supertype*
+  static final field dynamic _redirecting# = <dynamic>[self::Supertype::•]/*isLegacy*/;
+  static factory •() → self::Supertype
     return invalid-expression "pkg/front_end/testcases/regress/issue_35259.dart:6:25: Error: Redirection constructor target not found: 'Unresolved'
   factory Supertype() = Unresolved;
                         ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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/regress/issue_35259.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_35259.dart.weak.transformed.expect
index 6a366d0..80f4a7e 100644
--- a/pkg/front_end/testcases/regress/issue_35259.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_35259.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -33,21 +33,11 @@
 import "dart:core" as core;
 
 class Supertype extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  static factory •() → self::Supertype*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  static factory •() → self::Supertype
     return invalid-expression "pkg/front_end/testcases/regress/issue_35259.dart:6:25: Error: Redirection constructor target not found: 'Unresolved'
   factory Supertype() = Unresolved;
                         ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 {
   core::print(invalid-expression "pkg/front_end/testcases/regress/issue_35259.dart:11:13: Error: Can't use 'Supertype' because it is declared more than once.
diff --git a/pkg/front_end/testcases/regress/issue_35260.dart b/pkg/front_end/testcases/regress/issue_35260.dart
index 16ef8d7..ab79fbe 100644
--- a/pkg/front_end/testcases/regress/issue_35260.dart
+++ b/pkg/front_end/testcases/regress/issue_35260.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 Supertype {
   factory Supertype() = X;
   factory Supertype() = X;
diff --git a/pkg/front_end/testcases/regress/issue_35260.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_35260.dart.textual_outline.expect
index 2ec72a8..beaef36 100644
--- a/pkg/front_end/testcases/regress/issue_35260.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35260.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Supertype {
   factory Supertype() = X;
   factory Supertype() = X;
diff --git a/pkg/front_end/testcases/regress/issue_35260.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_35260.dart.textual_outline_modelled.expect
index 2ec72a8..beaef36 100644
--- a/pkg/front_end/testcases/regress/issue_35260.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_35260.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Supertype {
   factory Supertype() = X;
   factory Supertype() = X;
diff --git a/pkg/front_end/testcases/regress/issue_35260.dart.weak.expect b/pkg/front_end/testcases/regress/issue_35260.dart.weak.expect
index 0b4828a..2e94f53 100644
--- a/pkg/front_end/testcases/regress/issue_35260.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_35260.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,37 +17,17 @@
 import "dart:core" as core;
 
 class Supertype extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  static factory •() → self::Supertype*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  static factory •() → self::Supertype
     return new 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
 }
 class X extends core::Object implements self::Supertype {
-  constructor •() → self::X*
+  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 main() → dynamic {
-  self::X* x = invalid-expression "pkg/front_end/testcases/regress/issue_35260.dart:15:13: Error: Can't use 'Supertype' because it is declared more than once.
+  self::X x = invalid-expression "pkg/front_end/testcases/regress/issue_35260.dart:15:13: Error: Can't use 'Supertype' because it is declared more than once.
   X x = new Supertype();
             ^";
 }
diff --git a/pkg/front_end/testcases/regress/issue_35260.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_35260.dart.weak.modular.expect
index 0b4828a..2e94f53 100644
--- a/pkg/front_end/testcases/regress/issue_35260.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_35260.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,37 +17,17 @@
 import "dart:core" as core;
 
 class Supertype extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  static factory •() → self::Supertype*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  static factory •() → self::Supertype
     return new 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
 }
 class X extends core::Object implements self::Supertype {
-  constructor •() → self::X*
+  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 main() → dynamic {
-  self::X* x = invalid-expression "pkg/front_end/testcases/regress/issue_35260.dart:15:13: Error: Can't use 'Supertype' because it is declared more than once.
+  self::X x = invalid-expression "pkg/front_end/testcases/regress/issue_35260.dart:15:13: Error: Can't use 'Supertype' because it is declared more than once.
   X x = new Supertype();
             ^";
 }
diff --git a/pkg/front_end/testcases/regress/issue_35260.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_35260.dart.weak.outline.expect
index fd0802b..643d8a4 100644
--- a/pkg/front_end/testcases/regress/issue_35260.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35260.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,33 +13,13 @@
 import "dart:core" as core;
 
 class Supertype extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[self::Supertype::•];
-  static factory •() → self::Supertype*
+  static final field dynamic _redirecting# = <dynamic>[self::Supertype::•]/*isLegacy*/;
+  static factory •() → self::Supertype
     return new 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
 }
 class X extends core::Object implements self::Supertype {
-  constructor •() → self::X*
+  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 main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_35260.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_35260.dart.weak.transformed.expect
index 0b4828a..2e94f53 100644
--- a/pkg/front_end/testcases/regress/issue_35260.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_35260.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,37 +17,17 @@
 import "dart:core" as core;
 
 class Supertype extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  static factory •() → self::Supertype*
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  static factory •() → self::Supertype
     return new 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
 }
 class X extends core::Object implements self::Supertype {
-  constructor •() → self::X*
+  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 main() → dynamic {
-  self::X* x = invalid-expression "pkg/front_end/testcases/regress/issue_35260.dart:15:13: Error: Can't use 'Supertype' because it is declared more than once.
+  self::X x = invalid-expression "pkg/front_end/testcases/regress/issue_35260.dart:15:13: Error: Can't use 'Supertype' because it is declared more than once.
   X x = new Supertype();
             ^";
 }
diff --git a/pkg/front_end/testcases/regress/issue_35266.dart b/pkg/front_end/testcases/regress/issue_35266.dart
index b87ca47..8564b50 100644
--- a/pkg/front_end/testcases/regress/issue_35266.dart
+++ b/pkg/front_end/testcases/regress/issue_35266.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 B<T> extends C<T> {
   B();
   factory B.foo() = B<T>;
diff --git a/pkg/front_end/testcases/regress/issue_35266.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_35266.dart.textual_outline.expect
index 92fdefa..1d6a7d0 100644
--- a/pkg/front_end/testcases/regress/issue_35266.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35266.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class B<T> extends C<T> {
   B();
   factory B.foo() = B<T>;
diff --git a/pkg/front_end/testcases/regress/issue_35266.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_35266.dart.textual_outline_modelled.expect
index 92fdefa..1d6a7d0 100644
--- a/pkg/front_end/testcases/regress/issue_35266.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_35266.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class B<T> extends C<T> {
   B();
   factory B.foo() = B<T>;
diff --git a/pkg/front_end/testcases/regress/issue_35266.dart.weak.expect b/pkg/front_end/testcases/regress/issue_35266.dart.weak.expect
index 9885c52..aec335a 100644
--- a/pkg/front_end/testcases/regress/issue_35266.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_35266.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,33 +16,23 @@
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends self::C<self::B::T*> {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::C<self::B::T%> {
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  constructor •() → self::B<self::B::T%>
     : super self::C::•()
     ;
-  static factory foo<T extends core::Object* = dynamic>() → self::B<self::B::foo::T*>*
-    return new self::B::•<self::B::foo::T*>();
+  static factory foo<T extends core::Object? = dynamic>() → self::B<self::B::foo::T%>
+    return new self::B::•<self::B::foo::T%>();
 }
-class C<K extends core::Object* = dynamic> extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C2];
-  constructor •() → self::C<self::C::K*>*
+class C<K extends core::Object? = dynamic> extends core::Object {
+  static final field dynamic _redirecting# = <dynamic>[#C2]/*isLegacy*/;
+  constructor •() → self::C<self::C::K%>
     : super core::Object::•()
     ;
-  static factory bar<K extends core::Object* = dynamic>() → self::C<self::C::bar::K*>*
+  static factory bar<K extends core::Object? = dynamic>() → self::C<self::C::bar::K%>
     return invalid-expression "pkg/front_end/testcases/regress/issue_35266.dart:13:21: Error: Can't use 'B.foo' because it is declared more than once.
   factory C.bar() = B<K>.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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/regress/issue_35266.dart:13:21: Error: Can't use 'B.foo' because it is declared more than once.
diff --git a/pkg/front_end/testcases/regress/issue_35266.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_35266.dart.weak.modular.expect
index 9885c52..aec335a 100644
--- a/pkg/front_end/testcases/regress/issue_35266.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_35266.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,33 +16,23 @@
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends self::C<self::B::T*> {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::C<self::B::T%> {
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  constructor •() → self::B<self::B::T%>
     : super self::C::•()
     ;
-  static factory foo<T extends core::Object* = dynamic>() → self::B<self::B::foo::T*>*
-    return new self::B::•<self::B::foo::T*>();
+  static factory foo<T extends core::Object? = dynamic>() → self::B<self::B::foo::T%>
+    return new self::B::•<self::B::foo::T%>();
 }
-class C<K extends core::Object* = dynamic> extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C2];
-  constructor •() → self::C<self::C::K*>*
+class C<K extends core::Object? = dynamic> extends core::Object {
+  static final field dynamic _redirecting# = <dynamic>[#C2]/*isLegacy*/;
+  constructor •() → self::C<self::C::K%>
     : super core::Object::•()
     ;
-  static factory bar<K extends core::Object* = dynamic>() → self::C<self::C::bar::K*>*
+  static factory bar<K extends core::Object? = dynamic>() → self::C<self::C::bar::K%>
     return invalid-expression "pkg/front_end/testcases/regress/issue_35266.dart:13:21: Error: Can't use 'B.foo' because it is declared more than once.
   factory C.bar() = B<K>.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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/regress/issue_35266.dart:13:21: Error: Can't use 'B.foo' because it is declared more than once.
diff --git a/pkg/front_end/testcases/regress/issue_35266.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_35266.dart.weak.outline.expect
index c71adb4..7397639 100644
--- a/pkg/front_end/testcases/regress/issue_35266.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35266.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,31 +16,21 @@
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends self::C<self::B::T*> {
-  static final field dynamic _redirecting# = <dynamic>[self::B::foo];
-  constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::C<self::B::T%> {
+  static final field dynamic _redirecting# = <dynamic>[self::B::foo]/*isLegacy*/;
+  constructor •() → self::B<self::B::T%>
     ;
-  static factory foo<T extends core::Object* = dynamic>() → self::B<self::B::foo::T*>*
-    return new self::B::•<self::B::foo::T*>();
+  static factory foo<T extends core::Object? = dynamic>() → self::B<self::B::foo::T%>
+    return new self::B::•<self::B::foo::T%>();
 }
-class C<K extends core::Object* = dynamic> extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[self::C::bar];
-  constructor •() → self::C<self::C::K*>*
+class C<K extends core::Object? = dynamic> extends core::Object {
+  static final field dynamic _redirecting# = <dynamic>[self::C::bar]/*isLegacy*/;
+  constructor •() → self::C<self::C::K%>
     ;
-  static factory bar<K extends core::Object* = dynamic>() → self::C<self::C::bar::K*>*
+  static factory bar<K extends core::Object? = dynamic>() → self::C<self::C::bar::K%>
     return invalid-expression "pkg/front_end/testcases/regress/issue_35266.dart:13:21: Error: Can't use 'B.foo' because it is declared more than once.
   factory C.bar() = B<K>.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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_35266.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_35266.dart.weak.transformed.expect
index 9885c52..aec335a 100644
--- a/pkg/front_end/testcases/regress/issue_35266.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_35266.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,33 +16,23 @@
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends self::C<self::B::T*> {
-  static final field dynamic _redirecting# = <dynamic>[#C1];
-  constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::C<self::B::T%> {
+  static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+  constructor •() → self::B<self::B::T%>
     : super self::C::•()
     ;
-  static factory foo<T extends core::Object* = dynamic>() → self::B<self::B::foo::T*>*
-    return new self::B::•<self::B::foo::T*>();
+  static factory foo<T extends core::Object? = dynamic>() → self::B<self::B::foo::T%>
+    return new self::B::•<self::B::foo::T%>();
 }
-class C<K extends core::Object* = dynamic> extends core::Object {
-  static final field dynamic _redirecting# = <dynamic>[#C2];
-  constructor •() → self::C<self::C::K*>*
+class C<K extends core::Object? = dynamic> extends core::Object {
+  static final field dynamic _redirecting# = <dynamic>[#C2]/*isLegacy*/;
+  constructor •() → self::C<self::C::K%>
     : super core::Object::•()
     ;
-  static factory bar<K extends core::Object* = dynamic>() → self::C<self::C::bar::K*>*
+  static factory bar<K extends core::Object? = dynamic>() → self::C<self::C::bar::K%>
     return invalid-expression "pkg/front_end/testcases/regress/issue_35266.dart:13:21: Error: Can't use 'B.foo' because it is declared more than once.
   factory C.bar() = B<K>.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
 }
 static method main() → dynamic {
   invalid-expression "pkg/front_end/testcases/regress/issue_35266.dart:13:21: Error: Can't use 'B.foo' because it is declared more than once.
diff --git a/pkg/front_end/testcases/regress/issue_35900.dart b/pkg/front_end/testcases/regress/issue_35900.dart
index f9b48dc..e03e5f5 100644
--- a/pkg/front_end/testcases/regress/issue_35900.dart
+++ b/pkg/front_end/testcases/regress/issue_35900.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
-main () { int x; print('${x' '); }
+
+main () { int? x; print('${x' '); }
diff --git a/pkg/front_end/testcases/regress/issue_35900.dart.weak.expect b/pkg/front_end/testcases/regress/issue_35900.dart.weak.expect
index c6fc9e6..6dd9a32 100644
--- a/pkg/front_end/testcases/regress/issue_35900.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_35900.dart.weak.expect
@@ -1,29 +1,29 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_35900.dart:5:25: Error: Can't find '}' to match '${'.
-// main () { int x; print('${x' '); }
-//                         ^
+// pkg/front_end/testcases/regress/issue_35900.dart:5:26: Error: Can't find '}' to match '${'.
+// main () { int? x; print('${x' '); }
+//                          ^
 //
-// pkg/front_end/testcases/regress/issue_35900.dart:5:24: Error: String starting with ' must end with '.
-// main () { int x; print('${x' '); }
-//                        ^^^^^^^^^^^^...
+// pkg/front_end/testcases/regress/issue_35900.dart:5:25: Error: String starting with ' must end with '.
+// main () { int? x; print('${x' '); }
+//                         ^^^^^^^^^^^^...
 //
 // pkg/front_end/testcases/regress/issue_35900.dart:6:1: Error: Expected a declaration, but got ''.
 //
-// pkg/front_end/testcases/regress/issue_35900.dart:5:28: Error: Expected '}' before this.
-// main () { int x; print('${x' '); }
-//                            ^^^
+// pkg/front_end/testcases/regress/issue_35900.dart:5:29: Error: Expected '}' before this.
+// main () { int? x; print('${x' '); }
+//                             ^^^
 //
-// pkg/front_end/testcases/regress/issue_35900.dart:5:31: Error: Expected a String, but got ')'.
-// main () { int x; print('${x' '); }
-//                               ^
+// pkg/front_end/testcases/regress/issue_35900.dart:5:32: Error: Expected a String, but got ')'.
+// main () { int? x; print('${x' '); }
+//                                ^
 //
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::int* x;
+  core::int? x;
   core::print("${x}");
 }
diff --git a/pkg/front_end/testcases/regress/issue_35900.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_35900.dart.weak.modular.expect
index c6fc9e6..6dd9a32 100644
--- a/pkg/front_end/testcases/regress/issue_35900.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_35900.dart.weak.modular.expect
@@ -1,29 +1,29 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_35900.dart:5:25: Error: Can't find '}' to match '${'.
-// main () { int x; print('${x' '); }
-//                         ^
+// pkg/front_end/testcases/regress/issue_35900.dart:5:26: Error: Can't find '}' to match '${'.
+// main () { int? x; print('${x' '); }
+//                          ^
 //
-// pkg/front_end/testcases/regress/issue_35900.dart:5:24: Error: String starting with ' must end with '.
-// main () { int x; print('${x' '); }
-//                        ^^^^^^^^^^^^...
+// pkg/front_end/testcases/regress/issue_35900.dart:5:25: Error: String starting with ' must end with '.
+// main () { int? x; print('${x' '); }
+//                         ^^^^^^^^^^^^...
 //
 // pkg/front_end/testcases/regress/issue_35900.dart:6:1: Error: Expected a declaration, but got ''.
 //
-// pkg/front_end/testcases/regress/issue_35900.dart:5:28: Error: Expected '}' before this.
-// main () { int x; print('${x' '); }
-//                            ^^^
+// pkg/front_end/testcases/regress/issue_35900.dart:5:29: Error: Expected '}' before this.
+// main () { int? x; print('${x' '); }
+//                             ^^^
 //
-// pkg/front_end/testcases/regress/issue_35900.dart:5:31: Error: Expected a String, but got ')'.
-// main () { int x; print('${x' '); }
-//                               ^
+// pkg/front_end/testcases/regress/issue_35900.dart:5:32: Error: Expected a String, but got ')'.
+// main () { int? x; print('${x' '); }
+//                                ^
 //
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::int* x;
+  core::int? x;
   core::print("${x}");
 }
diff --git a/pkg/front_end/testcases/regress/issue_35900.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_35900.dart.weak.outline.expect
index da0b63f..69520d4 100644
--- a/pkg/front_end/testcases/regress/issue_35900.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_35900.dart.weak.outline.expect
@@ -1,14 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_35900.dart:5:25: Error: Can't find '}' to match '${'.
-// main () { int x; print('${x' '); }
-//                         ^
+// pkg/front_end/testcases/regress/issue_35900.dart:5:26: Error: Can't find '}' to match '${'.
+// main () { int? x; print('${x' '); }
+//                          ^
 //
-// pkg/front_end/testcases/regress/issue_35900.dart:5:24: Error: String starting with ' must end with '.
-// main () { int x; print('${x' '); }
-//                        ^^^^^^^^^^^^...
+// pkg/front_end/testcases/regress/issue_35900.dart:5:25: Error: String starting with ' must end with '.
+// main () { int? x; print('${x' '); }
+//                         ^^^^^^^^^^^^...
 //
 // pkg/front_end/testcases/regress/issue_35900.dart:6:1: Error: Expected a declaration, but got ''.
 //
diff --git a/pkg/front_end/testcases/regress/issue_35900.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_35900.dart.weak.transformed.expect
index c6fc9e6..6dd9a32 100644
--- a/pkg/front_end/testcases/regress/issue_35900.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_35900.dart.weak.transformed.expect
@@ -1,29 +1,29 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_35900.dart:5:25: Error: Can't find '}' to match '${'.
-// main () { int x; print('${x' '); }
-//                         ^
+// pkg/front_end/testcases/regress/issue_35900.dart:5:26: Error: Can't find '}' to match '${'.
+// main () { int? x; print('${x' '); }
+//                          ^
 //
-// pkg/front_end/testcases/regress/issue_35900.dart:5:24: Error: String starting with ' must end with '.
-// main () { int x; print('${x' '); }
-//                        ^^^^^^^^^^^^...
+// pkg/front_end/testcases/regress/issue_35900.dart:5:25: Error: String starting with ' must end with '.
+// main () { int? x; print('${x' '); }
+//                         ^^^^^^^^^^^^...
 //
 // pkg/front_end/testcases/regress/issue_35900.dart:6:1: Error: Expected a declaration, but got ''.
 //
-// pkg/front_end/testcases/regress/issue_35900.dart:5:28: Error: Expected '}' before this.
-// main () { int x; print('${x' '); }
-//                            ^^^
+// pkg/front_end/testcases/regress/issue_35900.dart:5:29: Error: Expected '}' before this.
+// main () { int? x; print('${x' '); }
+//                             ^^^
 //
-// pkg/front_end/testcases/regress/issue_35900.dart:5:31: Error: Expected a String, but got ')'.
-// main () { int x; print('${x' '); }
-//                               ^
+// pkg/front_end/testcases/regress/issue_35900.dart:5:32: Error: Expected a String, but got ')'.
+// main () { int? x; print('${x' '); }
+//                                ^
 //
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::int* x;
+  core::int? x;
   core::print("${x}");
 }
diff --git a/pkg/front_end/testcases/regress/issue_36400.dart b/pkg/front_end/testcases/regress/issue_36400.dart
index dea6e4e..4e9455f 100644
--- a/pkg/front_end/testcases/regress/issue_36400.dart
+++ b/pkg/front_end/testcases/regress/issue_36400.dart
@@ -1,10 +1,10 @@
 // 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 Test {
   Test factory Test() {
-    return null;
+    throw '';
   }
 }
 
diff --git a/pkg/front_end/testcases/regress/issue_36400.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_36400.dart.textual_outline.expect
index a33d244..a6cca15 100644
--- a/pkg/front_end/testcases/regress/issue_36400.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_36400.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Test {
   Test factory Test() {}
 }
diff --git a/pkg/front_end/testcases/regress/issue_36400.dart.weak.expect b/pkg/front_end/testcases/regress/issue_36400.dart.weak.expect
index 3b5a369..4c11e13 100644
--- a/pkg/front_end/testcases/regress/issue_36400.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_36400.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,17 +11,7 @@
 import "dart:core" as core;
 
 class Test extends core::Object {
-  static factory •() → self::Test* {
-    return null;
+  static factory •() → self::Test {
+    throw "";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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/regress/issue_36400.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_36400.dart.weak.modular.expect
index 3b5a369..4c11e13 100644
--- a/pkg/front_end/testcases/regress/issue_36400.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_36400.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,17 +11,7 @@
 import "dart:core" as core;
 
 class Test extends core::Object {
-  static factory •() → self::Test* {
-    return null;
+  static factory •() → self::Test {
+    throw "";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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/regress/issue_36400.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_36400.dart.weak.outline.expect
index c49ae0d..7ac028f 100644
--- a/pkg/front_end/testcases/regress/issue_36400.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_36400.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,16 +11,6 @@
 import "dart:core" as core;
 
 class Test extends core::Object {
-  static factory •() → self::Test*
+  static factory •() → self::Test
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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/regress/issue_36400.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_36400.dart.weak.transformed.expect
index 3b5a369..4c11e13 100644
--- a/pkg/front_end/testcases/regress/issue_36400.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_36400.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,17 +11,7 @@
 import "dart:core" as core;
 
 class Test extends core::Object {
-  static factory •() → self::Test* {
-    return null;
+  static factory •() → self::Test {
+    throw "";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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/regress/issue_36647.dart b/pkg/front_end/testcases/regress/issue_36647.dart
index 72babce..3fcff27 100644
--- a/pkg/front_end/testcases/regress/issue_36647.dart
+++ b/pkg/front_end/testcases/regress/issue_36647.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
+
 import 'issue_36647_lib1.dart';
diff --git a/pkg/front_end/testcases/regress/issue_36647.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_36647.dart.textual_outline.expect
index ac80ab7..489c840 100644
--- a/pkg/front_end/testcases/regress/issue_36647.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_36647.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 import 'issue_36647_lib1.dart';
diff --git a/pkg/front_end/testcases/regress/issue_36647.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_36647.dart.textual_outline_modelled.expect
index ac80ab7..489c840 100644
--- a/pkg/front_end/testcases/regress/issue_36647.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_36647.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 import 'issue_36647_lib1.dart';
diff --git a/pkg/front_end/testcases/regress/issue_36647.dart.weak.expect b/pkg/front_end/testcases/regress/issue_36647.dart.weak.expect
index 85c932b..457856a 100644
--- a/pkg/front_end/testcases/regress/issue_36647.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_36647.dart.weak.expect
@@ -1,10 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "org-dartlang-testcase:///issue_36647_lib1.dart";
 
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "issue_36647_lib2.dart" as iss;
 additionalExports = (iss::xxx,
@@ -16,7 +16,7 @@
 export "org-dartlang-testcase:///issue_36647_lib2.dart";
 
 
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -67,19 +67,9 @@
 import "dart:core" as core;
 
 class xxx extends core::Object {
-  synthetic constructor •() → iss::xxx*
+  synthetic constructor •() → iss::xxx
     : 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 invalid-type XXX;
 static field dynamic extends;
diff --git a/pkg/front_end/testcases/regress/issue_36647.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_36647.dart.weak.modular.expect
index 85c932b..457856a 100644
--- a/pkg/front_end/testcases/regress/issue_36647.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_36647.dart.weak.modular.expect
@@ -1,10 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "org-dartlang-testcase:///issue_36647_lib1.dart";
 
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "issue_36647_lib2.dart" as iss;
 additionalExports = (iss::xxx,
@@ -16,7 +16,7 @@
 export "org-dartlang-testcase:///issue_36647_lib2.dart";
 
 
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -67,19 +67,9 @@
 import "dart:core" as core;
 
 class xxx extends core::Object {
-  synthetic constructor •() → iss::xxx*
+  synthetic constructor •() → iss::xxx
     : 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 invalid-type XXX;
 static field dynamic extends;
diff --git a/pkg/front_end/testcases/regress/issue_36647.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_36647.dart.weak.outline.expect
index 9ece05e..18d18f1 100644
--- a/pkg/front_end/testcases/regress/issue_36647.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_36647.dart.weak.outline.expect
@@ -1,10 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "org-dartlang-testcase:///issue_36647_lib1.dart";
 
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "issue_36647_lib2.dart" as iss;
 additionalExports = (iss::xxx,
@@ -16,7 +16,7 @@
 export "org-dartlang-testcase:///issue_36647_lib2.dart";
 
 
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -63,18 +63,8 @@
 import "dart:core" as core;
 
 class xxx extends core::Object {
-  synthetic constructor •() → iss::xxx*
+  synthetic constructor •() → iss::xxx
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 invalid-type XXX;
 static field dynamic extends;
diff --git a/pkg/front_end/testcases/regress/issue_36647.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_36647.dart.weak.transformed.expect
index 85c932b..457856a 100644
--- a/pkg/front_end/testcases/regress/issue_36647.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_36647.dart.weak.transformed.expect
@@ -1,10 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "org-dartlang-testcase:///issue_36647_lib1.dart";
 
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "issue_36647_lib2.dart" as iss;
 additionalExports = (iss::xxx,
@@ -16,7 +16,7 @@
 export "org-dartlang-testcase:///issue_36647_lib2.dart";
 
 
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -67,19 +67,9 @@
 import "dart:core" as core;
 
 class xxx extends core::Object {
-  synthetic constructor •() → iss::xxx*
+  synthetic constructor •() → iss::xxx
     : 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 invalid-type XXX;
 static field dynamic extends;
diff --git a/pkg/front_end/testcases/regress/issue_36647_2.dart b/pkg/front_end/testcases/regress/issue_36647_2.dart
index 7b521e8..4096e59 100644
--- a/pkg/front_end/testcases/regress/issue_36647_2.dart
+++ b/pkg/front_end/testcases/regress/issue_36647_2.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
+
 export 'issue_36647_2_lib1.dart';
diff --git a/pkg/front_end/testcases/regress/issue_36647_2.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_36647_2.dart.textual_outline.expect
index a071c84..f3a511c 100644
--- a/pkg/front_end/testcases/regress/issue_36647_2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_36647_2.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 export 'issue_36647_2_lib1.dart';
diff --git a/pkg/front_end/testcases/regress/issue_36647_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_36647_2.dart.textual_outline_modelled.expect
index a071c84..f3a511c 100644
--- a/pkg/front_end/testcases/regress/issue_36647_2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_36647_2.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 export 'issue_36647_2_lib1.dart';
diff --git a/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.expect b/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.expect
index 79c30c6..94480a3 100644
--- a/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "issue_36647_2_lib1.dart" as iss;
 additionalExports = (iss::foo,
@@ -9,7 +9,7 @@
 export "org-dartlang-testcase:///issue_36647_2_lib1.dart";
 
 
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -37,8 +37,8 @@
 import self as iss;
 import "dart:core" as core;
 
-typedef bar = () →* core::bool*;
-static field core::int* foo;
-static method baz() → core::int* {
+typedef bar = () → core::bool;
+static field core::int foo;
+static method baz() → core::int {
   return 42;
 }
diff --git a/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.modular.expect
index 79c30c6..94480a3 100644
--- a/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "issue_36647_2_lib1.dart" as iss;
 additionalExports = (iss::foo,
@@ -9,7 +9,7 @@
 export "org-dartlang-testcase:///issue_36647_2_lib1.dart";
 
 
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -37,8 +37,8 @@
 import self as iss;
 import "dart:core" as core;
 
-typedef bar = () →* core::bool*;
-static field core::int* foo;
-static method baz() → core::int* {
+typedef bar = () → core::bool;
+static field core::int foo;
+static method baz() → core::int {
   return 42;
 }
diff --git a/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.outline.expect
index e7ebe11..edf4524 100644
--- a/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "issue_36647_2_lib1.dart" as iss;
 additionalExports = (iss::foo,
@@ -9,7 +9,7 @@
 export "org-dartlang-testcase:///issue_36647_2_lib1.dart";
 
 
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -37,7 +37,7 @@
 import self as iss;
 import "dart:core" as core;
 
-typedef bar = () →* core::bool*;
-static field core::int* foo;
-static method baz() → core::int*
+typedef bar = () → core::bool;
+static field core::int foo;
+static method baz() → core::int
   ;
diff --git a/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.transformed.expect
index 79c30c6..94480a3 100644
--- a/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_36647_2.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "issue_36647_2_lib1.dart" as iss;
 additionalExports = (iss::foo,
@@ -9,7 +9,7 @@
 export "org-dartlang-testcase:///issue_36647_2_lib1.dart";
 
 
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -37,8 +37,8 @@
 import self as iss;
 import "dart:core" as core;
 
-typedef bar = () →* core::bool*;
-static field core::int* foo;
-static method baz() → core::int* {
+typedef bar = () → core::bool;
+static field core::int foo;
+static method baz() → core::int {
   return 42;
 }
diff --git a/pkg/front_end/testcases/regress/issue_36647_2_lib1.dart b/pkg/front_end/testcases/regress/issue_36647_2_lib1.dart
index 83b7e44..b2d8d4b 100644
--- a/pkg/front_end/testcases/regress/issue_36647_2_lib1.dart
+++ b/pkg/front_end/testcases/regress/issue_36647_2_lib1.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
+
 int foo = 42;
 int foo = 43;
 typedef bool bar();
diff --git a/pkg/front_end/testcases/regress/issue_36647_lib1.dart b/pkg/front_end/testcases/regress/issue_36647_lib1.dart
index 5572e1c..4aef191 100644
--- a/pkg/front_end/testcases/regress/issue_36647_lib1.dart
+++ b/pkg/front_end/testcases/regress/issue_36647_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
+
 export 'issue_36647_lib2.dart';
diff --git a/pkg/front_end/testcases/regress/issue_36647_lib2.dart b/pkg/front_end/testcases/regress/issue_36647_lib2.dart
index 0cbc933..3960141 100644
--- a/pkg/front_end/testcases/regress/issue_36647_lib2.dart
+++ b/pkg/front_end/testcases/regress/issue_36647_lib2.dart
@@ -1,6 +1,6 @@
 // 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 xxx xx XXX extends XXX {
 }
diff --git a/pkg/front_end/testcases/regress/issue_36669.dart b/pkg/front_end/testcases/regress/issue_36669.dart
index 64295d2..1de6055 100644
--- a/pkg/front_end/testcases/regress/issue_36669.dart
+++ b/pkg/front_end/testcases/regress/issue_36669.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
+
 class NoUnnamedConstructor {
   NoUnnamedConstructor._();
 }
diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline.expect
index 04ff88d..0dab00a 100644
--- a/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class NoUnnamedConstructor {
   NoUnnamedConstructor._();
 }
diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline_modelled.expect
index 6fa6b0d..ea59ead 100644
--- a/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Foo extends NoUnnamedConstructor with MixMeIn {}
 
 class MixMeIn {}
diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.weak.expect b/pkg/front_end/testcases/regress/issue_36669.dart.weak.expect
index 2eec808..1886d36 100644
--- a/pkg/front_end/testcases/regress/issue_36669.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_36669.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,42 +10,22 @@
 import "dart:core" as core;
 
 class NoUnnamedConstructor extends core::Object {
-  constructor _() → self::NoUnnamedConstructor*
+  constructor _() → self::NoUnnamedConstructor
     : 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 MixMeIn extends core::Object {
-  synthetic constructor •() → self::MixMeIn*
+  synthetic constructor •() → self::MixMeIn
     : 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 _Foo&NoUnnamedConstructor&MixMeIn = self::NoUnnamedConstructor with self::MixMeIn /*isAnonymousMixin*/  {
-  synthetic constructor _() → self::_Foo&NoUnnamedConstructor&MixMeIn*
+  synthetic constructor _() → self::_Foo&NoUnnamedConstructor&MixMeIn
     : super self::NoUnnamedConstructor::_()
     ;
 }
 class Foo extends self::_Foo&NoUnnamedConstructor&MixMeIn {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : invalid-initializer
     ;
 }
diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_36669.dart.weak.modular.expect
index 2eec808..1886d36 100644
--- a/pkg/front_end/testcases/regress/issue_36669.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_36669.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,42 +10,22 @@
 import "dart:core" as core;
 
 class NoUnnamedConstructor extends core::Object {
-  constructor _() → self::NoUnnamedConstructor*
+  constructor _() → self::NoUnnamedConstructor
     : 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 MixMeIn extends core::Object {
-  synthetic constructor •() → self::MixMeIn*
+  synthetic constructor •() → self::MixMeIn
     : 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 _Foo&NoUnnamedConstructor&MixMeIn = self::NoUnnamedConstructor with self::MixMeIn /*isAnonymousMixin*/  {
-  synthetic constructor _() → self::_Foo&NoUnnamedConstructor&MixMeIn*
+  synthetic constructor _() → self::_Foo&NoUnnamedConstructor&MixMeIn
     : super self::NoUnnamedConstructor::_()
     ;
 }
 class Foo extends self::_Foo&NoUnnamedConstructor&MixMeIn {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : invalid-initializer
     ;
 }
diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_36669.dart.weak.outline.expect
index 2799c79..b335607 100644
--- a/pkg/front_end/testcases/regress/issue_36669.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_36669.dart.weak.outline.expect
@@ -1,41 +1,21 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class NoUnnamedConstructor extends core::Object {
-  constructor _() → self::NoUnnamedConstructor*
+  constructor _() → self::NoUnnamedConstructor
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 MixMeIn extends core::Object {
-  synthetic constructor •() → self::MixMeIn*
+  synthetic constructor •() → self::MixMeIn
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 _Foo&NoUnnamedConstructor&MixMeIn = self::NoUnnamedConstructor with self::MixMeIn /*isAnonymousMixin*/  {
-  synthetic constructor _() → self::_Foo&NoUnnamedConstructor&MixMeIn*
+  synthetic constructor _() → self::_Foo&NoUnnamedConstructor&MixMeIn
     : super self::NoUnnamedConstructor::_()
     ;
 }
 class Foo extends self::_Foo&NoUnnamedConstructor&MixMeIn {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     ;
 }
diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_36669.dart.weak.transformed.expect
index b37611c..1fb6d3a 100644
--- a/pkg/front_end/testcases/regress/issue_36669.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_36669.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -10,42 +10,22 @@
 import "dart:core" as core;
 
 class NoUnnamedConstructor extends core::Object {
-  constructor _() → self::NoUnnamedConstructor*
+  constructor _() → self::NoUnnamedConstructor
     : 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 MixMeIn extends core::Object {
-  synthetic constructor •() → self::MixMeIn*
+  synthetic constructor •() → self::MixMeIn
     : 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 _Foo&NoUnnamedConstructor&MixMeIn extends self::NoUnnamedConstructor implements self::MixMeIn /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor _() → self::_Foo&NoUnnamedConstructor&MixMeIn*
+  synthetic constructor _() → self::_Foo&NoUnnamedConstructor&MixMeIn
     : super self::NoUnnamedConstructor::_()
     ;
 }
 class Foo extends self::_Foo&NoUnnamedConstructor&MixMeIn {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : invalid-initializer
     ;
 }
diff --git a/pkg/front_end/testcases/regress/issue_36793.dart b/pkg/front_end/testcases/regress/issue_36793.dart
index e5a48a0..1601a23 100644
--- a/pkg/front_end/testcases/regress/issue_36793.dart
+++ b/pkg/front_end/testcases/regress/issue_36793.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
+
 const int y = 42;
 
 @y
diff --git a/pkg/front_end/testcases/regress/issue_36793.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_36793.dart.textual_outline.expect
index 6e9cb4c..b3d1993 100644
--- a/pkg/front_end/testcases/regress/issue_36793.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_36793.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 const int y = 42;
 @y
 int x = 1;
diff --git a/pkg/front_end/testcases/regress/issue_36793.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_36793.dart.textual_outline_modelled.expect
index 6e9cb4c..b3d1993 100644
--- a/pkg/front_end/testcases/regress/issue_36793.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_36793.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 const int y = 42;
 @y
 int x = 1;
diff --git a/pkg/front_end/testcases/regress/issue_36793.dart.weak.expect b/pkg/front_end/testcases/regress/issue_36793.dart.weak.expect
index ac733f1..4cb7705 100644
--- a/pkg/front_end/testcases/regress/issue_36793.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_36793.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,9 +12,9 @@
 import self as self;
 import "dart:core" as core;
 
-static const field core::int* y = #C1;
+static const field core::int y = #C1;
 @#C1
-static field core::int* x;
+static field core::int x;
 static method main() → dynamic {
   core::print(#C1);
 }
diff --git a/pkg/front_end/testcases/regress/issue_36793.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_36793.dart.weak.modular.expect
index ac733f1..4cb7705 100644
--- a/pkg/front_end/testcases/regress/issue_36793.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_36793.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,9 +12,9 @@
 import self as self;
 import "dart:core" as core;
 
-static const field core::int* y = #C1;
+static const field core::int y = #C1;
 @#C1
-static field core::int* x;
+static field core::int x;
 static method main() → dynamic {
   core::print(#C1);
 }
diff --git a/pkg/front_end/testcases/regress/issue_36793.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_36793.dart.weak.outline.expect
index 8436fb3..307b5e7 100644
--- a/pkg/front_end/testcases/regress/issue_36793.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_36793.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,9 +12,9 @@
 import self as self;
 import "dart:core" as core;
 
-static const field core::int* y = 42;
+static const field core::int y = 42;
 @self::y
-static field core::int* x;
+static field core::int x;
 static method main() → dynamic
   ;
 
diff --git a/pkg/front_end/testcases/regress/issue_36793.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_36793.dart.weak.transformed.expect
index ac733f1..4cb7705 100644
--- a/pkg/front_end/testcases/regress/issue_36793.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_36793.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,9 +12,9 @@
 import self as self;
 import "dart:core" as core;
 
-static const field core::int* y = #C1;
+static const field core::int y = #C1;
 @#C1
-static field core::int* x;
+static field core::int x;
 static method main() → dynamic {
   core::print(#C1);
 }
diff --git a/pkg/front_end/testcases/regress/issue_37285.dart b/pkg/front_end/testcases/regress/issue_37285.dart
index 08673f3..6b5857d 100644
--- a/pkg/front_end/testcases/regress/issue_37285.dart
+++ b/pkg/front_end/testcases/regress/issue_37285.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
+
 class C {
   C() : super()[];
 }
diff --git a/pkg/front_end/testcases/regress/issue_37285.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_37285.dart.textual_outline.expect
index ff7918c..f2ce432 100644
--- a/pkg/front_end/testcases/regress/issue_37285.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_37285.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   C() : super()[];
 }
diff --git a/pkg/front_end/testcases/regress/issue_37285.dart.weak.expect b/pkg/front_end/testcases/regress/issue_37285.dart.weak.expect
index 84ceeef..a7c7118 100644
--- a/pkg/front_end/testcases/regress/issue_37285.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_37285.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -21,22 +21,12 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor •() → self::C*
+  constructor •() → self::C
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_37285.dart:6:16: Error: Not a valid initializer.
 To initialize a field, use the syntax 'name = value'.
   C() : 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
 }
 static method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/regress/issue_37285.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_37285.dart.weak.modular.expect
index 84ceeef..a7c7118 100644
--- a/pkg/front_end/testcases/regress/issue_37285.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_37285.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -21,22 +21,12 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor •() → self::C*
+  constructor •() → self::C
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_37285.dart:6:16: Error: Not a valid initializer.
 To initialize a field, use the syntax 'name = value'.
   C() : 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
 }
 static method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/regress/issue_37285.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_37285.dart.weak.outline.expect
index ffc4431..cceb0f2 100644
--- a/pkg/front_end/testcases/regress/issue_37285.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_37285.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,18 +11,8 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor •() → self::C*
+  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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/regress/issue_37285.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_37285.dart.weak.transformed.expect
index 84ceeef..a7c7118 100644
--- a/pkg/front_end/testcases/regress/issue_37285.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_37285.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -21,22 +21,12 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor •() → self::C*
+  constructor •() → self::C
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_37285.dart:6:16: Error: Not a valid initializer.
 To initialize a field, use the syntax 'name = value'.
   C() : 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
 }
 static method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/regress/issue_37681.dart b/pkg/front_end/testcases/regress/issue_37681.dart
index c8cca5e..ca0cd8b 100644
--- a/pkg/front_end/testcases/regress/issue_37681.dart
+++ b/pkg/front_end/testcases/regress/issue_37681.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
+
 main() async {
   int f_async() async { return 42; }
   print(await f_async());
diff --git a/pkg/front_end/testcases/regress/issue_37681.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_37681.dart.textual_outline.expect
index ff8d120..386f405 100644
--- a/pkg/front_end/testcases/regress/issue_37681.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_37681.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() async {}
diff --git a/pkg/front_end/testcases/regress/issue_37681.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_37681.dart.textual_outline_modelled.expect
index ff8d120..386f405 100644
--- a/pkg/front_end/testcases/regress/issue_37681.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_37681.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() async {}
diff --git a/pkg/front_end/testcases/regress/issue_37681.dart.weak.expect b/pkg/front_end/testcases/regress/issue_37681.dart.weak.expect
index 668dece..969857e 100644
--- a/pkg/front_end/testcases/regress/issue_37681.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_37681.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,20 +19,20 @@
 import "dart:async" as asy;
 
 static method main() → dynamic async /* futureValueType= dynamic */ {
-  function f_async() → core::int* async /* futureValueType= core::int* */ {
+  function f_async() → core::int async /* futureValueType= core::Object? */ {
     return 42;
   }
-  core::print(await f_async(){() →* core::int*});
-  function f_async_star() → core::int* async* {
+  core::print(await f_async(){() → core::int});
+  function f_async_star() → core::int async* {
     yield 42;
   }
-  await for (dynamic x in (f_async_star(){() →* core::int*} as dynamic) as{TypeError,ForDynamic} asy::Stream<dynamic>*) {
+  await for (dynamic x in (f_async_star(){() → core::int} as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<dynamic>) {
     core::print(x);
   }
-  function f_sync_star() → core::int* sync* {
+  function f_sync_star() → core::int sync* {
     yield 42;
   }
-  for (dynamic x in (f_sync_star(){() →* core::int*} as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+  for (dynamic x in (f_sync_star(){() → core::int} as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
     core::print(x);
   }
 }
diff --git a/pkg/front_end/testcases/regress/issue_37681.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_37681.dart.weak.modular.expect
index 668dece..969857e 100644
--- a/pkg/front_end/testcases/regress/issue_37681.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_37681.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -19,20 +19,20 @@
 import "dart:async" as asy;
 
 static method main() → dynamic async /* futureValueType= dynamic */ {
-  function f_async() → core::int* async /* futureValueType= core::int* */ {
+  function f_async() → core::int async /* futureValueType= core::Object? */ {
     return 42;
   }
-  core::print(await f_async(){() →* core::int*});
-  function f_async_star() → core::int* async* {
+  core::print(await f_async(){() → core::int});
+  function f_async_star() → core::int async* {
     yield 42;
   }
-  await for (dynamic x in (f_async_star(){() →* core::int*} as dynamic) as{TypeError,ForDynamic} asy::Stream<dynamic>*) {
+  await for (dynamic x in (f_async_star(){() → core::int} as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<dynamic>) {
     core::print(x);
   }
-  function f_sync_star() → core::int* sync* {
+  function f_sync_star() → core::int sync* {
     yield 42;
   }
-  for (dynamic x in (f_sync_star(){() →* core::int*} as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+  for (dynamic x in (f_sync_star(){() → core::int} as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
     core::print(x);
   }
 }
diff --git a/pkg/front_end/testcases/regress/issue_37681.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_37681.dart.weak.outline.expect
index b3304ef..074fe5d 100644
--- a/pkg/front_end/testcases/regress/issue_37681.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_37681.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method main() → dynamic async 
diff --git a/pkg/front_end/testcases/regress/issue_37681.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_37681.dart.weak.transformed.expect
index 9edac46..3e8045c 100644
--- a/pkg/front_end/testcases/regress/issue_37681.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_37681.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -20,12 +20,12 @@
 import "dart:_internal" as _in;
 
 static method main() → dynamic /* futureValueType= 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;
   dynamic :saved_try_context_var1;
@@ -35,13 +35,13 @@
     try {
       #L1:
       {
-        function f_async() → core::int* /* futureValueType= core::int* */ /* originally async */ {
-          final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
+        function f_async() → core::int /* futureValueType= core::Object? */ /* 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 {
@@ -53,23 +53,23 @@
               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;
         }
-        [yield] let dynamic #t1 = asy::_awaitHelper(f_async(){() →* core::int*}, :async_op_then, :async_op_error) in null;
-        core::print(_in::unsafeCast<core::int*>(:result_or_exception));
-        function f_async_star() → core::int* /* originally async* */ {
-          asy::_AsyncStarStreamController<dynamic>* :controller;
+        [yield] let dynamic #t1 = asy::_awaitHelper(f_async(){() → core::int}, :async_op_then, :async_op_error) in null;
+        core::print(_in::unsafeCast<core::int>(:result_or_exception));
+        function f_async_star() → core::int /* originally async* */ {
+          asy::_AsyncStarStreamController<dynamic>? :controller;
           dynamic :controller_stream;
-          (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;
           dynamic :saved_try_context_var1;
@@ -85,7 +85,7 @@
                 }
                 return;
               }
-              on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+              on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
                 :controller.{asy::_AsyncStarStreamController::addError}(exception, stack_trace){(core::Object, core::StackTrace) → void};
               }
             finally {
@@ -98,8 +98,8 @@
           return :controller_stream;
         }
         {
-          asy::Stream<dynamic>* :stream = (f_async_star(){() →* core::int*} as dynamic) as{TypeError,ForDynamic} asy::Stream<dynamic>*;
-          asy::_StreamIterator<dynamic>* :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+          asy::Stream<dynamic> :stream = (f_async_star(){() → core::int} as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<dynamic>;
+          asy::_StreamIterator<dynamic>? :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
           try
             #L4:
             while (true) {
@@ -120,11 +120,11 @@
               :result_or_exception;
             }
         }
-        function f_sync_star() → core::int* /* originally sync* */ {
-          function :sync_op_gen() → (core::_SyncIterator<dynamic>*, dynamic, dynamic) →* core::bool* {
-            core::int* :await_jump_var = 0;
+        function f_sync_star() → core::int /* originally sync* */ {
+          function :sync_op_gen() → (core::_SyncIterator<dynamic>?, dynamic, dynamic) → core::bool* {
+            core::int :await_jump_var = 0;
             dynamic :await_ctx_var;
-            function :sync_op(core::_SyncIterator<dynamic>* :iterator, dynamic :exception, dynamic :stack_trace) → core::bool* yielding {
+            function :sync_op(core::_SyncIterator<dynamic>? :iterator, dynamic :exception, dynamic :stack_trace) → core::bool* yielding {
               {
                 {
                   :iterator.{core::_SyncIterator::_current} = 42;
@@ -138,7 +138,7 @@
           return new core::_SyncIterable::•<dynamic>(:sync_op_gen);
         }
         {
-          core::Iterator<dynamic>* :sync-for-iterator = ((f_sync_star(){() →* core::int*} as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+          core::Iterator<dynamic> :sync-for-iterator = ((f_sync_star(){() → core::int} as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
           for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
             dynamic x = :sync-for-iterator.{core::Iterator::current}{dynamic};
             {
@@ -150,12 +150,12 @@
       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/regress/issue_39040.dart b/pkg/front_end/testcases/regress/issue_39040.dart
index 4cb5870..0232245 100644
--- a/pkg/front_end/testcases/regress/issue_39040.dart
+++ b/pkg/front_end/testcases/regress/issue_39040.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
+
 void main() {
   List<String> whereWasI = [];
   int outer = 1;
diff --git a/pkg/front_end/testcases/regress/issue_39040.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_39040.dart.textual_outline.expect
index 864efbe..ab73b3a 100644
--- a/pkg/front_end/testcases/regress/issue_39040.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_39040.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 void main() {}
diff --git a/pkg/front_end/testcases/regress/issue_39040.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_39040.dart.textual_outline_modelled.expect
index 864efbe..ab73b3a 100644
--- a/pkg/front_end/testcases/regress/issue_39040.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_39040.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 void main() {}
diff --git a/pkg/front_end/testcases/regress/issue_39040.dart.weak.expect b/pkg/front_end/testcases/regress/issue_39040.dart.weak.expect
index ade6db2..97e5537 100644
--- a/pkg/front_end/testcases/regress/issue_39040.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_39040.dart.weak.expect
@@ -1,17 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → void {
-  core::List<core::String*>* whereWasI = <core::String*>[];
-  core::int* outer = 1;
-  core::int* inner = 0;
+  core::List<core::String> whereWasI = <core::String>[];
+  core::int outer = 1;
+  core::int inner = 0;
   #L1:
   switch(outer) {
     #L2:
     case #C1:
       {
-        whereWasI.{core::List::add}("outer 0"){(core::String*) →* void};
+        whereWasI.{core::List::add}("outer 0"){(core::String) → void};
         break #L1;
       }
     #L3:
@@ -22,19 +22,19 @@
             #L4:
             case #C1:
               {
-                whereWasI.{core::List::add}("inner 0"){(core::String*) →* void};
+                whereWasI.{core::List::add}("inner 0"){(core::String) → void};
                 continue #L5;
               }
             #L5:
             case #C2:
               {
-                whereWasI.{core::List::add}("inner 1"){(core::String*) →* void};
+                whereWasI.{core::List::add}("inner 1"){(core::String) → void};
               }
           }
-        })(){() →* Null};
+        })(){() → Null};
       }
   }
-  if(!(whereWasI.{core::List::length}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 2) || !(whereWasI.{core::List::[]}(0){(core::int*) →* core::String*} =={core::String::==}{(core::Object*) →* core::bool*} "inner 0") || !(whereWasI.{core::List::[]}(1){(core::int*) →* core::String*} =={core::String::==}{(core::Object*) →* core::bool*} "inner 1")) {
+  if(!(whereWasI.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 2) || !(whereWasI.{core::List::[]}(0){(core::int) → core::String} =={core::String::==}{(core::Object) → core::bool} "inner 0") || !(whereWasI.{core::List::[]}(1){(core::int) → core::String} =={core::String::==}{(core::Object) → core::bool} "inner 1")) {
     throw "Unexpected path.";
   }
   core::print(whereWasI);
diff --git a/pkg/front_end/testcases/regress/issue_39040.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_39040.dart.weak.modular.expect
index ade6db2..97e5537 100644
--- a/pkg/front_end/testcases/regress/issue_39040.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_39040.dart.weak.modular.expect
@@ -1,17 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → void {
-  core::List<core::String*>* whereWasI = <core::String*>[];
-  core::int* outer = 1;
-  core::int* inner = 0;
+  core::List<core::String> whereWasI = <core::String>[];
+  core::int outer = 1;
+  core::int inner = 0;
   #L1:
   switch(outer) {
     #L2:
     case #C1:
       {
-        whereWasI.{core::List::add}("outer 0"){(core::String*) →* void};
+        whereWasI.{core::List::add}("outer 0"){(core::String) → void};
         break #L1;
       }
     #L3:
@@ -22,19 +22,19 @@
             #L4:
             case #C1:
               {
-                whereWasI.{core::List::add}("inner 0"){(core::String*) →* void};
+                whereWasI.{core::List::add}("inner 0"){(core::String) → void};
                 continue #L5;
               }
             #L5:
             case #C2:
               {
-                whereWasI.{core::List::add}("inner 1"){(core::String*) →* void};
+                whereWasI.{core::List::add}("inner 1"){(core::String) → void};
               }
           }
-        })(){() →* Null};
+        })(){() → Null};
       }
   }
-  if(!(whereWasI.{core::List::length}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 2) || !(whereWasI.{core::List::[]}(0){(core::int*) →* core::String*} =={core::String::==}{(core::Object*) →* core::bool*} "inner 0") || !(whereWasI.{core::List::[]}(1){(core::int*) →* core::String*} =={core::String::==}{(core::Object*) →* core::bool*} "inner 1")) {
+  if(!(whereWasI.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 2) || !(whereWasI.{core::List::[]}(0){(core::int) → core::String} =={core::String::==}{(core::Object) → core::bool} "inner 0") || !(whereWasI.{core::List::[]}(1){(core::int) → core::String} =={core::String::==}{(core::Object) → core::bool} "inner 1")) {
     throw "Unexpected path.";
   }
   core::print(whereWasI);
diff --git a/pkg/front_end/testcases/regress/issue_39040.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_39040.dart.weak.outline.expect
index 2982c48..684454e 100644
--- a/pkg/front_end/testcases/regress/issue_39040.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_39040.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method main() → void
diff --git a/pkg/front_end/testcases/regress/issue_39040.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_39040.dart.weak.transformed.expect
index 86da00b..41c539c 100644
--- a/pkg/front_end/testcases/regress/issue_39040.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_39040.dart.weak.transformed.expect
@@ -1,17 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → void {
-  core::List<core::String*>* whereWasI = core::_GrowableList::•<core::String*>(0);
-  core::int* outer = 1;
-  core::int* inner = 0;
+  core::List<core::String> whereWasI = core::_GrowableList::•<core::String>(0);
+  core::int outer = 1;
+  core::int inner = 0;
   #L1:
   switch(outer) {
     #L2:
     case #C1:
       {
-        whereWasI.{core::List::add}("outer 0"){(core::String*) →* void};
+        whereWasI.{core::List::add}("outer 0"){(core::String) → void};
         break #L1;
       }
     #L3:
@@ -22,19 +22,19 @@
             #L4:
             case #C1:
               {
-                whereWasI.{core::List::add}("inner 0"){(core::String*) →* void};
+                whereWasI.{core::List::add}("inner 0"){(core::String) → void};
                 continue #L5;
               }
             #L5:
             case #C2:
               {
-                whereWasI.{core::List::add}("inner 1"){(core::String*) →* void};
+                whereWasI.{core::List::add}("inner 1"){(core::String) → void};
               }
           }
-        })(){() →* Null};
+        })(){() → Null};
       }
   }
-  if(!(whereWasI.{core::List::length}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 2) || !(whereWasI.{core::List::[]}(0){(core::int*) →* core::String*} =={core::String::==}{(core::Object*) →* core::bool*} "inner 0") || !(whereWasI.{core::List::[]}(1){(core::int*) →* core::String*} =={core::String::==}{(core::Object*) →* core::bool*} "inner 1")) {
+  if(!(whereWasI.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 2) || !(whereWasI.{core::List::[]}(0){(core::int) → core::String} =={core::String::==}{(core::Object) → core::bool} "inner 0") || !(whereWasI.{core::List::[]}(1){(core::int) → core::String} =={core::String::==}{(core::Object) → core::bool} "inner 1")) {
     throw "Unexpected path.";
   }
   core::print(whereWasI);
diff --git a/pkg/front_end/testcases/regress/issue_39091_1.dart b/pkg/front_end/testcases/regress/issue_39091_1.dart
index 2a15740..00a65ee 100644
--- a/pkg/front_end/testcases/regress/issue_39091_1.dart
+++ b/pkg/front_end/testcases/regress/issue_39091_1.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
+
 hello
\ No newline at end of file
diff --git a/pkg/front_end/testcases/regress/issue_39091_1.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_39091_1.dart.textual_outline.expect
index 6f45439..943e3f5 100644
--- a/pkg/front_end/testcases/regress/issue_39091_1.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_39091_1.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 hello;
diff --git a/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.expect b/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.expect
index c414477..a3950aa 100644
--- a/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.modular.expect
index c414477..a3950aa 100644
--- a/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.outline.expect
index c414477..a3950aa 100644
--- a/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.transformed.expect
index c414477..a3950aa 100644
--- a/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_39091_1.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/regress/issue_39091_2.dart b/pkg/front_end/testcases/regress/issue_39091_2.dart
index f401961..437ef6e 100644
--- a/pkg/front_end/testcases/regress/issue_39091_2.dart
+++ b/pkg/front_end/testcases/regress/issue_39091_2.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
+
 main() {
 "";  /*æøå*/ "";
 "";
diff --git a/pkg/front_end/testcases/regress/issue_39682.dart b/pkg/front_end/testcases/regress/issue_39682.dart
index 63edd14..117d0d4 100644
--- a/pkg/front_end/testcases/regress/issue_39682.dart
+++ b/pkg/front_end/testcases/regress/issue_39682.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.md file.
-// @dart=2.9
+
 import "issue_39682_lib.dart" deferred as foo;
 
 main() {
diff --git a/pkg/front_end/testcases/regress/issue_39682.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_39682.dart.textual_outline.expect
index e7a1ec4..1d2a6fb 100644
--- a/pkg/front_end/testcases/regress/issue_39682.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_39682.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "issue_39682_lib.dart" deferred as foo;
 
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_39682.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_39682.dart.textual_outline_modelled.expect
index 4ab8bb5..ea21c2f 100644
--- a/pkg/front_end/testcases/regress/issue_39682.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_39682.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "issue_39682_lib.dart" deferred as foo;
 
 String __loadLibrary_foo() {}
diff --git a/pkg/front_end/testcases/regress/issue_39682.dart.weak.expect b/pkg/front_end/testcases/regress/issue_39682.dart.weak.expect
index 9866587..6102c74 100644
--- a/pkg/front_end/testcases/regress/issue_39682.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_39682.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:async" as asy;
 import "dart:core" as core;
@@ -6,17 +6,17 @@
 import "org-dartlang-testcase:///issue_39682_lib.dart" deferred as foo;
 
 static method main() → dynamic {
-  () →* asy::Future<dynamic>* f = #C1;
-  f(){() →* asy::Future<dynamic>*};
+  () → asy::Future<dynamic> f = #C1;
+  f(){() → asy::Future<dynamic>};
   core::print(self::__loadLibrary_foo());
 }
-static method __loadLibrary_foo() → core::String* {
+static method __loadLibrary_foo() → core::String {
   return "I'll call my methods what I want!";
 }
-static method _#loadLibrary_foo() → asy::Future<dynamic>*
+static method _#loadLibrary_foo() → asy::Future<dynamic>
   return LoadLibrary(foo);
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/regress/issue_39682.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_39682.dart.weak.modular.expect
index 9866587..6102c74 100644
--- a/pkg/front_end/testcases/regress/issue_39682.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_39682.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:async" as asy;
 import "dart:core" as core;
@@ -6,17 +6,17 @@
 import "org-dartlang-testcase:///issue_39682_lib.dart" deferred as foo;
 
 static method main() → dynamic {
-  () →* asy::Future<dynamic>* f = #C1;
-  f(){() →* asy::Future<dynamic>*};
+  () → asy::Future<dynamic> f = #C1;
+  f(){() → asy::Future<dynamic>};
   core::print(self::__loadLibrary_foo());
 }
-static method __loadLibrary_foo() → core::String* {
+static method __loadLibrary_foo() → core::String {
   return "I'll call my methods what I want!";
 }
-static method _#loadLibrary_foo() → asy::Future<dynamic>*
+static method _#loadLibrary_foo() → asy::Future<dynamic>
   return LoadLibrary(foo);
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/regress/issue_39682.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_39682.dart.weak.outline.expect
index bd418bb..4776c67 100644
--- a/pkg/front_end/testcases/regress/issue_39682.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_39682.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -6,10 +6,10 @@
 
 static method main() → dynamic
   ;
-static method __loadLibrary_foo() → core::String*
+static method __loadLibrary_foo() → core::String
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 
 static method foo() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_39682.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_39682.dart.weak.transformed.expect
index 9866587..6102c74 100644
--- a/pkg/front_end/testcases/regress/issue_39682.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_39682.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:async" as asy;
 import "dart:core" as core;
@@ -6,17 +6,17 @@
 import "org-dartlang-testcase:///issue_39682_lib.dart" deferred as foo;
 
 static method main() → dynamic {
-  () →* asy::Future<dynamic>* f = #C1;
-  f(){() →* asy::Future<dynamic>*};
+  () → asy::Future<dynamic> f = #C1;
+  f(){() → asy::Future<dynamic>};
   core::print(self::__loadLibrary_foo());
 }
-static method __loadLibrary_foo() → core::String* {
+static method __loadLibrary_foo() → core::String {
   return "I'll call my methods what I want!";
 }
-static method _#loadLibrary_foo() → asy::Future<dynamic>*
+static method _#loadLibrary_foo() → asy::Future<dynamic>
   return LoadLibrary(foo);
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/regress/issue_39682_lib.dart b/pkg/front_end/testcases/regress/issue_39682_lib.dart
index 721f173..7a16b65 100644
--- a/pkg/front_end/testcases/regress/issue_39682_lib.dart
+++ b/pkg/front_end/testcases/regress/issue_39682_lib.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.md file.
-// @dart=2.9
+
 foo() {
   print("foo!");
 }
\ No newline at end of file
diff --git a/pkg/front_end/testcases/regress/issue_42423.dart b/pkg/front_end/testcases/regress/issue_42423.dart
index 3d58bc3..094bb14 100644
--- a/pkg/front_end/testcases/regress/issue_42423.dart
+++ b/pkg/front_end/testcases/regress/issue_42423.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 'package:expect/expect.dart';
 
 test1(dynamic stringList) {
diff --git a/pkg/front_end/testcases/regress/issue_42423.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_42423.dart.textual_outline.expect
index ac29037..f8a2a21 100644
--- a/pkg/front_end/testcases/regress/issue_42423.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_42423.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'package:expect/expect.dart';
 
 test1(dynamic stringList) {}
diff --git a/pkg/front_end/testcases/regress/issue_42423.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_42423.dart.textual_outline_modelled.expect
index 69999c2..012ca7c 100644
--- a/pkg/front_end/testcases/regress/issue_42423.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/regress/issue_42423.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'package:expect/expect.dart';
 
 main() {}
diff --git a/pkg/front_end/testcases/regress/issue_42423.dart.weak.expect b/pkg/front_end/testcases/regress/issue_42423.dart.weak.expect
index f4dba33..d75de94 100644
--- a/pkg/front_end/testcases/regress/issue_42423.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_42423.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:collection" as col;
@@ -7,49 +7,49 @@
 import "package:expect/expect.dart";
 
 static method test1(dynamic stringList) → dynamic {
-  core::Set<core::int*>* intSet = block {
-    final core::Set<core::int*>* #t1 = col::LinkedHashSet::•<core::int*>();
-    final core::Iterable<dynamic>* #t2 = stringList as{TypeError,ForDynamic} core::Iterable<dynamic>*;
+  core::Set<core::int> intSet = block {
+    final core::Set<core::int> #t1 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t2 = stringList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
     if(!(#t2 == null))
-      for (final has-declared-initializer dynamic #t3 in #t2) {
-        final core::int* #t4 = #t3 as{TypeError} core::int*;
-        #t1.{core::Set::add}{Invariant}(#t4){(core::int*) →* core::bool*};
+      for (final has-declared-initializer dynamic #t3 in #t2{core::Iterable<dynamic>}) {
+        final core::int #t4 = #t3 as{TypeError,ForNonNullableByDefault} core::int;
+        #t1.{core::Set::add}{Invariant}(#t4){(core::int) → core::bool};
       }
   } =>#t1;
 }
 static method test2(dynamic stringList) → dynamic {
-  core::List<core::int*>* intList = block {
-    final core::List<core::int*>* #t5 = <core::int*>[];
-    final core::Iterable<dynamic>* #t6 = stringList as{TypeError,ForDynamic} core::Iterable<dynamic>*;
+  core::List<core::int> intList = block {
+    final core::List<core::int> #t5 = <core::int>[];
+    final core::Iterable<dynamic>? #t6 = stringList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
     if(!(#t6 == null))
-      for (final has-declared-initializer dynamic #t7 in #t6) {
-        final core::int* #t8 = #t7 as{TypeError} core::int*;
-        #t5.{core::List::add}{Invariant}(#t8){(core::int*) →* void};
+      for (final has-declared-initializer dynamic #t7 in #t6{core::Iterable<dynamic>}) {
+        final core::int #t8 = #t7 as{TypeError,ForNonNullableByDefault} core::int;
+        #t5.{core::List::add}{Invariant}(#t8){(core::int) → void};
       }
   } =>#t5;
 }
 static method test3(dynamic stringMap) → dynamic {
-  core::Map<core::int*, core::int*>* intMap = block {
-    final core::Map<core::int*, core::int*>* #t9 = <core::int*, core::int*>{};
-    final core::Map<dynamic, dynamic>* #t10 = stringMap as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*;
+  core::Map<core::int, core::int> intMap = block {
+    final core::Map<core::int, core::int> #t9 = <core::int, core::int>{};
+    final core::Map<dynamic, dynamic>? #t10 = stringMap as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>?;
     if(!(#t10 == null))
-      for (final has-declared-initializer core::MapEntry<dynamic, dynamic>* #t11 in #t10.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>}) {
-        final core::int* #t12 = #t11.{core::MapEntry::key}{dynamic} as{TypeError} core::int*;
-        final core::int* #t13 = #t11.{core::MapEntry::value}{dynamic} as{TypeError} core::int*;
-        #t9.{core::Map::[]=}{Invariant}(#t12, #t13){(core::int*, core::int*) →* void};
+      for (final has-declared-initializer core::MapEntry<dynamic, dynamic> #t11 in #t10{core::Map<dynamic, dynamic>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}) {
+        final core::int #t12 = #t11.{core::MapEntry::key}{dynamic} as{TypeError,ForNonNullableByDefault} core::int;
+        final core::int #t13 = #t11.{core::MapEntry::value}{dynamic} as{TypeError,ForNonNullableByDefault} core::int;
+        #t9.{core::Map::[]=}{Invariant}(#t12, #t13){(core::int, core::int) → void};
       }
   } =>#t9;
 }
 static method main() → dynamic {
-  dynamic stringList = <core::String*>["string"];
-  exp::Expect::throwsTypeError(() → Null {
+  dynamic stringList = <core::String>["string"];
+  exp::Expect::throwsTypeError(() → void {
     self::test1(stringList);
   });
-  exp::Expect::throwsTypeError(() → Null {
+  exp::Expect::throwsTypeError(() → void {
     self::test2(stringList);
   });
-  dynamic stringMap = <core::String*, core::String*>{"a": "b"};
-  exp::Expect::throwsTypeError(() → Null {
+  dynamic stringMap = <core::String, core::String>{"a": "b"};
+  exp::Expect::throwsTypeError(() → void {
     self::test3(stringMap);
   });
 }
diff --git a/pkg/front_end/testcases/regress/issue_42423.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_42423.dart.weak.modular.expect
index f4dba33..d75de94 100644
--- a/pkg/front_end/testcases/regress/issue_42423.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/regress/issue_42423.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:collection" as col;
@@ -7,49 +7,49 @@
 import "package:expect/expect.dart";
 
 static method test1(dynamic stringList) → dynamic {
-  core::Set<core::int*>* intSet = block {
-    final core::Set<core::int*>* #t1 = col::LinkedHashSet::•<core::int*>();
-    final core::Iterable<dynamic>* #t2 = stringList as{TypeError,ForDynamic} core::Iterable<dynamic>*;
+  core::Set<core::int> intSet = block {
+    final core::Set<core::int> #t1 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t2 = stringList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
     if(!(#t2 == null))
-      for (final has-declared-initializer dynamic #t3 in #t2) {
-        final core::int* #t4 = #t3 as{TypeError} core::int*;
-        #t1.{core::Set::add}{Invariant}(#t4){(core::int*) →* core::bool*};
+      for (final has-declared-initializer dynamic #t3 in #t2{core::Iterable<dynamic>}) {
+        final core::int #t4 = #t3 as{TypeError,ForNonNullableByDefault} core::int;
+        #t1.{core::Set::add}{Invariant}(#t4){(core::int) → core::bool};
       }
   } =>#t1;
 }
 static method test2(dynamic stringList) → dynamic {
-  core::List<core::int*>* intList = block {
-    final core::List<core::int*>* #t5 = <core::int*>[];
-    final core::Iterable<dynamic>* #t6 = stringList as{TypeError,ForDynamic} core::Iterable<dynamic>*;
+  core::List<core::int> intList = block {
+    final core::List<core::int> #t5 = <core::int>[];
+    final core::Iterable<dynamic>? #t6 = stringList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
     if(!(#t6 == null))
-      for (final has-declared-initializer dynamic #t7 in #t6) {
-        final core::int* #t8 = #t7 as{TypeError} core::int*;
-        #t5.{core::List::add}{Invariant}(#t8){(core::int*) →* void};
+      for (final has-declared-initializer dynamic #t7 in #t6{core::Iterable<dynamic>}) {
+        final core::int #t8 = #t7 as{TypeError,ForNonNullableByDefault} core::int;
+        #t5.{core::List::add}{Invariant}(#t8){(core::int) → void};
       }
   } =>#t5;
 }
 static method test3(dynamic stringMap) → dynamic {
-  core::Map<core::int*, core::int*>* intMap = block {
-    final core::Map<core::int*, core::int*>* #t9 = <core::int*, core::int*>{};
-    final core::Map<dynamic, dynamic>* #t10 = stringMap as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*;
+  core::Map<core::int, core::int> intMap = block {
+    final core::Map<core::int, core::int> #t9 = <core::int, core::int>{};
+    final core::Map<dynamic, dynamic>? #t10 = stringMap as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>?;
     if(!(#t10 == null))
-      for (final has-declared-initializer core::MapEntry<dynamic, dynamic>* #t11 in #t10.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>}) {
-        final core::int* #t12 = #t11.{core::MapEntry::key}{dynamic} as{TypeError} core::int*;
-        final core::int* #t13 = #t11.{core::MapEntry::value}{dynamic} as{TypeError} core::int*;
-        #t9.{core::Map::[]=}{Invariant}(#t12, #t13){(core::int*, core::int*) →* void};
+      for (final has-declared-initializer core::MapEntry<dynamic, dynamic> #t11 in #t10{core::Map<dynamic, dynamic>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}) {
+        final core::int #t12 = #t11.{core::MapEntry::key}{dynamic} as{TypeError,ForNonNullableByDefault} core::int;
+        final core::int #t13 = #t11.{core::MapEntry::value}{dynamic} as{TypeError,ForNonNullableByDefault} core::int;
+        #t9.{core::Map::[]=}{Invariant}(#t12, #t13){(core::int, core::int) → void};
       }
   } =>#t9;
 }
 static method main() → dynamic {
-  dynamic stringList = <core::String*>["string"];
-  exp::Expect::throwsTypeError(() → Null {
+  dynamic stringList = <core::String>["string"];
+  exp::Expect::throwsTypeError(() → void {
     self::test1(stringList);
   });
-  exp::Expect::throwsTypeError(() → Null {
+  exp::Expect::throwsTypeError(() → void {
     self::test2(stringList);
   });
-  dynamic stringMap = <core::String*, core::String*>{"a": "b"};
-  exp::Expect::throwsTypeError(() → Null {
+  dynamic stringMap = <core::String, core::String>{"a": "b"};
+  exp::Expect::throwsTypeError(() → void {
     self::test3(stringMap);
   });
 }
diff --git a/pkg/front_end/testcases/regress/issue_42423.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_42423.dart.weak.outline.expect
index 0ed79c5..03d8196 100644
--- a/pkg/front_end/testcases/regress/issue_42423.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_42423.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 import "package:expect/expect.dart";
diff --git a/pkg/front_end/testcases/regress/issue_42423.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_42423.dart.weak.transformed.expect
index 2fb8e72..2400154 100644
--- a/pkg/front_end/testcases/regress/issue_42423.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_42423.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:collection" as col;
@@ -7,64 +7,64 @@
 import "package:expect/expect.dart";
 
 static method test1(dynamic stringList) → dynamic {
-  core::Set<core::int*>* intSet = block {
-    final core::Set<core::int*>* #t1 = new col::_CompactLinkedHashSet::•<core::int*>();
-    final core::Iterable<dynamic>* #t2 = stringList as{TypeError,ForDynamic} core::Iterable<dynamic>*;
+  core::Set<core::int> intSet = block {
+    final core::Set<core::int> #t1 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t2 = stringList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
     if(!(#t2 == null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t2.{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = #t2{core::Iterable<dynamic>}.{core::Iterable::iterator}{core::Iterator<dynamic>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
         final dynamic #t3 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
-          final core::int* #t4 = #t3 as{TypeError} core::int*;
-          #t1.{core::Set::add}{Invariant}(#t4){(core::int*) →* core::bool*};
+          final core::int #t4 = #t3 as{TypeError,ForNonNullableByDefault} core::int;
+          #t1.{core::Set::add}{Invariant}(#t4){(core::int) → core::bool};
         }
       }
     }
   } =>#t1;
 }
 static method test2(dynamic stringList) → dynamic {
-  core::List<core::int*>* intList = block {
-    final core::List<core::int*>* #t5 = core::_GrowableList::•<core::int*>(0);
-    final core::Iterable<dynamic>* #t6 = stringList as{TypeError,ForDynamic} core::Iterable<dynamic>*;
+  core::List<core::int> intList = block {
+    final core::List<core::int> #t5 = core::_GrowableList::•<core::int>(0);
+    final core::Iterable<dynamic>? #t6 = stringList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
     if(!(#t6 == null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t6.{core::Iterable::iterator}{core::Iterator<dynamic>*};
+      core::Iterator<dynamic> :sync-for-iterator = #t6{core::Iterable<dynamic>}.{core::Iterable::iterator}{core::Iterator<dynamic>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
         final dynamic #t7 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
-          final core::int* #t8 = #t7 as{TypeError} core::int*;
-          #t5.{core::List::add}{Invariant}(#t8){(core::int*) →* void};
+          final core::int #t8 = #t7 as{TypeError,ForNonNullableByDefault} core::int;
+          #t5.{core::List::add}{Invariant}(#t8){(core::int) → void};
         }
       }
     }
   } =>#t5;
 }
 static method test3(dynamic stringMap) → dynamic {
-  core::Map<core::int*, core::int*>* intMap = block {
-    final core::Map<core::int*, core::int*>* #t9 = <core::int*, core::int*>{};
-    final core::Map<dynamic, dynamic>* #t10 = stringMap as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*;
+  core::Map<core::int, core::int> intMap = block {
+    final core::Map<core::int, core::int> #t9 = <core::int, core::int>{};
+    final core::Map<dynamic, dynamic>? #t10 = stringMap as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>?;
     if(!(#t10 == null)) {
-      core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = #t10.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int*, core::int*>>*};
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t10{core::Map<dynamic, dynamic>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        final core::MapEntry<dynamic, dynamic>* #t11 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int*, core::int*>};
+        final core::MapEntry<dynamic, dynamic> #t11 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
         {
-          final core::int* #t12 = #t11.{core::MapEntry::key}{dynamic} as{TypeError} core::int*;
-          final core::int* #t13 = #t11.{core::MapEntry::value}{dynamic} as{TypeError} core::int*;
-          #t9.{core::Map::[]=}{Invariant}(#t12, #t13){(core::int*, core::int*) →* void};
+          final core::int #t12 = #t11.{core::MapEntry::key}{dynamic} as{TypeError,ForNonNullableByDefault} core::int;
+          final core::int #t13 = #t11.{core::MapEntry::value}{dynamic} as{TypeError,ForNonNullableByDefault} core::int;
+          #t9.{core::Map::[]=}{Invariant}(#t12, #t13){(core::int, core::int) → void};
         }
       }
     }
   } =>#t9;
 }
 static method main() → dynamic {
-  dynamic stringList = core::_GrowableList::_literal1<core::String*>("string");
-  exp::Expect::throwsTypeError(() → Null {
+  dynamic stringList = core::_GrowableList::_literal1<core::String>("string");
+  exp::Expect::throwsTypeError(() → void {
     self::test1(stringList);
   });
-  exp::Expect::throwsTypeError(() → Null {
+  exp::Expect::throwsTypeError(() → void {
     self::test2(stringList);
   });
-  dynamic stringMap = <core::String*, core::String*>{"a": "b"};
-  exp::Expect::throwsTypeError(() → Null {
+  dynamic stringMap = <core::String, core::String>{"a": "b"};
+  exp::Expect::throwsTypeError(() → void {
     self::test3(stringMap);
   });
 }
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds.dart b/pkg/front_end/testcases/runtime_checks/call_kinds.dart
index 7422040..2aba871 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds.dart
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds.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
+
 /*@testedFeatures=checks*/
 library test;
 
@@ -9,7 +9,7 @@
 
 class C {
   void f() {}
-  F get g => null;
+  F get g => throw '';
   dynamic get h => null;
   void test() {
     // Call via this
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/call_kinds.dart.textual_outline.expect
index 6098d60..e2383b2 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds.dart.textual_outline.expect
@@ -1,11 +1,10 @@
-// @dart = 2.9
 library test;
 
 typedef void F();
 
 class C {
   void f() {}
-  F get g => null;
+  F get g => throw '';
   dynamic get h => null;
   void test() {}
 }
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/call_kinds.dart.textual_outline_modelled.expect
index 7f28360..4e82015 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
 library test;
 
 class C {
-  F get g => null;
+  F get g => throw '';
   dynamic get h => null;
   void f() {}
   void test() {}
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.expect
index d6a32ed..00dcc6e 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.expect
@@ -1,42 +1,32 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F = () →* void;
+typedef F = () → void;
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   method f() → void {}
-  get g() → () →* void
-    return null;
+  get g() → () → void
+    return throw "";
   get h() → dynamic
     return null;
   method test() → void {
-    this.{self::C::f}(){() →* void};
-    this.{self::C::f}(){() →* void};
-    this.{self::C::g}{() →* void}(){() →* void};
-    this.{self::C::g}{() →* void}(){() →* void};
+    this.{self::C::f}(){() → void};
+    this.{self::C::f}(){() → void};
+    this.{self::C::g}{() → void}(){() → void};
+    this.{self::C::g}{() → void}(){() → void};
     this.{self::C::h}{dynamic}{dynamic}.call();
     this.{self::C::h}{dynamic}{dynamic}.call();
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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(self::C* c, () →* void f, dynamic d) → void {
-  c.{self::C::f}(){() →* void};
-  f(){() →* void};
+static method test(self::C c, () → void f, dynamic d) → void {
+  c.{self::C::f}(){() → void};
+  f(){() → void};
   d{dynamic}.call();
   d{dynamic}.f();
-  c.{self::C::g}{() →* void}(){() →* void};
+  c.{self::C::g}{() → void}(){() → void};
   c.{self::C::h}{dynamic}{dynamic}.call();
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.modular.expect
index d6a32ed..00dcc6e 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.modular.expect
@@ -1,42 +1,32 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F = () →* void;
+typedef F = () → void;
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   method f() → void {}
-  get g() → () →* void
-    return null;
+  get g() → () → void
+    return throw "";
   get h() → dynamic
     return null;
   method test() → void {
-    this.{self::C::f}(){() →* void};
-    this.{self::C::f}(){() →* void};
-    this.{self::C::g}{() →* void}(){() →* void};
-    this.{self::C::g}{() →* void}(){() →* void};
+    this.{self::C::f}(){() → void};
+    this.{self::C::f}(){() → void};
+    this.{self::C::g}{() → void}(){() → void};
+    this.{self::C::g}{() → void}(){() → void};
     this.{self::C::h}{dynamic}{dynamic}.call();
     this.{self::C::h}{dynamic}{dynamic}.call();
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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(self::C* c, () →* void f, dynamic d) → void {
-  c.{self::C::f}(){() →* void};
-  f(){() →* void};
+static method test(self::C c, () → void f, dynamic d) → void {
+  c.{self::C::f}(){() → void};
+  f(){() → void};
   d{dynamic}.call();
   d{dynamic}.f();
-  c.{self::C::g}{() →* void}(){() →* void};
+  c.{self::C::g}{() → void}(){() → void};
   c.{self::C::h}{dynamic}{dynamic}.call();
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.outline.expect
index 148021d..d1ff2cb 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.outline.expect
@@ -1,31 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F = () →* void;
+typedef F = () → void;
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
   method f() → void
     ;
-  get g() → () →* void
+  get g() → () → void
     ;
   get h() → dynamic
     ;
   method test() → 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 test(self::C* c, () →* void f, dynamic d) → void
+static method test(self::C c, () → void f, dynamic d) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.transformed.expect
index d6a32ed..00dcc6e 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds.dart.weak.transformed.expect
@@ -1,42 +1,32 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F = () →* void;
+typedef F = () → void;
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   method f() → void {}
-  get g() → () →* void
-    return null;
+  get g() → () → void
+    return throw "";
   get h() → dynamic
     return null;
   method test() → void {
-    this.{self::C::f}(){() →* void};
-    this.{self::C::f}(){() →* void};
-    this.{self::C::g}{() →* void}(){() →* void};
-    this.{self::C::g}{() →* void}(){() →* void};
+    this.{self::C::f}(){() → void};
+    this.{self::C::f}(){() → void};
+    this.{self::C::g}{() → void}(){() → void};
+    this.{self::C::g}{() → void}(){() → void};
     this.{self::C::h}{dynamic}{dynamic}.call();
     this.{self::C::h}{dynamic}{dynamic}.call();
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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(self::C* c, () →* void f, dynamic d) → void {
-  c.{self::C::f}(){() →* void};
-  f(){() →* void};
+static method test(self::C c, () → void f, dynamic d) → void {
+  c.{self::C::f}(){() → void};
+  f(){() → void};
   d{dynamic}.call();
   d{dynamic}.f();
-  c.{self::C::g}{() →* void}(){() →* void};
+  c.{self::C::g}{() → void}(){() → void};
   c.{self::C::h}{dynamic}{dynamic}.call();
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart b/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart
index 81ff2c2..ed8556e 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_get.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.textual_outline.expect
index 6eb1323..aaf824e 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C {
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.textual_outline_modelled.expect
index 69519b0..588c9cd 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C {
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.expect
index 96f9b35..e3ccdac 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic y = null;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   get x() → dynamic
@@ -15,18 +15,8 @@
     dynamic v3 = this.{self::C::y}{dynamic};
     dynamic v4 = this.{self::C::y}{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(self::C* c, dynamic d) → void {
+static method test(self::C c, dynamic d) → void {
   dynamic v1 = c.{self::C::x}{dynamic};
   dynamic v2 = c.{self::C::y}{dynamic};
   dynamic v3 = d{dynamic}.x;
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.modular.expect
index 96f9b35..e3ccdac 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.modular.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic y = null;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   get x() → dynamic
@@ -15,18 +15,8 @@
     dynamic v3 = this.{self::C::y}{dynamic};
     dynamic v4 = this.{self::C::y}{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(self::C* c, dynamic d) → void {
+static method test(self::C c, dynamic d) → void {
   dynamic v1 = c.{self::C::x}{dynamic};
   dynamic v2 = c.{self::C::y}{dynamic};
   dynamic v3 = d{dynamic}.x;
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.outline.expect
index e330688..49a467d 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.outline.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic y;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
   get x() → dynamic
     ;
   method test() → 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 test(self::C* c, dynamic d) → void
+static method test(self::C c, dynamic d) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.transformed.expect
index 96f9b35..e3ccdac 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_get.dart.weak.transformed.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic y = null;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   get x() → dynamic
@@ -15,18 +15,8 @@
     dynamic v3 = this.{self::C::y}{dynamic};
     dynamic v4 = this.{self::C::y}{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(self::C* c, dynamic d) → void {
+static method test(self::C c, dynamic d) → void {
   dynamic v1 = c.{self::C::x}{dynamic};
   dynamic v2 = c.{self::C::y}{dynamic};
   dynamic v3 = d{dynamic}.x;
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart
index e14b4f2..2072ab6 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_set.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.textual_outline.expect
index b8d22a2..c96f079 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C {
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.textual_outline_modelled.expect
index cbf6b63..1ea93b3 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C {
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.expect
index a78157b..902122f 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic y = null;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   set x(dynamic value) → void {}
@@ -14,18 +14,8 @@
     this.{self::C::y} = null;
     this.{self::C::y} = 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
 }
-static method test(self::C* c, dynamic d) → void {
+static method test(self::C c, dynamic d) → void {
   c.{self::C::x} = null;
   c.{self::C::y} = null;
   d{dynamic}.x = null;
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.modular.expect
index a78157b..902122f 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.modular.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic y = null;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   set x(dynamic value) → void {}
@@ -14,18 +14,8 @@
     this.{self::C::y} = null;
     this.{self::C::y} = 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
 }
-static method test(self::C* c, dynamic d) → void {
+static method test(self::C c, dynamic d) → void {
   c.{self::C::x} = null;
   c.{self::C::y} = null;
   d{dynamic}.x = null;
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.outline.expect
index 183ccaa..d2f6916 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.outline.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic y;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
   set x(dynamic value) → void
     ;
   method test() → 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 test(self::C* c, dynamic d) → void
+static method test(self::C c, dynamic d) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.transformed.expect
index a78157b..902122f 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart.weak.transformed.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic y = null;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   set x(dynamic value) → void {}
@@ -14,18 +14,8 @@
     this.{self::C::y} = null;
     this.{self::C::y} = 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
 }
-static method test(self::C* c, dynamic d) → void {
+static method test(self::C c, dynamic d) → void {
   c.{self::C::x} = null;
   c.{self::C::y} = null;
   d{dynamic}.x = null;
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart
index 9c79ba9..1ea9483 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.textual_outline.expect
index ac57e71..acd8a15 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C {
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.textual_outline_modelled.expect
index ac57e71..acd8a15 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C {
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.expect
index bffdb53..fc1fdf8 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*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 call() → 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 main() → dynamic {
-  () →* void x = let final self::C* #t1 = new self::C::•() in #t1 == null ?{() →* void} null : #t1.{self::C::call}{() →* void};
+  () → void x = let final self::C #t1 = new self::C::•() in #t1 == null ?{() → void} null : #t1.{self::C::call}{() → void};
 }
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.modular.expect
index bffdb53..fc1fdf8 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*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 call() → 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 main() → dynamic {
-  () →* void x = let final self::C* #t1 = new self::C::•() in #t1 == null ?{() →* void} null : #t1.{self::C::call}{() →* void};
+  () → void x = let final self::C #t1 = new self::C::•() in #t1 == null ?{() → void} null : #t1.{self::C::call}{() → void};
 }
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.outline.expect
index 950f95a..9c2d471 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
   method call() → 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 main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.transformed.expect
index bffdb53..fc1fdf8 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*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 call() → 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 main() → dynamic {
-  () →* void x = let final self::C* #t1 = new self::C::•() in #t1 == null ?{() →* void} null : #t1.{self::C::call}{() →* void};
+  () → void x = let final self::C #t1 = new self::C::•() in #t1 == null ?{() → void} null : #t1.{self::C::call}{() → void};
 }
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart
index 5ffb89a..b2320f9 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.textual_outline.expect
index ea8a339..c9eba70 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 import 'dart:async';
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.textual_outline_modelled.expect
index ea8a339..c9eba70 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 import 'dart:async';
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.expect
index edf5d5c..955ecec 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "dart:async";
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   method call() → 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 main() → dynamic {
-  FutureOr<() →* void>* x = let final self::C* #t1 = new self::C::•() in #t1 == null ?{() →* void} null : #t1.{self::C::call}{() →* void};
+  FutureOr<() → void>x = let final self::C #t1 = new self::C::•() in #t1 == null ?{() → void} null : #t1.{self::C::call}{() → void};
 }
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.modular.expect
index edf5d5c..955ecec 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "dart:async";
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   method call() → 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 main() → dynamic {
-  FutureOr<() →* void>* x = let final self::C* #t1 = new self::C::•() in #t1 == null ?{() →* void} null : #t1.{self::C::call}{() →* void};
+  FutureOr<() → void>x = let final self::C #t1 = new self::C::•() in #t1 == null ?{() → void} null : #t1.{self::C::call}{() → void};
 }
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.outline.expect
index 5e63eb8..29372cb 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "dart:async";
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
   method call() → 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 main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.transformed.expect
index edf5d5c..955ecec 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "dart:async";
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   method call() → 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 main() → dynamic {
-  FutureOr<() →* void>* x = let final self::C* #t1 = new self::C::•() in #t1 == null ?{() →* void} null : #t1.{self::C::call}{() →* void};
+  FutureOr<() → void>x = let final self::C #t1 = new self::C::•() in #t1 == null ?{() → void} null : #t1.{self::C::call}{() → void};
 }
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_field.dart b/pkg/front_end/testcases/runtime_checks/contravariant_field.dart
index bfc499c..527eb16 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_field.dart
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_field.dart
@@ -1,21 +1,21 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 typedef void F<T>(T x);
 
 class C<T> {
-  F<T> y;
+  F<T> y = throw '';
   void f() {
     var x = this.y;
   }
 }
 
 void g(C<num> c) {
-  var x = c. /*@ checkReturn=(num*) ->* void */ y;
+  var x = c. /*@checkReturn=(num) -> void*/ y;
 }
 
 void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.textual_outline.expect
index 2f4bdf3..adad7ee 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 library test;
 
 typedef void F<T>(T x);
 
 class C<T> {
-  F<T> y;
+  F<T> y = throw '';
   void f() {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.textual_outline_modelled.expect
index 24309e5..eb32d9a 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
-  F<T> y;
+  F<T> y = throw '';
   void f() {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.expect
index 2142878..cb46be7 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  field (self::C::T*) →* void y = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  field (self::C::T%) → void y = throw "";
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
   method f() → void {
-    (self::C::T*) →* void x = this.{self::C::y}{(self::C::T*) →* void};
+    (self::C::T%) → void x = this.{self::C::y}{(self::C::T%) → 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 g(self::C<core::num*>* c) → void {
-  (core::num*) →* void x = c.{self::C::y}{(core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+static method g(self::C<core::num> c) → void {
+  (core::num) → void x = c.{self::C::y}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.modular.expect
index 2142878..cb46be7 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.modular.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  field (self::C::T*) →* void y = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  field (self::C::T%) → void y = throw "";
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
   method f() → void {
-    (self::C::T*) →* void x = this.{self::C::y}{(self::C::T*) →* void};
+    (self::C::T%) → void x = this.{self::C::y}{(self::C::T%) → 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 g(self::C<core::num*>* c) → void {
-  (core::num*) →* void x = c.{self::C::y}{(core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+static method g(self::C<core::num> c) → void {
+  (core::num) → void x = c.{self::C::y}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.outline.expect
index 3902b3d..7400122 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  field (self::C::T*) →* void y;
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  field (self::C::T%) → void y;
+  synthetic constructor •() → self::C<self::C::T%>
     ;
   method f() → 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 g(self::C<core::num*>* c) → void
+static method g(self::C<core::num> c) → void
   ;
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.transformed.expect
index 2142878..cb46be7 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_field.dart.weak.transformed.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  field (self::C::T*) →* void y = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  field (self::C::T%) → void y = throw "";
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
   method f() → void {
-    (self::C::T*) →* void x = this.{self::C::y}{(self::C::T*) →* void};
+    (self::C::T%) → void x = this.{self::C::y}{(self::C::T%) → 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 g(self::C<core::num*>* c) → void {
-  (core::num*) →* void x = c.{self::C::y}{(core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+static method g(self::C<core::num> c) → void {
+  (core::num) → void x = c.{self::C::y}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart
index 5a55bde..9ca3747 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.textual_outline.expect
index 01ca255..3bc94cd 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.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/runtime_checks/contravariant_generic_method_type_parameter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.textual_outline_modelled.expect
index d63adb1..d45149c 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.expect
index 3e9cb61..26d4967 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f<U extends (self::C::T*) →* void>(self::C::f::U* x) → 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<U extends (self::C::T%) → void>(self::C::f::U x) → void {}
 }
-static method g(self::C<core::num*>* c) → void {
-  c.{self::C::f}<(core::Object*) →* void>((core::Object* o) → Null {}){((core::Object*) →* void) →* void};
+static method g(self::C<core::num> c) → void {
+  c.{self::C::f}<(core::Object) → void>((core::Object o) → void {}){((core::Object) → void) → void};
 }
 static method test() → void {
-  self::g(new self::C::•<core::int*>());
+  self::g(new self::C::•<core::int>());
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.modular.expect
index 3e9cb61..26d4967 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.modular.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f<U extends (self::C::T*) →* void>(self::C::f::U* x) → 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<U extends (self::C::T%) → void>(self::C::f::U x) → void {}
 }
-static method g(self::C<core::num*>* c) → void {
-  c.{self::C::f}<(core::Object*) →* void>((core::Object* o) → Null {}){((core::Object*) →* void) →* void};
+static method g(self::C<core::num> c) → void {
+  c.{self::C::f}<(core::Object) → void>((core::Object o) → void {}){((core::Object) → void) → void};
 }
 static method test() → void {
-  self::g(new self::C::•<core::int*>());
+  self::g(new self::C::•<core::int>());
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.outline.expect
index 713c4b7..ad1ea5d 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  method f<U extends (self::C::T*) →* void>(self::C::f::U* x) → void
+  method f<U extends (self::C::T%) → void>(self::C::f::U x) → 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 g(self::C<core::num*>* c) → void
+static method g(self::C<core::num> c) → void
   ;
 static method test() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.transformed.expect
index 3e9cb61..26d4967 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.transformed.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f<U extends (self::C::T*) →* void>(self::C::f::U* x) → 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<U extends (self::C::T%) → void>(self::C::f::U x) → void {}
 }
-static method g(self::C<core::num*>* c) → void {
-  c.{self::C::f}<(core::Object*) →* void>((core::Object* o) → Null {}){((core::Object*) →* void) →* void};
+static method g(self::C<core::num> c) → void {
+  c.{self::C::f}<(core::Object) → void>((core::Object o) → void {}){((core::Object) → void) → void};
 }
 static method test() → void {
-  self::g(new self::C::•<core::int*>());
+  self::g(new self::C::•<core::int>());
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart
index 33868c9..e594ea7 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart
@@ -1,32 +1,32 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 typedef void F<T>(T x);
 
 class C<T> {
-  F<T> f1() {}
+  F<T> f1() => throw '';
   List<F<T>> f2() {
     return [this.f1()];
   }
 }
 
 void g1(C<num> c) {
-  var x = c.f1 /*@ checkReturn=(num*) ->* void */ ();
+  var x = c.f1 /*@checkReturn=(num) -> void*/ ();
   print('hello');
   x(1.5);
 }
 
 void g2(C<num> c) {
-  F<int> x = c.f1 /*@ checkReturn=(num*) ->* void */ ();
+  F<int> x = c.f1 /*@checkReturn=(num) -> void*/ ();
   x(1);
 }
 
 void g3(C<num> c) {
-  var x = c.f2 /*@ checkReturn=List<(num*) ->* void>* */ ();
+  var x = c.f2 /*@checkReturn=List<(num) -> void>*/ ();
 }
 
 void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.textual_outline.expect
index 4971ed6..d5b36e2 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 library test;
 
 typedef void F<T>(T x);
 
 class C<T> {
-  F<T> f1() {}
+  F<T> f1() => throw '';
   List<F<T>> f2() {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.textual_outline_modelled.expect
index 3ed7c2d..05f1ee3 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
-  F<T> f1() {}
+  F<T> f1() => throw '';
   List<F<T>> f2() {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.expect
index a1cb113..6e1c923 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.expect
@@ -1,37 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f1() → (self::C::T*) →* void {}
-  method f2() → core::List<(self::C::T*) →* void>* {
-    return <(self::C::T*) →* void>[this.{self::C::f1}(){() →* (self::C::T*) →* void}];
+  method f1() → (self::C::T%) → void
+    return throw "";
+  method f2() → core::List<(self::C::T%) → void> {
+    return <(self::C::T%) → void>[this.{self::C::f1}(){() → (self::C::T%) → 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 g1(self::C<core::num*>* c) → void {
-  (core::num*) →* void x = c.{self::C::f1}(){() →* (core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+static method g1(self::C<core::num> c) → void {
+  (core::num) → void x = c.{self::C::f1}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
   core::print("hello");
-  x(1.5){(core::num*) →* void};
+  x(1.5){(core::num) → void};
 }
-static method g2(self::C<core::num*>* c) → void {
-  (core::int*) →* void x = c.{self::C::f1}(){() →* (core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
-  x(1){(core::int*) →* void};
+static method g2(self::C<core::num> c) → void {
+  (core::int) → void x = c.{self::C::f1}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  x(1){(core::int) → void};
 }
-static method g3(self::C<core::num*>* c) → void {
-  core::List<(core::num*) →* void>* x = c.{self::C::f2}(){() →* core::List<(core::num*) →* void>*} as{TypeError,CovarianceCheck} core::List<(core::num*) →* void>*;
+static method g3(self::C<core::num> c) → void {
+  core::List<(core::num) → void> x = c.{self::C::f2}(){() → core::List<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} core::List<(core::num) → void>;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.modular.expect
index a1cb113..6e1c923 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.modular.expect
@@ -1,37 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f1() → (self::C::T*) →* void {}
-  method f2() → core::List<(self::C::T*) →* void>* {
-    return <(self::C::T*) →* void>[this.{self::C::f1}(){() →* (self::C::T*) →* void}];
+  method f1() → (self::C::T%) → void
+    return throw "";
+  method f2() → core::List<(self::C::T%) → void> {
+    return <(self::C::T%) → void>[this.{self::C::f1}(){() → (self::C::T%) → 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 g1(self::C<core::num*>* c) → void {
-  (core::num*) →* void x = c.{self::C::f1}(){() →* (core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+static method g1(self::C<core::num> c) → void {
+  (core::num) → void x = c.{self::C::f1}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
   core::print("hello");
-  x(1.5){(core::num*) →* void};
+  x(1.5){(core::num) → void};
 }
-static method g2(self::C<core::num*>* c) → void {
-  (core::int*) →* void x = c.{self::C::f1}(){() →* (core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
-  x(1){(core::int*) →* void};
+static method g2(self::C<core::num> c) → void {
+  (core::int) → void x = c.{self::C::f1}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  x(1){(core::int) → void};
 }
-static method g3(self::C<core::num*>* c) → void {
-  core::List<(core::num*) →* void>* x = c.{self::C::f2}(){() →* core::List<(core::num*) →* void>*} as{TypeError,CovarianceCheck} core::List<(core::num*) →* void>*;
+static method g3(self::C<core::num> c) → void {
+  core::List<(core::num) → void> x = c.{self::C::f2}(){() → core::List<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} core::List<(core::num) → void>;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.outline.expect
index ae504e7..08ea945 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.outline.expect
@@ -1,31 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  method f1() → (self::C::T*) →* void
+  method f1() → (self::C::T%) → void
     ;
-  method f2() → core::List<(self::C::T*) →* void>*
+  method f2() → core::List<(self::C::T%) → 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 g1(self::C<core::num*>* c) → void
+static method g1(self::C<core::num> c) → void
   ;
-static method g2(self::C<core::num*>* c) → void
+static method g2(self::C<core::num> c) → void
   ;
-static method g3(self::C<core::num*>* c) → void
+static method g3(self::C<core::num> c) → void
   ;
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.transformed.expect
index 5c0c338..ed1c81f 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.weak.transformed.expect
@@ -1,37 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f1() → (self::C::T*) →* void {}
-  method f2() → core::List<(self::C::T*) →* void>* {
-    return core::_GrowableList::_literal1<(self::C::T*) →* void>(this.{self::C::f1}(){() →* (self::C::T*) →* void});
+  method f1() → (self::C::T%) → void
+    return throw "";
+  method f2() → core::List<(self::C::T%) → void> {
+    return core::_GrowableList::_literal1<(self::C::T%) → void>(this.{self::C::f1}(){() → (self::C::T%) → 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 g1(self::C<core::num*>* c) → void {
-  (core::num*) →* void x = c.{self::C::f1}(){() →* (core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+static method g1(self::C<core::num> c) → void {
+  (core::num) → void x = c.{self::C::f1}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
   core::print("hello");
-  x(1.5){(core::num*) →* void};
+  x(1.5){(core::num) → void};
 }
-static method g2(self::C<core::num*>* c) → void {
-  (core::int*) →* void x = c.{self::C::f1}(){() →* (core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
-  x(1){(core::int*) →* void};
+static method g2(self::C<core::num> c) → void {
+  (core::int) → void x = c.{self::C::f1}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  x(1){(core::int) → void};
 }
-static method g3(self::C<core::num*>* c) → void {
-  core::List<(core::num*) →* void>* x = c.{self::C::f2}(){() →* core::List<(core::num*) →* void>*} as{TypeError,CovarianceCheck} core::List<(core::num*) →* void>*;
+static method g3(self::C<core::num> c) → void {
+  core::List<(core::num) → void> x = c.{self::C::f2}(){() → core::List<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} core::List<(core::num) → void>;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware.dart b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware.dart
index bdde6a5..94668c3 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware.dart
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware.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
+
 /*@testedFeatures=checks*/
 library test;
 
@@ -15,18 +17,18 @@
 }
 
 void g1(C<num> c) {
-  var x = c?.f1 /*@ checkReturn=(num*) ->* void */ ();
+  var x = c?.f1 /*@checkReturn=(num*) ->* void*/ ();
   print('hello');
   x(1.5);
 }
 
 void g2(C<num> c) {
-  F<int> x = c?.f1 /*@ checkReturn=(num*) ->* void */ ();
+  F<int> x = c?.f1 /*@checkReturn=(num*) ->* void*/ ();
   x(1);
 }
 
 void g3(C<num> c) {
-  var x = c?.f2 /*@ checkReturn=List<(num*) ->* void>* */ ();
+  var x = c?.f2 /*@checkReturn=List<(num*) ->* void>**/ ();
 }
 
 void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart
new file mode 100644
index 0000000..39583a2
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart
@@ -0,0 +1,32 @@
+// 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.
+
+/*@testedFeatures=checks*/
+library test;
+
+typedef void F<T>(T x);
+
+class C<T> {
+  F<T> f1() => throw '';
+  List<F<T>> f2() {
+    return [this?.f1()];
+  }
+}
+
+void g1(C<num>? c) {
+  var x = c?.f1 /*@checkReturn=(num) -> void*/ ();
+  print('hello');
+  x?.call(1.5);
+}
+
+void g2(C<num>? c) {
+  F<int>? x = c?.f1 /*@checkReturn=(num) -> void*/ ();
+  x?.call(1);
+}
+
+void g3(C<num>? c) {
+  var x = c?.f2 /*@checkReturn=List<(num) -> void>*/ ();
+}
+
+void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.textual_outline.expect
new file mode 100644
index 0000000..34dcf8e
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.textual_outline.expect
@@ -0,0 +1,13 @@
+library test;
+
+typedef void F<T>(T x);
+
+class C<T> {
+  F<T> f1() => throw '';
+  List<F<T>> f2() {}
+}
+
+void g1(C<num>? c) {}
+void g2(C<num>? c) {}
+void g3(C<num>? c) {}
+void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..f4e23e8
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.textual_outline_modelled.expect
@@ -0,0 +1,12 @@
+library test;
+
+class C<T> {
+  F<T> f1() => throw '';
+  List<F<T>> f2() {}
+}
+
+typedef void F<T>(T x);
+void g1(C<num>? c) {}
+void g2(C<num>? c) {}
+void g3(C<num>? c) {}
+void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.weak.expect
new file mode 100644
index 0000000..dd20162
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.weak.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart:13:13: Warning: The receiver 'this' cannot be null.
+// Try replacing '?.' with '.'
+//     return [this?.f1()];
+//             ^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
+    : super core::Object::•()
+    ;
+  method f1() → (self::C::T%) → void
+    return throw "";
+  method f2() → core::List<(self::C::T%) → void> {
+    return <(self::C::T%) → void>[this.{self::C::f1}(){() → (self::C::T%) → void}];
+  }
+}
+static method g1(self::C<core::num>? c) → void {
+  (core::num) →? void x = let final self::C<core::num>? #t1 = c in #t1 == null ?{(core::num) →? void} null : #t1{self::C<core::num>}.{self::C::f1}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  core::print("hello");
+  let final (core::num) →? void #t2 = x in #t2 == null ?{void} null : #t2{(core::num) → void}(1.5){(core::num) → void};
+}
+static method g2(self::C<core::num>? c) → void {
+  (core::int) →? void x = let final self::C<core::num>? #t3 = c in #t3 == null ?{(core::num) →? void} null : #t3{self::C<core::num>}.{self::C::f1}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  let final (core::int) →? void #t4 = x in #t4 == null ?{void} null : #t4{(core::int) → void}(1){(core::int) → void};
+}
+static method g3(self::C<core::num>? c) → void {
+  core::List<(core::num) → void>? x = let final self::C<core::num>? #t5 = c in #t5 == null ?{core::List<(core::num) → void>?} null : #t5{self::C<core::num>}.{self::C::f2}(){() → core::List<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} core::List<(core::num) → void>;
+}
+static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.weak.modular.expect
new file mode 100644
index 0000000..dd20162
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.weak.modular.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart:13:13: Warning: The receiver 'this' cannot be null.
+// Try replacing '?.' with '.'
+//     return [this?.f1()];
+//             ^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
+    : super core::Object::•()
+    ;
+  method f1() → (self::C::T%) → void
+    return throw "";
+  method f2() → core::List<(self::C::T%) → void> {
+    return <(self::C::T%) → void>[this.{self::C::f1}(){() → (self::C::T%) → void}];
+  }
+}
+static method g1(self::C<core::num>? c) → void {
+  (core::num) →? void x = let final self::C<core::num>? #t1 = c in #t1 == null ?{(core::num) →? void} null : #t1{self::C<core::num>}.{self::C::f1}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  core::print("hello");
+  let final (core::num) →? void #t2 = x in #t2 == null ?{void} null : #t2{(core::num) → void}(1.5){(core::num) → void};
+}
+static method g2(self::C<core::num>? c) → void {
+  (core::int) →? void x = let final self::C<core::num>? #t3 = c in #t3 == null ?{(core::num) →? void} null : #t3{self::C<core::num>}.{self::C::f1}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  let final (core::int) →? void #t4 = x in #t4 == null ?{void} null : #t4{(core::int) → void}(1){(core::int) → void};
+}
+static method g3(self::C<core::num>? c) → void {
+  core::List<(core::num) → void>? x = let final self::C<core::num>? #t5 = c in #t5 == null ?{core::List<(core::num) → void>?} null : #t5{self::C<core::num>}.{self::C::f2}(){() → core::List<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} core::List<(core::num) → void>;
+}
+static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.weak.outline.expect
new file mode 100644
index 0000000..7365f0d
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.weak.outline.expect
@@ -0,0 +1,21 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
+    ;
+  method f1() → (self::C::T%) → void
+    ;
+  method f2() → core::List<(self::C::T%) → void>
+    ;
+}
+static method g1(self::C<core::num>? c) → void
+  ;
+static method g2(self::C<core::num>? c) → void
+  ;
+static method g3(self::C<core::num>? c) → void
+  ;
+static method main() → void
+  ;
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.weak.transformed.expect
new file mode 100644
index 0000000..f5a0662
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart.weak.transformed.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware2.dart:13:13: Warning: The receiver 'this' cannot be null.
+// Try replacing '?.' with '.'
+//     return [this?.f1()];
+//             ^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
+    : super core::Object::•()
+    ;
+  method f1() → (self::C::T%) → void
+    return throw "";
+  method f2() → core::List<(self::C::T%) → void> {
+    return core::_GrowableList::_literal1<(self::C::T%) → void>(this.{self::C::f1}(){() → (self::C::T%) → void});
+  }
+}
+static method g1(self::C<core::num>? c) → void {
+  (core::num) →? void x = let final self::C<core::num>? #t1 = c in #t1 == null ?{(core::num) →? void} null : #t1{self::C<core::num>}.{self::C::f1}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  core::print("hello");
+  let final (core::num) →? void #t2 = x in #t2 == null ?{void} null : #t2{(core::num) → void}(1.5){(core::num) → void};
+}
+static method g2(self::C<core::num>? c) → void {
+  (core::int) →? void x = let final self::C<core::num>? #t3 = c in #t3 == null ?{(core::num) →? void} null : #t3{self::C<core::num>}.{self::C::f1}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  let final (core::int) →? void #t4 = x in #t4 == null ?{void} null : #t4{(core::int) → void}(1){(core::int) → void};
+}
+static method g3(self::C<core::num>? c) → void {
+  core::List<(core::num) → void>? x = let final self::C<core::num>? #t5 = c in #t5 == null ?{core::List<(core::num) → void>?} null : #t5{self::C<core::num>}.{self::C::f2}(){() → core::List<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} core::List<(core::num) → void>;
+}
+static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart
index ec99cae..4b202f2 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.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
+
 /*@testedFeatures=checks*/
 library test;
 
@@ -15,7 +15,7 @@
 }
 
 G<num> g(C<num> c) {
-  return c. /*@ checkReturn=() ->* (num*) ->* void */ f;
+  return c. /*@checkReturn=() -> (num) -> void*/ f;
 }
 
 void h(int i) {
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.textual_outline.expect
index 96eabed..950b57d 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 typedef void F<T>(T x);
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.textual_outline_modelled.expect
index 0a9988b..ac397a4 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 G<num> g(C<num> c) {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.expect
index 3f796f1..f128147 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.expect
@@ -1,35 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-typedef G<contravariant T extends core::Object* = dynamic> = () →* (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  field (self::C::T*) →* void _x;
-  constructor •((self::C::T*) →* void _x) → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+typedef G<contravariant T extends core::Object? = dynamic> = () → (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  field (self::C::T%) → void _x;
+  constructor •((self::C::T%) → void _x) → self::C<self::C::T%>
     : self::C::_x = _x, super core::Object::•()
     ;
-  method f() → (self::C::T*) →* void
-    return this.{self::C::_x}{(self::C::T*) →* 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::C::T%) → void
+    return this.{self::C::_x}{(self::C::T%) → void};
 }
-static method g(self::C<core::num*>* c) → () →* (core::num*) →* void {
-  return c.{self::C::f}{() →* (core::num*) →* void} as{TypeError,CovarianceCheck} () →* (core::num*) →* void;
+static method g(self::C<core::num> c) → () → (core::num) → void {
+  return c.{self::C::f}{() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} () → (core::num) → void;
 }
-static method h(core::int* i) → void {
+static method h(core::int i) → void {
   core::print("${i}");
 }
 static method test() → void {
-  () →* (core::num*) →* void x = self::g(new self::C::•<core::int*>(#C1));
+  () → (core::num) → void x = self::g(new self::C::•<core::int>(#C1));
 }
 static method main() → void {}
 
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.modular.expect
index 3f796f1..f128147 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.modular.expect
@@ -1,35 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-typedef G<contravariant T extends core::Object* = dynamic> = () →* (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  field (self::C::T*) →* void _x;
-  constructor •((self::C::T*) →* void _x) → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+typedef G<contravariant T extends core::Object? = dynamic> = () → (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  field (self::C::T%) → void _x;
+  constructor •((self::C::T%) → void _x) → self::C<self::C::T%>
     : self::C::_x = _x, super core::Object::•()
     ;
-  method f() → (self::C::T*) →* void
-    return this.{self::C::_x}{(self::C::T*) →* 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::C::T%) → void
+    return this.{self::C::_x}{(self::C::T%) → void};
 }
-static method g(self::C<core::num*>* c) → () →* (core::num*) →* void {
-  return c.{self::C::f}{() →* (core::num*) →* void} as{TypeError,CovarianceCheck} () →* (core::num*) →* void;
+static method g(self::C<core::num> c) → () → (core::num) → void {
+  return c.{self::C::f}{() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} () → (core::num) → void;
 }
-static method h(core::int* i) → void {
+static method h(core::int i) → void {
   core::print("${i}");
 }
 static method test() → void {
-  () →* (core::num*) →* void x = self::g(new self::C::•<core::int*>(#C1));
+  () → (core::num) → void x = self::g(new self::C::•<core::int>(#C1));
 }
 static method main() → void {}
 
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.outline.expect
index 238d0af..853a041 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.outline.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-typedef G<contravariant T extends core::Object* = dynamic> = () →* (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  field (self::C::T*) →* void _x;
-  constructor •((self::C::T*) →* void _x) → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+typedef G<contravariant T extends core::Object? = dynamic> = () → (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  field (self::C::T%) → void _x;
+  constructor •((self::C::T%) → void _x) → self::C<self::C::T%>
     ;
-  method f() → (self::C::T*) →* void
+  method f() → (self::C::T%) → 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 g(self::C<core::num*>* c) → () →* (core::num*) →* void
+static method g(self::C<core::num> c) → () → (core::num) → void
   ;
-static method h(core::int* i) → void
+static method h(core::int i) → void
   ;
 static method test() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.transformed.expect
index 3f796f1..f128147 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_tear_off.dart.weak.transformed.expect
@@ -1,35 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-typedef G<contravariant T extends core::Object* = dynamic> = () →* (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  field (self::C::T*) →* void _x;
-  constructor •((self::C::T*) →* void _x) → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+typedef G<contravariant T extends core::Object? = dynamic> = () → (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  field (self::C::T%) → void _x;
+  constructor •((self::C::T%) → void _x) → self::C<self::C::T%>
     : self::C::_x = _x, super core::Object::•()
     ;
-  method f() → (self::C::T*) →* void
-    return this.{self::C::_x}{(self::C::T*) →* 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::C::T%) → void
+    return this.{self::C::_x}{(self::C::T%) → void};
 }
-static method g(self::C<core::num*>* c) → () →* (core::num*) →* void {
-  return c.{self::C::f}{() →* (core::num*) →* void} as{TypeError,CovarianceCheck} () →* (core::num*) →* void;
+static method g(self::C<core::num> c) → () → (core::num) → void {
+  return c.{self::C::f}{() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} () → (core::num) → void;
 }
-static method h(core::int* i) → void {
+static method h(core::int i) → void {
   core::print("${i}");
 }
 static method test() → void {
-  () →* (core::num*) →* void x = self::g(new self::C::•<core::int*>(#C1));
+  () → (core::num) → void x = self::g(new self::C::•<core::int>(#C1));
 }
 static method main() → void {}
 
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart b/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart
index f940dab..7141d55 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart
@@ -1,21 +1,21 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 typedef void F<T>(T x);
 
 class C<T> {
-  F<T> y;
+  F<T> y = throw '';
   void f(T value) {
     this.y(value);
   }
 }
 
 void g(C<num> c) {
-  c.y /*@ checkGetterReturn=(num*) ->* void */ (1.5);
+  c.y /*@checkGetterReturn=(num) -> void*/ (1.5);
 }
 
 void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.textual_outline.expect
index 385996d..a802dab 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 library test;
 
 typedef void F<T>(T x);
 
 class C<T> {
-  F<T> y;
+  F<T> y = throw '';
   void f(T value) {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.textual_outline_modelled.expect
index 3120bc5..66f8603 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
-  F<T> y;
+  F<T> y = throw '';
   void f(T value) {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.expect
index d641b1f..749fd48 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  field (self::C::T*) →* void y = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  field (self::C::T%) → void y = throw "";
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f(covariant-by-class self::C::T* value) → void {
-    let final self::C::T* #t1 = value in this.{self::C::y}{(self::C::T*) →* void}(#t1){(self::C::T*) →* void};
+  method f(covariant-by-class self::C::T% value) → void {
+    let final self::C::T% #t1 = value in this.{self::C::y}{(self::C::T%) → void}(#t1){(self::C::T%) → 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 g(self::C<core::num*>* c) → void {
-  let final self::C<core::num*>* #t2 = c in let final core::double* #t3 = 1.5 in (#t2.{self::C::y}{(core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void)(#t3){(core::num*) →* void};
+static method g(self::C<core::num> c) → void {
+  let final self::C<core::num> #t2 = c in let final core::double #t3 = 1.5 in (#t2.{self::C::y}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void)(#t3){(core::num) → void};
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.modular.expect
index d641b1f..749fd48 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.modular.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  field (self::C::T*) →* void y = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  field (self::C::T%) → void y = throw "";
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f(covariant-by-class self::C::T* value) → void {
-    let final self::C::T* #t1 = value in this.{self::C::y}{(self::C::T*) →* void}(#t1){(self::C::T*) →* void};
+  method f(covariant-by-class self::C::T% value) → void {
+    let final self::C::T% #t1 = value in this.{self::C::y}{(self::C::T%) → void}(#t1){(self::C::T%) → 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 g(self::C<core::num*>* c) → void {
-  let final self::C<core::num*>* #t2 = c in let final core::double* #t3 = 1.5 in (#t2.{self::C::y}{(core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void)(#t3){(core::num*) →* void};
+static method g(self::C<core::num> c) → void {
+  let final self::C<core::num> #t2 = c in let final core::double #t3 = 1.5 in (#t2.{self::C::y}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void)(#t3){(core::num) → void};
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.outline.expect
index 84a11c2..4a4749d 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  field (self::C::T*) →* void y;
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  field (self::C::T%) → void y;
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  method f(covariant-by-class self::C::T* value) → void
+  method f(covariant-by-class self::C::T% 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 method g(self::C<core::num*>* c) → void
+static method g(self::C<core::num> c) → void
   ;
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.transformed.expect
index 66836cf..4872820 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter.dart.weak.transformed.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  field (self::C::T*) →* void y = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  field (self::C::T%) → void y = throw "";
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f(covariant-by-class self::C::T* value) → void {
-    let final self::C::T* #t1 = value in this.{self::C::y}{(self::C::T*) →* void}(#t1){(self::C::T*) →* void};
+  method f(covariant-by-class self::C::T% value) → void {
+    let final self::C::T% #t1 = value in this.{self::C::y}{(self::C::T%) → void}(#t1){(self::C::T%) → 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 g(self::C<core::num*>* c) → void {
-  let final self::C<core::num*>* #t2 = c in let final core::double* #t3 = 1.5 in (#t2.{self::C::y}{(core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void)(#t3){(core::num*) →* void};
+static method g(self::C<core::num> c) → void {
+  let final self::C<core::num> #t2 = c in let final core::double #t3 = 1.5 in (#t2.{self::C::y}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void)(#t3){(core::num) → void};
 }
 static method main() → void {}
 
 
 Extra constant evaluation status:
-Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_getter.dart:18:49 -> DoubleConstant(1.5)
-Extra constant evaluation: evaluated: 14, effectively constant: 1
+Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_getter.dart:18:45 -> DoubleConstant(1.5)
+Extra constant evaluation: evaluated: 15, effectively constant: 1
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart
index d8489b5..f005e46 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart
@@ -1,32 +1,32 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 typedef void F<T>(T x);
 
 class C<T> {
-  F<T> get f1 => null;
+  F<T> get f1 => throw '';
   List<F<T>> get f2 {
     return [this.f1];
   }
 }
 
 void g1(C<num> c) {
-  var x = c. /*@ checkReturn=(num*) ->* void */ f1;
+  var x = c. /*@checkReturn=(num) -> void*/ f1;
   print('hello');
   x(1.5);
 }
 
 void g2(C<num> c) {
-  F<int> x = c. /*@ checkReturn=(num*) ->* void */ f1;
+  F<int> x = c. /*@checkReturn=(num) -> void*/ f1;
   x(1);
 }
 
 void g3(C<num> c) {
-  var x = c. /*@ checkReturn=List<(num*) ->* void>* */ f2;
+  var x = c. /*@checkReturn=List<(num) -> void>*/ f2;
 }
 
 void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.textual_outline.expect
index 2e2cd6e..185f54a 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 library test;
 
 typedef void F<T>(T x);
 
 class C<T> {
-  F<T> get f1 => null;
+  F<T> get f1 => throw '';
   List<F<T>> get f2 {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.textual_outline_modelled.expect
index 3099710..d8b22d8 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
-  F<T> get f1 => null;
+  F<T> get f1 => throw '';
   List<F<T>> get f2 {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.expect
index 60445df..72fd3d0 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.expect
@@ -1,38 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  get f1() → (self::C::T*) →* void
-    return null;
-  get f2() → core::List<(self::C::T*) →* void>* {
-    return <(self::C::T*) →* void>[this.{self::C::f1}{(self::C::T*) →* void}];
+  get f1() → (self::C::T%) → void
+    return throw "";
+  get f2() → core::List<(self::C::T%) → void> {
+    return <(self::C::T%) → void>[this.{self::C::f1}{(self::C::T%) → 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 g1(self::C<core::num*>* c) → void {
-  (core::num*) →* void x = c.{self::C::f1}{(core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+static method g1(self::C<core::num> c) → void {
+  (core::num) → void x = c.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
   core::print("hello");
-  x(1.5){(core::num*) →* void};
+  x(1.5){(core::num) → void};
 }
-static method g2(self::C<core::num*>* c) → void {
-  (core::int*) →* void x = c.{self::C::f1}{(core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
-  x(1){(core::int*) →* void};
+static method g2(self::C<core::num> c) → void {
+  (core::int) → void x = c.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  x(1){(core::int) → void};
 }
-static method g3(self::C<core::num*>* c) → void {
-  core::List<(core::num*) →* void>* x = c.{self::C::f2}{core::List<(core::num*) →* void>*} as{TypeError,CovarianceCheck} core::List<(core::num*) →* void>*;
+static method g3(self::C<core::num> c) → void {
+  core::List<(core::num) → void> x = c.{self::C::f2}{core::List<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} core::List<(core::num) → void>;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.modular.expect
index 60445df..72fd3d0 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.modular.expect
@@ -1,38 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  get f1() → (self::C::T*) →* void
-    return null;
-  get f2() → core::List<(self::C::T*) →* void>* {
-    return <(self::C::T*) →* void>[this.{self::C::f1}{(self::C::T*) →* void}];
+  get f1() → (self::C::T%) → void
+    return throw "";
+  get f2() → core::List<(self::C::T%) → void> {
+    return <(self::C::T%) → void>[this.{self::C::f1}{(self::C::T%) → 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 g1(self::C<core::num*>* c) → void {
-  (core::num*) →* void x = c.{self::C::f1}{(core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+static method g1(self::C<core::num> c) → void {
+  (core::num) → void x = c.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
   core::print("hello");
-  x(1.5){(core::num*) →* void};
+  x(1.5){(core::num) → void};
 }
-static method g2(self::C<core::num*>* c) → void {
-  (core::int*) →* void x = c.{self::C::f1}{(core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
-  x(1){(core::int*) →* void};
+static method g2(self::C<core::num> c) → void {
+  (core::int) → void x = c.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  x(1){(core::int) → void};
 }
-static method g3(self::C<core::num*>* c) → void {
-  core::List<(core::num*) →* void>* x = c.{self::C::f2}{core::List<(core::num*) →* void>*} as{TypeError,CovarianceCheck} core::List<(core::num*) →* void>*;
+static method g3(self::C<core::num> c) → void {
+  core::List<(core::num) → void> x = c.{self::C::f2}{core::List<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} core::List<(core::num) → void>;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.outline.expect
index fe6232e..599f411 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.outline.expect
@@ -1,31 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  get f1() → (self::C::T*) →* void
+  get f1() → (self::C::T%) → void
     ;
-  get f2() → core::List<(self::C::T*) →* void>*
+  get f2() → core::List<(self::C::T%) → 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 g1(self::C<core::num*>* c) → void
+static method g1(self::C<core::num> c) → void
   ;
-static method g2(self::C<core::num*>* c) → void
+static method g2(self::C<core::num> c) → void
   ;
-static method g3(self::C<core::num*>* c) → void
+static method g3(self::C<core::num> c) → void
   ;
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.transformed.expect
index 54d2c49..4b87ccb 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.weak.transformed.expect
@@ -1,38 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  get f1() → (self::C::T*) →* void
-    return null;
-  get f2() → core::List<(self::C::T*) →* void>* {
-    return core::_GrowableList::_literal1<(self::C::T*) →* void>(this.{self::C::f1}{(self::C::T*) →* void});
+  get f1() → (self::C::T%) → void
+    return throw "";
+  get f2() → core::List<(self::C::T%) → void> {
+    return core::_GrowableList::_literal1<(self::C::T%) → void>(this.{self::C::f1}{(self::C::T%) → 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 g1(self::C<core::num*>* c) → void {
-  (core::num*) →* void x = c.{self::C::f1}{(core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+static method g1(self::C<core::num> c) → void {
+  (core::num) → void x = c.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
   core::print("hello");
-  x(1.5){(core::num*) →* void};
+  x(1.5){(core::num) → void};
 }
-static method g2(self::C<core::num*>* c) → void {
-  (core::int*) →* void x = c.{self::C::f1}{(core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
-  x(1){(core::int*) →* void};
+static method g2(self::C<core::num> c) → void {
+  (core::int) → void x = c.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  x(1){(core::int) → void};
 }
-static method g3(self::C<core::num*>* c) → void {
-  core::List<(core::num*) →* void>* x = c.{self::C::f2}{core::List<(core::num*) →* void>*} as{TypeError,CovarianceCheck} core::List<(core::num*) →* void>*;
+static method g3(self::C<core::num> c) → void {
+  core::List<(core::num) → void> x = c.{self::C::f2}{core::List<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} core::List<(core::num) → void>;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware.dart b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware.dart
index 8c0d561..b179484 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware.dart
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware.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
+
 /*@testedFeatures=checks*/
 library test;
 
@@ -15,18 +17,18 @@
 }
 
 void g1(C<num> c) {
-  var x = c?. /*@ checkReturn=(num*) ->* void */ f1;
+  var x = c?. /*@checkReturn=(num*) ->* void*/ f1;
   print('hello');
   x(1.5);
 }
 
 void g2(C<num> c) {
-  F<int> x = c?. /*@ checkReturn=(num*) ->* void */ f1;
+  F<int> x = c?. /*@checkReturn=(num*) ->* void*/ f1;
   x(1);
 }
 
 void g3(C<num> c) {
-  var x = c?. /*@ checkReturn=List<(num*) ->* void>* */ f2;
+  var x = c?. /*@checkReturn=List<(num*) ->* void>**/ f2;
 }
 
 void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart
new file mode 100644
index 0000000..147c7e4
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart
@@ -0,0 +1,32 @@
+// 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.
+
+/*@testedFeatures=checks*/
+library test;
+
+typedef void F<T>(T x);
+
+class C<T> {
+  F<T> get f1 => throw '';
+  List<F<T>> get f2 {
+    return [this?.f1];
+  }
+}
+
+void g1(C<num>? c) {
+  var x = c?. /*@checkReturn=(num) -> void*/ f1;
+  print('hello');
+  x?.call(1.5);
+}
+
+void g2(C<num>? c) {
+  F<int>? x = c?. /*@checkReturn=(num) -> void*/ f1;
+  x?.call(1);
+}
+
+void g3(C<num>? c) {
+  var x = c?. /*@checkReturn=List<(num) -> void>*/ f2;
+}
+
+void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.textual_outline.expect
new file mode 100644
index 0000000..3ba92ee
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.textual_outline.expect
@@ -0,0 +1,13 @@
+library test;
+
+typedef void F<T>(T x);
+
+class C<T> {
+  F<T> get f1 => throw '';
+  List<F<T>> get f2 {}
+}
+
+void g1(C<num>? c) {}
+void g2(C<num>? c) {}
+void g3(C<num>? c) {}
+void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..b94fc41
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.textual_outline_modelled.expect
@@ -0,0 +1,12 @@
+library test;
+
+class C<T> {
+  F<T> get f1 => throw '';
+  List<F<T>> get f2 {}
+}
+
+typedef void F<T>(T x);
+void g1(C<num>? c) {}
+void g2(C<num>? c) {}
+void g3(C<num>? c) {}
+void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.weak.expect
new file mode 100644
index 0000000..4436169
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.weak.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart:13:13: Warning: The receiver 'this' cannot be null.
+// Try replacing '?.' with '.'
+//     return [this?.f1];
+//             ^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
+    : super core::Object::•()
+    ;
+  get f1() → (self::C::T%) → void
+    return throw "";
+  get f2() → core::List<(self::C::T%) → void> {
+    return <(self::C::T%) → void>[this.{self::C::f1}{(self::C::T%) → void}];
+  }
+}
+static method g1(self::C<core::num>? c) → void {
+  (core::num) →? void x = let final self::C<core::num>? #t1 = c in #t1 == null ?{(core::num) →? void} null : #t1{self::C<core::num>}.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  core::print("hello");
+  let final (core::num) →? void #t2 = x in #t2 == null ?{void} null : #t2{(core::num) → void}(1.5){(core::num) → void};
+}
+static method g2(self::C<core::num>? c) → void {
+  (core::int) →? void x = let final self::C<core::num>? #t3 = c in #t3 == null ?{(core::num) →? void} null : #t3{self::C<core::num>}.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  let final (core::int) →? void #t4 = x in #t4 == null ?{void} null : #t4{(core::int) → void}(1){(core::int) → void};
+}
+static method g3(self::C<core::num>? c) → void {
+  core::List<(core::num) → void>? x = let final self::C<core::num>? #t5 = c in #t5 == null ?{core::List<(core::num) → void>?} null : #t5{self::C<core::num>}.{self::C::f2}{core::List<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} core::List<(core::num) → void>;
+}
+static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.weak.modular.expect
new file mode 100644
index 0000000..4436169
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.weak.modular.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart:13:13: Warning: The receiver 'this' cannot be null.
+// Try replacing '?.' with '.'
+//     return [this?.f1];
+//             ^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
+    : super core::Object::•()
+    ;
+  get f1() → (self::C::T%) → void
+    return throw "";
+  get f2() → core::List<(self::C::T%) → void> {
+    return <(self::C::T%) → void>[this.{self::C::f1}{(self::C::T%) → void}];
+  }
+}
+static method g1(self::C<core::num>? c) → void {
+  (core::num) →? void x = let final self::C<core::num>? #t1 = c in #t1 == null ?{(core::num) →? void} null : #t1{self::C<core::num>}.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  core::print("hello");
+  let final (core::num) →? void #t2 = x in #t2 == null ?{void} null : #t2{(core::num) → void}(1.5){(core::num) → void};
+}
+static method g2(self::C<core::num>? c) → void {
+  (core::int) →? void x = let final self::C<core::num>? #t3 = c in #t3 == null ?{(core::num) →? void} null : #t3{self::C<core::num>}.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  let final (core::int) →? void #t4 = x in #t4 == null ?{void} null : #t4{(core::int) → void}(1){(core::int) → void};
+}
+static method g3(self::C<core::num>? c) → void {
+  core::List<(core::num) → void>? x = let final self::C<core::num>? #t5 = c in #t5 == null ?{core::List<(core::num) → void>?} null : #t5{self::C<core::num>}.{self::C::f2}{core::List<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} core::List<(core::num) → void>;
+}
+static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.weak.outline.expect
new file mode 100644
index 0000000..3e52552
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.weak.outline.expect
@@ -0,0 +1,21 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
+    ;
+  get f1() → (self::C::T%) → void
+    ;
+  get f2() → core::List<(self::C::T%) → void>
+    ;
+}
+static method g1(self::C<core::num>? c) → void
+  ;
+static method g2(self::C<core::num>? c) → void
+  ;
+static method g3(self::C<core::num>? c) → void
+  ;
+static method main() → void
+  ;
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.weak.transformed.expect
new file mode 100644
index 0000000..1564267
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart.weak.transformed.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware2.dart:13:13: Warning: The receiver 'this' cannot be null.
+// Try replacing '?.' with '.'
+//     return [this?.f1];
+//             ^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
+    : super core::Object::•()
+    ;
+  get f1() → (self::C::T%) → void
+    return throw "";
+  get f2() → core::List<(self::C::T%) → void> {
+    return core::_GrowableList::_literal1<(self::C::T%) → void>(this.{self::C::f1}{(self::C::T%) → void});
+  }
+}
+static method g1(self::C<core::num>? c) → void {
+  (core::num) →? void x = let final self::C<core::num>? #t1 = c in #t1 == null ?{(core::num) →? void} null : #t1{self::C<core::num>}.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  core::print("hello");
+  let final (core::num) →? void #t2 = x in #t2 == null ?{void} null : #t2{(core::num) → void}(1.5){(core::num) → void};
+}
+static method g2(self::C<core::num>? c) → void {
+  (core::int) →? void x = let final self::C<core::num>? #t3 = c in #t3 == null ?{(core::num) →? void} null : #t3{self::C<core::num>}.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
+  let final (core::int) →? void #t4 = x in #t4 == null ?{void} null : #t4{(core::int) → void}(1){(core::int) → void};
+}
+static method g3(self::C<core::num>? c) → void {
+  core::List<(core::num) → void>? x = let final self::C<core::num>? #t5 = c in #t5 == null ?{core::List<(core::num) → void>?} null : #t5{self::C<core::num>}.{self::C::f2}{core::List<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} core::List<(core::num) → void>;
+}
+static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart
index 07ef302..ec30f9e 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.textual_outline.expect
index d5b5708..066813e 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.textual_outline_modelled.expect
index 0cea1b9..0bbb372 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.expect
index 23d142c..6dddee6 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,32 +15,22 @@
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f<covariant-by-class U extends self::C::T*>(self::C::f::U* x) → void {}
-  method g1<covariant-by-class U extends self::C::T*>() → void {
-    this.{self::C::f}<self::C::g1::U*>(invalid-expression "pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart:11:15: Error: The argument type 'double' can't be assigned to the parameter type 'U'.
+  method f<covariant-by-class U extends self::C::T%>(self::C::f::U% x) → void {}
+  method g1<covariant-by-class U extends self::C::T%>() → void {
+    this.{self::C::f}<self::C::g1::U%>(invalid-expression "pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart:11:15: Error: The argument type 'double' can't be assigned to the parameter type 'U'.
     this.f<U>(1.5);
-              ^" in 1.5 as{TypeError} Never){(self::C::g1::U*) →* void};
+              ^" in 1.5 as{TypeError,ForNonNullableByDefault} Never){(self::C::g1::U%) → 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 g2(self::C<core::Object*>* c) → void {
-  c.{self::C::f}<core::num*>(1.5){(core::num*) →* void};
+static method g2(self::C<core::Object> c) → void {
+  c.{self::C::f}<core::num>(1.5){(core::num) → void};
 }
 static method test() → void {
-  new self::C::•<core::int*>().{self::C::g1}<core::num*>(){() →* void};
-  self::g2(new self::C::•<core::int*>());
+  new self::C::•<core::int>().{self::C::g1}<core::num>(){() → void};
+  self::g2(new self::C::•<core::int>());
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.modular.expect
index 23d142c..6dddee6 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,32 +15,22 @@
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f<covariant-by-class U extends self::C::T*>(self::C::f::U* x) → void {}
-  method g1<covariant-by-class U extends self::C::T*>() → void {
-    this.{self::C::f}<self::C::g1::U*>(invalid-expression "pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart:11:15: Error: The argument type 'double' can't be assigned to the parameter type 'U'.
+  method f<covariant-by-class U extends self::C::T%>(self::C::f::U% x) → void {}
+  method g1<covariant-by-class U extends self::C::T%>() → void {
+    this.{self::C::f}<self::C::g1::U%>(invalid-expression "pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart:11:15: Error: The argument type 'double' can't be assigned to the parameter type 'U'.
     this.f<U>(1.5);
-              ^" in 1.5 as{TypeError} Never){(self::C::g1::U*) →* void};
+              ^" in 1.5 as{TypeError,ForNonNullableByDefault} Never){(self::C::g1::U%) → 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 g2(self::C<core::Object*>* c) → void {
-  c.{self::C::f}<core::num*>(1.5){(core::num*) →* void};
+static method g2(self::C<core::Object> c) → void {
+  c.{self::C::f}<core::num>(1.5){(core::num) → void};
 }
 static method test() → void {
-  new self::C::•<core::int*>().{self::C::g1}<core::num*>(){() →* void};
-  self::g2(new self::C::•<core::int*>());
+  new self::C::•<core::int>().{self::C::g1}<core::num>(){() → void};
+  self::g2(new self::C::•<core::int>());
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.outline.expect
index a4e9eee9..3a05d92 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  method f<covariant-by-class U extends self::C::T*>(self::C::f::U* x) → void
+  method f<covariant-by-class U extends self::C::T%>(self::C::f::U% x) → void
     ;
-  method g1<covariant-by-class U extends self::C::T*>() → void
+  method g1<covariant-by-class U extends self::C::T%>() → 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 g2(self::C<core::Object*>* c) → void
+static method g2(self::C<core::Object> c) → void
   ;
 static method test() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.transformed.expect
index 23d142c..6dddee6 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,32 +15,22 @@
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f<covariant-by-class U extends self::C::T*>(self::C::f::U* x) → void {}
-  method g1<covariant-by-class U extends self::C::T*>() → void {
-    this.{self::C::f}<self::C::g1::U*>(invalid-expression "pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart:11:15: Error: The argument type 'double' can't be assigned to the parameter type 'U'.
+  method f<covariant-by-class U extends self::C::T%>(self::C::f::U% x) → void {}
+  method g1<covariant-by-class U extends self::C::T%>() → void {
+    this.{self::C::f}<self::C::g1::U%>(invalid-expression "pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart:11:15: Error: The argument type 'double' can't be assigned to the parameter type 'U'.
     this.f<U>(1.5);
-              ^" in 1.5 as{TypeError} Never){(self::C::g1::U*) →* void};
+              ^" in 1.5 as{TypeError,ForNonNullableByDefault} Never){(self::C::g1::U%) → 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 g2(self::C<core::Object*>* c) → void {
-  c.{self::C::f}<core::num*>(1.5){(core::num*) →* void};
+static method g2(self::C<core::Object> c) → void {
+  c.{self::C::f}<core::num>(1.5){(core::num) → void};
 }
 static method test() → void {
-  new self::C::•<core::int*>().{self::C::g1}<core::num*>(){() →* void};
-  self::g2(new self::C::•<core::int*>());
+  new self::C::•<core::int>().{self::C::g1}<core::num>(){() → void};
+  self::g2(new self::C::•<core::int>());
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart
index bb6a3cd..a7b05bf 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart
@@ -1,12 +1,12 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 class C<T> {
-  void f(T x) {}
+  void f(T? x) {}
 }
 
 void g1(C<num> c) {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.textual_outline.expect
index e49980f..32ad3db 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
-  void f(T x) {}
+  void f(T? x) {}
 }
 
 void g1(C<num> c) {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.textual_outline_modelled.expect
index 82b0389..0ff079d 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
-  void f(T x) {}
+  void f(T? x) {}
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.expect
index 2794c16..14bcaae 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f(covariant-by-class self::C::T* x) → 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(covariant-by-class self::C::T? x) → void {}
 }
-static method g1(self::C<core::num*>* c) → void {
-  c.{self::C::f}(1.5){(core::num*) →* void};
+static method g1(self::C<core::num> c) → void {
+  c.{self::C::f}(1.5){(core::num?) → void};
 }
-static method g2(self::C<core::int*>* c) → void {
-  c.{self::C::f}(1){(core::int*) →* void};
+static method g2(self::C<core::int> c) → void {
+  c.{self::C::f}(1){(core::int?) → void};
 }
-static method g3(self::C<core::num*>* c) → void {
-  c.{self::C::f}(null){(core::num*) →* void};
+static method g3(self::C<core::num> c) → void {
+  c.{self::C::f}(null){(core::num?) → void};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.modular.expect
index 2794c16..14bcaae 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.modular.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f(covariant-by-class self::C::T* x) → 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(covariant-by-class self::C::T? x) → void {}
 }
-static method g1(self::C<core::num*>* c) → void {
-  c.{self::C::f}(1.5){(core::num*) →* void};
+static method g1(self::C<core::num> c) → void {
+  c.{self::C::f}(1.5){(core::num?) → void};
 }
-static method g2(self::C<core::int*>* c) → void {
-  c.{self::C::f}(1){(core::int*) →* void};
+static method g2(self::C<core::int> c) → void {
+  c.{self::C::f}(1){(core::int?) → void};
 }
-static method g3(self::C<core::num*>* c) → void {
-  c.{self::C::f}(null){(core::num*) →* void};
+static method g3(self::C<core::num> c) → void {
+  c.{self::C::f}(null){(core::num?) → void};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.outline.expect
index 1c58939..72c6ce5 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.outline.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  method f(covariant-by-class self::C::T* x) → void
+  method f(covariant-by-class self::C::T? x) → 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 g1(self::C<core::num*>* c) → void
+static method g1(self::C<core::num> c) → void
   ;
-static method g2(self::C<core::int*>* c) → void
+static method g2(self::C<core::int> c) → void
   ;
-static method g3(self::C<core::num*>* c) → void
+static method g3(self::C<core::num> c) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.transformed.expect
index 2794c16..14bcaae 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter.dart.weak.transformed.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f(covariant-by-class self::C::T* x) → 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(covariant-by-class self::C::T? x) → void {}
 }
-static method g1(self::C<core::num*>* c) → void {
-  c.{self::C::f}(1.5){(core::num*) →* void};
+static method g1(self::C<core::num> c) → void {
+  c.{self::C::f}(1.5){(core::num?) → void};
 }
-static method g2(self::C<core::int*>* c) → void {
-  c.{self::C::f}(1){(core::int*) →* void};
+static method g2(self::C<core::int> c) → void {
+  c.{self::C::f}(1){(core::int?) → void};
 }
-static method g3(self::C<core::num*>* c) → void {
-  c.{self::C::f}(null){(core::num*) →* void};
+static method g3(self::C<core::num> c) → void {
+  c.{self::C::f}(null){(core::num?) → void};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart
index 8c2a6b4..6cb0061 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.textual_outline.expect
index bf82a37..be90d87 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.textual_outline_modelled.expect
index 672a106..9b83d94 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.expect
index 41147c6..f874d1a 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.expect
@@ -1,36 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f1(covariant-by-class core::List<self::C::T*>* x) → void {}
-  method f2(covariant-by-class () →* self::C::T* callback) → void {}
-  method f3(covariant-by-class (self::C::T*) →* self::C::T* callback) → void {}
-  method f4((self::C::T*) →* void callback) → 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 f1(covariant-by-class core::List<self::C::T%> x) → void {}
+  method f2(covariant-by-class () → self::C::T% callback) → void {}
+  method f3(covariant-by-class (self::C::T%) → self::C::T% callback) → void {}
+  method f4((self::C::T%) → void callback) → void {}
 }
-static method g1(self::C<core::num*>* c, core::List<core::num*>* l) → void {
-  c.{self::C::f1}(l){(core::List<core::num*>*) →* void};
+static method g1(self::C<core::num> c, core::List<core::num> l) → void {
+  c.{self::C::f1}(l){(core::List<core::num>) → void};
 }
-static method g2(self::C<core::num*>* c, () →* core::num* callback) → void {
-  c.{self::C::f2}(callback){(() →* core::num*) →* void};
+static method g2(self::C<core::num> c, () → core::num callback) → void {
+  c.{self::C::f2}(callback){(() → core::num) → void};
 }
-static method g3(self::C<core::num*>* c, (core::num*) →* core::num* callback) → void {
-  c.{self::C::f3}(callback){((core::num*) →* core::num*) →* void};
+static method g3(self::C<core::num> c, (core::num) → core::num callback) → void {
+  c.{self::C::f3}(callback){((core::num) → core::num) → void};
 }
-static method g4(self::C<core::num*>* c, (core::num*) →* void callback) → void {
-  c.{self::C::f4}(callback){((core::num*) →* void) →* void};
+static method g4(self::C<core::num> c, (core::num) → void callback) → void {
+  c.{self::C::f4}(callback){((core::num) → void) → void};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.modular.expect
index 41147c6..f874d1a 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.modular.expect
@@ -1,36 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f1(covariant-by-class core::List<self::C::T*>* x) → void {}
-  method f2(covariant-by-class () →* self::C::T* callback) → void {}
-  method f3(covariant-by-class (self::C::T*) →* self::C::T* callback) → void {}
-  method f4((self::C::T*) →* void callback) → 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 f1(covariant-by-class core::List<self::C::T%> x) → void {}
+  method f2(covariant-by-class () → self::C::T% callback) → void {}
+  method f3(covariant-by-class (self::C::T%) → self::C::T% callback) → void {}
+  method f4((self::C::T%) → void callback) → void {}
 }
-static method g1(self::C<core::num*>* c, core::List<core::num*>* l) → void {
-  c.{self::C::f1}(l){(core::List<core::num*>*) →* void};
+static method g1(self::C<core::num> c, core::List<core::num> l) → void {
+  c.{self::C::f1}(l){(core::List<core::num>) → void};
 }
-static method g2(self::C<core::num*>* c, () →* core::num* callback) → void {
-  c.{self::C::f2}(callback){(() →* core::num*) →* void};
+static method g2(self::C<core::num> c, () → core::num callback) → void {
+  c.{self::C::f2}(callback){(() → core::num) → void};
 }
-static method g3(self::C<core::num*>* c, (core::num*) →* core::num* callback) → void {
-  c.{self::C::f3}(callback){((core::num*) →* core::num*) →* void};
+static method g3(self::C<core::num> c, (core::num) → core::num callback) → void {
+  c.{self::C::f3}(callback){((core::num) → core::num) → void};
 }
-static method g4(self::C<core::num*>* c, (core::num*) →* void callback) → void {
-  c.{self::C::f4}(callback){((core::num*) →* void) →* void};
+static method g4(self::C<core::num> c, (core::num) → void callback) → void {
+  c.{self::C::f4}(callback){((core::num) → void) → void};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.outline.expect
index 1482d6b..a31dcd4 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.outline.expect
@@ -1,36 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  method f1(covariant-by-class core::List<self::C::T*>* x) → void
+  method f1(covariant-by-class core::List<self::C::T%> x) → void
     ;
-  method f2(covariant-by-class () →* self::C::T* callback) → void
+  method f2(covariant-by-class () → self::C::T% callback) → void
     ;
-  method f3(covariant-by-class (self::C::T*) →* self::C::T* callback) → void
+  method f3(covariant-by-class (self::C::T%) → self::C::T% callback) → void
     ;
-  method f4((self::C::T*) →* void callback) → void
+  method f4((self::C::T%) → void callback) → 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 g1(self::C<core::num*>* c, core::List<core::num*>* l) → void
+static method g1(self::C<core::num> c, core::List<core::num> l) → void
   ;
-static method g2(self::C<core::num*>* c, () →* core::num* callback) → void
+static method g2(self::C<core::num> c, () → core::num callback) → void
   ;
-static method g3(self::C<core::num*>* c, (core::num*) →* core::num* callback) → void
+static method g3(self::C<core::num> c, (core::num) → core::num callback) → void
   ;
-static method g4(self::C<core::num*>* c, (core::num*) →* void callback) → void
+static method g4(self::C<core::num> c, (core::num) → void callback) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.transformed.expect
index 41147c6..f874d1a 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_complex.dart.weak.transformed.expect
@@ -1,36 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f1(covariant-by-class core::List<self::C::T*>* x) → void {}
-  method f2(covariant-by-class () →* self::C::T* callback) → void {}
-  method f3(covariant-by-class (self::C::T*) →* self::C::T* callback) → void {}
-  method f4((self::C::T*) →* void callback) → 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 f1(covariant-by-class core::List<self::C::T%> x) → void {}
+  method f2(covariant-by-class () → self::C::T% callback) → void {}
+  method f3(covariant-by-class (self::C::T%) → self::C::T% callback) → void {}
+  method f4((self::C::T%) → void callback) → void {}
 }
-static method g1(self::C<core::num*>* c, core::List<core::num*>* l) → void {
-  c.{self::C::f1}(l){(core::List<core::num*>*) →* void};
+static method g1(self::C<core::num> c, core::List<core::num> l) → void {
+  c.{self::C::f1}(l){(core::List<core::num>) → void};
 }
-static method g2(self::C<core::num*>* c, () →* core::num* callback) → void {
-  c.{self::C::f2}(callback){(() →* core::num*) →* void};
+static method g2(self::C<core::num> c, () → core::num callback) → void {
+  c.{self::C::f2}(callback){(() → core::num) → void};
 }
-static method g3(self::C<core::num*>* c, (core::num*) →* core::num* callback) → void {
-  c.{self::C::f3}(callback){((core::num*) →* core::num*) →* void};
+static method g3(self::C<core::num> c, (core::num) → core::num callback) → void {
+  c.{self::C::f3}(callback){((core::num) → core::num) → void};
 }
-static method g4(self::C<core::num*>* c, (core::num*) →* void callback) → void {
-  c.{self::C::f4}(callback){((core::num*) →* void) →* void};
+static method g4(self::C<core::num> c, (core::num) → void callback) → void {
+  c.{self::C::f4}(callback){((core::num) → void) → void};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart
index dbc9828..0ca506f 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.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
+
 /*@testedFeatures=checks*/
 library test;
 
@@ -12,12 +12,12 @@
 
 class C<U> implements I<int> {
   void f1(int x) {}
-  void f2(int x, [U y]) {}
+  void f2(int x, [U? y]) {}
 }
 
 class D<U> extends C<U> {
   void f1(int x) {}
-  void f2(int x, [U y]) {}
+  void f2(int x, [U? y]) {}
 }
 
 void g1(C<num> c) {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.textual_outline.expect
index 7e31659..e441193 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class I<T> {
@@ -8,12 +7,12 @@
 
 class C<U> implements I<int> {
   void f1(int x) {}
-  void f2(int x, [U y]) {}
+  void f2(int x, [U? y]) {}
 }
 
 class D<U> extends C<U> {
   void f1(int x) {}
-  void f2(int x, [U y]) {}
+  void f2(int x, [U? y]) {}
 }
 
 void g1(C<num> c) {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.textual_outline_modelled.expect
index 20115dc..06ab27f 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class I<T> {
@@ -8,12 +7,12 @@
 
 class C<U> implements I<int> {
   void f1(int x) {}
-  void f2(int x, [U y]) {}
+  void f2(int x, [U? y]) {}
 }
 
 class D<U> extends C<U> {
   void f1(int x) {}
-  void f2(int x, [U y]) {}
+  void f2(int x, [U? y]) {}
 }
 
 void g1(C<num> c) {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.expect
index b492a06..76a9980 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.expect
@@ -1,65 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-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 f1(covariant-by-class self::I::T* x) → void;
-  abstract method f2(covariant-by-class self::I::T* x) → 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 f1(covariant-by-class self::I::T% x) → void;
+  abstract method f2(covariant-by-class self::I::T% x) → void;
 }
-class C<U extends core::Object* = dynamic> extends core::Object implements self::I<core::int*> {
-  synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends core::Object implements self::I<core::int> {
+  synthetic constructor •() → self::C<self::C::U%>
     : super core::Object::•()
     ;
-  method f1(covariant-by-class core::int* x) → void {}
-  method f2(covariant-by-class core::int* x, [covariant-by-class self::C::U* y = #C1]) → 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 f1(covariant-by-class core::int x) → void {}
+  method f2(covariant-by-class core::int x, [covariant-by-class self::C::U? y = #C1]) → void {}
 }
-class D<U extends core::Object* = dynamic> extends self::C<self::D::U*> {
-  synthetic constructor •() → self::D<self::D::U*>*
+class D<U extends core::Object? = dynamic> extends self::C<self::D::U%> {
+  synthetic constructor •() → self::D<self::D::U%>
     : super self::C::•()
     ;
-  method f1(covariant-by-class core::int* x) → void {}
-  method f2(covariant-by-class core::int* x, [covariant-by-class self::D::U* y = #C1]) → void {}
+  method f1(covariant-by-class core::int x) → void {}
+  method f2(covariant-by-class core::int x, [covariant-by-class self::D::U? y = #C1]) → void {}
 }
-static method g1(self::C<core::num*>* c) → void {
-  c.{self::C::f1}(1){(core::int*) →* void};
+static method g1(self::C<core::num> c) → void {
+  c.{self::C::f1}(1){(core::int) → void};
 }
-static method g2(self::I<core::num*>* i) → void {
-  i.{self::I::f1}(1.5){(core::num*) →* void};
+static method g2(self::I<core::num> i) → void {
+  i.{self::I::f1}(1.5){(core::num) → void};
 }
-static method g3(self::C<core::num*>* c) → void {
-  c.{self::C::f2}(1, 1.5){(core::int*, [core::num*]) →* void};
+static method g3(self::C<core::num> c) → void {
+  c.{self::C::f2}(1, 1.5){(core::int, [core::num?]) → void};
 }
-static method g4(self::D<core::num*>* d) → void {
-  d.{self::D::f1}(1){(core::int*) →* void};
+static method g4(self::D<core::num> d) → void {
+  d.{self::D::f1}(1){(core::int) → void};
 }
-static method g5(self::D<core::num*>* d) → void {
-  d.{self::D::f2}(1, 1.5){(core::int*, [core::num*]) →* void};
+static method g5(self::D<core::num> d) → void {
+  d.{self::D::f2}(1, 1.5){(core::int, [core::num?]) → void};
 }
 static method test() → void {
-  self::g2(new self::C::•<core::num*>());
+  self::g2(new self::C::•<core::num>());
 }
 static method main() → void {}
 
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.modular.expect
index b492a06..76a9980 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.modular.expect
@@ -1,65 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-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 f1(covariant-by-class self::I::T* x) → void;
-  abstract method f2(covariant-by-class self::I::T* x) → 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 f1(covariant-by-class self::I::T% x) → void;
+  abstract method f2(covariant-by-class self::I::T% x) → void;
 }
-class C<U extends core::Object* = dynamic> extends core::Object implements self::I<core::int*> {
-  synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends core::Object implements self::I<core::int> {
+  synthetic constructor •() → self::C<self::C::U%>
     : super core::Object::•()
     ;
-  method f1(covariant-by-class core::int* x) → void {}
-  method f2(covariant-by-class core::int* x, [covariant-by-class self::C::U* y = #C1]) → 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 f1(covariant-by-class core::int x) → void {}
+  method f2(covariant-by-class core::int x, [covariant-by-class self::C::U? y = #C1]) → void {}
 }
-class D<U extends core::Object* = dynamic> extends self::C<self::D::U*> {
-  synthetic constructor •() → self::D<self::D::U*>*
+class D<U extends core::Object? = dynamic> extends self::C<self::D::U%> {
+  synthetic constructor •() → self::D<self::D::U%>
     : super self::C::•()
     ;
-  method f1(covariant-by-class core::int* x) → void {}
-  method f2(covariant-by-class core::int* x, [covariant-by-class self::D::U* y = #C1]) → void {}
+  method f1(covariant-by-class core::int x) → void {}
+  method f2(covariant-by-class core::int x, [covariant-by-class self::D::U? y = #C1]) → void {}
 }
-static method g1(self::C<core::num*>* c) → void {
-  c.{self::C::f1}(1){(core::int*) →* void};
+static method g1(self::C<core::num> c) → void {
+  c.{self::C::f1}(1){(core::int) → void};
 }
-static method g2(self::I<core::num*>* i) → void {
-  i.{self::I::f1}(1.5){(core::num*) →* void};
+static method g2(self::I<core::num> i) → void {
+  i.{self::I::f1}(1.5){(core::num) → void};
 }
-static method g3(self::C<core::num*>* c) → void {
-  c.{self::C::f2}(1, 1.5){(core::int*, [core::num*]) →* void};
+static method g3(self::C<core::num> c) → void {
+  c.{self::C::f2}(1, 1.5){(core::int, [core::num?]) → void};
 }
-static method g4(self::D<core::num*>* d) → void {
-  d.{self::D::f1}(1){(core::int*) →* void};
+static method g4(self::D<core::num> d) → void {
+  d.{self::D::f1}(1){(core::int) → void};
 }
-static method g5(self::D<core::num*>* d) → void {
-  d.{self::D::f2}(1, 1.5){(core::int*, [core::num*]) →* void};
+static method g5(self::D<core::num> d) → void {
+  d.{self::D::f2}(1, 1.5){(core::int, [core::num?]) → void};
 }
 static method test() → void {
-  self::g2(new self::C::•<core::num*>());
+  self::g2(new self::C::•<core::num>());
 }
 static method main() → void {}
 
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.outline.expect
index f427dbb..997d988 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.outline.expect
@@ -1,58 +1,38 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-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 f1(covariant-by-class self::I::T* x) → void;
-  abstract method f2(covariant-by-class self::I::T* x) → 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 f1(covariant-by-class self::I::T% x) → void;
+  abstract method f2(covariant-by-class self::I::T% x) → void;
 }
-class C<U extends core::Object* = dynamic> extends core::Object implements self::I<core::int*> {
-  synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends core::Object implements self::I<core::int> {
+  synthetic constructor •() → self::C<self::C::U%>
     ;
-  method f1(covariant-by-class core::int* x) → void
+  method f1(covariant-by-class core::int x) → void
     ;
-  method f2(covariant-by-class core::int* x, [covariant-by-class self::C::U* y = null]) → 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 D<U extends core::Object* = dynamic> extends self::C<self::D::U*> {
-  synthetic constructor •() → self::D<self::D::U*>*
-    ;
-  method f1(covariant-by-class core::int* x) → void
-    ;
-  method f2(covariant-by-class core::int* x, [covariant-by-class self::D::U* y = null]) → void
+  method f2(covariant-by-class core::int x, [covariant-by-class self::C::U? y = null]) → void
     ;
 }
-static method g1(self::C<core::num*>* c) → void
+class D<U extends core::Object? = dynamic> extends self::C<self::D::U%> {
+  synthetic constructor •() → self::D<self::D::U%>
+    ;
+  method f1(covariant-by-class core::int x) → void
+    ;
+  method f2(covariant-by-class core::int x, [covariant-by-class self::D::U? y = null]) → void
+    ;
+}
+static method g1(self::C<core::num> c) → void
   ;
-static method g2(self::I<core::num*>* i) → void
+static method g2(self::I<core::num> i) → void
   ;
-static method g3(self::C<core::num*>* c) → void
+static method g3(self::C<core::num> c) → void
   ;
-static method g4(self::D<core::num*>* d) → void
+static method g4(self::D<core::num> d) → void
   ;
-static method g5(self::D<core::num*>* d) → void
+static method g5(self::D<core::num> d) → void
   ;
 static method test() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.transformed.expect
index b492a06..76a9980 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.weak.transformed.expect
@@ -1,65 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-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 f1(covariant-by-class self::I::T* x) → void;
-  abstract method f2(covariant-by-class self::I::T* x) → 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 f1(covariant-by-class self::I::T% x) → void;
+  abstract method f2(covariant-by-class self::I::T% x) → void;
 }
-class C<U extends core::Object* = dynamic> extends core::Object implements self::I<core::int*> {
-  synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends core::Object implements self::I<core::int> {
+  synthetic constructor •() → self::C<self::C::U%>
     : super core::Object::•()
     ;
-  method f1(covariant-by-class core::int* x) → void {}
-  method f2(covariant-by-class core::int* x, [covariant-by-class self::C::U* y = #C1]) → 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 f1(covariant-by-class core::int x) → void {}
+  method f2(covariant-by-class core::int x, [covariant-by-class self::C::U? y = #C1]) → void {}
 }
-class D<U extends core::Object* = dynamic> extends self::C<self::D::U*> {
-  synthetic constructor •() → self::D<self::D::U*>*
+class D<U extends core::Object? = dynamic> extends self::C<self::D::U%> {
+  synthetic constructor •() → self::D<self::D::U%>
     : super self::C::•()
     ;
-  method f1(covariant-by-class core::int* x) → void {}
-  method f2(covariant-by-class core::int* x, [covariant-by-class self::D::U* y = #C1]) → void {}
+  method f1(covariant-by-class core::int x) → void {}
+  method f2(covariant-by-class core::int x, [covariant-by-class self::D::U? y = #C1]) → void {}
 }
-static method g1(self::C<core::num*>* c) → void {
-  c.{self::C::f1}(1){(core::int*) →* void};
+static method g1(self::C<core::num> c) → void {
+  c.{self::C::f1}(1){(core::int) → void};
 }
-static method g2(self::I<core::num*>* i) → void {
-  i.{self::I::f1}(1.5){(core::num*) →* void};
+static method g2(self::I<core::num> i) → void {
+  i.{self::I::f1}(1.5){(core::num) → void};
 }
-static method g3(self::C<core::num*>* c) → void {
-  c.{self::C::f2}(1, 1.5){(core::int*, [core::num*]) →* void};
+static method g3(self::C<core::num> c) → void {
+  c.{self::C::f2}(1, 1.5){(core::int, [core::num?]) → void};
 }
-static method g4(self::D<core::num*>* d) → void {
-  d.{self::D::f1}(1){(core::int*) →* void};
+static method g4(self::D<core::num> d) → void {
+  d.{self::D::f1}(1){(core::int) → void};
 }
-static method g5(self::D<core::num*>* d) → void {
-  d.{self::D::f2}(1, 1.5){(core::int*, [core::num*]) →* void};
+static method g5(self::D<core::num> d) → void {
+  d.{self::D::f2}(1, 1.5){(core::int, [core::num?]) → void};
 }
 static method test() → void {
-  self::g2(new self::C::•<core::num*>());
+  self::g2(new self::C::•<core::num>());
 }
 static method main() → void {}
 
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart
index ea3b2d7..4da2532 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline.expect
index e5cf27f..7d6cf9b 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class B {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline_modelled.expect
index dab06f7..f1f1057 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class I<T> {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.expect
index c7a7694..32dd7df 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.expect
@@ -1,67 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* x) → 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(core::int x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
 class M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     : super core::Object::•()
     ;
-  method f(core::int* x) → 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(core::int x) → void {}
 }
-class C = self::B with self::M implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C = self::B with self::M implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x) → void
+  forwarding-stub method f(covariant-by-class core::int x) → void
     return super.{self::M::f}(x);
 }
-static method g1(self::C* c) → void {
-  c.{self::C::f}(1){(core::int*) →* void};
+static method g1(self::C c) → void {
+  c.{self::C::f}(1){(core::int) → void};
 }
-static method g2(self::I<core::num*>* i) → void {
-  i.{self::I::f}(1.5){(core::num*) →* void};
+static method g2(self::I<core::num> i) → void {
+  i.{self::I::f}(1.5){(core::num) → void};
 }
 static method test() → void {
   self::g2(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.modular.expect
index c7a7694..32dd7df 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.modular.expect
@@ -1,67 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* x) → 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(core::int x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
 class M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     : super core::Object::•()
     ;
-  method f(core::int* x) → 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(core::int x) → void {}
 }
-class C = self::B with self::M implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C = self::B with self::M implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x) → void
+  forwarding-stub method f(covariant-by-class core::int x) → void
     return super.{self::M::f}(x);
 }
-static method g1(self::C* c) → void {
-  c.{self::C::f}(1){(core::int*) →* void};
+static method g1(self::C c) → void {
+  c.{self::C::f}(1){(core::int) → void};
 }
-static method g2(self::I<core::num*>* i) → void {
-  i.{self::I::f}(1.5){(core::num*) →* void};
+static method g2(self::I<core::num> i) → void {
+  i.{self::I::f}(1.5){(core::num) → void};
 }
 static method test() → void {
   self::g2(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.outline.expect
index 9ebe44f..b8c12ff 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.outline.expect
@@ -1,64 +1,34 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  method f(core::int* x) → void
+  method f(core::int x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
 class M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     ;
-  method f(core::int* x) → void
+  method f(core::int x) → 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 C = self::B with self::M implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C = self::B with self::M implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x) → void
+  forwarding-stub method f(covariant-by-class core::int x) → void
     return super.{self::M::f}(x);
 }
-static method g1(self::C* c) → void
+static method g1(self::C c) → void
   ;
-static method g2(self::I<core::num*>* i) → void
+static method g2(self::I<core::num> i) → void
   ;
 static method test() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.transformed.expect
index 224bd67..9d2b0e0 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.transformed.expect
@@ -1,66 +1,36 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* x) → 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(core::int x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
 class M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     : super core::Object::•()
     ;
-  method f(core::int* x) → 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(core::int x) → void {}
 }
-class C extends self::B implements self::I<core::int*>, self::M /*isEliminatedMixin*/  {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::int>, self::M /*isEliminatedMixin*/  {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  method f(covariant-by-class core::int* x) → void {}
+  method f(covariant-by-class core::int x) → void {}
 }
-static method g1(self::C* c) → void {
-  c.{self::C::f}(1){(core::int*) →* void};
+static method g1(self::C c) → void {
+  c.{self::C::f}(1){(core::int) → void};
 }
-static method g2(self::I<core::num*>* i) → void {
-  i.{self::I::f}(1.5){(core::num*) →* void};
+static method g2(self::I<core::num> i) → void {
+  i.{self::I::f}(1.5){(core::num) → void};
 }
 static method test() → void {
   self::g2(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart
index 409b0b4..a869fd9 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.textual_outline.expect
index 479adf0..1995799 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class B {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.textual_outline_modelled.expect
index cc37c29..da6ecc9 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class I<T> {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.expect
index 5e85a90..e79657e 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.expect
@@ -1,51 +1,31 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* x) → 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(core::int x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
-class C extends self::B implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x) → void
+  forwarding-stub method f(covariant-by-class core::int x) → void
     return super.{self::B::f}(x);
 }
-static method g1(self::C* c) → void {
-  c.{self::C::f}(1){(core::int*) →* void};
+static method g1(self::C c) → void {
+  c.{self::C::f}(1){(core::int) → void};
 }
-static method g2(self::I<core::num*>* i) → void {
-  i.{self::I::f}(1.5){(core::num*) →* void};
+static method g2(self::I<core::num> i) → void {
+  i.{self::I::f}(1.5){(core::num) → void};
 }
 static method test() → void {
   self::g2(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.modular.expect
index 5e85a90..e79657e 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.modular.expect
@@ -1,51 +1,31 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* x) → 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(core::int x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
-class C extends self::B implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x) → void
+  forwarding-stub method f(covariant-by-class core::int x) → void
     return super.{self::B::f}(x);
 }
-static method g1(self::C* c) → void {
-  c.{self::C::f}(1){(core::int*) →* void};
+static method g1(self::C c) → void {
+  c.{self::C::f}(1){(core::int) → void};
 }
-static method g2(self::I<core::num*>* i) → void {
-  i.{self::I::f}(1.5){(core::num*) →* void};
+static method g2(self::I<core::num> i) → void {
+  i.{self::I::f}(1.5){(core::num) → void};
 }
 static method test() → void {
   self::g2(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.outline.expect
index fc3b403..4b88524 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.outline.expect
@@ -1,47 +1,27 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  method f(core::int* x) → void
+  method f(core::int x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
-class C extends self::B implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::int> {
+  synthetic constructor •() → self::C
     ;
-  forwarding-stub method f(covariant-by-class core::int* x) → void
+  forwarding-stub method f(covariant-by-class core::int x) → void
     return super.{self::B::f}(x);
 }
-static method g1(self::C* c) → void
+static method g1(self::C c) → void
   ;
-static method g2(self::I<core::num*>* i) → void
+static method g2(self::I<core::num> i) → void
   ;
 static method test() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.transformed.expect
index 5e85a90..e79657e 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.weak.transformed.expect
@@ -1,51 +1,31 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* x) → 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(core::int x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
-class C extends self::B implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x) → void
+  forwarding-stub method f(covariant-by-class core::int x) → void
     return super.{self::B::f}(x);
 }
-static method g1(self::C* c) → void {
-  c.{self::C::f}(1){(core::int*) →* void};
+static method g1(self::C c) → void {
+  c.{self::C::f}(1){(core::int) → void};
 }
-static method g2(self::I<core::num*>* i) → void {
-  i.{self::I::f}(1.5){(core::num*) →* void};
+static method g2(self::I<core::num> i) → void {
+  i.{self::I::f}(1.5){(core::num) → void};
 }
 static method test() → void {
   self::g2(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart
index 85f3e7c..8208926 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline.expect
index 3a36753..ef098bf 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class B {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline_modelled.expect
index 1c14876..6b9085b 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class I<T> {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.expect
index e69ba31..f446603 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.expect
@@ -1,66 +1,36 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* x) → 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(core::int x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
 class M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     : 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::B with self::M implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C = self::B with self::M implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x) → void
+  forwarding-stub method f(covariant-by-class core::int x) → void
     return super.{self::B::f}(x);
 }
-static method g1(self::C* c) → void {
-  c.{self::C::f}(1){(core::int*) →* void};
+static method g1(self::C c) → void {
+  c.{self::C::f}(1){(core::int) → void};
 }
-static method g2(self::I<core::num*>* i) → void {
-  i.{self::I::f}(1.5){(core::num*) →* void};
+static method g2(self::I<core::num> i) → void {
+  i.{self::I::f}(1.5){(core::num) → void};
 }
 static method test() → void {
   self::g2(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.modular.expect
index e69ba31..f446603 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.modular.expect
@@ -1,66 +1,36 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* x) → 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(core::int x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
 class M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     : 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::B with self::M implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C = self::B with self::M implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x) → void
+  forwarding-stub method f(covariant-by-class core::int x) → void
     return super.{self::B::f}(x);
 }
-static method g1(self::C* c) → void {
-  c.{self::C::f}(1){(core::int*) →* void};
+static method g1(self::C c) → void {
+  c.{self::C::f}(1){(core::int) → void};
 }
-static method g2(self::I<core::num*>* i) → void {
-  i.{self::I::f}(1.5){(core::num*) →* void};
+static method g2(self::I<core::num> i) → void {
+  i.{self::I::f}(1.5){(core::num) → void};
 }
 static method test() → void {
   self::g2(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.outline.expect
index 75621ad..6ff2a0e 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.outline.expect
@@ -1,62 +1,32 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  method f(core::int* x) → void
+  method f(core::int x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
 class M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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::B with self::M implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C = self::B with self::M implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x) → void
+  forwarding-stub method f(covariant-by-class core::int x) → void
     return super.{self::B::f}(x);
 }
-static method g1(self::C* c) → void
+static method g1(self::C c) → void
   ;
-static method g2(self::I<core::num*>* i) → void
+static method g2(self::I<core::num> i) → void
   ;
 static method test() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.transformed.expect
index 8aae2e5..38a7a74 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.transformed.expect
@@ -1,66 +1,36 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* x) → 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(core::int x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
 class M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     : 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::B implements self::I<core::int*>, self::M /*isEliminatedMixin*/  {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::int>, self::M /*isEliminatedMixin*/  {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x) → void
+  forwarding-stub method f(covariant-by-class core::int x) → void
     return super.{self::B::f}(x);
 }
-static method g1(self::C* c) → void {
-  c.{self::C::f}(1){(core::int*) →* void};
+static method g1(self::C c) → void {
+  c.{self::C::f}(1){(core::int) → void};
 }
-static method g2(self::I<core::num*>* i) → void {
-  i.{self::I::f}(1.5){(core::num*) →* void};
+static method g2(self::I<core::num> i) → void {
+  i.{self::I::f}(1.5){(core::num) → void};
 }
 static method test() → void {
   self::g2(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart
index 0d4dd96..2fd42d7 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.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
+
 /*@testedFeatures=checks*/
 library test;
 
@@ -15,7 +15,7 @@
 }
 
 F<num> g1(C<num> c) {
-  return c.f1;
+  return c. /*@checkReturn=(num) -> void*/ f1;
 }
 
 void g2(C<int> c, Object x) {
@@ -24,7 +24,7 @@
 }
 
 G<List<num>, num> g3(C<num> c) {
-  return c.f2;
+  return c. /*@checkReturn=(List<num>) -> num*/ f2;
 }
 
 void test() {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.textual_outline.expect
index 6e9b88c..86fd3b6 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 typedef void F<T>(T x);
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.textual_outline_modelled.expect
index cce693e..c813f8d 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 F<num> g1(C<num> c) {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.expect
index a63dac3..71d5edf 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.expect
@@ -1,40 +1,30 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-typedef G<contravariant T extends core::Object* = dynamic, U extends core::Object* = dynamic> = (T*) →* U*;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+typedef G<contravariant T extends core::Object? = dynamic, U extends core::Object? = dynamic> = (T%) → U%;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f1(covariant-by-class self::C::T* x) → void {}
-  method f2(covariant-by-class core::List<self::C::T*>* x) → self::C::T*
-    return x.{core::Iterable::first}{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
+  method f1(covariant-by-class self::C::T% x) → void {}
+  method f2(covariant-by-class core::List<self::C::T%> x) → self::C::T%
+    return x.{core::Iterable::first}{self::C::T%};
 }
-static method g1(self::C<core::num*>* c) → (core::num*) →* void {
-  return c.{self::C::f1}{(core::num*) →* void};
+static method g1(self::C<core::num> c) → (core::num) → void {
+  return c.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
 }
-static method g2(self::C<core::int*>* c, core::Object* x) → void {
-  (core::Object*) →* void f = self::g1(c) as (core::Object*) →* void;
-  f(x){(core::Object*) →* void};
+static method g2(self::C<core::int> c, core::Object x) → void {
+  (core::Object) → void f = self::g1(c) as{ForNonNullableByDefault} (core::Object) → void;
+  f(x){(core::Object) → void};
 }
-static method g3(self::C<core::num*>* c) → (core::List<core::num*>*) →* core::num* {
-  return c.{self::C::f2}{(core::List<core::num*>*) →* core::num*};
+static method g3(self::C<core::num> c) → (core::List<core::num>) → core::num {
+  return c.{self::C::f2}{(core::List<core::num>) → core::num} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::List<core::num>) → core::num;
 }
 static method test() → void {
-  (core::num*) →* void x = self::g1(new self::C::•<core::int*>());
-  x(1.5){(core::num*) →* void};
-  self::g3(new self::C::•<core::int*>());
+  (core::num) → void x = self::g1(new self::C::•<core::int>());
+  x(1.5){(core::num) → void};
+  self::g3(new self::C::•<core::int>());
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.modular.expect
index a63dac3..71d5edf 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.modular.expect
@@ -1,40 +1,30 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-typedef G<contravariant T extends core::Object* = dynamic, U extends core::Object* = dynamic> = (T*) →* U*;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+typedef G<contravariant T extends core::Object? = dynamic, U extends core::Object? = dynamic> = (T%) → U%;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f1(covariant-by-class self::C::T* x) → void {}
-  method f2(covariant-by-class core::List<self::C::T*>* x) → self::C::T*
-    return x.{core::Iterable::first}{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
+  method f1(covariant-by-class self::C::T% x) → void {}
+  method f2(covariant-by-class core::List<self::C::T%> x) → self::C::T%
+    return x.{core::Iterable::first}{self::C::T%};
 }
-static method g1(self::C<core::num*>* c) → (core::num*) →* void {
-  return c.{self::C::f1}{(core::num*) →* void};
+static method g1(self::C<core::num> c) → (core::num) → void {
+  return c.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
 }
-static method g2(self::C<core::int*>* c, core::Object* x) → void {
-  (core::Object*) →* void f = self::g1(c) as (core::Object*) →* void;
-  f(x){(core::Object*) →* void};
+static method g2(self::C<core::int> c, core::Object x) → void {
+  (core::Object) → void f = self::g1(c) as{ForNonNullableByDefault} (core::Object) → void;
+  f(x){(core::Object) → void};
 }
-static method g3(self::C<core::num*>* c) → (core::List<core::num*>*) →* core::num* {
-  return c.{self::C::f2}{(core::List<core::num*>*) →* core::num*};
+static method g3(self::C<core::num> c) → (core::List<core::num>) → core::num {
+  return c.{self::C::f2}{(core::List<core::num>) → core::num} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::List<core::num>) → core::num;
 }
 static method test() → void {
-  (core::num*) →* void x = self::g1(new self::C::•<core::int*>());
-  x(1.5){(core::num*) →* void};
-  self::g3(new self::C::•<core::int*>());
+  (core::num) → void x = self::g1(new self::C::•<core::int>());
+  x(1.5){(core::num) → void};
+  self::g3(new self::C::•<core::int>());
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.outline.expect
index 5ba10bb..146ef04 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.outline.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-typedef G<contravariant T extends core::Object* = dynamic, U extends core::Object* = dynamic> = (T*) →* U*;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+typedef G<contravariant T extends core::Object? = dynamic, U extends core::Object? = dynamic> = (T%) → U%;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  method f1(covariant-by-class self::C::T* x) → void
+  method f1(covariant-by-class self::C::T% x) → void
     ;
-  method f2(covariant-by-class core::List<self::C::T*>* x) → self::C::T*
+  method f2(covariant-by-class core::List<self::C::T%> x) → 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 g1(self::C<core::num*>* c) → (core::num*) →* void
+static method g1(self::C<core::num> c) → (core::num) → void
   ;
-static method g2(self::C<core::int*>* c, core::Object* x) → void
+static method g2(self::C<core::int> c, core::Object x) → void
   ;
-static method g3(self::C<core::num*>* c) → (core::List<core::num*>*) →* core::num*
+static method g3(self::C<core::num> c) → (core::List<core::num>) → core::num
   ;
 static method test() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.transformed.expect
index a63dac3..71d5edf 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_tear_off.dart.weak.transformed.expect
@@ -1,40 +1,30 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-typedef G<contravariant T extends core::Object* = dynamic, U extends core::Object* = dynamic> = (T*) →* U*;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+typedef G<contravariant T extends core::Object? = dynamic, U extends core::Object? = dynamic> = (T%) → U%;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f1(covariant-by-class self::C::T* x) → void {}
-  method f2(covariant-by-class core::List<self::C::T*>* x) → self::C::T*
-    return x.{core::Iterable::first}{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
+  method f1(covariant-by-class self::C::T% x) → void {}
+  method f2(covariant-by-class core::List<self::C::T%> x) → self::C::T%
+    return x.{core::Iterable::first}{self::C::T%};
 }
-static method g1(self::C<core::num*>* c) → (core::num*) →* void {
-  return c.{self::C::f1}{(core::num*) →* void};
+static method g1(self::C<core::num> c) → (core::num) → void {
+  return c.{self::C::f1}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
 }
-static method g2(self::C<core::int*>* c, core::Object* x) → void {
-  (core::Object*) →* void f = self::g1(c) as (core::Object*) →* void;
-  f(x){(core::Object*) →* void};
+static method g2(self::C<core::int> c, core::Object x) → void {
+  (core::Object) → void f = self::g1(c) as{ForNonNullableByDefault} (core::Object) → void;
+  f(x){(core::Object) → void};
 }
-static method g3(self::C<core::num*>* c) → (core::List<core::num*>*) →* core::num* {
-  return c.{self::C::f2}{(core::List<core::num*>*) →* core::num*};
+static method g3(self::C<core::num> c) → (core::List<core::num>) → core::num {
+  return c.{self::C::f2}{(core::List<core::num>) → core::num} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::List<core::num>) → core::num;
 }
 static method test() → void {
-  (core::num*) →* void x = self::g1(new self::C::•<core::int*>());
-  x(1.5){(core::num*) →* void};
-  self::g3(new self::C::•<core::int*>());
+  (core::num) → void x = self::g1(new self::C::•<core::int>());
+  x(1.5){(core::num) → void};
+  self::g3(new self::C::•<core::int>());
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart
index c506dd0..02bfdcf 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.textual_outline.expect
index ce94263..a0211e4 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 typedef F<T>(T x);
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.textual_outline_modelled.expect
index 845403c..7b38b24 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 F<num> g2(C c) {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.expect
index bf44b39..38a56e3 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.expect
@@ -1,44 +1,34 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  method f(core::num* x) → 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(core::num x) → void {}
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method f(covariant-by-declaration core::int* x) → void {}
+  method f(covariant-by-declaration core::int x) → void {}
 }
 class E extends self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super self::D::•()
     ;
-  method f(covariant-by-declaration core::int* x) → void {}
+  method f(covariant-by-declaration core::int x) → void {}
 }
-static method g1(self::C* c) → void {
-  c.{self::C::f}(1.5){(core::num*) →* void};
+static method g1(self::C c) → void {
+  c.{self::C::f}(1.5){(core::num) → void};
 }
-static method g2(self::C* c) → (core::num*) →* dynamic {
-  return c.{self::C::f}{(core::num*) →* void};
+static method g2(self::C c) → (core::num) → dynamic {
+  return c.{self::C::f}{(core::num) → void};
 }
 static method test() → dynamic {
   self::g1(new self::D::•());
-  (core::num*) →* dynamic x = self::g2(new self::D::•());
+  (core::num) → dynamic x = self::g2(new self::D::•());
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.modular.expect
index bf44b39..38a56e3 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.modular.expect
@@ -1,44 +1,34 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  method f(core::num* x) → 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(core::num x) → void {}
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method f(covariant-by-declaration core::int* x) → void {}
+  method f(covariant-by-declaration core::int x) → void {}
 }
 class E extends self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super self::D::•()
     ;
-  method f(covariant-by-declaration core::int* x) → void {}
+  method f(covariant-by-declaration core::int x) → void {}
 }
-static method g1(self::C* c) → void {
-  c.{self::C::f}(1.5){(core::num*) →* void};
+static method g1(self::C c) → void {
+  c.{self::C::f}(1.5){(core::num) → void};
 }
-static method g2(self::C* c) → (core::num*) →* dynamic {
-  return c.{self::C::f}{(core::num*) →* void};
+static method g2(self::C c) → (core::num) → dynamic {
+  return c.{self::C::f}{(core::num) → void};
 }
 static method test() → dynamic {
   self::g1(new self::D::•());
-  (core::num*) →* dynamic x = self::g2(new self::D::•());
+  (core::num) → dynamic x = self::g2(new self::D::•());
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.outline.expect
index 24552c4..60ac54f 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.outline.expect
@@ -1,39 +1,29 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  method f(core::num* x) → void
+  method f(core::num x) → 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 D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
-  method f(covariant-by-declaration core::int* x) → void
+  method f(covariant-by-declaration core::int x) → void
     ;
 }
 class E extends self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     ;
-  method f(covariant-by-declaration core::int* x) → void
+  method f(covariant-by-declaration core::int x) → void
     ;
 }
-static method g1(self::C* c) → void
+static method g1(self::C c) → void
   ;
-static method g2(self::C* c) → (core::num*) →* dynamic
+static method g2(self::C c) → (core::num) → dynamic
   ;
 static method test() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.transformed.expect
index bf44b39..38a56e3 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.weak.transformed.expect
@@ -1,44 +1,34 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  method f(core::num* x) → 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(core::num x) → void {}
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method f(covariant-by-declaration core::int* x) → void {}
+  method f(covariant-by-declaration core::int x) → void {}
 }
 class E extends self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super self::D::•()
     ;
-  method f(covariant-by-declaration core::int* x) → void {}
+  method f(covariant-by-declaration core::int x) → void {}
 }
-static method g1(self::C* c) → void {
-  c.{self::C::f}(1.5){(core::num*) →* void};
+static method g1(self::C c) → void {
+  c.{self::C::f}(1.5){(core::num) → void};
 }
-static method g2(self::C* c) → (core::num*) →* dynamic {
-  return c.{self::C::f}{(core::num*) →* void};
+static method g2(self::C c) → (core::num) → dynamic {
+  return c.{self::C::f}{(core::num) → void};
 }
 static method test() → dynamic {
   self::g1(new self::D::•());
-  (core::num*) →* dynamic x = self::g2(new self::D::•());
+  (core::num) → dynamic x = self::g2(new self::D::•());
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart
index 070f4c9..ca46367 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart
@@ -1,20 +1,20 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 class C {
-  num x;
+  num? x;
 }
 
 class D implements C {
-  covariant int x;
+  covariant int? x;
 }
 
 class E implements D {
-  int x;
+  int? x;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.textual_outline.expect
index a6f9dc1..1379e63 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.textual_outline.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
 library test;
 
 class C {
-  num x;
+  num? x;
 }
 
 class D implements C {
-  covariant int x;
+  covariant int? x;
 }
 
 class E implements D {
-  int x;
+  int? x;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.textual_outline_modelled.expect
index a6f9dc1..1379e63 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.textual_outline_modelled.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
 library test;
 
 class C {
-  num x;
+  num? x;
 }
 
 class D implements C {
-  covariant int x;
+  covariant int? x;
 }
 
 class E implements D {
-  int x;
+  int? x;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.weak.expect
index 210c2cb..fe0527a 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.weak.expect
@@ -1,53 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  field core::num* x = null;
-  synthetic constructor •() → self::C*
+  field core::num? x = null;
+  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
 }
 class D extends core::Object implements self::C {
-  covariant-by-declaration field core::int* x = null;
-  synthetic constructor •() → self::D*
+  covariant-by-declaration field core::int? x = null;
+  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
 }
 class E extends core::Object implements self::D {
-  covariant-by-declaration field core::int* x = null;
-  synthetic constructor •() → self::E*
+  covariant-by-declaration field core::int? x = null;
+  synthetic constructor •() → self::E
     : 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/runtime_checks/covariant_keyword_field.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.weak.modular.expect
index 210c2cb..fe0527a 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.weak.modular.expect
@@ -1,53 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  field core::num* x = null;
-  synthetic constructor •() → self::C*
+  field core::num? x = null;
+  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
 }
 class D extends core::Object implements self::C {
-  covariant-by-declaration field core::int* x = null;
-  synthetic constructor •() → self::D*
+  covariant-by-declaration field core::int? x = null;
+  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
 }
 class E extends core::Object implements self::D {
-  covariant-by-declaration field core::int* x = null;
-  synthetic constructor •() → self::E*
+  covariant-by-declaration field core::int? x = null;
+  synthetic constructor •() → self::E
     : 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/runtime_checks/covariant_keyword_field.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.weak.outline.expect
index 359e402..8df4386 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.weak.outline.expect
@@ -1,51 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  field core::num* x;
-  synthetic constructor •() → self::C*
+  field core::num? x;
+  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
 }
 class D extends core::Object implements self::C {
-  covariant-by-declaration field core::int* x;
-  synthetic constructor •() → self::D*
+  covariant-by-declaration field core::int? x;
+  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
 }
 class E extends core::Object implements self::D {
-  covariant-by-declaration field core::int* x;
-  synthetic constructor •() → self::E*
+  covariant-by-declaration field core::int? x;
+  synthetic constructor •() → 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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.weak.transformed.expect
index 210c2cb..fe0527a 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.weak.transformed.expect
@@ -1,53 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  field core::num* x = null;
-  synthetic constructor •() → self::C*
+  field core::num? x = null;
+  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
 }
 class D extends core::Object implements self::C {
-  covariant-by-declaration field core::int* x = null;
-  synthetic constructor •() → self::D*
+  covariant-by-declaration field core::int? x = null;
+  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
 }
 class E extends core::Object implements self::D {
-  covariant-by-declaration field core::int* x = null;
-  synthetic constructor •() → self::E*
+  covariant-by-declaration field core::int? x = null;
+  synthetic constructor •() → self::E
     : 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/runtime_checks/covariant_keyword_field_inherited_by_setter.dart b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart
index 3b905d7..1da1e49 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart
@@ -1,21 +1,21 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 class C {
-  num x;
+  num? x;
 }
 
 class D implements C {
-  covariant int x;
+  covariant int? x;
 }
 
 class E implements D {
-  int get x => 0;
-  void set x(int value) {}
+  int? get x => 0;
+  void set x(int? value) {}
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.textual_outline.expect
index c7a1db5..1533cd3 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.textual_outline.expect
@@ -1,17 +1,16 @@
-// @dart = 2.9
 library test;
 
 class C {
-  num x;
+  num? x;
 }
 
 class D implements C {
-  covariant int x;
+  covariant int? x;
 }
 
 class E implements D {
-  int get x => 0;
-  void set x(int value) {}
+  int? get x => 0;
+  void set x(int? value) {}
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.textual_outline_modelled.expect
index c7a1db5..1533cd3 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.textual_outline_modelled.expect
@@ -1,17 +1,16 @@
-// @dart = 2.9
 library test;
 
 class C {
-  num x;
+  num? x;
 }
 
 class D implements C {
-  covariant int x;
+  covariant int? x;
 }
 
 class E implements D {
-  int get x => 0;
-  void set x(int value) {}
+  int? get x => 0;
+  void set x(int? value) {}
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.expect
index 2e274f6..12ad231 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  field core::num* x = null;
-  synthetic constructor •() → self::C*
+  field core::num? x = null;
+  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
 }
 class D extends core::Object implements self::C {
-  covariant-by-declaration field core::int* x = null;
-  synthetic constructor •() → self::D*
+  covariant-by-declaration field core::int? x = null;
+  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
 }
 class E extends core::Object implements self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super core::Object::•()
     ;
-  get x() → core::int*
+  get x() → core::int?
     return 0;
-  set x(covariant-by-declaration 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 x(covariant-by-declaration core::int? value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.modular.expect
index 2e274f6..12ad231 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.modular.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  field core::num* x = null;
-  synthetic constructor •() → self::C*
+  field core::num? x = null;
+  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
 }
 class D extends core::Object implements self::C {
-  covariant-by-declaration field core::int* x = null;
-  synthetic constructor •() → self::D*
+  covariant-by-declaration field core::int? x = null;
+  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
 }
 class E extends core::Object implements self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super core::Object::•()
     ;
-  get x() → core::int*
+  get x() → core::int?
     return 0;
-  set x(covariant-by-declaration 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 x(covariant-by-declaration core::int? value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.outline.expect
index 64b3fce..5abd874 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.outline.expect
@@ -1,54 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  field core::num* x;
-  synthetic constructor •() → self::C*
+  field core::num? x;
+  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
 }
 class D extends core::Object implements self::C {
-  covariant-by-declaration field core::int* x;
-  synthetic constructor •() → self::D*
+  covariant-by-declaration field core::int? x;
+  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
 }
 class E extends core::Object implements self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     ;
-  get x() → core::int*
+  get x() → core::int?
     ;
-  set x(covariant-by-declaration core::int* value) → void
+  set x(covariant-by-declaration 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 method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.transformed.expect
index 2e274f6..12ad231 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.weak.transformed.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  field core::num* x = null;
-  synthetic constructor •() → self::C*
+  field core::num? x = null;
+  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
 }
 class D extends core::Object implements self::C {
-  covariant-by-declaration field core::int* x = null;
-  synthetic constructor •() → self::D*
+  covariant-by-declaration field core::int? x = null;
+  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
 }
 class E extends core::Object implements self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super core::Object::•()
     ;
-  get x() → core::int*
+  get x() → core::int?
     return 0;
-  set x(covariant-by-declaration 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 x(covariant-by-declaration core::int? value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart
index 54580cd..d9b8a30e 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.textual_outline.expect
index dc45d51..3e18946 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.textual_outline_modelled.expect
index dc45d51..3e18946 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C {
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.expect
index 3f5f3e4..6eaf130 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*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::•()
     ;
-  set x(core::num* 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 x(core::num value) → void {}
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  set x(covariant-by-declaration core::int* value) → void {}
+  set x(covariant-by-declaration core::int value) → void {}
 }
 class E extends self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super self::D::•()
     ;
-  set x(covariant-by-declaration core::int* value) → void {}
+  set x(covariant-by-declaration core::int value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.modular.expect
index 3f5f3e4..6eaf130 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.modular.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*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::•()
     ;
-  set x(core::num* 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 x(core::num value) → void {}
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  set x(covariant-by-declaration core::int* value) → void {}
+  set x(covariant-by-declaration core::int value) → void {}
 }
 class E extends self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super self::D::•()
     ;
-  set x(covariant-by-declaration core::int* value) → void {}
+  set x(covariant-by-declaration core::int value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.outline.expect
index 3d21253..07f9c35 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.outline.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  set x(core::num* value) → void
+  set x(core::num 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
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
-  set x(covariant-by-declaration core::int* value) → void
+  set x(covariant-by-declaration core::int value) → void
     ;
 }
 class E extends self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     ;
-  set x(covariant-by-declaration core::int* value) → void
+  set x(covariant-by-declaration core::int value) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.transformed.expect
index 3f5f3e4..6eaf130 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.weak.transformed.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*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::•()
     ;
-  set x(core::num* 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 x(core::num value) → void {}
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  set x(covariant-by-declaration core::int* value) → void {}
+  set x(covariant-by-declaration core::int value) → void {}
 }
 class E extends self::D {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super self::D::•()
     ;
-  set x(covariant-by-declaration core::int* value) → void {}
+  set x(covariant-by-declaration core::int value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart
index b3bcc5e..cbd45fa 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart
@@ -1,20 +1,20 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 class C {
-  void set x(num value) {}
+  void set x(num? value) {}
 }
 
 class D extends C {
-  void set x(covariant int value) {}
+  void set x(covariant int? value) {}
 }
 
 class E implements D {
-  int x;
+  int? x;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.textual_outline.expect
index 8d6ae0f..f919365 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.textual_outline.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
 library test;
 
 class C {
-  void set x(num value) {}
+  void set x(num? value) {}
 }
 
 class D extends C {
-  void set x(covariant int value) {}
+  void set x(covariant int? value) {}
 }
 
 class E implements D {
-  int x;
+  int? x;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.textual_outline_modelled.expect
index 8d6ae0f..f919365 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.textual_outline_modelled.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
 library test;
 
 class C {
-  void set x(num value) {}
+  void set x(num? value) {}
 }
 
 class D extends C {
-  void set x(covariant int value) {}
+  void set x(covariant int? value) {}
 }
 
 class E implements D {
-  int x;
+  int? x;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.expect
index 8c69a30..eb090d5 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*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::•()
     ;
-  set x(core::num* 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 x(core::num? value) → void {}
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  set x(covariant-by-declaration core::int* value) → void {}
+  set x(covariant-by-declaration core::int? value) → void {}
 }
 class E extends core::Object implements self::D {
-  covariant-by-declaration field core::int* x = null;
-  synthetic constructor •() → self::E*
+  covariant-by-declaration field core::int? x = null;
+  synthetic constructor •() → self::E
     : 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/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.modular.expect
index 8c69a30..eb090d5 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.modular.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*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::•()
     ;
-  set x(core::num* 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 x(core::num? value) → void {}
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  set x(covariant-by-declaration core::int* value) → void {}
+  set x(covariant-by-declaration core::int? value) → void {}
 }
 class E extends core::Object implements self::D {
-  covariant-by-declaration field core::int* x = null;
-  synthetic constructor •() → self::E*
+  covariant-by-declaration field core::int? x = null;
+  synthetic constructor •() → self::E
     : 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/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.outline.expect
index 28be2c8..0a58b9a 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.outline.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  set x(core::num* value) → void
+  set x(core::num? 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
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
-  set x(covariant-by-declaration core::int* value) → void
+  set x(covariant-by-declaration core::int? value) → void
     ;
 }
 class E extends core::Object implements self::D {
-  covariant-by-declaration field core::int* x;
-  synthetic constructor •() → self::E*
+  covariant-by-declaration field core::int? x;
+  synthetic constructor •() → 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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.transformed.expect
index 8c69a30..eb090d5 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.weak.transformed.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*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::•()
     ;
-  set x(core::num* 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 x(core::num? value) → void {}
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  set x(covariant-by-declaration core::int* value) → void {}
+  set x(covariant-by-declaration core::int? value) → void {}
 }
 class E extends core::Object implements self::D {
-  covariant-by-declaration field core::int* x = null;
-  synthetic constructor •() → self::E*
+  covariant-by-declaration field core::int? x = null;
+  synthetic constructor •() → self::E
     : 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/runtime_checks/covariant_setter.dart b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart
index fef54de..e81a781 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart
@@ -1,16 +1,16 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 typedef void F<T>(T x);
 
 class C<T> {
-  T x;
-  void set y(T value) {}
-  void f(T value) {
+  T? x;
+  void set y(T? value) {}
+  void f(T? value) {
     this.x = value;
     this.y = value;
   }
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.textual_outline.expect
index 7a6ee1e..8e2f72c 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.textual_outline.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
 library test;
 
 typedef void F<T>(T x);
 
 class C<T> {
-  T x;
-  void set y(T value) {}
-  void f(T value) {}
+  T? x;
+  void set y(T? value) {}
+  void f(T? value) {}
 }
 
 void g(C<num> c) {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.textual_outline_modelled.expect
index 4204df0..c45d014 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
-  T x;
-  void f(T value) {}
-  void set y(T value) {}
+  T? x;
+  void f(T? value) {}
+  void set y(T? value) {}
 }
 
 typedef void F<T>(T x);
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.expect
index dee3331..b565b4a 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::C::T* x = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::C::T? x = null;
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  set y(covariant-by-class self::C::T* value) → void {}
-  method f(covariant-by-class self::C::T* value) → void {
+  set y(covariant-by-class self::C::T? value) → void {}
+  method f(covariant-by-class self::C::T? value) → void {
     this.{self::C::x} = value;
     this.{self::C::y} = value;
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 g(self::C<core::num*>* c) → void {
+static method g(self::C<core::num> c) → void {
   c.{self::C::x} = 1.5;
   c.{self::C::y} = 1.5;
 }
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.modular.expect
index dee3331..b565b4a 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.modular.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::C::T* x = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::C::T? x = null;
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  set y(covariant-by-class self::C::T* value) → void {}
-  method f(covariant-by-class self::C::T* value) → void {
+  set y(covariant-by-class self::C::T? value) → void {}
+  method f(covariant-by-class self::C::T? value) → void {
     this.{self::C::x} = value;
     this.{self::C::y} = value;
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 g(self::C<core::num*>* c) → void {
+static method g(self::C<core::num> c) → void {
   c.{self::C::x} = 1.5;
   c.{self::C::y} = 1.5;
 }
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.outline.expect
index c431be4..d59d8a3 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.outline.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::C::T* x;
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::C::T? x;
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  set y(covariant-by-class self::C::T* value) → void
+  set y(covariant-by-class self::C::T? value) → void
     ;
-  method f(covariant-by-class self::C::T* value) → void
+  method f(covariant-by-class self::C::T? 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 method g(self::C<core::num*>* c) → void
+static method g(self::C<core::num> c) → void
   ;
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.transformed.expect
index dee3331..b565b4a 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart.weak.transformed.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::C::T* x = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::C::T? x = null;
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  set y(covariant-by-class self::C::T* value) → void {}
-  method f(covariant-by-class self::C::T* value) → void {
+  set y(covariant-by-class self::C::T? value) → void {}
+  method f(covariant-by-class self::C::T? value) → void {
     this.{self::C::x} = value;
     this.{self::C::y} = value;
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 g(self::C<core::num*>* c) → void {
+static method g(self::C<core::num> c) → void {
   c.{self::C::x} = 1.5;
   c.{self::C::y} = 1.5;
 }
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart
index d9e65fb..790dff4 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.textual_outline.expect
index 5a050cf..3385f7f 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.textual_outline_modelled.expect
index fa18448..89135dc 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.expect
index 3d1a3dc..ec602df 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f1(covariant-by-class self::C::T* x) → void {}
-  method f2(core::int* x) → 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 f1(covariant-by-class self::C::T% x) → void {}
+  method f2(core::int x) → void {}
 }
-class D extends self::C<core::num*> {
-  synthetic constructor •() → self::D*
+class D extends self::C<core::num> {
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method f1(covariant-by-declaration covariant-by-class core::int* x) → void {}
+  method f1(covariant-by-declaration covariant-by-class core::int x) → void {}
 }
 static method g1(dynamic d) → void {
   d{dynamic}.f1(1.5);
@@ -32,7 +22,7 @@
   d{dynamic}.f2(1.5);
 }
 static method test() → void {
-  self::g1(new self::C::•<core::int*>());
+  self::g1(new self::C::•<core::int>());
   self::g2(new self::C::•<dynamic>());
   self::g1(new self::D::•());
 }
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.modular.expect
index 3d1a3dc..ec602df 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.modular.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f1(covariant-by-class self::C::T* x) → void {}
-  method f2(core::int* x) → 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 f1(covariant-by-class self::C::T% x) → void {}
+  method f2(core::int x) → void {}
 }
-class D extends self::C<core::num*> {
-  synthetic constructor •() → self::D*
+class D extends self::C<core::num> {
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method f1(covariant-by-declaration covariant-by-class core::int* x) → void {}
+  method f1(covariant-by-declaration covariant-by-class core::int x) → void {}
 }
 static method g1(dynamic d) → void {
   d{dynamic}.f1(1.5);
@@ -32,7 +22,7 @@
   d{dynamic}.f2(1.5);
 }
 static method test() → void {
-  self::g1(new self::C::•<core::int*>());
+  self::g1(new self::C::•<core::int>());
   self::g2(new self::C::•<dynamic>());
   self::g1(new self::D::•());
 }
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.outline.expect
index a2c2b89..b8da6db 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.outline.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  method f1(covariant-by-class self::C::T* x) → void
+  method f1(covariant-by-class self::C::T% x) → void
     ;
-  method f2(core::int* x) → void
+  method f2(core::int x) → 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 D extends self::C<core::num*> {
-  synthetic constructor •() → self::D*
+class D extends self::C<core::num> {
+  synthetic constructor •() → self::D
     ;
-  method f1(covariant-by-declaration covariant-by-class core::int* x) → void
+  method f1(covariant-by-declaration covariant-by-class core::int x) → void
     ;
 }
 static method g1(dynamic d) → void
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.transformed.expect
index 3d1a3dc..ec602df 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.weak.transformed.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f1(covariant-by-class self::C::T* x) → void {}
-  method f2(core::int* x) → 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 f1(covariant-by-class self::C::T% x) → void {}
+  method f2(core::int x) → void {}
 }
-class D extends self::C<core::num*> {
-  synthetic constructor •() → self::D*
+class D extends self::C<core::num> {
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method f1(covariant-by-declaration covariant-by-class core::int* x) → void {}
+  method f1(covariant-by-declaration covariant-by-class core::int x) → void {}
 }
 static method g1(dynamic d) → void {
   d{dynamic}.f1(1.5);
@@ -32,7 +22,7 @@
   d{dynamic}.f2(1.5);
 }
 static method test() → void {
-  self::g1(new self::C::•<core::int*>());
+  self::g1(new self::C::•<core::int>());
   self::g2(new self::C::•<dynamic>());
   self::g1(new self::D::•());
 }
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart
index 894c95b..6206b0e 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.textual_outline.expect
index 2e2fd8f..3ab451a 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.textual_outline_modelled.expect
index 025143f..cc44c99 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.expect
index bbd989a..969f2a9 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.expect
@@ -1,31 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f<covariant-by-class U extends self::C::T*>(self::C::f::U* x) → 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<covariant-by-class U extends self::C::T%>(self::C::f::U% x) → void {}
 }
 static method g1(dynamic d) → void {
-  d{dynamic}.f<core::num*>(1.5);
+  d{dynamic}.f<core::num>(1.5);
 }
 static method g2(dynamic d) → void {
   d{dynamic}.f(1.5);
 }
 static method test() → void {
-  self::g1(new self::C::•<core::int*>());
-  self::g2(new self::C::•<core::int*>());
+  self::g1(new self::C::•<core::int>());
+  self::g2(new self::C::•<core::int>());
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.modular.expect
index bbd989a..969f2a9 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.modular.expect
@@ -1,31 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f<covariant-by-class U extends self::C::T*>(self::C::f::U* x) → 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<covariant-by-class U extends self::C::T%>(self::C::f::U% x) → void {}
 }
 static method g1(dynamic d) → void {
-  d{dynamic}.f<core::num*>(1.5);
+  d{dynamic}.f<core::num>(1.5);
 }
 static method g2(dynamic d) → void {
   d{dynamic}.f(1.5);
 }
 static method test() → void {
-  self::g1(new self::C::•<core::int*>());
-  self::g2(new self::C::•<core::int*>());
+  self::g1(new self::C::•<core::int>());
+  self::g2(new self::C::•<core::int>());
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.outline.expect
index 8d50179..ed46391 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  method f<covariant-by-class U extends self::C::T*>(self::C::f::U* x) → void
+  method f<covariant-by-class U extends self::C::T%>(self::C::f::U% x) → 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 g1(dynamic d) → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.transformed.expect
index bbd989a..969f2a9 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.transformed.expect
@@ -1,31 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f<covariant-by-class U extends self::C::T*>(self::C::f::U* x) → 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<covariant-by-class U extends self::C::T%>(self::C::f::U% x) → void {}
 }
 static method g1(dynamic d) → void {
-  d{dynamic}.f<core::num*>(1.5);
+  d{dynamic}.f<core::num>(1.5);
 }
 static method g2(dynamic d) → void {
   d{dynamic}.f(1.5);
 }
 static method test() → void {
-  self::g1(new self::C::•<core::int*>());
-  self::g2(new self::C::•<core::int*>());
+  self::g1(new self::C::•<core::int>());
+  self::g2(new self::C::•<core::int>());
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart
index 7a6a6a5..7c7fe48 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.textual_outline.expect
index 4611b50..7737325 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C {
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.textual_outline_modelled.expect
index 40fbf9f..4e49871 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C {
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.expect
index 204effc..ae55f39 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic f;
-  constructor •(dynamic f) → self::C*
+  constructor •(dynamic f) → self::C
     : self::C::f = 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
 }
-static method g(self::C* c) → void {
-  let final self::C* #t1 = c in let final core::double* #t2 = 1.5 in #t1.{self::C::f}{dynamic}{dynamic}.call(#t2);
+static method g(self::C c) → void {
+  let final self::C #t1 = c in let final core::double #t2 = 1.5 in #t1.{self::C::f}{dynamic}{dynamic}.call(#t2);
 }
-static method h(core::int* i) → void {}
+static method h(core::int i) → void {}
 static method test() → void {
   self::g(new self::C::•(#C1));
 }
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.modular.expect
index 204effc..ae55f39 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic f;
-  constructor •(dynamic f) → self::C*
+  constructor •(dynamic f) → self::C
     : self::C::f = 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
 }
-static method g(self::C* c) → void {
-  let final self::C* #t1 = c in let final core::double* #t2 = 1.5 in #t1.{self::C::f}{dynamic}{dynamic}.call(#t2);
+static method g(self::C c) → void {
+  let final self::C #t1 = c in let final core::double #t2 = 1.5 in #t1.{self::C::f}{dynamic}{dynamic}.call(#t2);
 }
-static method h(core::int* i) → void {}
+static method h(core::int i) → void {}
 static method test() → void {
   self::g(new self::C::•(#C1));
 }
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.outline.expect
index e3dcba5..0ff4a0b 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic f;
-  constructor •(dynamic f) → self::C*
+  constructor •(dynamic f) → 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
 }
-static method g(self::C* c) → void
+static method g(self::C c) → void
   ;
-static method h(core::int* i) → void
+static method h(core::int i) → void
   ;
 static method test() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.transformed.expect
index 14d1ec2..b88ebd1 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_of_getter.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   field dynamic f;
-  constructor •(dynamic f) → self::C*
+  constructor •(dynamic f) → self::C
     : self::C::f = 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
 }
-static method g(self::C* c) → void {
-  let final self::C* #t1 = c in let final core::double* #t2 = 1.5 in #t1.{self::C::f}{dynamic}{dynamic}.call(#t2);
+static method g(self::C c) → void {
+  let final self::C #t1 = c in let final core::double #t2 = 1.5 in #t1.{self::C::f}{dynamic}{dynamic}.call(#t2);
 }
-static method h(core::int* i) → void {}
+static method h(core::int i) → void {}
 static method test() → void {
   self::g(new self::C::•(#C1));
 }
diff --git a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart
index c1f2d16..7e83576 100644
--- a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart
+++ b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart
@@ -1,16 +1,16 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 class B<T> {
-  T x;
+  T? x;
 }
 
 class C {
-  num x;
+  num? x;
 }
 
 class D extends C implements B<num> {}
diff --git a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.textual_outline.expect
index be28691..340c4a4 100644
--- a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.textual_outline.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
 library test;
 
 class B<T> {
-  T x;
+  T? x;
 }
 
 class C {
-  num x;
+  num? x;
 }
 
 class D extends C implements B<num> {}
diff --git a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.textual_outline_modelled.expect
index be28691..340c4a4 100644
--- a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.textual_outline_modelled.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
 library test;
 
 class B<T> {
-  T x;
+  T? x;
 }
 
 class C {
-  num x;
+  num? x;
 }
 
 class D extends C implements B<num> {}
diff --git a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.expect
index e0143ec..136a478 100644
--- a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::B::T* x = null;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::B::T? x = null;
+  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 {
-  field core::num* x = null;
-  synthetic constructor •() → self::C*
+  field core::num? x = null;
+  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
 }
-class D extends self::C implements self::B<core::num*> {
-  synthetic constructor •() → self::D*
+class D extends self::C implements self::B<core::num> {
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  forwarding-stub set x(covariant-by-class core::num* value) → void
+  forwarding-stub set x(covariant-by-class core::num? value) → void
     return super.{self::C::x} = value;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.modular.expect
index e0143ec..136a478 100644
--- a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.modular.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::B::T* x = null;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::B::T? x = null;
+  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 {
-  field core::num* x = null;
-  synthetic constructor •() → self::C*
+  field core::num? x = null;
+  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
 }
-class D extends self::C implements self::B<core::num*> {
-  synthetic constructor •() → self::D*
+class D extends self::C implements self::B<core::num> {
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  forwarding-stub set x(covariant-by-class core::num* value) → void
+  forwarding-stub set x(covariant-by-class core::num? value) → void
     return super.{self::C::x} = value;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.outline.expect
index 17eb717..853fff8 100644
--- a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.outline.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::B::T* x;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::B::T? x;
+  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 {
-  field core::num* x;
-  synthetic constructor •() → self::C*
+  field core::num? x;
+  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
 }
-class D extends self::C implements self::B<core::num*> {
-  synthetic constructor •() → self::D*
+class D extends self::C implements self::B<core::num> {
+  synthetic constructor •() → self::D
     ;
-  forwarding-stub set x(covariant-by-class core::num* value) → void
+  forwarding-stub set x(covariant-by-class core::num? value) → void
     return super.{self::C::x} = value;
 }
 static method main() → void
diff --git a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.transformed.expect
index e0143ec..136a478 100644
--- a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.weak.transformed.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::B::T* x = null;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::B::T? x = null;
+  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 {
-  field core::num* x = null;
-  synthetic constructor •() → self::C*
+  field core::num? x = null;
+  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
 }
-class D extends self::C implements self::B<core::num*> {
-  synthetic constructor •() → self::D*
+class D extends self::C implements self::B<core::num> {
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  forwarding-stub set x(covariant-by-class core::num* value) → void
+  forwarding-stub set x(covariant-by-class core::num? value) → void
     return super.{self::C::x} = value;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart
index 1858b00..f0c7c41 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart
@@ -1,12 +1,12 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 class B {
-  Object _x;
+  Object? _x;
   void f([num x = 10]) {
     _x = x;
   }
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.textual_outline.expect
index df71248..5971664 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
 library test;
 
 class B {
-  Object _x;
+  Object? _x;
   void f([num x = 10]) {}
   void g({num x = 20}) {}
   void check(Object expectedValue) {}
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.textual_outline_modelled.expect
index c3d5b86..80ed0e1 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class I<T> {
@@ -7,7 +6,7 @@
 }
 
 class B {
-  Object _x;
+  Object? _x;
   void check(Object expectedValue) {}
   void f([num x = 10]) {}
   void g({num x = 20}) {}
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.expect
index 672eea9..204dfca 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.expect
@@ -1,66 +1,46 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  field core::Object* _x = null;
-  synthetic constructor •() → self::B*
+  field core::Object? _x = null;
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f([core::num* x = #C1]) → void {
+  method f([core::num x = #C1]) → void {
     this.{self::B::_x} = x;
   }
-  method g({core::num* x = #C2}) → void {
+  method g({core::num x = #C2}) → void {
     this.{self::B::_x} = x;
   }
-  method check(core::Object* expectedValue) → void {
-    if(!(this.{self::B::_x}{core::Object*} =={core::Object::==}{(core::Object*) →* core::bool*} expectedValue)) {
-      throw "Expected _x == ${expectedValue}; got ${this.{self::B::_x}{core::Object*}}";
+  method check(core::Object expectedValue) → void {
+    if(!(this.{self::B::_x}{core::Object?} =={core::Object::==}{(core::Object) → core::bool} expectedValue)) {
+      throw "Expected _x == ${expectedValue}; got ${this.{self::B::_x}{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 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([covariant-by-class self::I::T* x = #C3]) → void;
-  abstract method g({covariant-by-class self::I::T* x = #C3}) → 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::I::T% x = #C3]) → void;
+  abstract method g({covariant-by-class self::I::T% x = #C3}) → void;
 }
-class C extends self::B implements self::I<core::num*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::num> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f([covariant-by-class core::num* x = #C1]) → void
+  forwarding-stub method f([covariant-by-class core::num x = #C1]) → void
     return super.{self::B::f}(x);
-  forwarding-stub method g({covariant-by-class core::num* x = #C2}) → void
+  forwarding-stub method g({covariant-by-class core::num x = #C2}) → void
     return super.{self::B::g}(x: x);
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•();
-  c.{self::C::f}(){([core::num*]) →* void};
-  c.{self::B::check}(10){(core::Object*) →* void};
-  c.{self::C::g}(){({x: core::num*}) →* void};
-  c.{self::B::check}(20){(core::Object*) →* void};
+  self::C c = new self::C::•();
+  c.{self::C::f}(){([core::num]) → void};
+  c.{self::B::check}(10){(core::Object) → void};
+  c.{self::C::g}(){({x: core::num}) → void};
+  c.{self::B::check}(20){(core::Object) → void};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.modular.expect
index 672eea9..204dfca 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.modular.expect
@@ -1,66 +1,46 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  field core::Object* _x = null;
-  synthetic constructor •() → self::B*
+  field core::Object? _x = null;
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f([core::num* x = #C1]) → void {
+  method f([core::num x = #C1]) → void {
     this.{self::B::_x} = x;
   }
-  method g({core::num* x = #C2}) → void {
+  method g({core::num x = #C2}) → void {
     this.{self::B::_x} = x;
   }
-  method check(core::Object* expectedValue) → void {
-    if(!(this.{self::B::_x}{core::Object*} =={core::Object::==}{(core::Object*) →* core::bool*} expectedValue)) {
-      throw "Expected _x == ${expectedValue}; got ${this.{self::B::_x}{core::Object*}}";
+  method check(core::Object expectedValue) → void {
+    if(!(this.{self::B::_x}{core::Object?} =={core::Object::==}{(core::Object) → core::bool} expectedValue)) {
+      throw "Expected _x == ${expectedValue}; got ${this.{self::B::_x}{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 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([covariant-by-class self::I::T* x = #C3]) → void;
-  abstract method g({covariant-by-class self::I::T* x = #C3}) → 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::I::T% x = #C3]) → void;
+  abstract method g({covariant-by-class self::I::T% x = #C3}) → void;
 }
-class C extends self::B implements self::I<core::num*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::num> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f([covariant-by-class core::num* x = #C1]) → void
+  forwarding-stub method f([covariant-by-class core::num x = #C1]) → void
     return super.{self::B::f}(x);
-  forwarding-stub method g({covariant-by-class core::num* x = #C2}) → void
+  forwarding-stub method g({covariant-by-class core::num x = #C2}) → void
     return super.{self::B::g}(x: x);
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•();
-  c.{self::C::f}(){([core::num*]) →* void};
-  c.{self::B::check}(10){(core::Object*) →* void};
-  c.{self::C::g}(){({x: core::num*}) →* void};
-  c.{self::B::check}(20){(core::Object*) →* void};
+  self::C c = new self::C::•();
+  c.{self::C::f}(){([core::num]) → void};
+  c.{self::B::check}(10){(core::Object) → void};
+  c.{self::C::g}(){({x: core::num}) → void};
+  c.{self::B::check}(20){(core::Object) → void};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.outline.expect
index 232826f..b8c77b9 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.outline.expect
@@ -1,50 +1,30 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  field core::Object* _x;
-  synthetic constructor •() → self::B*
+  field core::Object? _x;
+  synthetic constructor •() → self::B
     ;
-  method f([core::num* x = 10]) → void
+  method f([core::num x = 10]) → void
     ;
-  method g({core::num* x = 20}) → void
+  method g({core::num x = 20}) → void
     ;
-  method check(core::Object* expectedValue) → void
+  method check(core::Object expectedValue) → 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([covariant-by-class self::I::T* x = null]) → void;
-  abstract method g({covariant-by-class self::I::T* x = null}) → 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::I::T% x = null]) → void;
+  abstract method g({covariant-by-class self::I::T% x = null}) → void;
 }
-class C extends self::B implements self::I<core::num*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::num> {
+  synthetic constructor •() → self::C
     ;
-  forwarding-stub method f([covariant-by-class core::num* x]) → void
+  forwarding-stub method f([covariant-by-class core::num x]) → void
     return super.{self::B::f}(x);
-  forwarding-stub method g({covariant-by-class core::num* x}) → void
+  forwarding-stub method g({covariant-by-class core::num x}) → void
     return super.{self::B::g}(x: x);
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.transformed.expect
index 672eea9..204dfca 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.weak.transformed.expect
@@ -1,66 +1,46 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  field core::Object* _x = null;
-  synthetic constructor •() → self::B*
+  field core::Object? _x = null;
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f([core::num* x = #C1]) → void {
+  method f([core::num x = #C1]) → void {
     this.{self::B::_x} = x;
   }
-  method g({core::num* x = #C2}) → void {
+  method g({core::num x = #C2}) → void {
     this.{self::B::_x} = x;
   }
-  method check(core::Object* expectedValue) → void {
-    if(!(this.{self::B::_x}{core::Object*} =={core::Object::==}{(core::Object*) →* core::bool*} expectedValue)) {
-      throw "Expected _x == ${expectedValue}; got ${this.{self::B::_x}{core::Object*}}";
+  method check(core::Object expectedValue) → void {
+    if(!(this.{self::B::_x}{core::Object?} =={core::Object::==}{(core::Object) → core::bool} expectedValue)) {
+      throw "Expected _x == ${expectedValue}; got ${this.{self::B::_x}{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 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([covariant-by-class self::I::T* x = #C3]) → void;
-  abstract method g({covariant-by-class self::I::T* x = #C3}) → 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::I::T% x = #C3]) → void;
+  abstract method g({covariant-by-class self::I::T% x = #C3}) → void;
 }
-class C extends self::B implements self::I<core::num*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::num> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f([covariant-by-class core::num* x = #C1]) → void
+  forwarding-stub method f([covariant-by-class core::num x = #C1]) → void
     return super.{self::B::f}(x);
-  forwarding-stub method g({covariant-by-class core::num* x = #C2}) → void
+  forwarding-stub method g({covariant-by-class core::num x = #C2}) → void
     return super.{self::B::g}(x: x);
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•();
-  c.{self::C::f}(){([core::num*]) →* void};
-  c.{self::B::check}(10){(core::Object*) →* void};
-  c.{self::C::g}(){({x: core::num*}) →* void};
-  c.{self::B::check}(20){(core::Object*) →* void};
+  self::C c = new self::C::•();
+  c.{self::C::f}(){([core::num]) → void};
+  c.{self::B::check}(10){(core::Object) → void};
+  c.{self::C::g}(){({x: core::num}) → void};
+  c.{self::B::check}(20){(core::Object) → void};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart
index 50a9e4d..2cd0b19 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.textual_outline.expect
index 681a9ab..8c6231b 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class B {
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.textual_outline_modelled.expect
index 1177a3c..345dc98 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class I<T> {
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.expect
index 76facc74..ac4945f 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* 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(core::int 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(covariant-by-class self::I::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::I::T% x, core::int y) → void;
 }
-class C extends self::B implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x, core::int* y) → void
+  forwarding-stub method f(covariant-by-class core::int x, core::int y) → void
     return super.{self::B::f}(x, y);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.modular.expect
index 76facc74..ac4945f 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.modular.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* 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(core::int 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(covariant-by-class self::I::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::I::T% x, core::int y) → void;
 }
-class C extends self::B implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x, core::int* y) → void
+  forwarding-stub method f(covariant-by-class core::int x, core::int y) → void
     return super.{self::B::f}(x, y);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.outline.expect
index 15a57c7..69d5b22 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.outline.expect
@@ -1,42 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  method f(core::int* x, core::int* y) → void
+  method f(core::int 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(covariant-by-class self::I::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::I::T% x, core::int y) → void;
 }
-class C extends self::B implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::int> {
+  synthetic constructor •() → self::C
     ;
-  forwarding-stub method f(covariant-by-class core::int* x, core::int* y) → void
+  forwarding-stub method f(covariant-by-class core::int x, core::int y) → void
     return super.{self::B::f}(x, y);
 }
 static method main() → void
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.transformed.expect
index 76facc74..ac4945f 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.weak.transformed.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* 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(core::int 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(covariant-by-class self::I::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::I::T% x, core::int y) → void;
 }
-class C extends self::B implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x, core::int* y) → void
+  forwarding-stub method f(covariant-by-class core::int x, core::int y) → void
     return super.{self::B::f}(x, y);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart
index 80ac157..5fbf5e9 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart
+++ b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart
@@ -1,24 +1,24 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 class C<T> {
-  void set x(T t) {}
-  T y;
+  void set x(T? t) {}
+  T? y;
 }
 
 class D implements C<num> {
-  num x;
-  num y;
+  num? x;
+  num? y;
 }
 
 class E implements C<num> {
-  void set x(num t) {}
-  num get y => null;
-  void set y(num t) {}
+  void set x(num? t) {}
+  num? get y => null;
+  void set y(num? t) {}
 }
 
 void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.textual_outline.expect
index 2d3e16b..562ff44 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.textual_outline.expect
@@ -1,20 +1,19 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
-  void set x(T t) {}
-  T y;
+  void set x(T? t) {}
+  T? y;
 }
 
 class D implements C<num> {
-  num x;
-  num y;
+  num? x;
+  num? y;
 }
 
 class E implements C<num> {
-  void set x(num t) {}
-  num get y => null;
-  void set y(num t) {}
+  void set x(num? t) {}
+  num? get y => null;
+  void set y(num? t) {}
 }
 
 void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.textual_outline_modelled.expect
index 551aa2b..fce3704 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.textual_outline_modelled.expect
@@ -1,20 +1,19 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
-  T y;
-  void set x(T t) {}
+  T? y;
+  void set x(T? t) {}
 }
 
 class D implements C<num> {
-  num x;
-  num y;
+  num? x;
+  num? y;
 }
 
 class E implements C<num> {
-  num get y => null;
-  void set x(num t) {}
-  void set y(num t) {}
+  num? get y => null;
+  void set x(num? t) {}
+  void set y(num? t) {}
 }
 
 void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.expect
index 2fc5b5a..2bb8197 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.expect
@@ -1,58 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::C::T* y = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::C::T? y = null;
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  set x(covariant-by-class self::C::T* t) → 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 x(covariant-by-class self::C::T? t) → void {}
 }
-class D extends core::Object implements self::C<core::num*> {
-  covariant-by-class field core::num* x = null;
-  covariant-by-class field core::num* y = null;
-  synthetic constructor •() → self::D*
+class D extends core::Object implements self::C<core::num> {
+  covariant-by-class field core::num? x = null;
+  covariant-by-class field core::num? y = null;
+  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
 }
-class E extends core::Object implements self::C<core::num*> {
-  synthetic constructor •() → self::E*
+class E extends core::Object implements self::C<core::num> {
+  synthetic constructor •() → self::E
     : super core::Object::•()
     ;
-  set x(covariant-by-class core::num* t) → void {}
-  get y() → core::num*
+  set x(covariant-by-class core::num? t) → void {}
+  get y() → core::num?
     return null;
-  set y(covariant-by-class core::num* t) → 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 y(covariant-by-class core::num? t) → void {}
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.modular.expect
index 2fc5b5a..2bb8197 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.modular.expect
@@ -1,58 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::C::T* y = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::C::T? y = null;
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  set x(covariant-by-class self::C::T* t) → 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 x(covariant-by-class self::C::T? t) → void {}
 }
-class D extends core::Object implements self::C<core::num*> {
-  covariant-by-class field core::num* x = null;
-  covariant-by-class field core::num* y = null;
-  synthetic constructor •() → self::D*
+class D extends core::Object implements self::C<core::num> {
+  covariant-by-class field core::num? x = null;
+  covariant-by-class field core::num? y = null;
+  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
 }
-class E extends core::Object implements self::C<core::num*> {
-  synthetic constructor •() → self::E*
+class E extends core::Object implements self::C<core::num> {
+  synthetic constructor •() → self::E
     : super core::Object::•()
     ;
-  set x(covariant-by-class core::num* t) → void {}
-  get y() → core::num*
+  set x(covariant-by-class core::num? t) → void {}
+  get y() → core::num?
     return null;
-  set y(covariant-by-class core::num* t) → 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 y(covariant-by-class core::num? t) → void {}
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.outline.expect
index e8177bf..3c62092 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.outline.expect
@@ -1,59 +1,29 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::C::T* y;
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::C::T? y;
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  set x(covariant-by-class self::C::T* t) → void
+  set x(covariant-by-class self::C::T? t) → 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 D extends core::Object implements self::C<core::num*> {
-  covariant-by-class field core::num* x;
-  covariant-by-class field core::num* y;
-  synthetic constructor •() → self::D*
+class D extends core::Object implements self::C<core::num> {
+  covariant-by-class field core::num? x;
+  covariant-by-class field core::num? y;
+  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
 }
-class E extends core::Object implements self::C<core::num*> {
-  synthetic constructor •() → self::E*
+class E extends core::Object implements self::C<core::num> {
+  synthetic constructor •() → self::E
     ;
-  set x(covariant-by-class core::num* t) → void
+  set x(covariant-by-class core::num? t) → void
     ;
-  get y() → core::num*
+  get y() → core::num?
     ;
-  set y(covariant-by-class core::num* t) → void
+  set y(covariant-by-class core::num? t) → 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 main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.transformed.expect
index 2fc5b5a..2bb8197 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.weak.transformed.expect
@@ -1,58 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class C<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::C::T* y = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::C::T? y = null;
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  set x(covariant-by-class self::C::T* t) → 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 x(covariant-by-class self::C::T? t) → void {}
 }
-class D extends core::Object implements self::C<core::num*> {
-  covariant-by-class field core::num* x = null;
-  covariant-by-class field core::num* y = null;
-  synthetic constructor •() → self::D*
+class D extends core::Object implements self::C<core::num> {
+  covariant-by-class field core::num? x = null;
+  covariant-by-class field core::num? y = null;
+  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
 }
-class E extends core::Object implements self::C<core::num*> {
-  synthetic constructor •() → self::E*
+class E extends core::Object implements self::C<core::num> {
+  synthetic constructor •() → self::E
     : super core::Object::•()
     ;
-  set x(covariant-by-class core::num* t) → void {}
-  get y() → core::num*
+  set x(covariant-by-class core::num? t) → void {}
+  get y() → core::num?
     return null;
-  set y(covariant-by-class core::num* t) → 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 y(covariant-by-class core::num? t) → void {}
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart
index f049390..895d11f 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart
+++ b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart
@@ -1,22 +1,22 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 abstract class A {
-  void set x(covariant Object value);
+  void set x(covariant Object? value);
 }
 
 class B implements A {
-  void f(covariant Object x) {}
-  Object x; // covariant
+  void f(covariant Object? x) {}
+  Object? x; // covariant
 }
 
 class C<T> implements B {
-  void f(T x) {}
-  T x;
+  void f(T? x) {}
+  T? x;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.textual_outline.expect
index 9bc6e47..b170ef9 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.textual_outline.expect
@@ -1,18 +1,17 @@
-// @dart = 2.9
 library test;
 
 abstract class A {
-  void set x(covariant Object value);
+  void set x(covariant Object? value);
 }
 
 class B implements A {
-  void f(covariant Object x) {}
-  Object x;
+  void f(covariant Object? x) {}
+  Object? x;
 }
 
 class C<T> implements B {
-  void f(T x) {}
-  T x;
+  void f(T? x) {}
+  T? x;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.textual_outline_modelled.expect
index a7a82e5..c51ceda 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.textual_outline_modelled.expect
@@ -1,18 +1,17 @@
-// @dart = 2.9
 library test;
 
 abstract class A {
-  void set x(covariant Object value);
+  void set x(covariant Object? value);
 }
 
 class B implements A {
-  Object x;
-  void f(covariant Object x) {}
+  Object? x;
+  void f(covariant Object? x) {}
 }
 
 class C<T> implements B {
-  T x;
-  void f(T x) {}
+  T? x;
+  void f(T? x) {}
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.expect
index 3e9000d..ffc705f 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  abstract set x(covariant-by-declaration core::Object* 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
+  abstract set x(covariant-by-declaration core::Object? value) → void;
 }
 class B extends core::Object implements self::A {
-  covariant-by-declaration field core::Object* x = null;
-  synthetic constructor •() → self::B*
+  covariant-by-declaration field core::Object? x = null;
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(covariant-by-declaration core::Object* x) → 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(covariant-by-declaration core::Object? x) → void {}
 }
-class C<T extends core::Object* = dynamic> extends core::Object implements self::B {
-  covariant-by-declaration covariant-by-class field self::C::T* x = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object implements self::B {
+  covariant-by-declaration covariant-by-class field self::C::T? x = null;
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f(covariant-by-declaration covariant-by-class self::C::T* x) → 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(covariant-by-declaration covariant-by-class self::C::T? x) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.modular.expect
index 3e9000d..ffc705f 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.modular.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  abstract set x(covariant-by-declaration core::Object* 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
+  abstract set x(covariant-by-declaration core::Object? value) → void;
 }
 class B extends core::Object implements self::A {
-  covariant-by-declaration field core::Object* x = null;
-  synthetic constructor •() → self::B*
+  covariant-by-declaration field core::Object? x = null;
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(covariant-by-declaration core::Object* x) → 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(covariant-by-declaration core::Object? x) → void {}
 }
-class C<T extends core::Object* = dynamic> extends core::Object implements self::B {
-  covariant-by-declaration covariant-by-class field self::C::T* x = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object implements self::B {
+  covariant-by-declaration covariant-by-class field self::C::T? x = null;
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f(covariant-by-declaration covariant-by-class self::C::T* x) → 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(covariant-by-declaration covariant-by-class self::C::T? x) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.outline.expect
index 50fbaa0..4cc7edb 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.outline.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
-  abstract set x(covariant-by-declaration core::Object* 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
+  abstract set x(covariant-by-declaration core::Object? value) → void;
 }
 class B extends core::Object implements self::A {
-  covariant-by-declaration field core::Object* x;
-  synthetic constructor •() → self::B*
+  covariant-by-declaration field core::Object? x;
+  synthetic constructor •() → self::B
     ;
-  method f(covariant-by-declaration core::Object* x) → void
+  method f(covariant-by-declaration core::Object? x) → 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 C<T extends core::Object* = dynamic> extends core::Object implements self::B {
-  covariant-by-declaration covariant-by-class field self::C::T* x;
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object implements self::B {
+  covariant-by-declaration covariant-by-class field self::C::T? x;
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  method f(covariant-by-declaration covariant-by-class self::C::T* x) → void
+  method f(covariant-by-declaration covariant-by-class self::C::T? x) → 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 main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.transformed.expect
index 3e9000d..ffc705f 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.weak.transformed.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  abstract set x(covariant-by-declaration core::Object* 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
+  abstract set x(covariant-by-declaration core::Object? value) → void;
 }
 class B extends core::Object implements self::A {
-  covariant-by-declaration field core::Object* x = null;
-  synthetic constructor •() → self::B*
+  covariant-by-declaration field core::Object? x = null;
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(covariant-by-declaration core::Object* x) → 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(covariant-by-declaration core::Object? x) → void {}
 }
-class C<T extends core::Object* = dynamic> extends core::Object implements self::B {
-  covariant-by-declaration covariant-by-class field self::C::T* x = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object implements self::B {
+  covariant-by-declaration covariant-by-class field self::C::T? x = null;
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f(covariant-by-declaration covariant-by-class self::C::T* x) → 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(covariant-by-declaration covariant-by-class self::C::T? x) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/implicit_downcast_assert_initializer.dart b/pkg/front_end/testcases/runtime_checks/implicit_downcast_assert_initializer.dart
index 449fbe0..b27c02f 100644
--- a/pkg/front_end/testcases/runtime_checks/implicit_downcast_assert_initializer.dart
+++ b/pkg/front_end/testcases/runtime_checks/implicit_downcast_assert_initializer.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/implicit_downcast_assert_statement.dart b/pkg/front_end/testcases/runtime_checks/implicit_downcast_assert_statement.dart
index 8940551..cd91c69f 100644
--- a/pkg/front_end/testcases/runtime_checks/implicit_downcast_assert_statement.dart
+++ b/pkg/front_end/testcases/runtime_checks/implicit_downcast_assert_statement.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/implicit_downcast_constructor_initializer.dart b/pkg/front_end/testcases/runtime_checks/implicit_downcast_constructor_initializer.dart
index c7da78b..f186aa3 100644
--- a/pkg/front_end/testcases/runtime_checks/implicit_downcast_constructor_initializer.dart
+++ b/pkg/front_end/testcases/runtime_checks/implicit_downcast_constructor_initializer.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/implicit_downcast_do.dart b/pkg/front_end/testcases/runtime_checks/implicit_downcast_do.dart
index 4ee9d69..76015e2 100644
--- a/pkg/front_end/testcases/runtime_checks/implicit_downcast_do.dart
+++ b/pkg/front_end/testcases/runtime_checks/implicit_downcast_do.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/implicit_downcast_for_condition.dart b/pkg/front_end/testcases/runtime_checks/implicit_downcast_for_condition.dart
index 617e9dd..9c92eb6 100644
--- a/pkg/front_end/testcases/runtime_checks/implicit_downcast_for_condition.dart
+++ b/pkg/front_end/testcases/runtime_checks/implicit_downcast_for_condition.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/implicit_downcast_if.dart b/pkg/front_end/testcases/runtime_checks/implicit_downcast_if.dart
index dc3b23b..84304d8 100644
--- a/pkg/front_end/testcases/runtime_checks/implicit_downcast_if.dart
+++ b/pkg/front_end/testcases/runtime_checks/implicit_downcast_if.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/implicit_downcast_not.dart b/pkg/front_end/testcases/runtime_checks/implicit_downcast_not.dart
index d1de7be..7810836 100644
--- a/pkg/front_end/testcases/runtime_checks/implicit_downcast_not.dart
+++ b/pkg/front_end/testcases/runtime_checks/implicit_downcast_not.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks/implicit_downcast_while.dart b/pkg/front_end/testcases/runtime_checks/implicit_downcast_while.dart
index db3ef60..662243e 100644
--- a/pkg/front_end/testcases/runtime_checks/implicit_downcast_while.dart
+++ b/pkg/front_end/testcases/runtime_checks/implicit_downcast_while.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart
index 427af13..47824ee 100644
--- a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.textual_outline.expect
index d51e54c..84c7157 100644
--- a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class B {
diff --git a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.textual_outline_modelled.expect
index e3df18c..168422a 100644
--- a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class I<T> {
diff --git a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.expect
index 761e51b..546063a 100644
--- a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::num* x) → 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(core::num x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
-class C extends self::B implements self::I<core::num*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::num> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub forwarding-semi-stub method f(covariant-by-class core::num* x) → void
+  forwarding-stub forwarding-semi-stub method f(covariant-by-class core::num x) → void
     return super.{self::B::f}(x);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.modular.expect
index 761e51b..546063a 100644
--- a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.modular.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::num* x) → 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(core::num x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
-class C extends self::B implements self::I<core::num*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::num> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub forwarding-semi-stub method f(covariant-by-class core::num* x) → void
+  forwarding-stub forwarding-semi-stub method f(covariant-by-class core::num x) → void
     return super.{self::B::f}(x);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.outline.expect
index 0bf24b3..2911433 100644
--- a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.outline.expect
@@ -1,42 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  method f(core::num* x) → void
+  method f(core::num x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
-class C extends self::B implements self::I<core::num*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::num> {
+  synthetic constructor •() → self::C
     ;
-  forwarding-stub forwarding-semi-stub method f(covariant-by-class core::num* x) → void
+  forwarding-stub forwarding-semi-stub method f(covariant-by-class core::num x) → void
     return super.{self::B::f}(x);
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.transformed.expect
index 761e51b..546063a 100644
--- a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.weak.transformed.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::num* x) → 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(core::num x) → 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(covariant-by-class self::I::T* x) → 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::I::T% x) → void;
 }
-class C extends self::B implements self::I<core::num*> {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::num> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub forwarding-semi-stub method f(covariant-by-class core::num* x) → void
+  forwarding-stub forwarding-semi-stub method f(covariant-by-class core::num x) → void
     return super.{self::B::f}(x);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart
index 208e734..fa5945b 100644
--- a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/call_through_this.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
+
 /*@testedFeatures=checks*/
 library test;
 
@@ -31,7 +31,7 @@
 }
 
 test() {
-  var x = new D().g4 /*@ checkReturn=(int*) ->* dynamic */ () as F<Object>;
+  var x = new D().g4 /*@checkReturn=(int) -> dynamic*/ () as F<Object>;
   x('hi');
   new E().g1(1.5);
 }
diff --git a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.textual_outline.expect
index 21fa569..6c7fe09 100644
--- a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 typedef F<T>(T x);
diff --git a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.textual_outline_modelled.expect
index ce16639..a210365 100644
--- a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C<T> {
diff --git a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.expect
index 1efedac..5a2aec7 100644
--- a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.expect
@@ -1,49 +1,39 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f(covariant-by-class self::C::T* x) → void {}
-  method g1(covariant-by-class self::C::T* x) → void {
-    this.{self::C::f}(x){(self::C::T*) →* void};
+  method f(covariant-by-class self::C::T% x) → void {}
+  method g1(covariant-by-class self::C::T% x) → void {
+    this.{self::C::f}(x){(self::C::T%) → void};
   }
-  method g2(covariant-by-class self::C::T* x) → void {
-    this.{self::C::f}(x){(self::C::T*) →* void};
+  method g2(covariant-by-class self::C::T% x) → void {
+    this.{self::C::f}(x){(self::C::T%) → void};
   }
-  method g3(covariant-by-class self::C<self::C::T*>* c, covariant-by-class self::C::T* x) → void {
-    c.{self::C::f}(x){(self::C::T*) →* void};
+  method g3(covariant-by-class self::C<self::C::T%> c, covariant-by-class self::C::T% x) → void {
+    c.{self::C::f}(x){(self::C::T%) → void};
   }
-  method g4() → (self::C::T*) →* dynamic
-    return this.{self::C::f}{(self::C::T*) →* 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 g4() → (self::C::T%) → dynamic
+    return this.{self::C::f}{(self::C::T%) → void};
 }
-class D extends self::C<core::int*> {
-  synthetic constructor •() → self::D*
+class D extends self::C<core::int> {
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
 }
-class E extends self::C<core::num*> {
-  synthetic constructor •() → self::E*
+class E extends self::C<core::num> {
+  synthetic constructor •() → self::E
     : super self::C::•()
     ;
-  method f(covariant-by-declaration covariant-by-class core::int* x) → void {}
+  method f(covariant-by-declaration covariant-by-class core::int x) → void {}
 }
 static method test() → dynamic {
-  (core::Object*) →* dynamic x = (new self::D::•().{self::C::g4}(){() →* (core::int*) →* dynamic} as{TypeError,CovarianceCheck} (core::int*) →* dynamic) as (core::Object*) →* dynamic;
-  x("hi"){(core::Object*) →* dynamic};
-  new self::E::•().{self::C::g1}(1.5){(core::num*) →* void};
+  (core::Object) → dynamic x = (new self::D::•().{self::C::g4}(){() → (core::int) → dynamic} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::int) → dynamic) as{ForNonNullableByDefault} (core::Object) → dynamic;
+  x("hi"){(core::Object) → dynamic};
+  new self::E::•().{self::C::g1}(1.5){(core::num) → void};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.modular.expect
index 1efedac..5a2aec7 100644
--- a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.modular.expect
@@ -1,49 +1,39 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f(covariant-by-class self::C::T* x) → void {}
-  method g1(covariant-by-class self::C::T* x) → void {
-    this.{self::C::f}(x){(self::C::T*) →* void};
+  method f(covariant-by-class self::C::T% x) → void {}
+  method g1(covariant-by-class self::C::T% x) → void {
+    this.{self::C::f}(x){(self::C::T%) → void};
   }
-  method g2(covariant-by-class self::C::T* x) → void {
-    this.{self::C::f}(x){(self::C::T*) →* void};
+  method g2(covariant-by-class self::C::T% x) → void {
+    this.{self::C::f}(x){(self::C::T%) → void};
   }
-  method g3(covariant-by-class self::C<self::C::T*>* c, covariant-by-class self::C::T* x) → void {
-    c.{self::C::f}(x){(self::C::T*) →* void};
+  method g3(covariant-by-class self::C<self::C::T%> c, covariant-by-class self::C::T% x) → void {
+    c.{self::C::f}(x){(self::C::T%) → void};
   }
-  method g4() → (self::C::T*) →* dynamic
-    return this.{self::C::f}{(self::C::T*) →* 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 g4() → (self::C::T%) → dynamic
+    return this.{self::C::f}{(self::C::T%) → void};
 }
-class D extends self::C<core::int*> {
-  synthetic constructor •() → self::D*
+class D extends self::C<core::int> {
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
 }
-class E extends self::C<core::num*> {
-  synthetic constructor •() → self::E*
+class E extends self::C<core::num> {
+  synthetic constructor •() → self::E
     : super self::C::•()
     ;
-  method f(covariant-by-declaration covariant-by-class core::int* x) → void {}
+  method f(covariant-by-declaration covariant-by-class core::int x) → void {}
 }
 static method test() → dynamic {
-  (core::Object*) →* dynamic x = (new self::D::•().{self::C::g4}(){() →* (core::int*) →* dynamic} as{TypeError,CovarianceCheck} (core::int*) →* dynamic) as (core::Object*) →* dynamic;
-  x("hi"){(core::Object*) →* dynamic};
-  new self::E::•().{self::C::g1}(1.5){(core::num*) →* void};
+  (core::Object) → dynamic x = (new self::D::•().{self::C::g4}(){() → (core::int) → dynamic} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::int) → dynamic) as{ForNonNullableByDefault} (core::Object) → dynamic;
+  x("hi"){(core::Object) → dynamic};
+  new self::E::•().{self::C::g1}(1.5){(core::num) → void};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.outline.expect
index 92a85fa..fdf2295 100644
--- a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.outline.expect
@@ -1,40 +1,30 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  method f(covariant-by-class self::C::T* x) → void
+  method f(covariant-by-class self::C::T% x) → void
     ;
-  method g1(covariant-by-class self::C::T* x) → void
+  method g1(covariant-by-class self::C::T% x) → void
     ;
-  method g2(covariant-by-class self::C::T* x) → void
+  method g2(covariant-by-class self::C::T% x) → void
     ;
-  method g3(covariant-by-class self::C<self::C::T*>* c, covariant-by-class self::C::T* x) → void
+  method g3(covariant-by-class self::C<self::C::T%> c, covariant-by-class self::C::T% x) → void
     ;
-  method g4() → (self::C::T*) →* 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<core::int*> {
-  synthetic constructor •() → self::D*
+  method g4() → (self::C::T%) → dynamic
     ;
 }
-class E extends self::C<core::num*> {
-  synthetic constructor •() → self::E*
+class D extends self::C<core::int> {
+  synthetic constructor •() → self::D
     ;
-  method f(covariant-by-declaration covariant-by-class core::int* x) → void
+}
+class E extends self::C<core::num> {
+  synthetic constructor •() → self::E
+    ;
+  method f(covariant-by-declaration covariant-by-class core::int x) → void
     ;
 }
 static method test() → dynamic
diff --git a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.transformed.expect
index 1efedac..5a2aec7 100644
--- a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.weak.transformed.expect
@@ -1,49 +1,39 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  method f(covariant-by-class self::C::T* x) → void {}
-  method g1(covariant-by-class self::C::T* x) → void {
-    this.{self::C::f}(x){(self::C::T*) →* void};
+  method f(covariant-by-class self::C::T% x) → void {}
+  method g1(covariant-by-class self::C::T% x) → void {
+    this.{self::C::f}(x){(self::C::T%) → void};
   }
-  method g2(covariant-by-class self::C::T* x) → void {
-    this.{self::C::f}(x){(self::C::T*) →* void};
+  method g2(covariant-by-class self::C::T% x) → void {
+    this.{self::C::f}(x){(self::C::T%) → void};
   }
-  method g3(covariant-by-class self::C<self::C::T*>* c, covariant-by-class self::C::T* x) → void {
-    c.{self::C::f}(x){(self::C::T*) →* void};
+  method g3(covariant-by-class self::C<self::C::T%> c, covariant-by-class self::C::T% x) → void {
+    c.{self::C::f}(x){(self::C::T%) → void};
   }
-  method g4() → (self::C::T*) →* dynamic
-    return this.{self::C::f}{(self::C::T*) →* 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 g4() → (self::C::T%) → dynamic
+    return this.{self::C::f}{(self::C::T%) → void};
 }
-class D extends self::C<core::int*> {
-  synthetic constructor •() → self::D*
+class D extends self::C<core::int> {
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
 }
-class E extends self::C<core::num*> {
-  synthetic constructor •() → self::E*
+class E extends self::C<core::num> {
+  synthetic constructor •() → self::E
     : super self::C::•()
     ;
-  method f(covariant-by-declaration covariant-by-class core::int* x) → void {}
+  method f(covariant-by-declaration covariant-by-class core::int x) → void {}
 }
 static method test() → dynamic {
-  (core::Object*) →* dynamic x = (new self::D::•().{self::C::g4}(){() →* (core::int*) →* dynamic} as{TypeError,CovarianceCheck} (core::int*) →* dynamic) as (core::Object*) →* dynamic;
-  x("hi"){(core::Object*) →* dynamic};
-  new self::E::•().{self::C::g1}(1.5){(core::num*) →* void};
+  (core::Object) → dynamic x = (new self::D::•().{self::C::g4}(){() → (core::int) → dynamic} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::int) → dynamic) as{ForNonNullableByDefault} (core::Object) → dynamic;
+  x("hi"){(core::Object) → dynamic};
+  new self::E::•().{self::C::g1}(1.5){(core::num) → void};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart
index 282d831..1d1da45 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart
@@ -1,41 +1,41 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 typedef void F<T>(T x);
 
 class B<T, U extends F<T>> {
-  B<T, F<T>> operator +(other) => null;
+  B<T, F<T>> operator +(other) => throw '';
 }
 
 class C {
-  B<num, F<num>> x;
-  static B<num, F<num>> y;
-  B<num, F<num>> operator [](int i) => null;
+  B<num, F<num>> x = throw '';
+  static B<num, F<num>> y = throw '';
+  B<num, F<num>> operator [](int i) => throw '';
   void operator []=(int i, B<num, F<num>> v) {}
 }
 
 void test1(B<num, F<num>> b) {
-  b /*@ checkReturn=B<num*, (num*) ->* void>* */ += 1;
-  var x = b /*@ checkReturn=B<num*, (num*) ->* void>* */ += 2;
+  b /*@checkReturn=B<num, (num) -> void>*/ += 1;
+  var x = b /*@checkReturn=B<num, (num) -> void>*/ += 2;
 }
 
 void test2(C c) {
-  c[0] /*@ checkReturn=B<num*, (num*) ->* void>* */ += 1;
-  var x = c[0] /*@ checkReturn=B<num*, (num*) ->* void>* */ += 2;
+  c[0] /*@checkReturn=B<num, (num) -> void>*/ += 1;
+  var x = c[0] /*@checkReturn=B<num, (num) -> void>*/ += 2;
 }
 
 void test3(C c) {
-  c.x /*@ checkReturn=B<num*, (num*) ->* void>* */ += 1;
-  var x = c.x /*@ checkReturn=B<num*, (num*) ->* void>* */ += 2;
+  c.x /*@checkReturn=B<num, (num) -> void>*/ += 1;
+  var x = c.x /*@checkReturn=B<num, (num) -> void>*/ += 2;
 }
 
 void test4(C c) {
-  C.y /*@ checkReturn=B<num*, (num*) ->* void>* */ += 1;
-  var x = C.y /*@ checkReturn=B<num*, (num*) ->* void>* */ += 2;
+  C.y /*@checkReturn=B<num, (num) -> void>*/ += 1;
+  var x = C.y /*@checkReturn=B<num, (num) -> void>*/ += 2;
 }
 
 void main() {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.textual_outline.expect
index e5e025e..fcbbcb9 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.textual_outline.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
 library test;
 
 typedef void F<T>(T x);
 
 class B<T, U extends F<T>> {
-  B<T, F<T>> operator +(other) => null;
+  B<T, F<T>> operator +(other) => throw '';
 }
 
 class C {
-  B<num, F<num>> x;
-  static B<num, F<num>> y;
-  B<num, F<num>> operator [](int i) => null;
+  B<num, F<num>> x = throw '';
+  static B<num, F<num>> y = throw '';
+  B<num, F<num>> operator [](int i) => throw '';
   void operator []=(int i, B<num, F<num>> v) {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.textual_outline_modelled.expect
index 68b1d9d..4a280b3 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.textual_outline_modelled.expect
@@ -1,14 +1,13 @@
-// @dart = 2.9
 library test;
 
 class B<T, U extends F<T>> {
-  B<T, F<T>> operator +(other) => null;
+  B<T, F<T>> operator +(other) => throw '';
 }
 
 class C {
-  B<num, F<num>> operator [](int i) => null;
-  B<num, F<num>> x;
-  static B<num, F<num>> y;
+  B<num, F<num>> operator [](int i) => throw '';
+  B<num, F<num>> x = throw '';
+  static B<num, F<num>> y = throw '';
   void operator []=(int i, B<num, F<num>> v) {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.expect
index d266b53..124f096 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.expect
@@ -1,59 +1,39 @@
-library test;
+library test /*isNonNullableByDefault*/;
 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, U extends (self::B::T*) →* void = (Null) →* void> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*, self::B::U*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class B<T extends core::Object? = dynamic, U extends (self::B::T%) → void = (Never) → void> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%, self::B::U>
     : super core::Object::•()
     ;
-  operator +(dynamic other) → self::B<self::B::T*, (self::B::T*) →* void>*
-    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
+  operator +(dynamic other) → self::B<self::B::T%, (self::B::T%) → void>
+    return throw "";
 }
 class C extends core::Object {
-  field self::B<core::num*, (core::num*) →* void>* x = null;
-  static field self::B<core::num*, (core::num*) →* void>* y = null;
-  synthetic constructor •() → self::C*
+  field self::B<core::num, (core::num) → void> x = throw "";
+  static field self::B<core::num, (core::num) → void> y = throw "";
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  operator [](core::int* i) → self::B<core::num*, (core::num*) →* void>*
-    return null;
-  operator []=(core::int* i, self::B<core::num*, (core::num*) →* void>* v) → 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 [](core::int i) → self::B<core::num, (core::num) → void>
+    return throw "";
+  operator []=(core::int i, self::B<core::num, (core::num) → void> v) → void {}
 }
-static method test1(self::B<core::num*, (core::num*) →* void>* b) → void {
-  b = b.{self::B::+}(1){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
-  self::B<core::num*, (core::num*) →* void>* x = b = b.{self::B::+}(2){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
+static method test1(self::B<core::num, (core::num) → void> b) → void {
+  b = b.{self::B::+}(1){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
+  self::B<core::num, (core::num) → void> x = b = b.{self::B::+}(2){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
 }
-static method test2(self::C* c) → void {
-  let final self::C* #t1 = c in let final core::int* #t2 = 0 in #t1.{self::C::[]=}(#t2, #t1.{self::C::[]}(#t2){(core::int*) →* self::B<core::num*, (core::num*) →* void>*}.{self::B::+}(1){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*){(core::int*, self::B<core::num*, (core::num*) →* void>*) →* void};
-  self::B<core::num*, (core::num*) →* void>* x = let final self::C* #t3 = c in let final core::int* #t4 = 0 in let final self::B<core::num*, (core::num*) →* void>* #t5 = #t3.{self::C::[]}(#t4){(core::int*) →* self::B<core::num*, (core::num*) →* void>*}.{self::B::+}(2){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>* in let final void #t6 = #t3.{self::C::[]=}(#t4, #t5){(core::int*, self::B<core::num*, (core::num*) →* void>*) →* void} in #t5;
+static method test2(self::C c) → void {
+  let final self::C #t1 = c in let final core::int #t2 = 0 in #t1.{self::C::[]=}(#t2, #t1.{self::C::[]}(#t2){(core::int) → self::B<core::num, (core::num) → void>}.{self::B::+}(1){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>){(core::int, self::B<core::num, (core::num) → void>) → void};
+  self::B<core::num, (core::num) → void> x = let final self::C #t3 = c in let final core::int #t4 = 0 in let final self::B<core::num, (core::num) → void> #t5 = #t3.{self::C::[]}(#t4){(core::int) → self::B<core::num, (core::num) → void>}.{self::B::+}(2){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void> in let final void #t6 = #t3.{self::C::[]=}(#t4, #t5){(core::int, self::B<core::num, (core::num) → void>) → void} in #t5;
 }
-static method test3(self::C* c) → void {
-  let final self::C* #t7 = c in #t7.{self::C::x} = #t7.{self::C::x}{self::B<core::num*, (core::num*) →* void>*}.{self::B::+}(1){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
-  self::B<core::num*, (core::num*) →* void>* x = let final self::C* #t8 = c in #t8.{self::C::x} = #t8.{self::C::x}{self::B<core::num*, (core::num*) →* void>*}.{self::B::+}(2){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
+static method test3(self::C c) → void {
+  let final self::C #t7 = c in #t7.{self::C::x} = #t7.{self::C::x}{self::B<core::num, (core::num) → void>}.{self::B::+}(1){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
+  self::B<core::num, (core::num) → void> x = let final self::C #t8 = c in #t8.{self::C::x} = #t8.{self::C::x}{self::B<core::num, (core::num) → void>}.{self::B::+}(2){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
 }
-static method test4(self::C* c) → void {
-  self::C::y = self::C::y.{self::B::+}(1){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
-  self::B<core::num*, (core::num*) →* void>* x = self::C::y = self::C::y.{self::B::+}(2){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
+static method test4(self::C c) → void {
+  self::C::y = self::C::y.{self::B::+}(1){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
+  self::B<core::num, (core::num) → void> x = self::C::y = self::C::y.{self::B::+}(2){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.modular.expect
index d266b53..124f096 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.modular.expect
@@ -1,59 +1,39 @@
-library test;
+library test /*isNonNullableByDefault*/;
 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, U extends (self::B::T*) →* void = (Null) →* void> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*, self::B::U*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class B<T extends core::Object? = dynamic, U extends (self::B::T%) → void = (Never) → void> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%, self::B::U>
     : super core::Object::•()
     ;
-  operator +(dynamic other) → self::B<self::B::T*, (self::B::T*) →* void>*
-    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
+  operator +(dynamic other) → self::B<self::B::T%, (self::B::T%) → void>
+    return throw "";
 }
 class C extends core::Object {
-  field self::B<core::num*, (core::num*) →* void>* x = null;
-  static field self::B<core::num*, (core::num*) →* void>* y = null;
-  synthetic constructor •() → self::C*
+  field self::B<core::num, (core::num) → void> x = throw "";
+  static field self::B<core::num, (core::num) → void> y = throw "";
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  operator [](core::int* i) → self::B<core::num*, (core::num*) →* void>*
-    return null;
-  operator []=(core::int* i, self::B<core::num*, (core::num*) →* void>* v) → 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 [](core::int i) → self::B<core::num, (core::num) → void>
+    return throw "";
+  operator []=(core::int i, self::B<core::num, (core::num) → void> v) → void {}
 }
-static method test1(self::B<core::num*, (core::num*) →* void>* b) → void {
-  b = b.{self::B::+}(1){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
-  self::B<core::num*, (core::num*) →* void>* x = b = b.{self::B::+}(2){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
+static method test1(self::B<core::num, (core::num) → void> b) → void {
+  b = b.{self::B::+}(1){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
+  self::B<core::num, (core::num) → void> x = b = b.{self::B::+}(2){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
 }
-static method test2(self::C* c) → void {
-  let final self::C* #t1 = c in let final core::int* #t2 = 0 in #t1.{self::C::[]=}(#t2, #t1.{self::C::[]}(#t2){(core::int*) →* self::B<core::num*, (core::num*) →* void>*}.{self::B::+}(1){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*){(core::int*, self::B<core::num*, (core::num*) →* void>*) →* void};
-  self::B<core::num*, (core::num*) →* void>* x = let final self::C* #t3 = c in let final core::int* #t4 = 0 in let final self::B<core::num*, (core::num*) →* void>* #t5 = #t3.{self::C::[]}(#t4){(core::int*) →* self::B<core::num*, (core::num*) →* void>*}.{self::B::+}(2){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>* in let final void #t6 = #t3.{self::C::[]=}(#t4, #t5){(core::int*, self::B<core::num*, (core::num*) →* void>*) →* void} in #t5;
+static method test2(self::C c) → void {
+  let final self::C #t1 = c in let final core::int #t2 = 0 in #t1.{self::C::[]=}(#t2, #t1.{self::C::[]}(#t2){(core::int) → self::B<core::num, (core::num) → void>}.{self::B::+}(1){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>){(core::int, self::B<core::num, (core::num) → void>) → void};
+  self::B<core::num, (core::num) → void> x = let final self::C #t3 = c in let final core::int #t4 = 0 in let final self::B<core::num, (core::num) → void> #t5 = #t3.{self::C::[]}(#t4){(core::int) → self::B<core::num, (core::num) → void>}.{self::B::+}(2){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void> in let final void #t6 = #t3.{self::C::[]=}(#t4, #t5){(core::int, self::B<core::num, (core::num) → void>) → void} in #t5;
 }
-static method test3(self::C* c) → void {
-  let final self::C* #t7 = c in #t7.{self::C::x} = #t7.{self::C::x}{self::B<core::num*, (core::num*) →* void>*}.{self::B::+}(1){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
-  self::B<core::num*, (core::num*) →* void>* x = let final self::C* #t8 = c in #t8.{self::C::x} = #t8.{self::C::x}{self::B<core::num*, (core::num*) →* void>*}.{self::B::+}(2){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
+static method test3(self::C c) → void {
+  let final self::C #t7 = c in #t7.{self::C::x} = #t7.{self::C::x}{self::B<core::num, (core::num) → void>}.{self::B::+}(1){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
+  self::B<core::num, (core::num) → void> x = let final self::C #t8 = c in #t8.{self::C::x} = #t8.{self::C::x}{self::B<core::num, (core::num) → void>}.{self::B::+}(2){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
 }
-static method test4(self::C* c) → void {
-  self::C::y = self::C::y.{self::B::+}(1){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
-  self::B<core::num*, (core::num*) →* void>* x = self::C::y = self::C::y.{self::B::+}(2){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
+static method test4(self::C c) → void {
+  self::C::y = self::C::y.{self::B::+}(1){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
+  self::B<core::num, (core::num) → void> x = self::C::y = self::C::y.{self::B::+}(2){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.outline.expect
index fcd72a0..6c23f8d 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.outline.expect
@@ -1,51 +1,31 @@
-library test;
+library test /*isNonNullableByDefault*/;
 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, U extends (self::B::T*) →* void = (Null) →* void> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*, self::B::U*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class B<T extends core::Object? = dynamic, U extends (self::B::T%) → void = (Never) → void> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%, self::B::U>
     ;
-  operator +(dynamic other) → self::B<self::B::T*, (self::B::T*) →* void>*
+  operator +(dynamic other) → self::B<self::B::T%, (self::B::T%) → 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 C extends core::Object {
-  field self::B<core::num*, (core::num*) →* void>* x;
-  static field self::B<core::num*, (core::num*) →* void>* y;
-  synthetic constructor •() → self::C*
+  field self::B<core::num, (core::num) → void> x;
+  static field self::B<core::num, (core::num) → void> y;
+  synthetic constructor •() → self::C
     ;
-  operator [](core::int* i) → self::B<core::num*, (core::num*) →* void>*
+  operator [](core::int i) → self::B<core::num, (core::num) → void>
     ;
-  operator []=(core::int* i, self::B<core::num*, (core::num*) →* void>* v) → void
+  operator []=(core::int i, self::B<core::num, (core::num) → void> v) → 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 test1(self::B<core::num*, (core::num*) →* void>* b) → void
+static method test1(self::B<core::num, (core::num) → void> b) → void
   ;
-static method test2(self::C* c) → void
+static method test2(self::C c) → void
   ;
-static method test3(self::C* c) → void
+static method test3(self::C c) → void
   ;
-static method test4(self::C* c) → void
+static method test4(self::C c) → void
   ;
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.transformed.expect
index 28b2e93..46d6732 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.weak.transformed.expect
@@ -1,60 +1,40 @@
-library test;
+library test /*isNonNullableByDefault*/;
 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, U extends (self::B::T*) →* void = (Null) →* void> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*, self::B::U*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class B<T extends core::Object? = dynamic, U extends (self::B::T%) → void = (Never) → void> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T%, self::B::U>
     : super core::Object::•()
     ;
-  operator +(dynamic other) → self::B<self::B::T*, (self::B::T*) →* void>*
-    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
+  operator +(dynamic other) → self::B<self::B::T%, (self::B::T%) → void>
+    return throw "";
 }
 class C extends core::Object {
-  field self::B<core::num*, (core::num*) →* void>* x = null;
-  static field self::B<core::num*, (core::num*) →* void>* y = null;
-  synthetic constructor •() → self::C*
+  field self::B<core::num, (core::num) → void> x = throw "";
+  static field self::B<core::num, (core::num) → void> y = throw "";
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  operator [](core::int* i) → self::B<core::num*, (core::num*) →* void>*
-    return null;
-  operator []=(core::int* i, self::B<core::num*, (core::num*) →* void>* v) → 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 [](core::int i) → self::B<core::num, (core::num) → void>
+    return throw "";
+  operator []=(core::int i, self::B<core::num, (core::num) → void> v) → void {}
 }
-static method test1(self::B<core::num*, (core::num*) →* void>* b) → void {
-  b = b.{self::B::+}(1){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
-  self::B<core::num*, (core::num*) →* void>* x = b = b.{self::B::+}(2){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
+static method test1(self::B<core::num, (core::num) → void> b) → void {
+  b = b.{self::B::+}(1){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
+  self::B<core::num, (core::num) → void> x = b = b.{self::B::+}(2){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
 }
-static method test2(self::C* c) → void {
-  let final self::C* #t1 = c in let final core::int* #t2 = 0 in #t1.{self::C::[]=}(#t2, #t1.{self::C::[]}(#t2){(core::int*) →* self::B<core::num*, (core::num*) →* void>*}.{self::B::+}(1){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*){(core::int*, self::B<core::num*, (core::num*) →* void>*) →* void};
-  self::B<core::num*, (core::num*) →* void>* x = let final self::C* #t3 = c in let final core::int* #t4 = 0 in let final self::B<core::num*, (core::num*) →* void>* #t5 = #t3.{self::C::[]}(#t4){(core::int*) →* self::B<core::num*, (core::num*) →* void>*}.{self::B::+}(2){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>* in let final void #t6 = #t3.{self::C::[]=}(#t4, #t5){(core::int*, self::B<core::num*, (core::num*) →* void>*) →* void} in #t5;
+static method test2(self::C c) → void {
+  let final self::C #t1 = c in let final core::int #t2 = 0 in #t1.{self::C::[]=}(#t2, #t1.{self::C::[]}(#t2){(core::int) → self::B<core::num, (core::num) → void>}.{self::B::+}(1){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>){(core::int, self::B<core::num, (core::num) → void>) → void};
+  self::B<core::num, (core::num) → void> x = let final self::C #t3 = c in let final core::int #t4 = 0 in let final self::B<core::num, (core::num) → void> #t5 = #t3.{self::C::[]}(#t4){(core::int) → self::B<core::num, (core::num) → void>}.{self::B::+}(2){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void> in let final void #t6 = #t3.{self::C::[]=}(#t4, #t5){(core::int, self::B<core::num, (core::num) → void>) → void} in #t5;
 }
-static method test3(self::C* c) → void {
-  let final self::C* #t7 = c in #t7.{self::C::x} = #t7.{self::C::x}{self::B<core::num*, (core::num*) →* void>*}.{self::B::+}(1){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
-  self::B<core::num*, (core::num*) →* void>* x = let final self::C* #t8 = c in #t8.{self::C::x} = #t8.{self::C::x}{self::B<core::num*, (core::num*) →* void>*}.{self::B::+}(2){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
+static method test3(self::C c) → void {
+  let final self::C #t7 = c in #t7.{self::C::x} = #t7.{self::C::x}{self::B<core::num, (core::num) → void>}.{self::B::+}(1){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
+  self::B<core::num, (core::num) → void> x = let final self::C #t8 = c in #t8.{self::C::x} = #t8.{self::C::x}{self::B<core::num, (core::num) → void>}.{self::B::+}(2){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
 }
-static method test4(self::C* c) → void {
-  self::C::y = self::C::y.{self::B::+}(1){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
-  self::B<core::num*, (core::num*) →* void>* x = self::C::y = self::C::y.{self::B::+}(2){(dynamic) →* self::B<core::num*, (core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<core::num*, (core::num*) →* void>*;
+static method test4(self::C c) → void {
+  self::C::y = self::C::y.{self::B::+}(1){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
+  self::B<core::num, (core::num) → void> x = self::C::y = self::C::y.{self::B::+}(2){(dynamic) → self::B<core::num, (core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<core::num, (core::num) → void>;
 }
 static method main() → void {}
 
@@ -64,4 +44,4 @@
 Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_combiner.dart:27:5 -> IntConstant(0)
 Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_combiner.dart:28:13 -> IntConstant(0)
 Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_combiner.dart:28:13 -> IntConstant(0)
-Extra constant evaluation: evaluated: 58, effectively constant: 4
+Extra constant evaluation: evaluated: 62, effectively constant: 4
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart
index 6efbcbc..1e248ad 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.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
+
 /*@testedFeatures=checks*/
 library test;
 
@@ -46,11 +48,11 @@
   // But not this one:
   //   (num)->num
   D d = new D(new C(numToInt));
-  d.value /*@ checkReturn=(num*) ->* num* */ += 1;
+  d.value /*@checkReturn=(num*) ->* num**/ += 1;
   expect(d.setValue(0), 1);
   d = new D(new C(numToNum));
   expectTypeError(() {
-    d.value /*@ checkReturn=(num*) ->* num* */ += 1;
+    d.value /*@checkReturn=(num*) ->* num**/ += 1;
   });
   expect(d.setValue, null);
 }
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.expect
index edcb17e..e4fa7a2 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.expect
@@ -2,21 +2,21 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:30:14: Error: The type 'C<num>' of the getter 'D.value' is not assignable to the type 'int Function(int)' of the setter 'D.value'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:32:14: Error: The type 'C<num>' of the getter 'D.value' is not assignable to the type 'int Function(int)' of the setter 'D.value'.
 //  - 'C' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart'.
 //   C<num> get value => getValue;
 //              ^^^^^
-// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:32:12: Context: This is the declaration of the setter 'D.value'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:34:12: Context: This is the declaration of the setter 'D.value'.
 //   void set value(int Function(int) value) {
 //            ^^^^^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:49:46: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
-//   d.value /*@ checkReturn=(num*) ->* num* */ += 1;
-//                                              ^
+// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:51:44: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
+//   d.value /*@checkReturn=(num*) ->* num**/ += 1;
+//                                            ^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:53:48: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
-//     d.value /*@ checkReturn=(num*) ->* num* */ += 1;
-//                                                ^
+// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:55:46: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
+//     d.value /*@checkReturn=(num*) ->* num**/ += 1;
+//                                              ^
 //
 import self as self;
 import "dart:core" as core;
@@ -80,15 +80,15 @@
   return 2;
 static method main() → void {
   self::D* d = new self::D::•(new self::C::•<core::num*>(#C1));
-  let final self::D* #t1 = d in #t1.{self::D::value} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:49:46: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
-  d.value /*@ checkReturn=(num*) ->* num* */ += 1;
-                                             ^" in (#t1.{self::D::value}{self::C<core::num*>*}.{self::C::+}(1){(core::int*) →* (core::num*) →* core::num*} as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
+  let final self::D* #t1 = d in #t1.{self::D::value} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:51:44: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
+  d.value /*@checkReturn=(num*) ->* num**/ += 1;
+                                           ^" in (#t1.{self::D::value}{self::C<core::num*>*}.{self::C::+}(1){(core::int*) →* (core::num*) →* core::num*} as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
   self::expect(let final self::D* #t2 = d in let final core::int* #t3 = 0 in #t2.{self::D::setValue}{(core::int*) →* core::int*}(#t3){(core::int*) →* core::int*}, 1);
   d = new self::D::•(new self::C::•<core::num*>(#C2));
   self::expectTypeError(() → Null {
-    let final self::D* #t4 = d in #t4.{self::D::value} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:53:48: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
-    d.value /*@ checkReturn=(num*) ->* num* */ += 1;
-                                               ^" in (#t4.{self::D::value}{self::C<core::num*>*}.{self::C::+}(1){(core::int*) →* (core::num*) →* core::num*} as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
+    let final self::D* #t4 = d in #t4.{self::D::value} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:55:46: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
+    d.value /*@checkReturn=(num*) ->* num**/ += 1;
+                                             ^" in (#t4.{self::D::value}{self::C<core::num*>*}.{self::C::+}(1){(core::int*) →* (core::num*) →* core::num*} as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
   });
   self::expect(d.{self::D::setValue}{(core::int*) →* core::int*}, null);
 }
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.modular.expect
index edcb17e..e4fa7a2 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.modular.expect
@@ -2,21 +2,21 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:30:14: Error: The type 'C<num>' of the getter 'D.value' is not assignable to the type 'int Function(int)' of the setter 'D.value'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:32:14: Error: The type 'C<num>' of the getter 'D.value' is not assignable to the type 'int Function(int)' of the setter 'D.value'.
 //  - 'C' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart'.
 //   C<num> get value => getValue;
 //              ^^^^^
-// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:32:12: Context: This is the declaration of the setter 'D.value'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:34:12: Context: This is the declaration of the setter 'D.value'.
 //   void set value(int Function(int) value) {
 //            ^^^^^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:49:46: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
-//   d.value /*@ checkReturn=(num*) ->* num* */ += 1;
-//                                              ^
+// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:51:44: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
+//   d.value /*@checkReturn=(num*) ->* num**/ += 1;
+//                                            ^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:53:48: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
-//     d.value /*@ checkReturn=(num*) ->* num* */ += 1;
-//                                                ^
+// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:55:46: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
+//     d.value /*@checkReturn=(num*) ->* num**/ += 1;
+//                                              ^
 //
 import self as self;
 import "dart:core" as core;
@@ -80,15 +80,15 @@
   return 2;
 static method main() → void {
   self::D* d = new self::D::•(new self::C::•<core::num*>(#C1));
-  let final self::D* #t1 = d in #t1.{self::D::value} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:49:46: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
-  d.value /*@ checkReturn=(num*) ->* num* */ += 1;
-                                             ^" in (#t1.{self::D::value}{self::C<core::num*>*}.{self::C::+}(1){(core::int*) →* (core::num*) →* core::num*} as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
+  let final self::D* #t1 = d in #t1.{self::D::value} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:51:44: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
+  d.value /*@checkReturn=(num*) ->* num**/ += 1;
+                                           ^" in (#t1.{self::D::value}{self::C<core::num*>*}.{self::C::+}(1){(core::int*) →* (core::num*) →* core::num*} as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
   self::expect(let final self::D* #t2 = d in let final core::int* #t3 = 0 in #t2.{self::D::setValue}{(core::int*) →* core::int*}(#t3){(core::int*) →* core::int*}, 1);
   d = new self::D::•(new self::C::•<core::num*>(#C2));
   self::expectTypeError(() → Null {
-    let final self::D* #t4 = d in #t4.{self::D::value} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:53:48: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
-    d.value /*@ checkReturn=(num*) ->* num* */ += 1;
-                                               ^" in (#t4.{self::D::value}{self::C<core::num*>*}.{self::C::+}(1){(core::int*) →* (core::num*) →* core::num*} as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
+    let final self::D* #t4 = d in #t4.{self::D::value} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:55:46: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
+    d.value /*@checkReturn=(num*) ->* num**/ += 1;
+                                             ^" in (#t4.{self::D::value}{self::C<core::num*>*}.{self::C::+}(1){(core::int*) →* (core::num*) →* core::num*} as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
   });
   self::expect(d.{self::D::setValue}{(core::int*) →* core::int*}, null);
 }
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.outline.expect
index fa1259d..c3f93cc 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.outline.expect
@@ -2,11 +2,11 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:30:14: Error: The type 'C<num>' of the getter 'D.value' is not assignable to the type 'int Function(int)' of the setter 'D.value'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:32:14: Error: The type 'C<num>' of the getter 'D.value' is not assignable to the type 'int Function(int)' of the setter 'D.value'.
 //  - 'C' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart'.
 //   C<num> get value => getValue;
 //              ^^^^^
-// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:32:12: Context: This is the declaration of the setter 'D.value'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:34:12: Context: This is the declaration of the setter 'D.value'.
 //   void set value(int Function(int) value) {
 //            ^^^^^
 //
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.transformed.expect
index bafb1cc..d14fa8c 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart.weak.transformed.expect
@@ -2,21 +2,21 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:30:14: Error: The type 'C<num>' of the getter 'D.value' is not assignable to the type 'int Function(int)' of the setter 'D.value'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:32:14: Error: The type 'C<num>' of the getter 'D.value' is not assignable to the type 'int Function(int)' of the setter 'D.value'.
 //  - 'C' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart'.
 //   C<num> get value => getValue;
 //              ^^^^^
-// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:32:12: Context: This is the declaration of the setter 'D.value'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:34:12: Context: This is the declaration of the setter 'D.value'.
 //   void set value(int Function(int) value) {
 //            ^^^^^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:49:46: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
-//   d.value /*@ checkReturn=(num*) ->* num* */ += 1;
-//                                              ^
+// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:51:44: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
+//   d.value /*@checkReturn=(num*) ->* num**/ += 1;
+//                                            ^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:53:48: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
-//     d.value /*@ checkReturn=(num*) ->* num* */ += 1;
-//                                                ^
+// pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:55:46: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
+//     d.value /*@checkReturn=(num*) ->* num**/ += 1;
+//                                              ^
 //
 import self as self;
 import "dart:core" as core;
@@ -80,15 +80,15 @@
   return 2;
 static method main() → void {
   self::D* d = new self::D::•(new self::C::•<core::num*>(#C1));
-  let final self::D* #t1 = d in #t1.{self::D::value} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:49:46: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
-  d.value /*@ checkReturn=(num*) ->* num* */ += 1;
-                                             ^" in (#t1.{self::D::value}{self::C<core::num*>*}.{self::C::+}(1){(core::int*) →* (core::num*) →* core::num*} as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
+  let final self::D* #t1 = d in #t1.{self::D::value} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:51:44: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
+  d.value /*@checkReturn=(num*) ->* num**/ += 1;
+                                           ^" in (#t1.{self::D::value}{self::C<core::num*>*}.{self::C::+}(1){(core::int*) →* (core::num*) →* core::num*} as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
   self::expect(let final self::D* #t2 = d in let final core::int* #t3 = 0 in #t2.{self::D::setValue}{(core::int*) →* core::int*}(#t3){(core::int*) →* core::int*}, 1);
   d = new self::D::•(new self::C::•<core::num*>(#C2));
   self::expectTypeError(() → Null {
-    let final self::D* #t4 = d in #t4.{self::D::value} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:53:48: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
-    d.value /*@ checkReturn=(num*) ->* num* */ += 1;
-                                               ^" in (#t4.{self::D::value}{self::C<core::num*>*}.{self::C::+}(1){(core::int*) →* (core::num*) →* core::num*} as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
+    let final self::D* #t4 = d in #t4.{self::D::value} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart:55:46: Error: A value of type 'num Function(num)' can't be assigned to a variable of type 'int Function(int)'.
+    d.value /*@checkReturn=(num*) ->* num**/ += 1;
+                                             ^" in (#t4.{self::D::value}{self::C<core::num*>*}.{self::C::+}(1){(core::int*) →* (core::num*) →* core::num*} as{TypeError,CovarianceCheck} (core::num*) →* core::num*) as{TypeError} (core::int*) →* core::int*;
   });
   self::expect(d.{self::D::setValue}{(core::int*) →* core::int*}, null);
 }
@@ -99,5 +99,5 @@
 }
 
 Extra constant evaluation status:
-Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_generic_return_with_compound_assign_implicit_downcast.dart:50:21 -> IntConstant(0)
+Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_generic_return_with_compound_assign_implicit_downcast.dart:52:21 -> IntConstant(0)
 Extra constant evaluation: evaluated: 46, effectively constant: 1
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart
index 4c8c9a7..bff2605 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.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
+
 /*@testedFeatures=checks*/
 library test;
 
@@ -12,15 +14,15 @@
 }
 
 class C<T> {
-  B<F<T>> get x => null;
+  B<F<T>> get x => throw '';
   void set x(B<F<T>> value) {}
 }
 
 void test(C<num> c) {
-  c. /*@ checkReturn=B<(num*) ->* void>* */ x += new B<num>();
-  var y = c. /*@ checkReturn=B<(num*) ->* void>* */ x += new B<num>();
-  c. /*@ checkReturn=B<(num*) ->* void>* */ x ??= new B<num>();
-  var z = c. /*@ checkReturn=B<(num*) ->* void>* */ x ??= new B<num>();
+  c. /*@checkReturn=B<(num*) ->* void>**/ x += new B<num>();
+  var y = c. /*@checkReturn=B<(num*) ->* void>**/ x += new B<num>();
+  c. /*@checkReturn=B<(num*) ->* void>**/ x ??= new B<num>();
+  var z = c. /*@checkReturn=B<(num*) ->* void>**/ x ??= new B<num>();
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.textual_outline.expect
index 0b43ccc..2b0be85 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.textual_outline.expect
@@ -8,7 +8,7 @@
 }
 
 class C<T> {
-  B<F<T>> get x => null;
+  B<F<T>> get x => throw '';
   void set x(B<F<T>> value) {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.textual_outline_modelled.expect
index c0bc672..30a234a 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.textual_outline_modelled.expect
@@ -6,7 +6,7 @@
 }
 
 class C<T> {
-  B<F<T>> get x => null;
+  B<F<T>> get x => throw '';
   void set x(B<F<T>> value) {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.weak.expect
index c730f2f..6a43f50 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.weak.expect
@@ -2,25 +2,25 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:20:54: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:22:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
 //  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-//   c. /*@ checkReturn=B<(num*) ->* void>* */ x += new B<num>();
-//                                                      ^
+//   c. /*@checkReturn=B<(num*) ->* void>**/ x += new B<num>();
+//                                                    ^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:21:62: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:23:60: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
 //  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-//   var y = c. /*@ checkReturn=B<(num*) ->* void>* */ x += new B<num>();
-//                                                              ^
+//   var y = c. /*@checkReturn=B<(num*) ->* void>**/ x += new B<num>();
+//                                                            ^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:22:55: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:24:53: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
 //  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-//   c. /*@ checkReturn=B<(num*) ->* void>* */ x ??= new B<num>();
-//                                                       ^
+//   c. /*@checkReturn=B<(num*) ->* void>**/ x ??= new B<num>();
+//                                                     ^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:23:63: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:25:61: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
 //  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-//   var z = c. /*@ checkReturn=B<(num*) ->* void>* */ x ??= new B<num>();
-//                                                               ^
+//   var z = c. /*@checkReturn=B<(num*) ->* void>**/ x ??= new B<num>();
+//                                                             ^
 //
 import self as self;
 import "dart:core" as core;
@@ -48,7 +48,7 @@
     : super core::Object::•()
     ;
   get x() → self::B<(self::C::T*) →* void>*
-    return null;
+    return throw "";
   set x(self::B<(self::C::T*) →* void>* 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
@@ -62,21 +62,21 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method test(self::C<core::num*>* c) → void {
-  let final self::C<core::num*>* #t1 = c in #t1.{self::C::x} = (#t1.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:20:54: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+  let final self::C<core::num*>* #t1 = c in #t1.{self::C::x} = (#t1.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:22:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-  c. /*@ checkReturn=B<(num*) ->* void>* */ x += new B<num>();
-                                                     ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>*){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*};
-  self::B<(core::num*) →* void>* y = let final self::C<core::num*>* #t2 = c in #t2.{self::C::x} = (#t2.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:21:62: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+  c. /*@checkReturn=B<(num*) ->* void>**/ x += new B<num>();
+                                                   ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>*){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*};
+  self::B<(core::num*) →* void>* y = let final self::C<core::num*>* #t2 = c in #t2.{self::C::x} = (#t2.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:23:60: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-  var y = c. /*@ checkReturn=B<(num*) ->* void>* */ x += new B<num>();
-                                                             ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>*){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*};
-  let final self::C<core::num*>* #t3 = c in #t3.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* == null ?{self::B<core::Object*>*} #t3.{self::C::x} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:22:55: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+  var y = c. /*@checkReturn=B<(num*) ->* void>**/ x += new B<num>();
+                                                           ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>*){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*};
+  let final self::C<core::num*>* #t3 = c in #t3.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* == null ?{self::B<core::Object*>*} #t3.{self::C::x} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:24:53: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-  c. /*@ checkReturn=B<(num*) ->* void>* */ x ??= new B<num>();
-                                                      ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>* : null;
-  self::B<core::Object*>* z = let final self::C<core::num*>* #t4 = c in let final self::B<(core::num*) →* void>* #t5 = #t4.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* in #t5 == null ?{self::B<core::Object*>*} #t4.{self::C::x} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:23:63: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+  c. /*@checkReturn=B<(num*) ->* void>**/ x ??= new B<num>();
+                                                    ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>* : null;
+  self::B<core::Object*>* z = let final self::C<core::num*>* #t4 = c in let final self::B<(core::num*) →* void>* #t5 = #t4.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* in #t5 == null ?{self::B<core::Object*>*} #t4.{self::C::x} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:25:61: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-  var z = c. /*@ checkReturn=B<(num*) ->* void>* */ x ??= new B<num>();
-                                                              ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>* : #t5;
+  var z = c. /*@checkReturn=B<(num*) ->* void>**/ x ??= new B<num>();
+                                                            ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>* : #t5;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.weak.modular.expect
index c730f2f..6a43f50 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.weak.modular.expect
@@ -2,25 +2,25 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:20:54: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:22:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
 //  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-//   c. /*@ checkReturn=B<(num*) ->* void>* */ x += new B<num>();
-//                                                      ^
+//   c. /*@checkReturn=B<(num*) ->* void>**/ x += new B<num>();
+//                                                    ^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:21:62: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:23:60: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
 //  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-//   var y = c. /*@ checkReturn=B<(num*) ->* void>* */ x += new B<num>();
-//                                                              ^
+//   var y = c. /*@checkReturn=B<(num*) ->* void>**/ x += new B<num>();
+//                                                            ^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:22:55: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:24:53: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
 //  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-//   c. /*@ checkReturn=B<(num*) ->* void>* */ x ??= new B<num>();
-//                                                       ^
+//   c. /*@checkReturn=B<(num*) ->* void>**/ x ??= new B<num>();
+//                                                     ^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:23:63: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:25:61: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
 //  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-//   var z = c. /*@ checkReturn=B<(num*) ->* void>* */ x ??= new B<num>();
-//                                                               ^
+//   var z = c. /*@checkReturn=B<(num*) ->* void>**/ x ??= new B<num>();
+//                                                             ^
 //
 import self as self;
 import "dart:core" as core;
@@ -48,7 +48,7 @@
     : super core::Object::•()
     ;
   get x() → self::B<(self::C::T*) →* void>*
-    return null;
+    return throw "";
   set x(self::B<(self::C::T*) →* void>* 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
@@ -62,21 +62,21 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method test(self::C<core::num*>* c) → void {
-  let final self::C<core::num*>* #t1 = c in #t1.{self::C::x} = (#t1.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:20:54: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+  let final self::C<core::num*>* #t1 = c in #t1.{self::C::x} = (#t1.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:22:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-  c. /*@ checkReturn=B<(num*) ->* void>* */ x += new B<num>();
-                                                     ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>*){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*};
-  self::B<(core::num*) →* void>* y = let final self::C<core::num*>* #t2 = c in #t2.{self::C::x} = (#t2.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:21:62: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+  c. /*@checkReturn=B<(num*) ->* void>**/ x += new B<num>();
+                                                   ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>*){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*};
+  self::B<(core::num*) →* void>* y = let final self::C<core::num*>* #t2 = c in #t2.{self::C::x} = (#t2.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:23:60: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-  var y = c. /*@ checkReturn=B<(num*) ->* void>* */ x += new B<num>();
-                                                             ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>*){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*};
-  let final self::C<core::num*>* #t3 = c in #t3.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* == null ?{self::B<core::Object*>*} #t3.{self::C::x} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:22:55: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+  var y = c. /*@checkReturn=B<(num*) ->* void>**/ x += new B<num>();
+                                                           ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>*){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*};
+  let final self::C<core::num*>* #t3 = c in #t3.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* == null ?{self::B<core::Object*>*} #t3.{self::C::x} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:24:53: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-  c. /*@ checkReturn=B<(num*) ->* void>* */ x ??= new B<num>();
-                                                      ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>* : null;
-  self::B<core::Object*>* z = let final self::C<core::num*>* #t4 = c in let final self::B<(core::num*) →* void>* #t5 = #t4.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* in #t5 == null ?{self::B<core::Object*>*} #t4.{self::C::x} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:23:63: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+  c. /*@checkReturn=B<(num*) ->* void>**/ x ??= new B<num>();
+                                                    ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>* : null;
+  self::B<core::Object*>* z = let final self::C<core::num*>* #t4 = c in let final self::B<(core::num*) →* void>* #t5 = #t4.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* in #t5 == null ?{self::B<core::Object*>*} #t4.{self::C::x} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:25:61: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-  var z = c. /*@ checkReturn=B<(num*) ->* void>* */ x ??= new B<num>();
-                                                              ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>* : #t5;
+  var z = c. /*@checkReturn=B<(num*) ->* void>**/ x ??= new B<num>();
+                                                            ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>* : #t5;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.weak.transformed.expect
index c730f2f..6a43f50 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart.weak.transformed.expect
@@ -2,25 +2,25 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:20:54: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:22:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
 //  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-//   c. /*@ checkReturn=B<(num*) ->* void>* */ x += new B<num>();
-//                                                      ^
+//   c. /*@checkReturn=B<(num*) ->* void>**/ x += new B<num>();
+//                                                    ^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:21:62: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:23:60: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
 //  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-//   var y = c. /*@ checkReturn=B<(num*) ->* void>* */ x += new B<num>();
-//                                                              ^
+//   var y = c. /*@checkReturn=B<(num*) ->* void>**/ x += new B<num>();
+//                                                            ^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:22:55: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:24:53: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
 //  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-//   c. /*@ checkReturn=B<(num*) ->* void>* */ x ??= new B<num>();
-//                                                       ^
+//   c. /*@checkReturn=B<(num*) ->* void>**/ x ??= new B<num>();
+//                                                     ^
 //
-// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:23:63: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:25:61: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
 //  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-//   var z = c. /*@ checkReturn=B<(num*) ->* void>* */ x ??= new B<num>();
-//                                                               ^
+//   var z = c. /*@checkReturn=B<(num*) ->* void>**/ x ??= new B<num>();
+//                                                             ^
 //
 import self as self;
 import "dart:core" as core;
@@ -48,7 +48,7 @@
     : super core::Object::•()
     ;
   get x() → self::B<(self::C::T*) →* void>*
-    return null;
+    return throw "";
   set x(self::B<(self::C::T*) →* void>* 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
@@ -62,21 +62,21 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method test(self::C<core::num*>* c) → void {
-  let final self::C<core::num*>* #t1 = c in #t1.{self::C::x} = (#t1.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:20:54: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+  let final self::C<core::num*>* #t1 = c in #t1.{self::C::x} = (#t1.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:22:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-  c. /*@ checkReturn=B<(num*) ->* void>* */ x += new B<num>();
-                                                     ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>*){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*};
-  self::B<(core::num*) →* void>* y = let final self::C<core::num*>* #t2 = c in #t2.{self::C::x} = (#t2.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:21:62: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+  c. /*@checkReturn=B<(num*) ->* void>**/ x += new B<num>();
+                                                   ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>*){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*};
+  self::B<(core::num*) →* void>* y = let final self::C<core::num*>* #t2 = c in #t2.{self::C::x} = (#t2.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:23:60: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-  var y = c. /*@ checkReturn=B<(num*) ->* void>* */ x += new B<num>();
-                                                             ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>*){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*};
-  let final self::C<core::num*>* #t3 = c in #t3.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* == null ?{self::B<core::Object*>*} #t3.{self::C::x} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:22:55: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+  var y = c. /*@checkReturn=B<(num*) ->* void>**/ x += new B<num>();
+                                                           ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>*){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*};
+  let final self::C<core::num*>* #t3 = c in #t3.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* == null ?{self::B<core::Object*>*} #t3.{self::C::x} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:24:53: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-  c. /*@ checkReturn=B<(num*) ->* void>* */ x ??= new B<num>();
-                                                      ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>* : null;
-  self::B<core::Object*>* z = let final self::C<core::num*>* #t4 = c in let final self::B<(core::num*) →* void>* #t5 = #t4.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* in #t5 == null ?{self::B<core::Object*>*} #t4.{self::C::x} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:23:63: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+  c. /*@checkReturn=B<(num*) ->* void>**/ x ??= new B<num>();
+                                                    ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>* : null;
+  self::B<core::Object*>* z = let final self::C<core::num*>* #t4 = c in let final self::B<(core::num*) →* void>* #t5 = #t4.{self::C::x}{self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* in #t5 == null ?{self::B<core::Object*>*} #t4.{self::C::x} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart:25:61: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign.dart'.
-  var z = c. /*@ checkReturn=B<(num*) ->* void>* */ x ??= new B<num>();
-                                                              ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>* : #t5;
+  var z = c. /*@checkReturn=B<(num*) ->* void>**/ x ??= new B<num>();
+                                                            ^" in new self::B::•<core::num*>() as{TypeError} self::B<(core::num*) →* void>* : #t5;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart
new file mode 100644
index 0000000..bda0153
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart
@@ -0,0 +1,28 @@
+// 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.
+
+/*@testedFeatures=checks*/
+library test;
+
+typedef void F<T>(T x);
+
+class B<T> {
+  B<T> operator +(B<T> other) => throw '';
+}
+
+class C<T> {
+  B<F<T>> get x => throw '';
+  void set x(B<F<T>> value) {}
+  B<F<T>>? get x2 => null;
+  void set x2(B<F<T>>? value) {}
+}
+
+void test(C<num> c) {
+  c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
+  var y = c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
+  c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
+  var z = c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.textual_outline.expect
new file mode 100644
index 0000000..ee91c60
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.textual_outline.expect
@@ -0,0 +1,17 @@
+library test;
+
+typedef void F<T>(T x);
+
+class B<T> {
+  B<T> operator +(B<T> other) => throw '';
+}
+
+class C<T> {
+  B<F<T>> get x => throw '';
+  void set x(B<F<T>> value) {}
+  B<F<T>>? get x2 => null;
+  void set x2(B<F<T>>? value) {}
+}
+
+void test(C<num> c) {}
+main() {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..19cfea8
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.textual_outline_modelled.expect
@@ -0,0 +1,16 @@
+library test;
+
+class B<T> {
+  B<T> operator +(B<T> other) => throw '';
+}
+
+class C<T> {
+  B<F<T>>? get x2 => null;
+  B<F<T>> get x => throw '';
+  void set x(B<F<T>> value) {}
+  void set x2(B<F<T>>? value) {}
+}
+
+main() {}
+typedef void F<T>(T x);
+void test(C<num> c) {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.weak.expect
new file mode 100644
index 0000000..4eb28a0
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.weak.expect
@@ -0,0 +1,65 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:22:49: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+//  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+//   c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
+//                                                 ^
+//
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:23:57: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+//  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+//   var y = c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
+//                                                         ^
+//
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
+//  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+//   c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
+//                                                    ^
+//
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:25:60: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
+//  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+//   var z = c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
+//                                                            ^
+//
+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%>
+    : super core::Object::•()
+    ;
+  operator +(covariant-by-class self::B<self::B::T%> other) → self::B<self::B::T%>
+    return throw "";
+}
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
+    : super core::Object::•()
+    ;
+  get x() → self::B<(self::C::T%) → void>
+    return throw "";
+  set x(self::B<(self::C::T%) → void> value) → void {}
+  get x2() → self::B<(self::C::T%) → void>?
+    return null;
+  set x2(self::B<(self::C::T%) → void>? value) → void {}
+}
+static method test(self::C<core::num> c) → void {
+  let final self::C<core::num> #t1 = c in #t1.{self::C::x} = (#t1.{self::C::x}{self::B<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:22:49: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+ - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+  c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
+                                                ^" in new self::B::•<core::num>() as{TypeError,ForNonNullableByDefault} self::B<(core::num) → void>){(self::B<(core::num) → void>) → self::B<(core::num) → void>};
+  self::B<(core::num) → void> y = let final self::C<core::num> #t2 = c in #t2.{self::C::x} = (#t2.{self::C::x}{self::B<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:23:57: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+ - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+  var y = c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
+                                                        ^" in new self::B::•<core::num>() as{TypeError,ForNonNullableByDefault} self::B<(core::num) → void>){(self::B<(core::num) → void>) → self::B<(core::num) → void>};
+  let final self::C<core::num> #t3 = c in #t3.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>? == null ?{self::B<core::Object>} #t3.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
+ - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+  c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
+                                                   ^" in new self::B::•<core::num>() as{TypeError,ForNonNullableByDefault} self::B<(core::num) → void>? : null;
+  self::B<core::Object> z = let final self::C<core::num> #t4 = c in let final self::B<(core::num) → void>? #t5 = #t4.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>? in #t5 == null ?{self::B<core::Object>} #t4.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:25:60: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
+ - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+  var z = c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
+                                                           ^" in new self::B::•<core::num>() as{TypeError,ForNonNullableByDefault} self::B<(core::num) → void>? : #t5{self::B<(core::num) → void>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.weak.modular.expect
new file mode 100644
index 0000000..4eb28a0
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.weak.modular.expect
@@ -0,0 +1,65 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:22:49: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+//  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+//   c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
+//                                                 ^
+//
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:23:57: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+//  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+//   var y = c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
+//                                                         ^
+//
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
+//  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+//   c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
+//                                                    ^
+//
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:25:60: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
+//  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+//   var z = c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
+//                                                            ^
+//
+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%>
+    : super core::Object::•()
+    ;
+  operator +(covariant-by-class self::B<self::B::T%> other) → self::B<self::B::T%>
+    return throw "";
+}
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
+    : super core::Object::•()
+    ;
+  get x() → self::B<(self::C::T%) → void>
+    return throw "";
+  set x(self::B<(self::C::T%) → void> value) → void {}
+  get x2() → self::B<(self::C::T%) → void>?
+    return null;
+  set x2(self::B<(self::C::T%) → void>? value) → void {}
+}
+static method test(self::C<core::num> c) → void {
+  let final self::C<core::num> #t1 = c in #t1.{self::C::x} = (#t1.{self::C::x}{self::B<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:22:49: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+ - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+  c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
+                                                ^" in new self::B::•<core::num>() as{TypeError,ForNonNullableByDefault} self::B<(core::num) → void>){(self::B<(core::num) → void>) → self::B<(core::num) → void>};
+  self::B<(core::num) → void> y = let final self::C<core::num> #t2 = c in #t2.{self::C::x} = (#t2.{self::C::x}{self::B<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:23:57: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+ - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+  var y = c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
+                                                        ^" in new self::B::•<core::num>() as{TypeError,ForNonNullableByDefault} self::B<(core::num) → void>){(self::B<(core::num) → void>) → self::B<(core::num) → void>};
+  let final self::C<core::num> #t3 = c in #t3.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>? == null ?{self::B<core::Object>} #t3.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
+ - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+  c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
+                                                   ^" in new self::B::•<core::num>() as{TypeError,ForNonNullableByDefault} self::B<(core::num) → void>? : null;
+  self::B<core::Object> z = let final self::C<core::num> #t4 = c in let final self::B<(core::num) → void>? #t5 = #t4.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>? in #t5 == null ?{self::B<core::Object>} #t4.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:25:60: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
+ - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+  var z = c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
+                                                           ^" in new self::B::•<core::num>() as{TypeError,ForNonNullableByDefault} self::B<(core::num) → void>? : #t5{self::B<(core::num) → void>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.weak.outline.expect
new file mode 100644
index 0000000..1048571
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.weak.outline.expect
@@ -0,0 +1,27 @@
+library test /*isNonNullableByDefault*/;
+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%>
+    ;
+  operator +(covariant-by-class self::B<self::B::T%> other) → self::B<self::B::T%>
+    ;
+}
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
+    ;
+  get x() → self::B<(self::C::T%) → void>
+    ;
+  set x(self::B<(self::C::T%) → void> value) → void
+    ;
+  get x2() → self::B<(self::C::T%) → void>?
+    ;
+  set x2(self::B<(self::C::T%) → void>? value) → void
+    ;
+}
+static method test(self::C<core::num> c) → void
+  ;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.weak.transformed.expect
new file mode 100644
index 0000000..4eb28a0
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart.weak.transformed.expect
@@ -0,0 +1,65 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:22:49: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+//  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+//   c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
+//                                                 ^
+//
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:23:57: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+//  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+//   var y = c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
+//                                                         ^
+//
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
+//  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+//   c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
+//                                                    ^
+//
+// pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:25:60: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
+//  - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+//   var z = c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
+//                                                            ^
+//
+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%>
+    : super core::Object::•()
+    ;
+  operator +(covariant-by-class self::B<self::B::T%> other) → self::B<self::B::T%>
+    return throw "";
+}
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
+    : super core::Object::•()
+    ;
+  get x() → self::B<(self::C::T%) → void>
+    return throw "";
+  set x(self::B<(self::C::T%) → void> value) → void {}
+  get x2() → self::B<(self::C::T%) → void>?
+    return null;
+  set x2(self::B<(self::C::T%) → void>? value) → void {}
+}
+static method test(self::C<core::num> c) → void {
+  let final self::C<core::num> #t1 = c in #t1.{self::C::x} = (#t1.{self::C::x}{self::B<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:22:49: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+ - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+  c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
+                                                ^" in new self::B::•<core::num>() as{TypeError,ForNonNullableByDefault} self::B<(core::num) → void>){(self::B<(core::num) → void>) → self::B<(core::num) → void>};
+  self::B<(core::num) → void> y = let final self::C<core::num> #t2 = c in #t2.{self::C::x} = (#t2.{self::C::x}{self::B<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>).{self::B::+}(invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:23:57: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>'.
+ - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+  var y = c. /*@checkReturn=B<(num) -> void>*/ x += new B<num>();
+                                                        ^" in new self::B::•<core::num>() as{TypeError,ForNonNullableByDefault} self::B<(core::num) → void>){(self::B<(core::num) → void>) → self::B<(core::num) → void>};
+  let final self::C<core::num> #t3 = c in #t3.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>? == null ?{self::B<core::Object>} #t3.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:24:52: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
+ - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+  c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
+                                                   ^" in new self::B::•<core::num>() as{TypeError,ForNonNullableByDefault} self::B<(core::num) → void>? : null;
+  self::B<core::Object> z = let final self::C<core::num> #t4 = c in let final self::B<(core::num) → void>? #t5 = #t4.{self::C::x2}{self::B<(core::num) → void>?} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>? in #t5 == null ?{self::B<core::Object>} #t4.{self::C::x2} = invalid-expression "pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart:25:60: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<void Function(num)>?'.
+ - 'B' is from 'pkg/front_end/testcases/runtime_checks_new/contravariant_getter_return_compound_assign2.dart'.
+  var z = c. /*@checkReturn=B<(num) -> void>?*/ x2 ??= new B<num>();
+                                                           ^" in new self::B::•<core::num>() as{TypeError,ForNonNullableByDefault} self::B<(core::num) → void>? : #t5{self::B<(core::num) → void>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart
index e935be9..b3a63a8 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart
@@ -1,27 +1,33 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 typedef void F<T>(T x);
 
 class B<T> {
-  B<T> operator +(B<T> other) => null;
+  B<T> operator +(B<T> other) => throw '';
 }
 
 class C<T> {
-  B<F<T>> operator [](int i) => null;
+  B<F<T>> operator [](int i) => throw '';
   void operator []=(int i, B<F<T>> x) {}
 }
 
-void test(C<num> c) {
+class C2<T> {
+  B<F<T>>? operator [](int i) => throw '';
+  void operator []=(int i, B<F<T>>? x) {}
+}
+
+void test(C<num> c, C2<num> c2) {
   c[0] = new B<F<num>>();
-  c /*@ checkReturn=B<(num*) ->* void>* */ [0] += new B<F<num>>();
-  var x = c /*@ checkReturn=B<(num*) ->* void>* */ [0] += new B<F<num>>();
-  c /*@ checkReturn=B<(num*) ->* void>* */ [0] ??= new B<F<num>>();
-  var y = c /*@ checkReturn=B<(num*) ->* void>* */ [0] ??= new B<F<num>>();
+  c2[0] = new B<F<num>>();
+  c /*@checkReturn=B<(num) -> void>*/ [0] += new B<F<num>>();
+  var x = c /*@checkReturn=B<(num) -> void>*/ [0] += new B<F<num>>();
+  c2 /*@checkReturn=B<(num) -> void>?*/ [0] ??= new B<F<num>>();
+  var y = c2 /*@checkReturn=B<(num) -> void>?*/ [0] ??= new B<F<num>>();
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.textual_outline.expect
index 25e6f2f..9a51abc 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.textual_outline.expect
@@ -1,16 +1,20 @@
-// @dart = 2.9
 library test;
 
 typedef void F<T>(T x);
 
 class B<T> {
-  B<T> operator +(B<T> other) => null;
+  B<T> operator +(B<T> other) => throw '';
 }
 
 class C<T> {
-  B<F<T>> operator [](int i) => null;
+  B<F<T>> operator [](int i) => throw '';
   void operator []=(int i, B<F<T>> x) {}
 }
 
-void test(C<num> c) {}
+class C2<T> {
+  B<F<T>>? operator [](int i) => throw '';
+  void operator []=(int i, B<F<T>>? x) {}
+}
+
+void test(C<num> c, C2<num> c2) {}
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.textual_outline_modelled.expect
index c7d6555..00281b6 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.textual_outline_modelled.expect
@@ -1,15 +1,19 @@
-// @dart = 2.9
 library test;
 
 class B<T> {
-  B<T> operator +(B<T> other) => null;
+  B<T> operator +(B<T> other) => throw '';
 }
 
 class C<T> {
-  B<F<T>> operator [](int i) => null;
+  B<F<T>> operator [](int i) => throw '';
   void operator []=(int i, B<F<T>> x) {}
 }
 
+class C2<T> {
+  B<F<T>>? operator [](int i) => throw '';
+  void operator []=(int i, B<F<T>>? x) {}
+}
+
 main() {}
 typedef void F<T>(T x);
-void test(C<num> c) {}
+void test(C<num> c, C2<num> c2) {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.expect
index 3769315..266a5d7 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.expect
@@ -1,48 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
 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::•()
     ;
-  operator +(covariant-by-class self::B<self::B::T*>* other) → self::B<self::B::T*>*
-    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
+  operator +(covariant-by-class self::B<self::B::T%> other) → self::B<self::B::T%>
+    return throw "";
 }
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  operator [](core::int* i) → self::B<(self::C::T*) →* void>*
-    return null;
-  operator []=(core::int* i, self::B<(self::C::T*) →* void>* x) → 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 [](core::int i) → self::B<(self::C::T%) → void>
+    return throw "";
+  operator []=(core::int i, self::B<(self::C::T%) → void> x) → void {}
 }
-static method test(self::C<core::num*>* c) → void {
-  c.{self::C::[]=}(0, new self::B::•<(core::num*) →* void>()){(core::int*, self::B<(core::num*) →* void>*) →* void};
-  let final self::C<core::num*>* #t1 = c in let final core::int* #t2 = 0 in #t1.{self::C::[]=}(#t2, (#t1.{self::C::[]}(#t2){(core::int*) →* self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(new self::B::•<(core::num*) →* void>()){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*}){(core::int*, self::B<(core::num*) →* void>*) →* void};
-  self::B<(core::num*) →* void>* x = let final self::C<core::num*>* #t3 = c in let final core::int* #t4 = 0 in let final self::B<(core::num*) →* void>* #t5 = (#t3.{self::C::[]}(#t4){(core::int*) →* self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(new self::B::•<(core::num*) →* void>()){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*} in let final void #t6 = #t3.{self::C::[]=}(#t4, #t5){(core::int*, self::B<(core::num*) →* void>*) →* void} in #t5;
-  let final self::C<core::num*>* #t7 = c in let final core::int* #t8 = 0 in #t7.{self::C::[]}(#t8){(core::int*) →* self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* == null ?{self::B<(core::num*) →* void>*} #t7.{self::C::[]=}(#t8, new self::B::•<(core::num*) →* void>()){(core::int*, self::B<(core::num*) →* void>*) →* void} : null;
-  self::B<(core::num*) →* void>* y = let final self::C<core::num*>* #t9 = c in let final core::int* #t10 = 0 in let final self::B<(core::num*) →* void>* #t11 = #t9.{self::C::[]}(#t10){(core::int*) →* self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* in #t11 == null ?{self::B<(core::num*) →* void>*} let final self::B<(core::num*) →* void>* #t12 = new self::B::•<(core::num*) →* void>() in let final void #t13 = #t9.{self::C::[]=}(#t10, #t12){(core::int*, self::B<(core::num*) →* void>*) →* void} in #t12 : #t11;
+class C2<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C2<self::C2::T%>
+    : super core::Object::•()
+    ;
+  operator [](core::int i) → self::B<(self::C2::T%) → void>?
+    return throw "";
+  operator []=(core::int i, self::B<(self::C2::T%) → void>? x) → void {}
+}
+static method test(self::C<core::num> c, self::C2<core::num> c2) → void {
+  c.{self::C::[]=}(0, new self::B::•<(core::num) → void>()){(core::int, self::B<(core::num) → void>) → void};
+  c2.{self::C2::[]=}(0, new self::B::•<(core::num) → void>()){(core::int, self::B<(core::num) → void>?) → void};
+  let final self::C<core::num> #t1 = c in let final core::int #t2 = 0 in #t1.{self::C::[]=}(#t2, (#t1.{self::C::[]}(#t2){(core::int) → self::B<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>).{self::B::+}(new self::B::•<(core::num) → void>()){(self::B<(core::num) → void>) → self::B<(core::num) → void>}){(core::int, self::B<(core::num) → void>) → void};
+  self::B<(core::num) → void> x = let final self::C<core::num> #t3 = c in let final core::int #t4 = 0 in let final self::B<(core::num) → void> #t5 = (#t3.{self::C::[]}(#t4){(core::int) → self::B<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>).{self::B::+}(new self::B::•<(core::num) → void>()){(self::B<(core::num) → void>) → self::B<(core::num) → void>} in let final void #t6 = #t3.{self::C::[]=}(#t4, #t5){(core::int, self::B<(core::num) → void>) → void} in #t5;
+  let final self::C2<core::num> #t7 = c2 in let final core::int #t8 = 0 in #t7.{self::C2::[]}(#t8){(core::int) → self::B<(core::num) → void>?} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>? == null ?{self::B<(core::num) → void>} #t7.{self::C2::[]=}(#t8, new self::B::•<(core::num) → void>()){(core::int, self::B<(core::num) → void>?) → void} : null;
+  self::B<(core::num) → void> y = let final self::C2<core::num> #t9 = c2 in let final core::int #t10 = 0 in let final self::B<(core::num) → void>? #t11 = #t9.{self::C2::[]}(#t10){(core::int) → self::B<(core::num) → void>?} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>? in #t11 == null ?{self::B<(core::num) → void>} let final self::B<(core::num) → void> #t12 = new self::B::•<(core::num) → void>() in let final void #t13 = #t9.{self::C2::[]=}(#t10, #t12){(core::int, self::B<(core::num) → void>?) → void} in #t12 : #t11{self::B<(core::num) → void>};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.modular.expect
index 3769315..266a5d7 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.modular.expect
@@ -1,48 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
 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::•()
     ;
-  operator +(covariant-by-class self::B<self::B::T*>* other) → self::B<self::B::T*>*
-    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
+  operator +(covariant-by-class self::B<self::B::T%> other) → self::B<self::B::T%>
+    return throw "";
 }
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  operator [](core::int* i) → self::B<(self::C::T*) →* void>*
-    return null;
-  operator []=(core::int* i, self::B<(self::C::T*) →* void>* x) → 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 [](core::int i) → self::B<(self::C::T%) → void>
+    return throw "";
+  operator []=(core::int i, self::B<(self::C::T%) → void> x) → void {}
 }
-static method test(self::C<core::num*>* c) → void {
-  c.{self::C::[]=}(0, new self::B::•<(core::num*) →* void>()){(core::int*, self::B<(core::num*) →* void>*) →* void};
-  let final self::C<core::num*>* #t1 = c in let final core::int* #t2 = 0 in #t1.{self::C::[]=}(#t2, (#t1.{self::C::[]}(#t2){(core::int*) →* self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(new self::B::•<(core::num*) →* void>()){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*}){(core::int*, self::B<(core::num*) →* void>*) →* void};
-  self::B<(core::num*) →* void>* x = let final self::C<core::num*>* #t3 = c in let final core::int* #t4 = 0 in let final self::B<(core::num*) →* void>* #t5 = (#t3.{self::C::[]}(#t4){(core::int*) →* self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(new self::B::•<(core::num*) →* void>()){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*} in let final void #t6 = #t3.{self::C::[]=}(#t4, #t5){(core::int*, self::B<(core::num*) →* void>*) →* void} in #t5;
-  let final self::C<core::num*>* #t7 = c in let final core::int* #t8 = 0 in #t7.{self::C::[]}(#t8){(core::int*) →* self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* == null ?{self::B<(core::num*) →* void>*} #t7.{self::C::[]=}(#t8, new self::B::•<(core::num*) →* void>()){(core::int*, self::B<(core::num*) →* void>*) →* void} : null;
-  self::B<(core::num*) →* void>* y = let final self::C<core::num*>* #t9 = c in let final core::int* #t10 = 0 in let final self::B<(core::num*) →* void>* #t11 = #t9.{self::C::[]}(#t10){(core::int*) →* self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* in #t11 == null ?{self::B<(core::num*) →* void>*} let final self::B<(core::num*) →* void>* #t12 = new self::B::•<(core::num*) →* void>() in let final void #t13 = #t9.{self::C::[]=}(#t10, #t12){(core::int*, self::B<(core::num*) →* void>*) →* void} in #t12 : #t11;
+class C2<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C2<self::C2::T%>
+    : super core::Object::•()
+    ;
+  operator [](core::int i) → self::B<(self::C2::T%) → void>?
+    return throw "";
+  operator []=(core::int i, self::B<(self::C2::T%) → void>? x) → void {}
+}
+static method test(self::C<core::num> c, self::C2<core::num> c2) → void {
+  c.{self::C::[]=}(0, new self::B::•<(core::num) → void>()){(core::int, self::B<(core::num) → void>) → void};
+  c2.{self::C2::[]=}(0, new self::B::•<(core::num) → void>()){(core::int, self::B<(core::num) → void>?) → void};
+  let final self::C<core::num> #t1 = c in let final core::int #t2 = 0 in #t1.{self::C::[]=}(#t2, (#t1.{self::C::[]}(#t2){(core::int) → self::B<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>).{self::B::+}(new self::B::•<(core::num) → void>()){(self::B<(core::num) → void>) → self::B<(core::num) → void>}){(core::int, self::B<(core::num) → void>) → void};
+  self::B<(core::num) → void> x = let final self::C<core::num> #t3 = c in let final core::int #t4 = 0 in let final self::B<(core::num) → void> #t5 = (#t3.{self::C::[]}(#t4){(core::int) → self::B<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>).{self::B::+}(new self::B::•<(core::num) → void>()){(self::B<(core::num) → void>) → self::B<(core::num) → void>} in let final void #t6 = #t3.{self::C::[]=}(#t4, #t5){(core::int, self::B<(core::num) → void>) → void} in #t5;
+  let final self::C2<core::num> #t7 = c2 in let final core::int #t8 = 0 in #t7.{self::C2::[]}(#t8){(core::int) → self::B<(core::num) → void>?} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>? == null ?{self::B<(core::num) → void>} #t7.{self::C2::[]=}(#t8, new self::B::•<(core::num) → void>()){(core::int, self::B<(core::num) → void>?) → void} : null;
+  self::B<(core::num) → void> y = let final self::C2<core::num> #t9 = c2 in let final core::int #t10 = 0 in let final self::B<(core::num) → void>? #t11 = #t9.{self::C2::[]}(#t10){(core::int) → self::B<(core::num) → void>?} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>? in #t11 == null ?{self::B<(core::num) → void>} let final self::B<(core::num) → void> #t12 = new self::B::•<(core::num) → void>() in let final void #t13 = #t9.{self::C2::[]=}(#t10, #t12){(core::int, self::B<(core::num) → void>?) → void} in #t12 : #t11{self::B<(core::num) → void>};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.outline.expect
index d74cdc8..36c8715 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.outline.expect
@@ -1,43 +1,31 @@
-library test;
+library test /*isNonNullableByDefault*/;
 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%>
     ;
-  operator +(covariant-by-class self::B<self::B::T*>* other) → self::B<self::B::T*>*
+  operator +(covariant-by-class self::B<self::B::T%> other) → 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<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  operator [](core::int* i) → self::B<(self::C::T*) →* void>*
+  operator [](core::int i) → self::B<(self::C::T%) → void>
     ;
-  operator []=(core::int* i, self::B<(self::C::T*) →* void>* x) → void
+  operator []=(core::int i, self::B<(self::C::T%) → void> x) → 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 test(self::C<core::num*>* c) → void
+class C2<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C2<self::C2::T%>
+    ;
+  operator [](core::int i) → self::B<(self::C2::T%) → void>?
+    ;
+  operator []=(core::int i, self::B<(self::C2::T%) → void>? x) → void
+    ;
+}
+static method test(self::C<core::num> c, self::C2<core::num> c2) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.transformed.expect
index 6e2827f..9cbbc0b 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_assign.dart.weak.transformed.expect
@@ -1,60 +1,49 @@
-library test;
+library test /*isNonNullableByDefault*/;
 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::•()
     ;
-  operator +(covariant-by-class self::B<self::B::T*>* other) → self::B<self::B::T*>*
-    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
+  operator +(covariant-by-class self::B<self::B::T%> other) → self::B<self::B::T%>
+    return throw "";
 }
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  operator [](core::int* i) → self::B<(self::C::T*) →* void>*
-    return null;
-  operator []=(core::int* i, self::B<(self::C::T*) →* void>* x) → 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 [](core::int i) → self::B<(self::C::T%) → void>
+    return throw "";
+  operator []=(core::int i, self::B<(self::C::T%) → void> x) → void {}
 }
-static method test(self::C<core::num*>* c) → void {
-  c.{self::C::[]=}(0, new self::B::•<(core::num*) →* void>()){(core::int*, self::B<(core::num*) →* void>*) →* void};
-  let final self::C<core::num*>* #t1 = c in let final core::int* #t2 = 0 in #t1.{self::C::[]=}(#t2, (#t1.{self::C::[]}(#t2){(core::int*) →* self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(new self::B::•<(core::num*) →* void>()){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*}){(core::int*, self::B<(core::num*) →* void>*) →* void};
-  self::B<(core::num*) →* void>* x = let final self::C<core::num*>* #t3 = c in let final core::int* #t4 = 0 in let final self::B<(core::num*) →* void>* #t5 = (#t3.{self::C::[]}(#t4){(core::int*) →* self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>*).{self::B::+}(new self::B::•<(core::num*) →* void>()){(self::B<(core::num*) →* void>*) →* self::B<(core::num*) →* void>*} in let final void #t6 = #t3.{self::C::[]=}(#t4, #t5){(core::int*, self::B<(core::num*) →* void>*) →* void} in #t5;
-  let final self::C<core::num*>* #t7 = c in let final core::int* #t8 = 0 in #t7.{self::C::[]}(#t8){(core::int*) →* self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* == null ?{self::B<(core::num*) →* void>*} #t7.{self::C::[]=}(#t8, new self::B::•<(core::num*) →* void>()){(core::int*, self::B<(core::num*) →* void>*) →* void} : null;
-  self::B<(core::num*) →* void>* y = let final self::C<core::num*>* #t9 = c in let final core::int* #t10 = 0 in let final self::B<(core::num*) →* void>* #t11 = #t9.{self::C::[]}(#t10){(core::int*) →* self::B<(core::num*) →* void>*} as{TypeError,CovarianceCheck} self::B<(core::num*) →* void>* in #t11 == null ?{self::B<(core::num*) →* void>*} let final self::B<(core::num*) →* void>* #t12 = new self::B::•<(core::num*) →* void>() in let final void #t13 = #t9.{self::C::[]=}(#t10, #t12){(core::int*, self::B<(core::num*) →* void>*) →* void} in #t12 : #t11;
+class C2<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C2<self::C2::T%>
+    : super core::Object::•()
+    ;
+  operator [](core::int i) → self::B<(self::C2::T%) → void>?
+    return throw "";
+  operator []=(core::int i, self::B<(self::C2::T%) → void>? x) → void {}
+}
+static method test(self::C<core::num> c, self::C2<core::num> c2) → void {
+  c.{self::C::[]=}(0, new self::B::•<(core::num) → void>()){(core::int, self::B<(core::num) → void>) → void};
+  c2.{self::C2::[]=}(0, new self::B::•<(core::num) → void>()){(core::int, self::B<(core::num) → void>?) → void};
+  let final self::C<core::num> #t1 = c in let final core::int #t2 = 0 in #t1.{self::C::[]=}(#t2, (#t1.{self::C::[]}(#t2){(core::int) → self::B<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>).{self::B::+}(new self::B::•<(core::num) → void>()){(self::B<(core::num) → void>) → self::B<(core::num) → void>}){(core::int, self::B<(core::num) → void>) → void};
+  self::B<(core::num) → void> x = let final self::C<core::num> #t3 = c in let final core::int #t4 = 0 in let final self::B<(core::num) → void> #t5 = (#t3.{self::C::[]}(#t4){(core::int) → self::B<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>).{self::B::+}(new self::B::•<(core::num) → void>()){(self::B<(core::num) → void>) → self::B<(core::num) → void>} in let final void #t6 = #t3.{self::C::[]=}(#t4, #t5){(core::int, self::B<(core::num) → void>) → void} in #t5;
+  let final self::C2<core::num> #t7 = c2 in let final core::int #t8 = 0 in #t7.{self::C2::[]}(#t8){(core::int) → self::B<(core::num) → void>?} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>? == null ?{self::B<(core::num) → void>} #t7.{self::C2::[]=}(#t8, new self::B::•<(core::num) → void>()){(core::int, self::B<(core::num) → void>?) → void} : null;
+  self::B<(core::num) → void> y = let final self::C2<core::num> #t9 = c2 in let final core::int #t10 = 0 in let final self::B<(core::num) → void>? #t11 = #t9.{self::C2::[]}(#t10){(core::int) → self::B<(core::num) → void>?} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>? in #t11 == null ?{self::B<(core::num) → void>} let final self::B<(core::num) → void> #t12 = new self::B::•<(core::num) → void>() in let final void #t13 = #t9.{self::C2::[]=}(#t10, #t12){(core::int, self::B<(core::num) → void>?) → void} in #t12 : #t11{self::B<(core::num) → void>};
 }
 static method main() → dynamic {}
 
 
 Extra constant evaluation status:
-Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:21:45 -> IntConstant(0)
-Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:21:45 -> IntConstant(0)
-Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:22:53 -> IntConstant(0)
-Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:22:53 -> IntConstant(0)
-Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:23:45 -> IntConstant(0)
-Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:23:45 -> IntConstant(0)
-Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:24:53 -> IntConstant(0)
-Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:24:53 -> IntConstant(0)
-Extra constant evaluation: evaluated: 64, effectively constant: 8
+Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:27:40 -> IntConstant(0)
+Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:27:40 -> IntConstant(0)
+Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:28:48 -> IntConstant(0)
+Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:28:48 -> IntConstant(0)
+Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:29:42 -> IntConstant(0)
+Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:29:42 -> IntConstant(0)
+Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:30:50 -> IntConstant(0)
+Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:30:50 -> IntConstant(0)
+Extra constant evaluation: evaluated: 70, effectively constant: 8
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart
index dfab294..7c3ebc8 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart
@@ -1,18 +1,18 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 typedef void F<T>(T x);
 
 class C<T> {
-  F<T> operator [](int i) => null;
+  F<T> operator [](int i) => throw '';
 }
 
 F<num> test(C<num> c) {
-  return c /*@ checkReturn=(num*) ->* void */ [0];
+  return c /*@checkReturn=(num) -> void*/ [0];
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.textual_outline.expect
index 800ea5e..69e660e 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 library test;
 
 typedef void F<T>(T x);
 
 class C<T> {
-  F<T> operator [](int i) => null;
+  F<T> operator [](int i) => throw '';
 }
 
 F<num> test(C<num> c) {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.textual_outline_modelled.expect
index ee7266a..f3b356a 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 library test;
 
 F<num> test(C<num> c) {}
 
 class C<T> {
-  F<T> operator [](int i) => null;
+  F<T> operator [](int i) => throw '';
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.expect
index 906d2cb..d10e5c2 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  operator [](core::int* i) → (self::C::T*) →* void
-    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
+  operator [](core::int i) → (self::C::T%) → void
+    return throw "";
 }
-static method test(self::C<core::num*>* c) → (core::num*) →* void {
-  return c.{self::C::[]}(0){(core::int*) →* (core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+static method test(self::C<core::num> c) → (core::num) → void {
+  return c.{self::C::[]}(0){(core::int) → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.modular.expect
index 906d2cb..d10e5c2 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  operator [](core::int* i) → (self::C::T*) →* void
-    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
+  operator [](core::int i) → (self::C::T%) → void
+    return throw "";
 }
-static method test(self::C<core::num*>* c) → (core::num*) →* void {
-  return c.{self::C::[]}(0){(core::int*) →* (core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+static method test(self::C<core::num> c) → (core::num) → void {
+  return c.{self::C::[]}(0){(core::int) → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.outline.expect
index 305e8fb..93eab98 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  operator [](core::int* i) → (self::C::T*) →* void
+  operator [](core::int i) → (self::C::T%) → 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 test(self::C<core::num*>* c) → (core::num*) →* void
+static method test(self::C<core::num> c) → (core::num) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.transformed.expect
index 906d2cb..d10e5c2 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_index_get.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-class C<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class C<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  operator [](core::int* i) → (self::C::T*) →* void
-    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
+  operator [](core::int i) → (self::C::T%) → void
+    return throw "";
 }
-static method test(self::C<core::num*>* c) → (core::num*) →* void {
-  return c.{self::C::[]}(0){(core::int*) →* (core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+static method test(self::C<core::num> c) → (core::num) → void {
+  return c.{self::C::[]}(0){(core::int) → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart
index b194037..e859580 100644
--- a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.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
+
 /*@testedFeatures=checks*/
 library test;
 
 class B<T> {
   void f(T x) {}
-  void g({T x}) {}
+  void g({required T x}) {}
   void h<U extends T>() {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.textual_outline.expect
index 17a00a3..68bef4a 100644
--- a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
 library test;
 
 class B<T> {
   void f(T x) {}
-  void g({T x}) {}
+  void g({required T x}) {}
   void h<U extends T>() {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.textual_outline_modelled.expect
index fc92324..aff3c3f 100644
--- a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
 library test;
 
 class B<T> {
   void f(T x) {}
-  void g({T x}) {}
+  void g({required T x}) {}
   void h<U extends T>() {}
 }
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.expect
index 80e45ff..e03c9a3 100644
--- a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.expect
@@ -1,35 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-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(covariant-by-class self::B::T* x) → void {}
-  method g({covariant-by-class self::B::T* x = #C1}) → void {}
-  method h<covariant-by-class U extends self::B::T*>() → 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(covariant-by-class self::B::T% x) → void {}
+  method g({required covariant-by-class self::B::T% x = #C1}) → void {}
+  method h<covariant-by-class U extends self::B::T%>() → void {}
 }
-class C extends self::B<core::int*> {
-  synthetic constructor •() → self::C*
+class C extends self::B<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
-static method g1(self::B<core::num*>* b) → void {
-  b.{self::B::f}(1.5){(core::num*) →* void};
+static method g1(self::B<core::num> b) → void {
+  b.{self::B::f}(1.5){(core::num) → void};
 }
-static method g2(self::C* c) → void {
-  c.{self::B::f}(1){(core::int*) →* void};
+static method g2(self::C c) → void {
+  c.{self::B::f}(1){(core::int) → void};
 }
 static method test() → void {
   self::g1(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.modular.expect
index 80e45ff..e03c9a3 100644
--- a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.modular.expect
@@ -1,35 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-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(covariant-by-class self::B::T* x) → void {}
-  method g({covariant-by-class self::B::T* x = #C1}) → void {}
-  method h<covariant-by-class U extends self::B::T*>() → 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(covariant-by-class self::B::T% x) → void {}
+  method g({required covariant-by-class self::B::T% x = #C1}) → void {}
+  method h<covariant-by-class U extends self::B::T%>() → void {}
 }
-class C extends self::B<core::int*> {
-  synthetic constructor •() → self::C*
+class C extends self::B<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
-static method g1(self::B<core::num*>* b) → void {
-  b.{self::B::f}(1.5){(core::num*) →* void};
+static method g1(self::B<core::num> b) → void {
+  b.{self::B::f}(1.5){(core::num) → void};
 }
-static method g2(self::C* c) → void {
-  c.{self::B::f}(1){(core::int*) →* void};
+static method g2(self::C c) → void {
+  c.{self::B::f}(1){(core::int) → void};
 }
 static method test() → void {
   self::g1(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.outline.expect
index 3139116..22337b5 100644
--- a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.outline.expect
@@ -1,34 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-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(covariant-by-class self::B::T* x) → void
+  method f(covariant-by-class self::B::T% x) → void
     ;
-  method g({covariant-by-class self::B::T* x = null}) → void
+  method g({required covariant-by-class self::B::T% x = null}) → void
     ;
-  method h<covariant-by-class U extends self::B::T*>() → 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 C extends self::B<core::int*> {
-  synthetic constructor •() → self::C*
+  method h<covariant-by-class U extends self::B::T%>() → void
     ;
 }
-static method g1(self::B<core::num*>* b) → void
+class C extends self::B<core::int> {
+  synthetic constructor •() → self::C
+    ;
+}
+static method g1(self::B<core::num> b) → void
   ;
-static method g2(self::C* c) → void
+static method g2(self::C c) → void
   ;
 static method test() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.transformed.expect
index 80e45ff..e03c9a3 100644
--- a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.transformed.expect
@@ -1,35 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-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(covariant-by-class self::B::T* x) → void {}
-  method g({covariant-by-class self::B::T* x = #C1}) → void {}
-  method h<covariant-by-class U extends self::B::T*>() → 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(covariant-by-class self::B::T% x) → void {}
+  method g({required covariant-by-class self::B::T% x = #C1}) → void {}
+  method h<covariant-by-class U extends self::B::T%>() → void {}
 }
-class C extends self::B<core::int*> {
-  synthetic constructor •() → self::C*
+class C extends self::B<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
-static method g1(self::B<core::num*>* b) → void {
-  b.{self::B::f}(1.5){(core::num*) →* void};
+static method g1(self::B<core::num> b) → void {
+  b.{self::B::f}(1.5){(core::num) → void};
 }
-static method g2(self::C* c) → void {
-  c.{self::B::f}(1){(core::int*) →* void};
+static method g2(self::C c) → void {
+  c.{self::B::f}(1){(core::int) → void};
 }
 static method test() → void {
   self::g1(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart
index 73be4e2..0ca96ab 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart
@@ -1,12 +1,12 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 class B<T> {
-  T x;
+  T x = throw '';
 }
 
 class C extends B<num> {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.textual_outline.expect
index c2a9e1e..9b3ed2f 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
 library test;
 
 class B<T> {
-  T x;
+  T x = throw '';
 }
 
 class C extends B<num> {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.textual_outline_modelled.expect
index c2a9e1e..9b3ed2f 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
 library test;
 
 class B<T> {
-  T x;
+  T x = throw '';
 }
 
 class C extends B<num> {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.expect
index 985b00d..a85121e 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::B::T* x = null;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::B::T% x = throw "";
+  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 self::B<core::num*> {
-  synthetic constructor •() → self::C*
+class C extends self::B<core::num> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.modular.expect
index 985b00d..a85121e 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::B::T* x = null;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::B::T% x = throw "";
+  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 self::B<core::num*> {
-  synthetic constructor •() → self::C*
+class C extends self::B<core::num> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.outline.expect
index 07175fc..c34aba7 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::B::T* x;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::B::T% x;
+  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 self::B<core::num*> {
-  synthetic constructor •() → self::C*
+class C extends self::B<core::num> {
+  synthetic constructor •() → self::C
     ;
 }
 static method main() → void
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.transformed.expect
index 985b00d..a85121e 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_abstract_generic_covariant.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::B::T* x = null;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::B::T% x = throw "";
+  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 self::B<core::num*> {
-  synthetic constructor •() → self::C*
+class C extends self::B<core::num> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart
index de25e30..f3c119d 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart
@@ -1,16 +1,16 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 class B {
-  covariant num x;
+  covariant num x = 0;
 }
 
 class C {
-  int x;
+  int x = 0;
 }
 
 class D extends C implements B {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.textual_outline.expect
index 84550a3..e4c7222 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.textual_outline.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
 library test;
 
 class B {
-  covariant num x;
+  covariant num x = 0;
 }
 
 class C {
-  int x;
+  int x = 0;
 }
 
 class D extends C implements B {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.textual_outline_modelled.expect
index 84550a3..e4c7222 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.textual_outline_modelled.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
 library test;
 
 class B {
-  covariant num x;
+  covariant num x = 0;
 }
 
 class C {
-  int x;
+  int x = 0;
 }
 
 class D extends C implements B {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.expect
index ec01d37..f775d70 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -6,7 +6,7 @@
 // class D extends C implements B {}
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart:13:7: Context: The field 'C.x' has type 'int', which does not match the corresponding type, 'num', in the overridden setter, 'D.x'.
-//   int x;
+//   int x = 0;
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart:16:7: Context: This is the overridden method ('x').
 // class D extends C implements B {}
@@ -16,42 +16,22 @@
 import "dart:core" as core;
 
 class B extends core::Object {
-  covariant-by-declaration field core::num* x = null;
-  synthetic constructor •() → self::B*
+  covariant-by-declaration field core::num x = 0;
+  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 {
-  field core::int* x = null;
-  synthetic constructor •() → self::C*
+  field core::int x = 0;
+  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
 }
 class D extends self::C implements self::B {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  forwarding-stub set x(covariant-by-declaration core::num* value) → void
-    return super.{self::C::x} = value as core::int*;
+  forwarding-stub set x(covariant-by-declaration core::num value) → void
+    return super.{self::C::x} = value as core::int;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.modular.expect
index ec01d37..f775d70 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -6,7 +6,7 @@
 // class D extends C implements B {}
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart:13:7: Context: The field 'C.x' has type 'int', which does not match the corresponding type, 'num', in the overridden setter, 'D.x'.
-//   int x;
+//   int x = 0;
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart:16:7: Context: This is the overridden method ('x').
 // class D extends C implements B {}
@@ -16,42 +16,22 @@
 import "dart:core" as core;
 
 class B extends core::Object {
-  covariant-by-declaration field core::num* x = null;
-  synthetic constructor •() → self::B*
+  covariant-by-declaration field core::num x = 0;
+  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 {
-  field core::int* x = null;
-  synthetic constructor •() → self::C*
+  field core::int x = 0;
+  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
 }
 class D extends self::C implements self::B {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  forwarding-stub set x(covariant-by-declaration core::num* value) → void
-    return super.{self::C::x} = value as core::int*;
+  forwarding-stub set x(covariant-by-declaration core::num value) → void
+    return super.{self::C::x} = value as core::int;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.outline.expect
index 64b0707..9aebbf6 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -6,7 +6,7 @@
 // class D extends C implements B {}
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart:13:7: Context: The field 'C.x' has type 'int', which does not match the corresponding type, 'num', in the overridden setter, 'D.x'.
-//   int x;
+//   int x = 0;
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart:16:7: Context: This is the overridden method ('x').
 // class D extends C implements B {}
@@ -16,40 +16,20 @@
 import "dart:core" as core;
 
 class B extends core::Object {
-  covariant-by-declaration field core::num* x;
-  synthetic constructor •() → self::B*
+  covariant-by-declaration field core::num x;
+  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 {
-  field core::int* x;
-  synthetic constructor •() → self::C*
+  field core::int x;
+  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
 }
 class D extends self::C implements self::B {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
-  forwarding-stub set x(covariant-by-declaration core::num* value) → void
-    return super.{self::C::x} = value as core::int*;
+  forwarding-stub set x(covariant-by-declaration core::num value) → void
+    return super.{self::C::x} = value as core::int;
 }
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.transformed.expect
index ec01d37..f775d70 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -6,7 +6,7 @@
 // class D extends C implements B {}
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart:13:7: Context: The field 'C.x' has type 'int', which does not match the corresponding type, 'num', in the overridden setter, 'D.x'.
-//   int x;
+//   int x = 0;
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart:16:7: Context: This is the overridden method ('x').
 // class D extends C implements B {}
@@ -16,42 +16,22 @@
 import "dart:core" as core;
 
 class B extends core::Object {
-  covariant-by-declaration field core::num* x = null;
-  synthetic constructor •() → self::B*
+  covariant-by-declaration field core::num x = 0;
+  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 {
-  field core::int* x = null;
-  synthetic constructor •() → self::C*
+  field core::int x = 0;
+  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
 }
 class D extends self::C implements self::B {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  forwarding-stub set x(covariant-by-declaration core::num* value) → void
-    return super.{self::C::x} = value as core::int*;
+  forwarding-stub set x(covariant-by-declaration core::num value) → void
+    return super.{self::C::x} = value as core::int;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart
index e3b91c9..fcb5d83 100644
--- a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.textual_outline.expect
index cc05471..f3282d1 100644
--- a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 var topLevel;
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.textual_outline_modelled.expect
index 755828d..5b85754 100644
--- a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C {
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.expect
index 05fc7de..42e8443 100644
--- a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   static field dynamic staticField = null;
   field dynamic instanceField = null;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   static set staticSetter(dynamic x) → void {}
@@ -34,16 +34,6 @@
       localVar = #t7;
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 dynamic topLevel;
 static set topLevelSetter(dynamic x) → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.modular.expect
index 05fc7de..42e8443 100644
--- a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   static field dynamic staticField = null;
   field dynamic instanceField = null;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   static set staticSetter(dynamic x) → void {}
@@ -34,16 +34,6 @@
       localVar = #t7;
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 dynamic topLevel;
 static set topLevelSetter(dynamic x) → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.outline.expect
index 5e578da..06bd1ff 100644
--- a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   static field dynamic staticField;
   field dynamic instanceField;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
   static set staticSetter(dynamic x) → void
     ;
@@ -13,16 +13,6 @@
     ;
   method test() → 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 field dynamic topLevel;
 static set topLevelSetter(dynamic x) → void
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.transformed.expect
index db63c41..14be1ca 100644
--- a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class C extends core::Object {
   static field dynamic staticField = null;
   field dynamic instanceField = null;
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   static set staticSetter(dynamic x) → void {}
@@ -13,7 +13,7 @@
   method test() → void {
     dynamic localVar;
     {
-      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 #t1 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -22,7 +22,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 #t2 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -31,7 +31,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 #t3 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -40,7 +40,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 #t4 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -49,7 +49,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 #t5 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -58,7 +58,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 #t6 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -67,7 +67,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 #t7 = :sync-for-iterator.{core::Iterator::current}{dynamic};
         {
@@ -76,16 +76,6 @@
       }
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 dynamic topLevel;
 static set topLevelSetter(dynamic x) → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart
index d082c68..b2204f1 100644
--- a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart
@@ -1,20 +1,20 @@
 // 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
+
 /*@testedFeatures=checks*/
 library test;
 
 class B<T> {
-  T x;
-  T y;
+  T x = throw '';
+  T y = throw '';
 }
 
 // This class inherits genericImpl annotations from its superclass, but doesn't
 // have any members marked genericInterface because the inferred types of x and
 // y do not depend on the type parameter T.
 abstract class C<T> implements B<num> {
-  var x;
+  var x = throw '';
   get y;
   set y(value);
 }
@@ -22,7 +22,7 @@
 // This class also has members marked genericInterface, since the inferred types
 // of x and y *do* depend on the type parameter T.
 abstract class D<T> implements B<T> {
-  var x;
+  var x = throw '';
   get y;
   set y(value);
 }
diff --git a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.textual_outline.expect
index 672a0499..8fa0688 100644
--- a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.textual_outline.expect
@@ -1,19 +1,18 @@
-// @dart = 2.9
 library test;
 
 class B<T> {
-  T x;
-  T y;
+  T x = throw '';
+  T y = throw '';
 }
 
 abstract class C<T> implements B<num> {
-  var x;
+  var x = throw '';
   get y;
   set y(value);
 }
 
 abstract class D<T> implements B<T> {
-  var x;
+  var x = throw '';
   get y;
   set y(value);
 }
diff --git a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.textual_outline_modelled.expect
index 4497bc5..07f880e 100644
--- a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.textual_outline_modelled.expect
@@ -1,21 +1,20 @@
-// @dart = 2.9
 library test;
 
 abstract class C<T> implements B<num> {
   get y;
   set y(value);
-  var x;
+  var x = throw '';
 }
 
 abstract class D<T> implements B<T> {
   get y;
   set y(value);
-  var x;
+  var x = throw '';
 }
 
 class B<T> {
-  T x;
-  T y;
+  T x = throw '';
+  T y = throw '';
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.expect
index 7bfe030..96749f6 100644
--- a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.expect
@@ -1,58 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::B::T* x = null;
-  covariant-by-class field self::B::T* y = null;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::B::T% x = throw "";
+  covariant-by-class field self::B::T% y = throw "";
+  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
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object implements self::B<core::num*> {
-  covariant-by-class field core::num* x = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object implements self::B<core::num> {
+  covariant-by-class field core::num x = throw "";
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  abstract get y() → core::num*;
-  abstract set y(covariant-by-class core::num* 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
+  abstract get y() → core::num;
+  abstract set y(covariant-by-class core::num value) → void;
 }
-abstract class D<T extends core::Object* = dynamic> extends core::Object implements self::B<self::D::T*> {
-  covariant-by-class field self::D::T* x = null;
-  synthetic constructor •() → self::D<self::D::T*>*
+abstract class D<T extends core::Object? = dynamic> extends core::Object implements self::B<self::D::T%> {
+  covariant-by-class field self::D::T% x = throw "";
+  synthetic constructor •() → self::D<self::D::T%>
     : super core::Object::•()
     ;
-  abstract get y() → self::D::T*;
-  abstract set y(covariant-by-class self::D::T* 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
+  abstract get y() → self::D::T%;
+  abstract set y(covariant-by-class self::D::T% value) → void;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.modular.expect
index 7bfe030..96749f6 100644
--- a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.modular.expect
@@ -1,58 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::B::T* x = null;
-  covariant-by-class field self::B::T* y = null;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::B::T% x = throw "";
+  covariant-by-class field self::B::T% y = throw "";
+  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
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object implements self::B<core::num*> {
-  covariant-by-class field core::num* x = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object implements self::B<core::num> {
+  covariant-by-class field core::num x = throw "";
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  abstract get y() → core::num*;
-  abstract set y(covariant-by-class core::num* 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
+  abstract get y() → core::num;
+  abstract set y(covariant-by-class core::num value) → void;
 }
-abstract class D<T extends core::Object* = dynamic> extends core::Object implements self::B<self::D::T*> {
-  covariant-by-class field self::D::T* x = null;
-  synthetic constructor •() → self::D<self::D::T*>*
+abstract class D<T extends core::Object? = dynamic> extends core::Object implements self::B<self::D::T%> {
+  covariant-by-class field self::D::T% x = throw "";
+  synthetic constructor •() → self::D<self::D::T%>
     : super core::Object::•()
     ;
-  abstract get y() → self::D::T*;
-  abstract set y(covariant-by-class self::D::T* 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
+  abstract get y() → self::D::T%;
+  abstract set y(covariant-by-class self::D::T% value) → void;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.outline.expect
index 6e07a6c..29cc1f7 100644
--- a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.outline.expect
@@ -1,56 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::B::T* x;
-  covariant-by-class field self::B::T* y;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::B::T% x;
+  covariant-by-class field self::B::T% y;
+  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
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object implements self::B<core::num*> {
-  covariant-by-class field core::num* x;
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object implements self::B<core::num> {
+  covariant-by-class field core::num x;
+  synthetic constructor •() → self::C<self::C::T%>
     ;
-  abstract get y() → core::num*;
-  abstract set y(covariant-by-class core::num* 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
+  abstract get y() → core::num;
+  abstract set y(covariant-by-class core::num value) → void;
 }
-abstract class D<T extends core::Object* = dynamic> extends core::Object implements self::B<self::D::T*> {
-  covariant-by-class field self::D::T* x;
-  synthetic constructor •() → self::D<self::D::T*>*
+abstract class D<T extends core::Object? = dynamic> extends core::Object implements self::B<self::D::T%> {
+  covariant-by-class field self::D::T% x;
+  synthetic constructor •() → self::D<self::D::T%>
     ;
-  abstract get y() → self::D::T*;
-  abstract set y(covariant-by-class self::D::T* 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
+  abstract get y() → self::D::T%;
+  abstract set y(covariant-by-class self::D::T% value) → void;
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.transformed.expect
index 7bfe030..96749f6 100644
--- a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.weak.transformed.expect
@@ -1,58 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class B<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::B::T* x = null;
-  covariant-by-class field self::B::T* y = null;
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::B::T% x = throw "";
+  covariant-by-class field self::B::T% y = throw "";
+  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
 }
-abstract class C<T extends core::Object* = dynamic> extends core::Object implements self::B<core::num*> {
-  covariant-by-class field core::num* x = null;
-  synthetic constructor •() → self::C<self::C::T*>*
+abstract class C<T extends core::Object? = dynamic> extends core::Object implements self::B<core::num> {
+  covariant-by-class field core::num x = throw "";
+  synthetic constructor •() → self::C<self::C::T%>
     : super core::Object::•()
     ;
-  abstract get y() → core::num*;
-  abstract set y(covariant-by-class core::num* 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
+  abstract get y() → core::num;
+  abstract set y(covariant-by-class core::num value) → void;
 }
-abstract class D<T extends core::Object* = dynamic> extends core::Object implements self::B<self::D::T*> {
-  covariant-by-class field self::D::T* x = null;
-  synthetic constructor •() → self::D<self::D::T*>*
+abstract class D<T extends core::Object? = dynamic> extends core::Object implements self::B<self::D::T%> {
+  covariant-by-class field self::D::T% x = throw "";
+  synthetic constructor •() → self::D<self::D::T%>
     : super core::Object::•()
     ;
-  abstract get y() → self::D::T*;
-  abstract set y(covariant-by-class self::D::T* 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
+  abstract get y() → self::D::T%;
+  abstract set y(covariant-by-class self::D::T% value) → void;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/implicit_downcast_field.dart b/pkg/front_end/testcases/runtime_checks_new/implicit_downcast_field.dart
index 2a1a47e..0da29312c 100644
--- a/pkg/front_end/testcases/runtime_checks_new/implicit_downcast_field.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/implicit_downcast_field.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart
index c13bc20..bfda104 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.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
+
 /*@testedFeatures=checks*/
 library test;
 
@@ -44,8 +44,8 @@
 }
 
 class M {
-  int x;
-  int y;
+  int x = 0;
+  int y = 0;
 }
 
 class C = B with M implements I<int>;
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline.expect
index 0765c2b..80b1933 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 void expectTypeError(void callback()) {}
@@ -19,8 +18,8 @@
 }
 
 class M {
-  int x;
-  int y;
+  int x = 0;
+  int y = 0;
 }
 
 class C = B with M implements I<int>;
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline_modelled.expect
index 5cec6be..204e623 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class I<T> {
@@ -18,8 +17,8 @@
 class C = B with M implements I<int>;
 
 class M {
-  int x;
-  int y;
+  int x = 0;
+  int y = 0;
 }
 
 void expect(Object value, Object expected) {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.expect
index 99c30ab..4313fc3 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -7,7 +7,7 @@
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart:48:7: Context: The field 'M.y' has type 'int', which does not match the corresponding type, 'Object', in the overridden setter, 'I.y'.
 //  - 'Object' is from 'dart:core'.
-//   int y;
+//   int y = 0;
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart:43:12: Context: This is the overridden method ('y').
 //   void set y(covariant Object value);
@@ -17,105 +17,75 @@
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  get x() → core::int* {
+  get x() → core::int {
     throw "Should not be reached";
   }
-  set x(core::int* value) → void {
+  set x(core::int value) → void {
     throw "Should not be reached";
   }
-  get y() → core::int* {
+  get y() → core::int {
     throw "Should not be reached";
   }
-  set y(core::int* value) → void {
+  set y(core::int value) → void {
     throw "Should not be reached";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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%>
     : super core::Object::•()
     ;
-  abstract get x() → self::I::T*;
-  abstract set x(covariant-by-class self::I::T* value) → void;
-  abstract get y() → core::Object*;
-  abstract set y(covariant-by-declaration core::Object* 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
+  abstract get x() → self::I::T%;
+  abstract set x(covariant-by-class self::I::T% value) → void;
+  abstract get y() → core::Object;
+  abstract set y(covariant-by-declaration core::Object value) → void;
 }
 class M extends core::Object {
-  field core::int* x = null;
-  field core::int* y = null;
-  synthetic constructor •() → self::M*
+  field core::int x = 0;
+  field core::int y = 0;
+  synthetic constructor •() → self::M
     : 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::B with self::M implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C = self::B with self::M implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  mixin-super-stub get x() → core::int*
+  mixin-super-stub get x() → core::int
     return super.{self::M::x};
-  forwarding-stub set x(covariant-by-class core::int* value) → void
+  forwarding-stub set x(covariant-by-class core::int value) → void
     return super.{self::M::x} = value;
-  mixin-super-stub get y() → core::int*
+  mixin-super-stub get y() → core::int
     return super.{self::M::y};
-  forwarding-stub set y(covariant-by-declaration core::int* value) → void
+  forwarding-stub set y(covariant-by-declaration core::int value) → void
     return super.{self::M::y} = value;
 }
-static method expectTypeError(() →* void callback) → void {
+static method expectTypeError(() → void callback) → void {
   try {
-    callback(){() →* void};
+    callback(){() → void};
     throw "Expected TypeError, did not occur";
   }
-  on core::TypeError* catch(no-exception-var) {
+  on core::TypeError catch(no-exception-var) {
   }
 }
-static method expect(core::Object* value, core::Object* expected) → void {
-  if(!(value =={core::Object::==}{(core::Object*) →* core::bool*} expected)) {
+static method expect(core::Object value, core::Object expected) → void {
+  if(!(value =={core::Object::==}{(core::Object) → core::bool} expected)) {
     throw "Expected ${expected}, got ${value}";
   }
 }
-static method test(self::I<core::Object*>* i) → void {
-  self::expectTypeError(() → Null {
+static method test(self::I<core::Object> i) → void {
+  self::expectTypeError(() → void {
     i.{self::I::x} = "hello";
   });
   i.{self::I::x} = 1;
-  self::expect(i.{self::I::x}{core::Object*}, 1);
-  self::expectTypeError(() → Null {
+  self::expect(i.{self::I::x}{core::Object}, 1);
+  self::expectTypeError(() → void {
     i.{self::I::y} = "hello";
   });
   i.{self::I::y} = 2;
-  self::expect(i.{self::I::y}{core::Object*}, 2);
+  self::expect(i.{self::I::y}{core::Object}, 2);
 }
 static method main() → void {
   self::test(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.modular.expect
index 99c30ab..4313fc3 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -7,7 +7,7 @@
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart:48:7: Context: The field 'M.y' has type 'int', which does not match the corresponding type, 'Object', in the overridden setter, 'I.y'.
 //  - 'Object' is from 'dart:core'.
-//   int y;
+//   int y = 0;
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart:43:12: Context: This is the overridden method ('y').
 //   void set y(covariant Object value);
@@ -17,105 +17,75 @@
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  get x() → core::int* {
+  get x() → core::int {
     throw "Should not be reached";
   }
-  set x(core::int* value) → void {
+  set x(core::int value) → void {
     throw "Should not be reached";
   }
-  get y() → core::int* {
+  get y() → core::int {
     throw "Should not be reached";
   }
-  set y(core::int* value) → void {
+  set y(core::int value) → void {
     throw "Should not be reached";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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%>
     : super core::Object::•()
     ;
-  abstract get x() → self::I::T*;
-  abstract set x(covariant-by-class self::I::T* value) → void;
-  abstract get y() → core::Object*;
-  abstract set y(covariant-by-declaration core::Object* 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
+  abstract get x() → self::I::T%;
+  abstract set x(covariant-by-class self::I::T% value) → void;
+  abstract get y() → core::Object;
+  abstract set y(covariant-by-declaration core::Object value) → void;
 }
 class M extends core::Object {
-  field core::int* x = null;
-  field core::int* y = null;
-  synthetic constructor •() → self::M*
+  field core::int x = 0;
+  field core::int y = 0;
+  synthetic constructor •() → self::M
     : 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::B with self::M implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C = self::B with self::M implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  mixin-super-stub get x() → core::int*
+  mixin-super-stub get x() → core::int
     return super.{self::M::x};
-  forwarding-stub set x(covariant-by-class core::int* value) → void
+  forwarding-stub set x(covariant-by-class core::int value) → void
     return super.{self::M::x} = value;
-  mixin-super-stub get y() → core::int*
+  mixin-super-stub get y() → core::int
     return super.{self::M::y};
-  forwarding-stub set y(covariant-by-declaration core::int* value) → void
+  forwarding-stub set y(covariant-by-declaration core::int value) → void
     return super.{self::M::y} = value;
 }
-static method expectTypeError(() →* void callback) → void {
+static method expectTypeError(() → void callback) → void {
   try {
-    callback(){() →* void};
+    callback(){() → void};
     throw "Expected TypeError, did not occur";
   }
-  on core::TypeError* catch(no-exception-var) {
+  on core::TypeError catch(no-exception-var) {
   }
 }
-static method expect(core::Object* value, core::Object* expected) → void {
-  if(!(value =={core::Object::==}{(core::Object*) →* core::bool*} expected)) {
+static method expect(core::Object value, core::Object expected) → void {
+  if(!(value =={core::Object::==}{(core::Object) → core::bool} expected)) {
     throw "Expected ${expected}, got ${value}";
   }
 }
-static method test(self::I<core::Object*>* i) → void {
-  self::expectTypeError(() → Null {
+static method test(self::I<core::Object> i) → void {
+  self::expectTypeError(() → void {
     i.{self::I::x} = "hello";
   });
   i.{self::I::x} = 1;
-  self::expect(i.{self::I::x}{core::Object*}, 1);
-  self::expectTypeError(() → Null {
+  self::expect(i.{self::I::x}{core::Object}, 1);
+  self::expectTypeError(() → void {
     i.{self::I::y} = "hello";
   });
   i.{self::I::y} = 2;
-  self::expect(i.{self::I::y}{core::Object*}, 2);
+  self::expect(i.{self::I::y}{core::Object}, 2);
 }
 static method main() → void {
   self::test(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.outline.expect
index 637dc58..2840136 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -7,7 +7,7 @@
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart:48:7: Context: The field 'M.y' has type 'int', which does not match the corresponding type, 'Object', in the overridden setter, 'I.y'.
 //  - 'Object' is from 'dart:core'.
-//   int y;
+//   int y = 0;
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart:43:12: Context: This is the overridden method ('y').
 //   void set y(covariant Object value);
@@ -17,79 +17,49 @@
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  get x() → core::int*
+  get x() → core::int
     ;
-  set x(core::int* value) → void
+  set x(core::int value) → void
     ;
-  get y() → core::int*
+  get y() → core::int
     ;
-  set y(core::int* value) → void
+  set y(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
 }
-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 get x() → self::I::T*;
-  abstract set x(covariant-by-class self::I::T* value) → void;
-  abstract get y() → core::Object*;
-  abstract set y(covariant-by-declaration core::Object* 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
+  abstract get x() → self::I::T%;
+  abstract set x(covariant-by-class self::I::T% value) → void;
+  abstract get y() → core::Object;
+  abstract set y(covariant-by-declaration core::Object value) → void;
 }
 class M extends core::Object {
-  field core::int* x;
-  field core::int* y;
-  synthetic constructor •() → self::M*
+  field core::int x;
+  field core::int y;
+  synthetic constructor •() → self::M
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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::B with self::M implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C = self::B with self::M implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  mixin-super-stub get x() → core::int*
+  mixin-super-stub get x() → core::int
     return super.{self::M::x};
-  forwarding-stub set x(covariant-by-class core::int* value) → void
+  forwarding-stub set x(covariant-by-class core::int value) → void
     return super.{self::M::x} = value;
-  mixin-super-stub get y() → core::int*
+  mixin-super-stub get y() → core::int
     return super.{self::M::y};
-  forwarding-stub set y(covariant-by-declaration core::int* value) → void
+  forwarding-stub set y(covariant-by-declaration core::int value) → void
     return super.{self::M::y} = value;
 }
-static method expectTypeError(() →* void callback) → void
+static method expectTypeError(() → void callback) → void
   ;
-static method expect(core::Object* value, core::Object* expected) → void
+static method expect(core::Object value, core::Object expected) → void
   ;
-static method test(self::I<core::Object*>* i) → void
+static method test(self::I<core::Object> i) → void
   ;
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.transformed.expect
index b49f3d7..40e6994 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -7,7 +7,7 @@
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart:48:7: Context: The field 'M.y' has type 'int', which does not match the corresponding type, 'Object', in the overridden setter, 'I.y'.
 //  - 'Object' is from 'dart:core'.
-//   int y;
+//   int y = 0;
 //       ^
 // pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart:43:12: Context: This is the overridden method ('y').
 //   void set y(covariant Object value);
@@ -17,99 +17,69 @@
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  get x() → core::int* {
+  get x() → core::int {
     throw "Should not be reached";
   }
-  set x(core::int* value) → void {
+  set x(core::int value) → void {
     throw "Should not be reached";
   }
-  get y() → core::int* {
+  get y() → core::int {
     throw "Should not be reached";
   }
-  set y(core::int* value) → void {
+  set y(core::int value) → void {
     throw "Should not be reached";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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%>
     : super core::Object::•()
     ;
-  abstract get x() → self::I::T*;
-  abstract set x(covariant-by-class self::I::T* value) → void;
-  abstract get y() → core::Object*;
-  abstract set y(covariant-by-declaration core::Object* 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
+  abstract get x() → self::I::T%;
+  abstract set x(covariant-by-class self::I::T% value) → void;
+  abstract get y() → core::Object;
+  abstract set y(covariant-by-declaration core::Object value) → void;
 }
 class M extends core::Object {
-  field core::int* x = null;
-  field core::int* y = null;
-  synthetic constructor •() → self::M*
+  field core::int x = 0;
+  field core::int y = 0;
+  synthetic constructor •() → self::M
     : 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::B implements self::I<core::int*>, self::M /*isEliminatedMixin*/  {
-  covariant-by-class field core::int* x = null;
-  covariant-by-declaration field core::int* y = null;
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::int>, self::M /*isEliminatedMixin*/  {
+  covariant-by-class field core::int x = 0;
+  covariant-by-declaration field core::int y = 0;
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
-static method expectTypeError(() →* void callback) → void {
+static method expectTypeError(() → void callback) → void {
   try {
-    callback(){() →* void};
+    callback(){() → void};
     throw "Expected TypeError, did not occur";
   }
-  on core::TypeError* catch(no-exception-var) {
+  on core::TypeError catch(no-exception-var) {
   }
 }
-static method expect(core::Object* value, core::Object* expected) → void {
-  if(!(value =={core::Object::==}{(core::Object*) →* core::bool*} expected)) {
+static method expect(core::Object value, core::Object expected) → void {
+  if(!(value =={core::Object::==}{(core::Object) → core::bool} expected)) {
     throw "Expected ${expected}, got ${value}";
   }
 }
-static method test(self::I<core::Object*>* i) → void {
-  self::expectTypeError(() → Null {
+static method test(self::I<core::Object> i) → void {
+  self::expectTypeError(() → void {
     i.{self::I::x} = "hello";
   });
   i.{self::I::x} = 1;
-  self::expect(i.{self::I::x}{core::Object*}, 1);
-  self::expectTypeError(() → Null {
+  self::expect(i.{self::I::x}{core::Object}, 1);
+  self::expectTypeError(() → void {
     i.{self::I::y} = "hello";
   });
   i.{self::I::y} = 2;
-  self::expect(i.{self::I::y}{core::Object*}, 2);
+  self::expect(i.{self::I::y}{core::Object}, 2);
 }
 static method main() → void {
   self::test(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart
index 479bc2b..574153f 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline.expect
index c5e0532..7b50e59 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 void expectTypeError(void callback()) {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline_modelled.expect
index fe4e746..7bcde01 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class I<T> {
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.expect
index 83a8031..69135ff 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,113 +18,83 @@
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  get x() → core::int* {
+  get x() → core::int {
     throw "Should not be reached";
   }
-  set x(core::int* value) → void {
+  set x(core::int value) → void {
     throw "Should not be reached";
   }
-  get y() → core::int* {
+  get y() → core::int {
     throw "Should not be reached";
   }
-  set y(core::int* value) → void {
+  set y(core::int value) → void {
     throw "Should not be reached";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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%>
     : super core::Object::•()
     ;
-  abstract get x() → self::I::T*;
-  abstract set x(covariant-by-class self::I::T* value) → void;
-  abstract get y() → core::Object*;
-  abstract set y(covariant-by-declaration core::Object* 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
+  abstract get x() → self::I::T%;
+  abstract set x(covariant-by-class self::I::T% value) → void;
+  abstract get y() → core::Object;
+  abstract set y(covariant-by-declaration core::Object value) → void;
 }
 class M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     : super core::Object::•()
     ;
-  get x() → core::int*
+  get x() → core::int
     return 1;
-  set x(core::int* value) → void {
+  set x(core::int value) → void {
     self::expect(value, 2);
   }
-  get y() → core::int*
+  get y() → core::int
     return 3;
-  set y(core::int* value) → void {
+  set y(core::int value) → void {
     self::expect(value, 4);
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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::B with self::M implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C = self::B with self::M implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  mixin-super-stub get x() → core::int*
+  mixin-super-stub get x() → core::int
     return super.{self::M::x};
-  forwarding-stub set x(covariant-by-class core::int* value) → void
+  forwarding-stub set x(covariant-by-class core::int value) → void
     return super.{self::M::x} = value;
-  mixin-super-stub get y() → core::int*
+  mixin-super-stub get y() → core::int
     return super.{self::M::y};
-  forwarding-stub set y(covariant-by-declaration core::int* value) → void
+  forwarding-stub set y(covariant-by-declaration core::int value) → void
     return super.{self::M::y} = value;
 }
-static method expectTypeError(() →* void callback) → void {
+static method expectTypeError(() → void callback) → void {
   try {
-    callback(){() →* void};
+    callback(){() → void};
     throw "Expected TypeError, did not occur";
   }
-  on core::TypeError* catch(no-exception-var) {
+  on core::TypeError catch(no-exception-var) {
   }
 }
-static method expect(core::Object* value, core::Object* expected) → void {
-  if(!(value =={core::Object::==}{(core::Object*) →* core::bool*} expected)) {
+static method expect(core::Object value, core::Object expected) → void {
+  if(!(value =={core::Object::==}{(core::Object) → core::bool} expected)) {
     throw "Expected ${expected}, got ${value}";
   }
 }
-static method test(self::I<core::Object*>* i) → void {
-  self::expectTypeError(() → Null {
+static method test(self::I<core::Object> i) → void {
+  self::expectTypeError(() → void {
     i.{self::I::x} = "hello";
   });
   i.{self::I::x} = 2;
-  self::expect(i.{self::I::x}{core::Object*}, 1);
-  self::expectTypeError(() → Null {
+  self::expect(i.{self::I::x}{core::Object}, 1);
+  self::expectTypeError(() → void {
     i.{self::I::y} = "hello";
   });
   i.{self::I::y} = 4;
-  self::expect(i.{self::I::y}{core::Object*}, 3);
+  self::expect(i.{self::I::y}{core::Object}, 3);
 }
 static method main() → void {
   self::test(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.modular.expect
index 83a8031..69135ff 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,113 +18,83 @@
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  get x() → core::int* {
+  get x() → core::int {
     throw "Should not be reached";
   }
-  set x(core::int* value) → void {
+  set x(core::int value) → void {
     throw "Should not be reached";
   }
-  get y() → core::int* {
+  get y() → core::int {
     throw "Should not be reached";
   }
-  set y(core::int* value) → void {
+  set y(core::int value) → void {
     throw "Should not be reached";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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%>
     : super core::Object::•()
     ;
-  abstract get x() → self::I::T*;
-  abstract set x(covariant-by-class self::I::T* value) → void;
-  abstract get y() → core::Object*;
-  abstract set y(covariant-by-declaration core::Object* 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
+  abstract get x() → self::I::T%;
+  abstract set x(covariant-by-class self::I::T% value) → void;
+  abstract get y() → core::Object;
+  abstract set y(covariant-by-declaration core::Object value) → void;
 }
 class M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     : super core::Object::•()
     ;
-  get x() → core::int*
+  get x() → core::int
     return 1;
-  set x(core::int* value) → void {
+  set x(core::int value) → void {
     self::expect(value, 2);
   }
-  get y() → core::int*
+  get y() → core::int
     return 3;
-  set y(core::int* value) → void {
+  set y(core::int value) → void {
     self::expect(value, 4);
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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::B with self::M implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C = self::B with self::M implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  mixin-super-stub get x() → core::int*
+  mixin-super-stub get x() → core::int
     return super.{self::M::x};
-  forwarding-stub set x(covariant-by-class core::int* value) → void
+  forwarding-stub set x(covariant-by-class core::int value) → void
     return super.{self::M::x} = value;
-  mixin-super-stub get y() → core::int*
+  mixin-super-stub get y() → core::int
     return super.{self::M::y};
-  forwarding-stub set y(covariant-by-declaration core::int* value) → void
+  forwarding-stub set y(covariant-by-declaration core::int value) → void
     return super.{self::M::y} = value;
 }
-static method expectTypeError(() →* void callback) → void {
+static method expectTypeError(() → void callback) → void {
   try {
-    callback(){() →* void};
+    callback(){() → void};
     throw "Expected TypeError, did not occur";
   }
-  on core::TypeError* catch(no-exception-var) {
+  on core::TypeError catch(no-exception-var) {
   }
 }
-static method expect(core::Object* value, core::Object* expected) → void {
-  if(!(value =={core::Object::==}{(core::Object*) →* core::bool*} expected)) {
+static method expect(core::Object value, core::Object expected) → void {
+  if(!(value =={core::Object::==}{(core::Object) → core::bool} expected)) {
     throw "Expected ${expected}, got ${value}";
   }
 }
-static method test(self::I<core::Object*>* i) → void {
-  self::expectTypeError(() → Null {
+static method test(self::I<core::Object> i) → void {
+  self::expectTypeError(() → void {
     i.{self::I::x} = "hello";
   });
   i.{self::I::x} = 2;
-  self::expect(i.{self::I::x}{core::Object*}, 1);
-  self::expectTypeError(() → Null {
+  self::expect(i.{self::I::x}{core::Object}, 1);
+  self::expectTypeError(() → void {
     i.{self::I::y} = "hello";
   });
   i.{self::I::y} = 4;
-  self::expect(i.{self::I::y}{core::Object*}, 3);
+  self::expect(i.{self::I::y}{core::Object}, 3);
 }
 static method main() → void {
   self::test(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.outline.expect
index 349493c..640d9af 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,85 +18,55 @@
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  get x() → core::int*
+  get x() → core::int
     ;
-  set x(core::int* value) → void
+  set x(core::int value) → void
     ;
-  get y() → core::int*
+  get y() → core::int
     ;
-  set y(core::int* value) → void
+  set y(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
 }
-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 get x() → self::I::T*;
-  abstract set x(covariant-by-class self::I::T* value) → void;
-  abstract get y() → core::Object*;
-  abstract set y(covariant-by-declaration core::Object* 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
+  abstract get x() → self::I::T%;
+  abstract set x(covariant-by-class self::I::T% value) → void;
+  abstract get y() → core::Object;
+  abstract set y(covariant-by-declaration core::Object value) → void;
 }
 class M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     ;
-  get x() → core::int*
+  get x() → core::int
     ;
-  set x(core::int* value) → void
+  set x(core::int value) → void
     ;
-  get y() → core::int*
+  get y() → core::int
     ;
-  set y(core::int* value) → void
+  set y(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
 }
-class C = self::B with self::M implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+class C = self::B with self::M implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  mixin-super-stub get x() → core::int*
+  mixin-super-stub get x() → core::int
     return super.{self::M::x};
-  forwarding-stub set x(covariant-by-class core::int* value) → void
+  forwarding-stub set x(covariant-by-class core::int value) → void
     return super.{self::M::x} = value;
-  mixin-super-stub get y() → core::int*
+  mixin-super-stub get y() → core::int
     return super.{self::M::y};
-  forwarding-stub set y(covariant-by-declaration core::int* value) → void
+  forwarding-stub set y(covariant-by-declaration core::int value) → void
     return super.{self::M::y} = value;
 }
-static method expectTypeError(() →* void callback) → void
+static method expectTypeError(() → void callback) → void
   ;
-static method expect(core::Object* value, core::Object* expected) → void
+static method expect(core::Object value, core::Object expected) → void
   ;
-static method test(self::I<core::Object*>* i) → void
+static method test(self::I<core::Object> i) → void
   ;
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.transformed.expect
index 894f787..fea9c96 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,115 +18,85 @@
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  get x() → core::int* {
+  get x() → core::int {
     throw "Should not be reached";
   }
-  set x(core::int* value) → void {
+  set x(core::int value) → void {
     throw "Should not be reached";
   }
-  get y() → core::int* {
+  get y() → core::int {
     throw "Should not be reached";
   }
-  set y(core::int* value) → void {
+  set y(core::int value) → void {
     throw "Should not be reached";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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%>
     : super core::Object::•()
     ;
-  abstract get x() → self::I::T*;
-  abstract set x(covariant-by-class self::I::T* value) → void;
-  abstract get y() → core::Object*;
-  abstract set y(covariant-by-declaration core::Object* 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
+  abstract get x() → self::I::T%;
+  abstract set x(covariant-by-class self::I::T% value) → void;
+  abstract get y() → core::Object;
+  abstract set y(covariant-by-declaration core::Object value) → void;
 }
 class M extends core::Object {
-  synthetic constructor •() → self::M*
+  synthetic constructor •() → self::M
     : super core::Object::•()
     ;
-  get x() → core::int*
+  get x() → core::int
     return 1;
-  set x(core::int* value) → void {
+  set x(core::int value) → void {
     self::expect(value, 2);
   }
-  get y() → core::int*
+  get y() → core::int
     return 3;
-  set y(core::int* value) → void {
+  set y(core::int value) → void {
     self::expect(value, 4);
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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::B implements self::I<core::int*>, self::M /*isEliminatedMixin*/  {
-  synthetic constructor •() → self::C*
+class C extends self::B implements self::I<core::int>, self::M /*isEliminatedMixin*/  {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  get x() → core::int*
+  get x() → core::int
     return 1;
-  set x(covariant-by-class core::int* value) → void {
+  set x(covariant-by-class core::int value) → void {
     self::expect(value, 2);
   }
-  get y() → core::int*
+  get y() → core::int
     return 3;
-  set y(covariant-by-declaration core::int* value) → void {
+  set y(covariant-by-declaration core::int value) → void {
     self::expect(value, 4);
   }
 }
-static method expectTypeError(() →* void callback) → void {
+static method expectTypeError(() → void callback) → void {
   try {
-    callback(){() →* void};
+    callback(){() → void};
     throw "Expected TypeError, did not occur";
   }
-  on core::TypeError* catch(no-exception-var) {
+  on core::TypeError catch(no-exception-var) {
   }
 }
-static method expect(core::Object* value, core::Object* expected) → void {
-  if(!(value =={core::Object::==}{(core::Object*) →* core::bool*} expected)) {
+static method expect(core::Object value, core::Object expected) → void {
+  if(!(value =={core::Object::==}{(core::Object) → core::bool} expected)) {
     throw "Expected ${expected}, got ${value}";
   }
 }
-static method test(self::I<core::Object*>* i) → void {
-  self::expectTypeError(() → Null {
+static method test(self::I<core::Object> i) → void {
+  self::expectTypeError(() → void {
     i.{self::I::x} = "hello";
   });
   i.{self::I::x} = 2;
-  self::expect(i.{self::I::x}{core::Object*}, 1);
-  self::expectTypeError(() → Null {
+  self::expect(i.{self::I::x}{core::Object}, 1);
+  self::expectTypeError(() → void {
     i.{self::I::y} = "hello";
   });
   i.{self::I::y} = 4;
-  self::expect(i.{self::I::y}{core::Object*}, 3);
+  self::expect(i.{self::I::y}{core::Object}, 3);
 }
 static method main() → void {
   self::test(new self::C::•());
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart
index 71c3912..a4fc889 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.textual_outline.expect
index 26c3afd..c474b44 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 void expectTypeError(void callback()) {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.textual_outline_modelled.expect
index 1b0c9b8..d49ed63 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class I {
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.expect
index 0fc6d13..a6fa707 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.expect
@@ -1,76 +1,56 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* x) → core::int* {
+  method f(core::int x) → core::int {
     self::expect(x, 1);
     return 2;
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     : super core::Object::•()
     ;
-  abstract method f(covariant-by-declaration core::Object* x) → 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
+  abstract method f(covariant-by-declaration core::Object x) → core::int;
 }
 class C extends self::B implements self::I {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-declaration core::Object* x) → core::int*
-    return super.{self::B::f}(x as core::int*);
+  forwarding-stub method f(covariant-by-declaration core::Object x) → core::int
+    return super.{self::B::f}(x as core::int);
 }
-static method expectTypeError(() →* void callback) → void {
+static method expectTypeError(() → void callback) → void {
   try {
-    callback(){() →* void};
+    callback(){() → void};
     throw "Expected TypeError, did not occur";
   }
-  on core::TypeError* catch(no-exception-var) {
+  on core::TypeError catch(no-exception-var) {
   }
 }
-static method expect(core::Object* value, core::Object* expected) → void {
-  if(!(value =={core::Object::==}{(core::Object*) →* core::bool*} expected)) {
+static method expect(core::Object value, core::Object expected) → void {
+  if(!(value =={core::Object::==}{(core::Object) → core::bool} expected)) {
     throw "Expected ${expected}, got ${value}";
   }
 }
-static method g(self::C* c) → void {
-  c.{self::C::f}("hello"){(core::Object*) →* core::int*};
+static method g(self::C c) → void {
+  c.{self::C::f}("hello"){(core::Object) → core::int};
 }
-static method test(self::C* c, self::I* i) → void {
-  self::expectTypeError(() → Null {
-    i.{self::I::f}("hello"){(core::Object*) →* core::int*};
+static method test(self::C c, self::I i) → void {
+  self::expectTypeError(() → void {
+    i.{self::I::f}("hello"){(core::Object) → core::int};
   });
-  self::expect(i.{self::I::f}(1){(core::Object*) →* core::int*}, 2);
-  self::expectTypeError(() → Null {
-    c.{self::C::f}("hello"){(core::Object*) →* core::int*};
+  self::expect(i.{self::I::f}(1){(core::Object) → core::int}, 2);
+  self::expectTypeError(() → void {
+    c.{self::C::f}("hello"){(core::Object) → core::int};
   });
-  self::expect(c.{self::C::f}(1){(core::Object*) →* core::int*}, 2);
+  self::expect(c.{self::C::f}(1){(core::Object) → core::int}, 2);
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•();
+  self::C c = new self::C::•();
   self::test(c, c);
 }
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.modular.expect
index 0fc6d13..a6fa707 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.modular.expect
@@ -1,76 +1,56 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* x) → core::int* {
+  method f(core::int x) → core::int {
     self::expect(x, 1);
     return 2;
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     : super core::Object::•()
     ;
-  abstract method f(covariant-by-declaration core::Object* x) → 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
+  abstract method f(covariant-by-declaration core::Object x) → core::int;
 }
 class C extends self::B implements self::I {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-declaration core::Object* x) → core::int*
-    return super.{self::B::f}(x as core::int*);
+  forwarding-stub method f(covariant-by-declaration core::Object x) → core::int
+    return super.{self::B::f}(x as core::int);
 }
-static method expectTypeError(() →* void callback) → void {
+static method expectTypeError(() → void callback) → void {
   try {
-    callback(){() →* void};
+    callback(){() → void};
     throw "Expected TypeError, did not occur";
   }
-  on core::TypeError* catch(no-exception-var) {
+  on core::TypeError catch(no-exception-var) {
   }
 }
-static method expect(core::Object* value, core::Object* expected) → void {
-  if(!(value =={core::Object::==}{(core::Object*) →* core::bool*} expected)) {
+static method expect(core::Object value, core::Object expected) → void {
+  if(!(value =={core::Object::==}{(core::Object) → core::bool} expected)) {
     throw "Expected ${expected}, got ${value}";
   }
 }
-static method g(self::C* c) → void {
-  c.{self::C::f}("hello"){(core::Object*) →* core::int*};
+static method g(self::C c) → void {
+  c.{self::C::f}("hello"){(core::Object) → core::int};
 }
-static method test(self::C* c, self::I* i) → void {
-  self::expectTypeError(() → Null {
-    i.{self::I::f}("hello"){(core::Object*) →* core::int*};
+static method test(self::C c, self::I i) → void {
+  self::expectTypeError(() → void {
+    i.{self::I::f}("hello"){(core::Object) → core::int};
   });
-  self::expect(i.{self::I::f}(1){(core::Object*) →* core::int*}, 2);
-  self::expectTypeError(() → Null {
-    c.{self::C::f}("hello"){(core::Object*) →* core::int*};
+  self::expect(i.{self::I::f}(1){(core::Object) → core::int}, 2);
+  self::expectTypeError(() → void {
+    c.{self::C::f}("hello"){(core::Object) → core::int};
   });
-  self::expect(c.{self::C::f}(1){(core::Object*) →* core::int*}, 2);
+  self::expect(c.{self::C::f}(1){(core::Object) → core::int}, 2);
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•();
+  self::C c = new self::C::•();
   self::test(c, c);
 }
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.outline.expect
index 7b52144..516c6bd 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.outline.expect
@@ -1,51 +1,31 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  method f(core::int* x) → core::int*
+  method f(core::int x) → 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
 }
 abstract class I extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     ;
-  abstract method f(covariant-by-declaration core::Object* x) → 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
+  abstract method f(covariant-by-declaration core::Object x) → core::int;
 }
 class C extends self::B implements self::I {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  forwarding-stub method f(covariant-by-declaration core::Object* x) → core::int*
-    return super.{self::B::f}(x as core::int*);
+  forwarding-stub method f(covariant-by-declaration core::Object x) → core::int
+    return super.{self::B::f}(x as core::int);
 }
-static method expectTypeError(() →* void callback) → void
+static method expectTypeError(() → void callback) → void
   ;
-static method expect(core::Object* value, core::Object* expected) → void
+static method expect(core::Object value, core::Object expected) → void
   ;
-static method g(self::C* c) → void
+static method g(self::C c) → void
   ;
-static method test(self::C* c, self::I* i) → void
+static method test(self::C c, self::I i) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.transformed.expect
index 0fc6d13..a6fa707 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.weak.transformed.expect
@@ -1,76 +1,56 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* x) → core::int* {
+  method f(core::int x) → core::int {
     self::expect(x, 1);
     return 2;
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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 extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     : super core::Object::•()
     ;
-  abstract method f(covariant-by-declaration core::Object* x) → 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
+  abstract method f(covariant-by-declaration core::Object x) → core::int;
 }
 class C extends self::B implements self::I {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-declaration core::Object* x) → core::int*
-    return super.{self::B::f}(x as core::int*);
+  forwarding-stub method f(covariant-by-declaration core::Object x) → core::int
+    return super.{self::B::f}(x as core::int);
 }
-static method expectTypeError(() →* void callback) → void {
+static method expectTypeError(() → void callback) → void {
   try {
-    callback(){() →* void};
+    callback(){() → void};
     throw "Expected TypeError, did not occur";
   }
-  on core::TypeError* catch(no-exception-var) {
+  on core::TypeError catch(no-exception-var) {
   }
 }
-static method expect(core::Object* value, core::Object* expected) → void {
-  if(!(value =={core::Object::==}{(core::Object*) →* core::bool*} expected)) {
+static method expect(core::Object value, core::Object expected) → void {
+  if(!(value =={core::Object::==}{(core::Object) → core::bool} expected)) {
     throw "Expected ${expected}, got ${value}";
   }
 }
-static method g(self::C* c) → void {
-  c.{self::C::f}("hello"){(core::Object*) →* core::int*};
+static method g(self::C c) → void {
+  c.{self::C::f}("hello"){(core::Object) → core::int};
 }
-static method test(self::C* c, self::I* i) → void {
-  self::expectTypeError(() → Null {
-    i.{self::I::f}("hello"){(core::Object*) →* core::int*};
+static method test(self::C c, self::I i) → void {
+  self::expectTypeError(() → void {
+    i.{self::I::f}("hello"){(core::Object) → core::int};
   });
-  self::expect(i.{self::I::f}(1){(core::Object*) →* core::int*}, 2);
-  self::expectTypeError(() → Null {
-    c.{self::C::f}("hello"){(core::Object*) →* core::int*};
+  self::expect(i.{self::I::f}(1){(core::Object) → core::int}, 2);
+  self::expectTypeError(() → void {
+    c.{self::C::f}("hello"){(core::Object) → core::int};
   });
-  self::expect(c.{self::C::f}(1){(core::Object*) →* core::int*}, 2);
+  self::expect(c.{self::C::f}(1){(core::Object) → core::int}, 2);
 }
 static method main() → dynamic {
-  self::C* c = new self::C::•();
+  self::C c = new self::C::•();
   self::test(c, c);
 }
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart
index f08c5bf..ef67155 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.textual_outline.expect
index c2382d9..83b6b0f 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class B {
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.textual_outline_modelled.expect
index aba7ead..90a097c 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class C extends B implements I<int> {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.expect
index 9aacb53..721f671 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* 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(core::int 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(covariant-by-class self::I::T* 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(covariant-by-class self::I::T% x, core::Object y) → void;
 }
-abstract class C extends self::B implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+abstract class C extends self::B implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x, core::Object* y) → void
-    return super.{self::B::f}(x, y as core::int*);
+  forwarding-stub method f(covariant-by-class core::int x, core::Object y) → void
+    return super.{self::B::f}(x, y as core::int);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.modular.expect
index 9aacb53..721f671 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.modular.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* 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(core::int 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(covariant-by-class self::I::T* 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(covariant-by-class self::I::T% x, core::Object y) → void;
 }
-abstract class C extends self::B implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+abstract class C extends self::B implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x, core::Object* y) → void
-    return super.{self::B::f}(x, y as core::int*);
+  forwarding-stub method f(covariant-by-class core::int x, core::Object y) → void
+    return super.{self::B::f}(x, y as core::int);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.outline.expect
index 97cd268..0780aea 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.outline.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  method f(core::int* x, core::int* y) → void
+  method f(core::int 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(covariant-by-class self::I::T* 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(covariant-by-class self::I::T% x, core::Object y) → void;
 }
-abstract class C extends self::B implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+abstract class C extends self::B implements self::I<core::int> {
+  synthetic constructor •() → self::C
     ;
-  forwarding-stub method f(covariant-by-class core::int* x, core::Object* y) → void
-    return super.{self::B::f}(x, y as core::int*);
+  forwarding-stub method f(covariant-by-class core::int x, core::Object y) → void
+    return super.{self::B::f}(x, y as core::int);
 }
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.transformed.expect
index 9aacb53..721f671 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.weak.transformed.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* 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(core::int 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(covariant-by-class self::I::T* 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(covariant-by-class self::I::T% x, core::Object y) → void;
 }
-abstract class C extends self::B implements self::I<core::int*> {
-  synthetic constructor •() → self::C*
+abstract class C extends self::B implements self::I<core::int> {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-class core::int* x, core::Object* y) → void
-    return super.{self::B::f}(x, y as core::int*);
+  forwarding-stub method f(covariant-by-class core::int x, core::Object y) → void
+    return super.{self::B::f}(x, y as core::int);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart
index 543f895..4d1e82d 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.textual_outline.expect
index 84472ae..ac08d82 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class B<T> {
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.textual_outline_modelled.expect
index bf8a304..22c5f69 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class C extends B<int> implements I {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.expect
index f0e4b8e..aeb82fe 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-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(covariant-by-class self::B::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
+  method f(covariant-by-class self::B::T% x, core::int y) → void {}
 }
 abstract class I extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     : super core::Object::•()
     ;
-  abstract method f(core::int* 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(core::int x, core::Object y) → void;
 }
-abstract class C extends self::B<core::int*> implements self::I {
-  synthetic constructor •() → self::C*
+abstract class C extends self::B<core::int> implements self::I {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  abstract forwarding-stub method f(covariant-by-class core::int* x, core::Object* y) → void;
+  abstract forwarding-stub method f(covariant-by-class core::int x, core::Object y) → void;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.modular.expect
index f0e4b8e..aeb82fe 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.modular.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-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(covariant-by-class self::B::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
+  method f(covariant-by-class self::B::T% x, core::int y) → void {}
 }
 abstract class I extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     : super core::Object::•()
     ;
-  abstract method f(core::int* 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(core::int x, core::Object y) → void;
 }
-abstract class C extends self::B<core::int*> implements self::I {
-  synthetic constructor •() → self::C*
+abstract class C extends self::B<core::int> implements self::I {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  abstract forwarding-stub method f(covariant-by-class core::int* x, core::Object* y) → void;
+  abstract forwarding-stub method f(covariant-by-class core::int x, core::Object y) → void;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.outline.expect
index 6ea1a07..5b96560 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.outline.expect
@@ -1,42 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-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(covariant-by-class self::B::T* x, core::int* y) → void
+  method f(covariant-by-class self::B::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 class I extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     ;
-  abstract method f(core::int* 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(core::int x, core::Object y) → void;
 }
-abstract class C extends self::B<core::int*> implements self::I {
-  synthetic constructor •() → self::C*
+abstract class C extends self::B<core::int> implements self::I {
+  synthetic constructor •() → self::C
     ;
-  abstract forwarding-stub method f(covariant-by-class core::int* x, core::Object* y) → void;
+  abstract forwarding-stub method f(covariant-by-class core::int x, core::Object y) → void;
 }
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.transformed.expect
index f0e4b8e..aeb82fe 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.weak.transformed.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-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(covariant-by-class self::B::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
+  method f(covariant-by-class self::B::T% x, core::int y) → void {}
 }
 abstract class I extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     : super core::Object::•()
     ;
-  abstract method f(core::int* 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(core::int x, core::Object y) → void;
 }
-abstract class C extends self::B<core::int*> implements self::I {
-  synthetic constructor •() → self::C*
+abstract class C extends self::B<core::int> implements self::I {
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  abstract forwarding-stub method f(covariant-by-class core::int* x, core::Object* y) → void;
+  abstract forwarding-stub method f(covariant-by-class core::int x, core::Object y) → void;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart
index a782521..57a9f99 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.textual_outline.expect
index 6905d9d..d453753 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class B {
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.textual_outline_modelled.expect
index 1eb2ff4..f722096 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class C extends B implements I {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.expect
index 8f7a060..821c346 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* 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(core::int x, core::int y) → void {}
 }
 abstract class I extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     : super core::Object::•()
     ;
-  abstract method f(covariant-by-declaration core::int* 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(covariant-by-declaration core::int x, core::Object y) → void;
 }
 abstract class C extends self::B implements self::I {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-declaration core::int* x, core::Object* y) → void
-    return super.{self::B::f}(x, y as core::int*);
+  forwarding-stub method f(covariant-by-declaration core::int x, core::Object y) → void
+    return super.{self::B::f}(x, y as core::int);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.modular.expect
index 8f7a060..821c346 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.modular.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* 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(core::int x, core::int y) → void {}
 }
 abstract class I extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     : super core::Object::•()
     ;
-  abstract method f(covariant-by-declaration core::int* 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(covariant-by-declaration core::int x, core::Object y) → void;
 }
 abstract class C extends self::B implements self::I {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-declaration core::int* x, core::Object* y) → void
-    return super.{self::B::f}(x, y as core::int*);
+  forwarding-stub method f(covariant-by-declaration core::int x, core::Object y) → void
+    return super.{self::B::f}(x, y as core::int);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.outline.expect
index b2910572..1f1becf 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.outline.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  method f(core::int* x, core::int* y) → void
+  method f(core::int 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 extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     ;
-  abstract method f(covariant-by-declaration core::int* 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(covariant-by-declaration core::int x, core::Object y) → void;
 }
 abstract class C extends self::B implements self::I {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  forwarding-stub method f(covariant-by-declaration core::int* x, core::Object* y) → void
-    return super.{self::B::f}(x, y as core::int*);
+  forwarding-stub method f(covariant-by-declaration core::int x, core::Object y) → void
+    return super.{self::B::f}(x, y as core::int);
 }
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.transformed.expect
index 8f7a060..821c346 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.weak.transformed.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(core::int* 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(core::int x, core::int y) → void {}
 }
 abstract class I extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     : super core::Object::•()
     ;
-  abstract method f(covariant-by-declaration core::int* 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(covariant-by-declaration core::int x, core::Object y) → void;
 }
 abstract class C extends self::B implements self::I {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  forwarding-stub method f(covariant-by-declaration core::int* x, core::Object* y) → void
-    return super.{self::B::f}(x, y as core::int*);
+  forwarding-stub method f(covariant-by-declaration core::int x, core::Object y) → void
+    return super.{self::B::f}(x, y as core::int);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart
index 7a96d67..3daf251 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.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
+
 /*@testedFeatures=checks*/
 library test;
 
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.textual_outline.expect
index b63fd0c..e101817 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class B {
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.textual_outline_modelled.expect
index 11118cd..5bade16 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 abstract class C extends B implements I {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.expect
index d4b9b44..d57d598 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(covariant-by-declaration core::int* 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(covariant-by-declaration core::int x, core::int y) → void {}
 }
 abstract class I extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     : super core::Object::•()
     ;
-  abstract method f(core::int* 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(core::int x, core::Object y) → void;
 }
 abstract class C extends self::B implements self::I {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  abstract forwarding-stub method f(covariant-by-declaration core::int* x, core::Object* y) → void;
+  abstract forwarding-stub method f(covariant-by-declaration core::int x, core::Object y) → void;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.modular.expect
index d4b9b44..d57d598 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.modular.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(covariant-by-declaration core::int* 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(covariant-by-declaration core::int x, core::int y) → void {}
 }
 abstract class I extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     : super core::Object::•()
     ;
-  abstract method f(core::int* 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(core::int x, core::Object y) → void;
 }
 abstract class C extends self::B implements self::I {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  abstract forwarding-stub method f(covariant-by-declaration core::int* x, core::Object* y) → void;
+  abstract forwarding-stub method f(covariant-by-declaration core::int x, core::Object y) → void;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.outline.expect
index 156233f..12160f9 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.outline.expect
@@ -1,42 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  method f(covariant-by-declaration core::int* x, core::int* y) → void
+  method f(covariant-by-declaration core::int 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 extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     ;
-  abstract method f(core::int* 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(core::int x, core::Object y) → void;
 }
 abstract class C extends self::B implements self::I {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  abstract forwarding-stub method f(covariant-by-declaration core::int* x, core::Object* y) → void;
+  abstract forwarding-stub method f(covariant-by-declaration core::int x, core::Object y) → void;
 }
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.transformed.expect
index d4b9b44..d57d598 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.weak.transformed.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method f(covariant-by-declaration core::int* 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(covariant-by-declaration core::int x, core::int y) → void {}
 }
 abstract class I extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     : super core::Object::•()
     ;
-  abstract method f(core::int* 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(core::int x, core::Object y) → void;
 }
 abstract class C extends self::B implements self::I {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  abstract forwarding-stub method f(covariant-by-declaration core::int* x, core::Object* y) → void;
+  abstract forwarding-stub method f(covariant-by-declaration core::int x, core::Object y) → void;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/set_literals/disambiguation_rule.dart b/pkg/front_end/testcases/set_literals/disambiguation_rule.dart
index eede9ad..09b3b86 100644
--- a/pkg/front_end/testcases/set_literals/disambiguation_rule.dart
+++ b/pkg/front_end/testcases/set_literals/disambiguation_rule.dart
@@ -1,7 +1,9 @@
 // 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:async' show FutureOr;
 
 import 'dart:collection' show LinkedHashMap, LinkedHashSet;
diff --git a/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.weak.expect b/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.weak.expect
index 358bace..a5d89cf 100644
--- a/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.weak.expect
+++ b/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.weak.expect
@@ -2,21 +2,21 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:13:28: Error: The set literal type 'Set<dynamic>' isn't of expected type 'LinkedHashSet<int>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:15:28: Error: The set literal type 'Set<dynamic>' isn't of expected type 'LinkedHashSet<int>'.
 //  - 'Set' is from 'dart:core'.
 //  - 'LinkedHashSet' is from 'dart:collection'.
 // Change the type of the set literal or the context in which it is used.
 //   LinkedHashSet<int> lhs = {};
 //                            ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:14:34: Error: The map literal type 'Map<dynamic, dynamic>' isn't of expected type 'LinkedHashMap<int, bool>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:16:34: Error: The map literal type 'Map<dynamic, dynamic>' isn't of expected type 'LinkedHashMap<int, bool>'.
 //  - 'Map' is from 'dart:core'.
 //  - 'LinkedHashMap' is from 'dart:collection'.
 // Change the type of the map literal or the context in which it is used.
 //   LinkedHashMap<int, bool> lhm = {};
 //                                  ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:32:46: Error: The set literal type 'Future<Set<dynamic>>' isn't of expected type 'Future<LinkedHashSet<int>>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:34:46: Error: The set literal type 'Future<Set<dynamic>>' isn't of expected type 'Future<LinkedHashSet<int>>'.
 //  - 'Future' is from 'dart:async'.
 //  - 'Set' is from 'dart:core'.
 //  - 'LinkedHashSet' is from 'dart:collection'.
@@ -24,7 +24,7 @@
 // Future<LinkedHashSet<int>> lhsfun() async => {};
 //                                              ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:33:52: Error: The map literal type 'Future<Map<dynamic, dynamic>>' isn't of expected type 'Future<LinkedHashMap<int, bool>>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:35:52: Error: The map literal type 'Future<Map<dynamic, dynamic>>' isn't of expected type 'Future<LinkedHashMap<int, bool>>'.
 //  - 'Future' is from 'dart:async'.
 //  - 'Map' is from 'dart:core'.
 //  - 'LinkedHashMap' is from 'dart:collection'.
@@ -32,13 +32,13 @@
 // Future<LinkedHashMap<int, bool>> lhmfun() async => {};
 //                                                    ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:38:43: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashSet<int>>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:40:43: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashSet<int>>'.
 //  - 'Set' is from 'dart:core'.
 //  - 'LinkedHashSet' is from 'dart:collection'.
 // FutureOr<LinkedHashSet<int>> lhsfun2() => {};
 //                                           ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:39:49: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashMap<int, bool>>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:41:49: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashMap<int, bool>>'.
 //  - 'Map' is from 'dart:core'.
 //  - 'LinkedHashMap' is from 'dart:collection'.
 // FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
@@ -60,7 +60,7 @@
   core::Iterable<core::int*>* i = block {
     final core::Set<core::int*>* #t2 = col::LinkedHashSet::•<core::int*>();
   } =>#t2;
-  col::LinkedHashSet<core::int*>* lhs = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:13:28: Error: The set literal type 'Set<dynamic>' isn't of expected type 'LinkedHashSet<int>'.
+  col::LinkedHashSet<core::int*>* lhs = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:15:28: Error: The set literal type 'Set<dynamic>' isn't of expected type 'LinkedHashSet<int>'.
  - 'Set' is from 'dart:core'.
  - 'LinkedHashSet' is from 'dart:collection'.
 Change the type of the set literal or the context in which it is used.
@@ -68,7 +68,7 @@
                            ^" in block {
     final core::Set<dynamic>* #t3 = col::LinkedHashSet::•<dynamic>();
   } =>#t3;
-  col::LinkedHashMap<core::int*, core::bool*>* lhm = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:14:34: Error: The map literal type 'Map<dynamic, dynamic>' isn't of expected type 'LinkedHashMap<int, bool>'.
+  col::LinkedHashMap<core::int*, core::bool*>* lhm = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:16:34: Error: The map literal type 'Map<dynamic, dynamic>' isn't of expected type 'LinkedHashMap<int, bool>'.
  - 'Map' is from 'dart:core'.
  - 'LinkedHashMap' is from 'dart:collection'.
 Change the type of the map literal or the context in which it is used.
@@ -96,7 +96,7 @@
     final core::Set<core::int*>* #t5 = col::LinkedHashSet::•<core::int*>();
   } =>#t5;
 static method lhsfun() → asy::Future<col::LinkedHashSet<core::int*>*>* async /* futureValueType= col::LinkedHashSet<core::int*>* */ 
-  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:32:46: Error: The set literal type 'Future<Set<dynamic>>' isn't of expected type 'Future<LinkedHashSet<int>>'.
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:34:46: Error: The set literal type 'Future<Set<dynamic>>' isn't of expected type 'Future<LinkedHashSet<int>>'.
  - 'Future' is from 'dart:async'.
  - 'Set' is from 'dart:core'.
  - 'LinkedHashSet' is from 'dart:collection'.
@@ -106,7 +106,7 @@
     final core::Set<dynamic>* #t6 = col::LinkedHashSet::•<dynamic>();
   } =>#t6;
 static method lhmfun() → asy::Future<col::LinkedHashMap<core::int*, core::bool*>*>* async /* futureValueType= col::LinkedHashMap<core::int*, core::bool*>* */ 
-  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:33:52: Error: The map literal type 'Future<Map<dynamic, dynamic>>' isn't of expected type 'Future<LinkedHashMap<int, bool>>'.
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:35:52: Error: The map literal type 'Future<Map<dynamic, dynamic>>' isn't of expected type 'Future<LinkedHashMap<int, bool>>'.
  - 'Future' is from 'dart:async'.
  - 'Map' is from 'dart:core'.
  - 'LinkedHashMap' is from 'dart:collection'.
@@ -124,7 +124,7 @@
     final core::Set<core::int*>* #t8 = col::LinkedHashSet::•<core::int*>();
   } =>#t8;
 static method lhsfun2() → FutureOr<col::LinkedHashSet<core::int*>*>*
-  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:38:43: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashSet<int>>'.
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:40:43: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashSet<int>>'.
  - 'Set' is from 'dart:core'.
  - 'LinkedHashSet' is from 'dart:collection'.
 FutureOr<LinkedHashSet<int>> lhsfun2() => {};
@@ -132,7 +132,7 @@
     final core::Set<dynamic>* #t9 = col::LinkedHashSet::•<dynamic>();
   } =>#t9) as{TypeError} FutureOr<col::LinkedHashSet<core::int*>*>*;
 static method lhmfun2() → FutureOr<col::LinkedHashMap<core::int*, core::bool*>*>*
-  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:39:49: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashMap<int, bool>>'.
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:41:49: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashMap<int, bool>>'.
  - 'Map' is from 'dart:core'.
  - 'LinkedHashMap' is from 'dart:collection'.
 FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
diff --git a/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.weak.modular.expect b/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.weak.modular.expect
index 358bace..a5d89cf 100644
--- a/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.weak.modular.expect
@@ -2,21 +2,21 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:13:28: Error: The set literal type 'Set<dynamic>' isn't of expected type 'LinkedHashSet<int>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:15:28: Error: The set literal type 'Set<dynamic>' isn't of expected type 'LinkedHashSet<int>'.
 //  - 'Set' is from 'dart:core'.
 //  - 'LinkedHashSet' is from 'dart:collection'.
 // Change the type of the set literal or the context in which it is used.
 //   LinkedHashSet<int> lhs = {};
 //                            ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:14:34: Error: The map literal type 'Map<dynamic, dynamic>' isn't of expected type 'LinkedHashMap<int, bool>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:16:34: Error: The map literal type 'Map<dynamic, dynamic>' isn't of expected type 'LinkedHashMap<int, bool>'.
 //  - 'Map' is from 'dart:core'.
 //  - 'LinkedHashMap' is from 'dart:collection'.
 // Change the type of the map literal or the context in which it is used.
 //   LinkedHashMap<int, bool> lhm = {};
 //                                  ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:32:46: Error: The set literal type 'Future<Set<dynamic>>' isn't of expected type 'Future<LinkedHashSet<int>>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:34:46: Error: The set literal type 'Future<Set<dynamic>>' isn't of expected type 'Future<LinkedHashSet<int>>'.
 //  - 'Future' is from 'dart:async'.
 //  - 'Set' is from 'dart:core'.
 //  - 'LinkedHashSet' is from 'dart:collection'.
@@ -24,7 +24,7 @@
 // Future<LinkedHashSet<int>> lhsfun() async => {};
 //                                              ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:33:52: Error: The map literal type 'Future<Map<dynamic, dynamic>>' isn't of expected type 'Future<LinkedHashMap<int, bool>>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:35:52: Error: The map literal type 'Future<Map<dynamic, dynamic>>' isn't of expected type 'Future<LinkedHashMap<int, bool>>'.
 //  - 'Future' is from 'dart:async'.
 //  - 'Map' is from 'dart:core'.
 //  - 'LinkedHashMap' is from 'dart:collection'.
@@ -32,13 +32,13 @@
 // Future<LinkedHashMap<int, bool>> lhmfun() async => {};
 //                                                    ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:38:43: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashSet<int>>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:40:43: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashSet<int>>'.
 //  - 'Set' is from 'dart:core'.
 //  - 'LinkedHashSet' is from 'dart:collection'.
 // FutureOr<LinkedHashSet<int>> lhsfun2() => {};
 //                                           ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:39:49: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashMap<int, bool>>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:41:49: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashMap<int, bool>>'.
 //  - 'Map' is from 'dart:core'.
 //  - 'LinkedHashMap' is from 'dart:collection'.
 // FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
@@ -60,7 +60,7 @@
   core::Iterable<core::int*>* i = block {
     final core::Set<core::int*>* #t2 = col::LinkedHashSet::•<core::int*>();
   } =>#t2;
-  col::LinkedHashSet<core::int*>* lhs = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:13:28: Error: The set literal type 'Set<dynamic>' isn't of expected type 'LinkedHashSet<int>'.
+  col::LinkedHashSet<core::int*>* lhs = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:15:28: Error: The set literal type 'Set<dynamic>' isn't of expected type 'LinkedHashSet<int>'.
  - 'Set' is from 'dart:core'.
  - 'LinkedHashSet' is from 'dart:collection'.
 Change the type of the set literal or the context in which it is used.
@@ -68,7 +68,7 @@
                            ^" in block {
     final core::Set<dynamic>* #t3 = col::LinkedHashSet::•<dynamic>();
   } =>#t3;
-  col::LinkedHashMap<core::int*, core::bool*>* lhm = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:14:34: Error: The map literal type 'Map<dynamic, dynamic>' isn't of expected type 'LinkedHashMap<int, bool>'.
+  col::LinkedHashMap<core::int*, core::bool*>* lhm = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:16:34: Error: The map literal type 'Map<dynamic, dynamic>' isn't of expected type 'LinkedHashMap<int, bool>'.
  - 'Map' is from 'dart:core'.
  - 'LinkedHashMap' is from 'dart:collection'.
 Change the type of the map literal or the context in which it is used.
@@ -96,7 +96,7 @@
     final core::Set<core::int*>* #t5 = col::LinkedHashSet::•<core::int*>();
   } =>#t5;
 static method lhsfun() → asy::Future<col::LinkedHashSet<core::int*>*>* async /* futureValueType= col::LinkedHashSet<core::int*>* */ 
-  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:32:46: Error: The set literal type 'Future<Set<dynamic>>' isn't of expected type 'Future<LinkedHashSet<int>>'.
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:34:46: Error: The set literal type 'Future<Set<dynamic>>' isn't of expected type 'Future<LinkedHashSet<int>>'.
  - 'Future' is from 'dart:async'.
  - 'Set' is from 'dart:core'.
  - 'LinkedHashSet' is from 'dart:collection'.
@@ -106,7 +106,7 @@
     final core::Set<dynamic>* #t6 = col::LinkedHashSet::•<dynamic>();
   } =>#t6;
 static method lhmfun() → asy::Future<col::LinkedHashMap<core::int*, core::bool*>*>* async /* futureValueType= col::LinkedHashMap<core::int*, core::bool*>* */ 
-  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:33:52: Error: The map literal type 'Future<Map<dynamic, dynamic>>' isn't of expected type 'Future<LinkedHashMap<int, bool>>'.
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:35:52: Error: The map literal type 'Future<Map<dynamic, dynamic>>' isn't of expected type 'Future<LinkedHashMap<int, bool>>'.
  - 'Future' is from 'dart:async'.
  - 'Map' is from 'dart:core'.
  - 'LinkedHashMap' is from 'dart:collection'.
@@ -124,7 +124,7 @@
     final core::Set<core::int*>* #t8 = col::LinkedHashSet::•<core::int*>();
   } =>#t8;
 static method lhsfun2() → FutureOr<col::LinkedHashSet<core::int*>*>*
-  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:38:43: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashSet<int>>'.
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:40:43: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashSet<int>>'.
  - 'Set' is from 'dart:core'.
  - 'LinkedHashSet' is from 'dart:collection'.
 FutureOr<LinkedHashSet<int>> lhsfun2() => {};
@@ -132,7 +132,7 @@
     final core::Set<dynamic>* #t9 = col::LinkedHashSet::•<dynamic>();
   } =>#t9) as{TypeError} FutureOr<col::LinkedHashSet<core::int*>*>*;
 static method lhmfun2() → FutureOr<col::LinkedHashMap<core::int*, core::bool*>*>*
-  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:39:49: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashMap<int, bool>>'.
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:41:49: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashMap<int, bool>>'.
  - 'Map' is from 'dart:core'.
  - 'LinkedHashMap' is from 'dart:collection'.
 FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
diff --git a/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.weak.transformed.expect b/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.weak.transformed.expect
index b7585e0..4e4dd22 100644
--- a/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.weak.transformed.expect
@@ -2,21 +2,21 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:13:28: Error: The set literal type 'Set<dynamic>' isn't of expected type 'LinkedHashSet<int>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:15:28: Error: The set literal type 'Set<dynamic>' isn't of expected type 'LinkedHashSet<int>'.
 //  - 'Set' is from 'dart:core'.
 //  - 'LinkedHashSet' is from 'dart:collection'.
 // Change the type of the set literal or the context in which it is used.
 //   LinkedHashSet<int> lhs = {};
 //                            ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:14:34: Error: The map literal type 'Map<dynamic, dynamic>' isn't of expected type 'LinkedHashMap<int, bool>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:16:34: Error: The map literal type 'Map<dynamic, dynamic>' isn't of expected type 'LinkedHashMap<int, bool>'.
 //  - 'Map' is from 'dart:core'.
 //  - 'LinkedHashMap' is from 'dart:collection'.
 // Change the type of the map literal or the context in which it is used.
 //   LinkedHashMap<int, bool> lhm = {};
 //                                  ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:32:46: Error: The set literal type 'Future<Set<dynamic>>' isn't of expected type 'Future<LinkedHashSet<int>>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:34:46: Error: The set literal type 'Future<Set<dynamic>>' isn't of expected type 'Future<LinkedHashSet<int>>'.
 //  - 'Future' is from 'dart:async'.
 //  - 'Set' is from 'dart:core'.
 //  - 'LinkedHashSet' is from 'dart:collection'.
@@ -24,7 +24,7 @@
 // Future<LinkedHashSet<int>> lhsfun() async => {};
 //                                              ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:33:52: Error: The map literal type 'Future<Map<dynamic, dynamic>>' isn't of expected type 'Future<LinkedHashMap<int, bool>>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:35:52: Error: The map literal type 'Future<Map<dynamic, dynamic>>' isn't of expected type 'Future<LinkedHashMap<int, bool>>'.
 //  - 'Future' is from 'dart:async'.
 //  - 'Map' is from 'dart:core'.
 //  - 'LinkedHashMap' is from 'dart:collection'.
@@ -32,13 +32,13 @@
 // Future<LinkedHashMap<int, bool>> lhmfun() async => {};
 //                                                    ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:38:43: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashSet<int>>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:40:43: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashSet<int>>'.
 //  - 'Set' is from 'dart:core'.
 //  - 'LinkedHashSet' is from 'dart:collection'.
 // FutureOr<LinkedHashSet<int>> lhsfun2() => {};
 //                                           ^
 //
-// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:39:49: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashMap<int, bool>>'.
+// pkg/front_end/testcases/set_literals/disambiguation_rule.dart:41:49: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashMap<int, bool>>'.
 //  - 'Map' is from 'dart:core'.
 //  - 'LinkedHashMap' is from 'dart:collection'.
 // FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
@@ -73,7 +73,7 @@
         core::Iterable<core::int*>* i = block {
           final core::Set<core::int*>* #t2 = new col::_CompactLinkedHashSet::•<core::int*>();
         } =>#t2;
-        col::LinkedHashSet<core::int*>* lhs = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:13:28: Error: The set literal type 'Set<dynamic>' isn't of expected type 'LinkedHashSet<int>'.
+        col::LinkedHashSet<core::int*>* lhs = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:15:28: Error: The set literal type 'Set<dynamic>' isn't of expected type 'LinkedHashSet<int>'.
  - 'Set' is from 'dart:core'.
  - 'LinkedHashSet' is from 'dart:collection'.
 Change the type of the set literal or the context in which it is used.
@@ -81,7 +81,7 @@
                            ^" in block {
           final core::Set<dynamic>* #t3 = new col::_CompactLinkedHashSet::•<dynamic>();
         } =>#t3;
-        col::LinkedHashMap<core::int*, core::bool*>* lhm = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:14:34: Error: The map literal type 'Map<dynamic, dynamic>' isn't of expected type 'LinkedHashMap<int, bool>'.
+        col::LinkedHashMap<core::int*, core::bool*>* lhm = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:16:34: Error: The map literal type 'Map<dynamic, dynamic>' isn't of expected type 'LinkedHashMap<int, bool>'.
  - 'Map' is from 'dart:core'.
  - 'LinkedHashMap' is from 'dart:collection'.
 Change the type of the map literal or the context in which it is used.
@@ -217,7 +217,7 @@
     try {
       #L5:
       {
-        :return_value = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:32:46: Error: The set literal type 'Future<Set<dynamic>>' isn't of expected type 'Future<LinkedHashSet<int>>'.
+        :return_value = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:34:46: Error: The set literal type 'Future<Set<dynamic>>' isn't of expected type 'Future<LinkedHashSet<int>>'.
  - 'Future' is from 'dart:async'.
  - 'Set' is from 'dart:core'.
  - 'LinkedHashSet' is from 'dart:collection'.
@@ -252,7 +252,7 @@
     try {
       #L6:
       {
-        :return_value = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:33:52: Error: The map literal type 'Future<Map<dynamic, dynamic>>' isn't of expected type 'Future<LinkedHashMap<int, bool>>'.
+        :return_value = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:35:52: Error: The map literal type 'Future<Map<dynamic, dynamic>>' isn't of expected type 'Future<LinkedHashMap<int, bool>>'.
  - 'Future' is from 'dart:async'.
  - 'Map' is from 'dart:core'.
  - 'LinkedHashMap' is from 'dart:collection'.
@@ -284,7 +284,7 @@
     final core::Set<core::int*>* #t18 = new col::_CompactLinkedHashSet::•<core::int*>();
   } =>#t18;
 static method lhsfun2() → FutureOr<col::LinkedHashSet<core::int*>*>*
-  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:38:43: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashSet<int>>'.
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:40:43: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashSet<int>>'.
  - 'Set' is from 'dart:core'.
  - 'LinkedHashSet' is from 'dart:collection'.
 FutureOr<LinkedHashSet<int>> lhsfun2() => {};
@@ -292,7 +292,7 @@
     final core::Set<dynamic>* #t19 = new col::_CompactLinkedHashSet::•<dynamic>();
   } =>#t19) as{TypeError} FutureOr<col::LinkedHashSet<core::int*>*>*;
 static method lhmfun2() → FutureOr<col::LinkedHashMap<core::int*, core::bool*>*>*
-  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:39:49: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashMap<int, bool>>'.
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule.dart:41:49: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'FutureOr<LinkedHashMap<int, bool>>'.
  - 'Map' is from 'dart:core'.
  - 'LinkedHashMap' is from 'dart:collection'.
 FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
diff --git a/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart b/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart
new file mode 100644
index 0000000..15f76e8
--- /dev/null
+++ b/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart
@@ -0,0 +1,39 @@
+// 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.
+
+import 'dart:async' show FutureOr;
+
+import 'dart:collection' show LinkedHashMap, LinkedHashSet;
+
+main() async {
+  Map<int, bool> m = {};
+  Set<int> s = {};
+  Iterable<int> i = {};
+  LinkedHashSet<int> lhs = {};
+  LinkedHashMap<int, bool> lhm = {};
+
+  Map<int, bool> fm = await mapfun();
+  Set<int> fs = await setfun();
+  Iterable<int> fi = await iterablefun();
+  LinkedHashSet<int> flhs = await lhsfun();
+  LinkedHashMap<int, bool> flhm = await lhmfun();
+
+  Map<int, bool> fm2 = await mapfun2();
+  Set<int> fs2 = await setfun2();
+  Iterable<int> fi2 = await iterablefun2();
+  LinkedHashSet<int> flhs2 = await lhsfun2();
+  LinkedHashMap<int, bool> flhm2 = await lhmfun2();
+}
+
+Future<Map<int, bool>> mapfun() async => {};
+Future<Set<int>> setfun() async => {};
+Future<Iterable<int>> iterablefun() async => {};
+Future<LinkedHashSet<int>> lhsfun() async => {};
+Future<LinkedHashMap<int, bool>> lhmfun() async => {};
+
+FutureOr<Map<int, bool>> mapfun2() => {};
+FutureOr<Set<int>> setfun2() => {};
+FutureOr<Iterable<int>> iterablefun2() => {};
+FutureOr<LinkedHashSet<int>> lhsfun2() => {};
+FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
diff --git a/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.textual_outline.expect b/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.textual_outline.expect
new file mode 100644
index 0000000..183ae0c
--- /dev/null
+++ b/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.textual_outline.expect
@@ -0,0 +1,14 @@
+import 'dart:async' show FutureOr;
+import 'dart:collection' show LinkedHashMap, LinkedHashSet;
+
+main() async {}
+Future<Map<int, bool>> mapfun() async => {};
+Future<Set<int>> setfun() async => {};
+Future<Iterable<int>> iterablefun() async => {};
+Future<LinkedHashSet<int>> lhsfun() async => {};
+Future<LinkedHashMap<int, bool>> lhmfun() async => {};
+FutureOr<Map<int, bool>> mapfun2() => {};
+FutureOr<Set<int>> setfun2() => {};
+FutureOr<Iterable<int>> iterablefun2() => {};
+FutureOr<LinkedHashSet<int>> lhsfun2() => {};
+FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
diff --git a/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..cd5d4f6
--- /dev/null
+++ b/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.textual_outline_modelled.expect
@@ -0,0 +1,14 @@
+import 'dart:async' show FutureOr;
+import 'dart:collection' show LinkedHashMap, LinkedHashSet;
+
+Future<Iterable<int>> iterablefun() async => {};
+Future<LinkedHashMap<int, bool>> lhmfun() async => {};
+Future<LinkedHashSet<int>> lhsfun() async => {};
+Future<Map<int, bool>> mapfun() async => {};
+Future<Set<int>> setfun() async => {};
+FutureOr<Iterable<int>> iterablefun2() => {};
+FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
+FutureOr<LinkedHashSet<int>> lhsfun2() => {};
+FutureOr<Map<int, bool>> mapfun2() => {};
+FutureOr<Set<int>> setfun2() => {};
+main() async {}
diff --git a/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.weak.expect b/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.weak.expect
new file mode 100644
index 0000000..c167af0
--- /dev/null
+++ b/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.weak.expect
@@ -0,0 +1,131 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:13:28: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'LinkedHashSet<int>'.
+//  - 'Set' is from 'dart:core'.
+//  - 'LinkedHashSet' is from 'dart:collection'.
+//   LinkedHashSet<int> lhs = {};
+//                            ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:14:34: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'LinkedHashMap<int, bool>'.
+//  - 'Map' is from 'dart:core'.
+//  - 'LinkedHashMap' is from 'dart:collection'.
+//   LinkedHashMap<int, bool> lhm = {};
+//                                  ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:32:46: Error: A value of type 'Set<dynamic>' can't be returned from an async function with return type 'Future<LinkedHashSet<int>>'.
+//  - 'Set' is from 'dart:core'.
+//  - 'Future' is from 'dart:async'.
+//  - 'LinkedHashSet' is from 'dart:collection'.
+// Future<LinkedHashSet<int>> lhsfun() async => {};
+//                                              ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:33:52: Error: A value of type 'Map<dynamic, dynamic>' can't be returned from an async function with return type 'Future<LinkedHashMap<int, bool>>'.
+//  - 'Map' is from 'dart:core'.
+//  - 'Future' is from 'dart:async'.
+//  - 'LinkedHashMap' is from 'dart:collection'.
+// Future<LinkedHashMap<int, bool>> lhmfun() async => {};
+//                                                    ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:38:43: Error: A value of type 'Set<dynamic>' can't be returned from a function with return type 'FutureOr<LinkedHashSet<int>>'.
+//  - 'Set' is from 'dart:core'.
+//  - 'LinkedHashSet' is from 'dart:collection'.
+// FutureOr<LinkedHashSet<int>> lhsfun2() => {};
+//                                           ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:39:49: Error: A value of type 'Map<dynamic, dynamic>' can't be returned from a function with return type 'FutureOr<LinkedHashMap<int, bool>>'.
+//  - 'Map' is from 'dart:core'.
+//  - 'LinkedHashMap' is from 'dart:collection'.
+// FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
+//                                                 ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+import "dart:async" as asy;
+
+import "dart:async" show FutureOr;
+import "dart:collection" show LinkedHashMap, LinkedHashSet;
+
+static method main() → dynamic async /* futureValueType= dynamic */ {
+  core::Map<core::int, core::bool> m = <core::int, core::bool>{};
+  core::Set<core::int> s = block {
+    final core::Set<core::int> #t1 = col::LinkedHashSet::•<core::int>();
+  } =>#t1;
+  core::Iterable<core::int> i = block {
+    final core::Set<core::int> #t2 = col::LinkedHashSet::•<core::int>();
+  } =>#t2;
+  col::LinkedHashSet<core::int> lhs = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:13:28: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'LinkedHashSet<int>'.
+ - 'Set' is from 'dart:core'.
+ - 'LinkedHashSet' is from 'dart:collection'.
+  LinkedHashSet<int> lhs = {};
+                           ^" in ( block {
+    final core::Set<dynamic> #t3 = col::LinkedHashSet::•<dynamic>();
+  } =>#t3) as{TypeError,ForNonNullableByDefault} col::LinkedHashSet<core::int>;
+  col::LinkedHashMap<core::int, core::bool> lhm = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:14:34: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'LinkedHashMap<int, bool>'.
+ - 'Map' is from 'dart:core'.
+ - 'LinkedHashMap' is from 'dart:collection'.
+  LinkedHashMap<int, bool> lhm = {};
+                                 ^" in <dynamic, dynamic>{} as{TypeError,ForNonNullableByDefault} col::LinkedHashMap<core::int, core::bool>;
+  core::Map<core::int, core::bool> fm = await self::mapfun();
+  core::Set<core::int> fs = await self::setfun();
+  core::Iterable<core::int> fi = await self::iterablefun();
+  col::LinkedHashSet<core::int> flhs = await self::lhsfun();
+  col::LinkedHashMap<core::int, core::bool> flhm = await self::lhmfun();
+  core::Map<core::int, core::bool> fm2 = await self::mapfun2();
+  core::Set<core::int> fs2 = await self::setfun2();
+  core::Iterable<core::int> fi2 = await self::iterablefun2();
+  col::LinkedHashSet<core::int> flhs2 = await self::lhsfun2();
+  col::LinkedHashMap<core::int, core::bool> flhm2 = await self::lhmfun2();
+}
+static method mapfun() → asy::Future<core::Map<core::int, core::bool>> async /* futureValueType= core::Map<core::int, core::bool> */ 
+  return <core::int, core::bool>{};
+static method setfun() → asy::Future<core::Set<core::int>> async /* futureValueType= core::Set<core::int> */ 
+  return block {
+    final core::Set<core::int> #t4 = col::LinkedHashSet::•<core::int>();
+  } =>#t4;
+static method iterablefun() → asy::Future<core::Iterable<core::int>> async /* futureValueType= core::Iterable<core::int> */ 
+  return block {
+    final core::Set<core::int> #t5 = col::LinkedHashSet::•<core::int>();
+  } =>#t5;
+static method lhsfun() → asy::Future<col::LinkedHashSet<core::int>> async /* futureValueType= col::LinkedHashSet<core::int> */ 
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:32:46: Error: A value of type 'Set<dynamic>' can't be returned from an async function with return type 'Future<LinkedHashSet<int>>'.
+ - 'Set' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ - 'LinkedHashSet' is from 'dart:collection'.
+Future<LinkedHashSet<int>> lhsfun() async => {};
+                                             ^" in ( block {
+    final core::Set<dynamic> #t6 = col::LinkedHashSet::•<dynamic>();
+  } =>#t6) as{TypeError,ForNonNullableByDefault} col::LinkedHashSet<core::int>;
+static method lhmfun() → asy::Future<col::LinkedHashMap<core::int, core::bool>> async /* futureValueType= col::LinkedHashMap<core::int, core::bool> */ 
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:33:52: Error: A value of type 'Map<dynamic, dynamic>' can't be returned from an async function with return type 'Future<LinkedHashMap<int, bool>>'.
+ - 'Map' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ - 'LinkedHashMap' is from 'dart:collection'.
+Future<LinkedHashMap<int, bool>> lhmfun() async => {};
+                                                   ^" in <dynamic, dynamic>{} as{TypeError,ForNonNullableByDefault} col::LinkedHashMap<core::int, core::bool>;
+static method mapfun2() → FutureOr<core::Map<core::int, core::bool>>
+  return <core::int, core::bool>{};
+static method setfun2() → FutureOr<core::Set<core::int>>
+  return block {
+    final core::Set<core::int> #t7 = col::LinkedHashSet::•<core::int>();
+  } =>#t7;
+static method iterablefun2() → FutureOr<core::Iterable<core::int>>
+  return block {
+    final core::Set<core::int> #t8 = col::LinkedHashSet::•<core::int>();
+  } =>#t8;
+static method lhsfun2() → FutureOr<col::LinkedHashSet<core::int>>
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:38:43: Error: A value of type 'Set<dynamic>' can't be returned from a function with return type 'FutureOr<LinkedHashSet<int>>'.
+ - 'Set' is from 'dart:core'.
+ - 'LinkedHashSet' is from 'dart:collection'.
+FutureOr<LinkedHashSet<int>> lhsfun2() => {};
+                                          ^" in ( block {
+    final core::Set<dynamic> #t9 = col::LinkedHashSet::•<dynamic>();
+  } =>#t9) as{TypeError,ForNonNullableByDefault} FutureOr<col::LinkedHashSet<core::int>>;
+static method lhmfun2() → FutureOr<col::LinkedHashMap<core::int, core::bool>>
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:39:49: Error: A value of type 'Map<dynamic, dynamic>' can't be returned from a function with return type 'FutureOr<LinkedHashMap<int, bool>>'.
+ - 'Map' is from 'dart:core'.
+ - 'LinkedHashMap' is from 'dart:collection'.
+FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
+                                                ^" in <dynamic, dynamic>{} as{TypeError,ForNonNullableByDefault} FutureOr<col::LinkedHashMap<core::int, core::bool>>;
diff --git a/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.weak.modular.expect b/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.weak.modular.expect
new file mode 100644
index 0000000..c167af0
--- /dev/null
+++ b/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.weak.modular.expect
@@ -0,0 +1,131 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:13:28: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'LinkedHashSet<int>'.
+//  - 'Set' is from 'dart:core'.
+//  - 'LinkedHashSet' is from 'dart:collection'.
+//   LinkedHashSet<int> lhs = {};
+//                            ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:14:34: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'LinkedHashMap<int, bool>'.
+//  - 'Map' is from 'dart:core'.
+//  - 'LinkedHashMap' is from 'dart:collection'.
+//   LinkedHashMap<int, bool> lhm = {};
+//                                  ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:32:46: Error: A value of type 'Set<dynamic>' can't be returned from an async function with return type 'Future<LinkedHashSet<int>>'.
+//  - 'Set' is from 'dart:core'.
+//  - 'Future' is from 'dart:async'.
+//  - 'LinkedHashSet' is from 'dart:collection'.
+// Future<LinkedHashSet<int>> lhsfun() async => {};
+//                                              ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:33:52: Error: A value of type 'Map<dynamic, dynamic>' can't be returned from an async function with return type 'Future<LinkedHashMap<int, bool>>'.
+//  - 'Map' is from 'dart:core'.
+//  - 'Future' is from 'dart:async'.
+//  - 'LinkedHashMap' is from 'dart:collection'.
+// Future<LinkedHashMap<int, bool>> lhmfun() async => {};
+//                                                    ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:38:43: Error: A value of type 'Set<dynamic>' can't be returned from a function with return type 'FutureOr<LinkedHashSet<int>>'.
+//  - 'Set' is from 'dart:core'.
+//  - 'LinkedHashSet' is from 'dart:collection'.
+// FutureOr<LinkedHashSet<int>> lhsfun2() => {};
+//                                           ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:39:49: Error: A value of type 'Map<dynamic, dynamic>' can't be returned from a function with return type 'FutureOr<LinkedHashMap<int, bool>>'.
+//  - 'Map' is from 'dart:core'.
+//  - 'LinkedHashMap' is from 'dart:collection'.
+// FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
+//                                                 ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+import "dart:async" as asy;
+
+import "dart:async" show FutureOr;
+import "dart:collection" show LinkedHashMap, LinkedHashSet;
+
+static method main() → dynamic async /* futureValueType= dynamic */ {
+  core::Map<core::int, core::bool> m = <core::int, core::bool>{};
+  core::Set<core::int> s = block {
+    final core::Set<core::int> #t1 = col::LinkedHashSet::•<core::int>();
+  } =>#t1;
+  core::Iterable<core::int> i = block {
+    final core::Set<core::int> #t2 = col::LinkedHashSet::•<core::int>();
+  } =>#t2;
+  col::LinkedHashSet<core::int> lhs = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:13:28: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'LinkedHashSet<int>'.
+ - 'Set' is from 'dart:core'.
+ - 'LinkedHashSet' is from 'dart:collection'.
+  LinkedHashSet<int> lhs = {};
+                           ^" in ( block {
+    final core::Set<dynamic> #t3 = col::LinkedHashSet::•<dynamic>();
+  } =>#t3) as{TypeError,ForNonNullableByDefault} col::LinkedHashSet<core::int>;
+  col::LinkedHashMap<core::int, core::bool> lhm = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:14:34: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'LinkedHashMap<int, bool>'.
+ - 'Map' is from 'dart:core'.
+ - 'LinkedHashMap' is from 'dart:collection'.
+  LinkedHashMap<int, bool> lhm = {};
+                                 ^" in <dynamic, dynamic>{} as{TypeError,ForNonNullableByDefault} col::LinkedHashMap<core::int, core::bool>;
+  core::Map<core::int, core::bool> fm = await self::mapfun();
+  core::Set<core::int> fs = await self::setfun();
+  core::Iterable<core::int> fi = await self::iterablefun();
+  col::LinkedHashSet<core::int> flhs = await self::lhsfun();
+  col::LinkedHashMap<core::int, core::bool> flhm = await self::lhmfun();
+  core::Map<core::int, core::bool> fm2 = await self::mapfun2();
+  core::Set<core::int> fs2 = await self::setfun2();
+  core::Iterable<core::int> fi2 = await self::iterablefun2();
+  col::LinkedHashSet<core::int> flhs2 = await self::lhsfun2();
+  col::LinkedHashMap<core::int, core::bool> flhm2 = await self::lhmfun2();
+}
+static method mapfun() → asy::Future<core::Map<core::int, core::bool>> async /* futureValueType= core::Map<core::int, core::bool> */ 
+  return <core::int, core::bool>{};
+static method setfun() → asy::Future<core::Set<core::int>> async /* futureValueType= core::Set<core::int> */ 
+  return block {
+    final core::Set<core::int> #t4 = col::LinkedHashSet::•<core::int>();
+  } =>#t4;
+static method iterablefun() → asy::Future<core::Iterable<core::int>> async /* futureValueType= core::Iterable<core::int> */ 
+  return block {
+    final core::Set<core::int> #t5 = col::LinkedHashSet::•<core::int>();
+  } =>#t5;
+static method lhsfun() → asy::Future<col::LinkedHashSet<core::int>> async /* futureValueType= col::LinkedHashSet<core::int> */ 
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:32:46: Error: A value of type 'Set<dynamic>' can't be returned from an async function with return type 'Future<LinkedHashSet<int>>'.
+ - 'Set' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ - 'LinkedHashSet' is from 'dart:collection'.
+Future<LinkedHashSet<int>> lhsfun() async => {};
+                                             ^" in ( block {
+    final core::Set<dynamic> #t6 = col::LinkedHashSet::•<dynamic>();
+  } =>#t6) as{TypeError,ForNonNullableByDefault} col::LinkedHashSet<core::int>;
+static method lhmfun() → asy::Future<col::LinkedHashMap<core::int, core::bool>> async /* futureValueType= col::LinkedHashMap<core::int, core::bool> */ 
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:33:52: Error: A value of type 'Map<dynamic, dynamic>' can't be returned from an async function with return type 'Future<LinkedHashMap<int, bool>>'.
+ - 'Map' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ - 'LinkedHashMap' is from 'dart:collection'.
+Future<LinkedHashMap<int, bool>> lhmfun() async => {};
+                                                   ^" in <dynamic, dynamic>{} as{TypeError,ForNonNullableByDefault} col::LinkedHashMap<core::int, core::bool>;
+static method mapfun2() → FutureOr<core::Map<core::int, core::bool>>
+  return <core::int, core::bool>{};
+static method setfun2() → FutureOr<core::Set<core::int>>
+  return block {
+    final core::Set<core::int> #t7 = col::LinkedHashSet::•<core::int>();
+  } =>#t7;
+static method iterablefun2() → FutureOr<core::Iterable<core::int>>
+  return block {
+    final core::Set<core::int> #t8 = col::LinkedHashSet::•<core::int>();
+  } =>#t8;
+static method lhsfun2() → FutureOr<col::LinkedHashSet<core::int>>
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:38:43: Error: A value of type 'Set<dynamic>' can't be returned from a function with return type 'FutureOr<LinkedHashSet<int>>'.
+ - 'Set' is from 'dart:core'.
+ - 'LinkedHashSet' is from 'dart:collection'.
+FutureOr<LinkedHashSet<int>> lhsfun2() => {};
+                                          ^" in ( block {
+    final core::Set<dynamic> #t9 = col::LinkedHashSet::•<dynamic>();
+  } =>#t9) as{TypeError,ForNonNullableByDefault} FutureOr<col::LinkedHashSet<core::int>>;
+static method lhmfun2() → FutureOr<col::LinkedHashMap<core::int, core::bool>>
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:39:49: Error: A value of type 'Map<dynamic, dynamic>' can't be returned from a function with return type 'FutureOr<LinkedHashMap<int, bool>>'.
+ - 'Map' is from 'dart:core'.
+ - 'LinkedHashMap' is from 'dart:collection'.
+FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
+                                                ^" in <dynamic, dynamic>{} as{TypeError,ForNonNullableByDefault} FutureOr<col::LinkedHashMap<core::int, core::bool>>;
diff --git a/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.weak.outline.expect b/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.weak.outline.expect
new file mode 100644
index 0000000..132e0ad
--- /dev/null
+++ b/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.weak.outline.expect
@@ -0,0 +1,31 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+import "dart:async" show FutureOr;
+import "dart:collection" show LinkedHashMap, LinkedHashSet;
+
+static method main() → dynamic async 
+  ;
+static method mapfun() → asy::Future<core::Map<core::int, core::bool>> async 
+  ;
+static method setfun() → asy::Future<core::Set<core::int>> async 
+  ;
+static method iterablefun() → asy::Future<core::Iterable<core::int>> async 
+  ;
+static method lhsfun() → asy::Future<col::LinkedHashSet<core::int>> async 
+  ;
+static method lhmfun() → asy::Future<col::LinkedHashMap<core::int, core::bool>> async 
+  ;
+static method mapfun2() → FutureOr<core::Map<core::int, core::bool>>
+  ;
+static method setfun2() → FutureOr<core::Set<core::int>>
+  ;
+static method iterablefun2() → FutureOr<core::Iterable<core::int>>
+  ;
+static method lhsfun2() → FutureOr<col::LinkedHashSet<core::int>>
+  ;
+static method lhmfun2() → FutureOr<col::LinkedHashMap<core::int, core::bool>>
+  ;
diff --git a/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.weak.transformed.expect b/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.weak.transformed.expect
new file mode 100644
index 0000000..621dcc5
--- /dev/null
+++ b/pkg/front_end/testcases/set_literals/disambiguation_rule2.dart.weak.transformed.expect
@@ -0,0 +1,291 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:13:28: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'LinkedHashSet<int>'.
+//  - 'Set' is from 'dart:core'.
+//  - 'LinkedHashSet' is from 'dart:collection'.
+//   LinkedHashSet<int> lhs = {};
+//                            ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:14:34: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'LinkedHashMap<int, bool>'.
+//  - 'Map' is from 'dart:core'.
+//  - 'LinkedHashMap' is from 'dart:collection'.
+//   LinkedHashMap<int, bool> lhm = {};
+//                                  ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:32:46: Error: A value of type 'Set<dynamic>' can't be returned from an async function with return type 'Future<LinkedHashSet<int>>'.
+//  - 'Set' is from 'dart:core'.
+//  - 'Future' is from 'dart:async'.
+//  - 'LinkedHashSet' is from 'dart:collection'.
+// Future<LinkedHashSet<int>> lhsfun() async => {};
+//                                              ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:33:52: Error: A value of type 'Map<dynamic, dynamic>' can't be returned from an async function with return type 'Future<LinkedHashMap<int, bool>>'.
+//  - 'Map' is from 'dart:core'.
+//  - 'Future' is from 'dart:async'.
+//  - 'LinkedHashMap' is from 'dart:collection'.
+// Future<LinkedHashMap<int, bool>> lhmfun() async => {};
+//                                                    ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:38:43: Error: A value of type 'Set<dynamic>' can't be returned from a function with return type 'FutureOr<LinkedHashSet<int>>'.
+//  - 'Set' is from 'dart:core'.
+//  - 'LinkedHashSet' is from 'dart:collection'.
+// FutureOr<LinkedHashSet<int>> lhsfun2() => {};
+//                                           ^
+//
+// pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:39:49: Error: A value of type 'Map<dynamic, dynamic>' can't be returned from a function with return type 'FutureOr<LinkedHashMap<int, bool>>'.
+//  - 'Map' is from 'dart:core'.
+//  - 'LinkedHashMap' is from 'dart:collection'.
+// FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
+//                                                 ^
+//
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+import "dart:collection" as col;
+import "dart:_internal" as _in;
+
+import "dart:async" show FutureOr;
+import "dart:collection" show LinkedHashMap, LinkedHashSet;
+
+static method main() → dynamic /* futureValueType= dynamic */ /* 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 :await_ctx_var;
+  dynamic :saved_try_context_var0;
+  function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
+    try {
+      #L1:
+      {
+        core::Map<core::int, core::bool> m = <core::int, core::bool>{};
+        core::Set<core::int> s = block {
+          final core::Set<core::int> #t1 = new col::_CompactLinkedHashSet::•<core::int>();
+        } =>#t1;
+        core::Iterable<core::int> i = block {
+          final core::Set<core::int> #t2 = new col::_CompactLinkedHashSet::•<core::int>();
+        } =>#t2;
+        col::LinkedHashSet<core::int> lhs = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:13:28: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'LinkedHashSet<int>'.
+ - 'Set' is from 'dart:core'.
+ - 'LinkedHashSet' is from 'dart:collection'.
+  LinkedHashSet<int> lhs = {};
+                           ^" in ( block {
+          final core::Set<dynamic> #t3 = new col::_CompactLinkedHashSet::•<dynamic>();
+        } =>#t3) as{TypeError,ForNonNullableByDefault} col::LinkedHashSet<core::int>;
+        col::LinkedHashMap<core::int, core::bool> lhm = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:14:34: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'LinkedHashMap<int, bool>'.
+ - 'Map' is from 'dart:core'.
+ - 'LinkedHashMap' is from 'dart:collection'.
+  LinkedHashMap<int, bool> lhm = {};
+                                 ^" in <dynamic, dynamic>{} as{TypeError,ForNonNullableByDefault} col::LinkedHashMap<core::int, core::bool>;
+        [yield] let dynamic #t4 = asy::_awaitHelper(self::mapfun(), :async_op_then, :async_op_error) in null;
+        core::Map<core::int, core::bool> fm = _in::unsafeCast<core::Map<core::int, core::bool>>(:result_or_exception);
+        [yield] let dynamic #t5 = asy::_awaitHelper(self::setfun(), :async_op_then, :async_op_error) in null;
+        core::Set<core::int> fs = _in::unsafeCast<core::Set<core::int>>(:result_or_exception);
+        [yield] let dynamic #t6 = asy::_awaitHelper(self::iterablefun(), :async_op_then, :async_op_error) in null;
+        core::Iterable<core::int> fi = _in::unsafeCast<core::Iterable<core::int>>(:result_or_exception);
+        [yield] let dynamic #t7 = asy::_awaitHelper(self::lhsfun(), :async_op_then, :async_op_error) in null;
+        col::LinkedHashSet<core::int> flhs = _in::unsafeCast<col::LinkedHashSet<core::int>>(:result_or_exception);
+        [yield] let dynamic #t8 = asy::_awaitHelper(self::lhmfun(), :async_op_then, :async_op_error) in null;
+        col::LinkedHashMap<core::int, core::bool> flhm = _in::unsafeCast<col::LinkedHashMap<core::int, core::bool>>(:result_or_exception);
+        [yield] let dynamic #t9 = asy::_awaitHelper(self::mapfun2(), :async_op_then, :async_op_error) in null;
+        core::Map<core::int, core::bool> fm2 = _in::unsafeCast<core::Map<core::int, core::bool>>(:result_or_exception);
+        [yield] let dynamic #t10 = asy::_awaitHelper(self::setfun2(), :async_op_then, :async_op_error) in null;
+        core::Set<core::int> fs2 = _in::unsafeCast<core::Set<core::int>>(:result_or_exception);
+        [yield] let dynamic #t11 = asy::_awaitHelper(self::iterablefun2(), :async_op_then, :async_op_error) in null;
+        core::Iterable<core::int> fi2 = _in::unsafeCast<core::Iterable<core::int>>(:result_or_exception);
+        [yield] let dynamic #t12 = asy::_awaitHelper(self::lhsfun2(), :async_op_then, :async_op_error) in null;
+        col::LinkedHashSet<core::int> flhs2 = _in::unsafeCast<col::LinkedHashSet<core::int>>(:result_or_exception);
+        [yield] let dynamic #t13 = asy::_awaitHelper(self::lhmfun2(), :async_op_then, :async_op_error) in null;
+        col::LinkedHashMap<core::int, core::bool> flhm2 = _in::unsafeCast<col::LinkedHashMap<core::int, core::bool>>(:result_or_exception);
+      }
+      asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
+      return;
+    }
+    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};
+  :is_sync = true;
+  return :async_future;
+}
+static method mapfun() → asy::Future<core::Map<core::int, core::bool>> /* futureValueType= core::Map<core::int, core::bool> */ /* originally async */ {
+  final asy::_Future<core::Map<core::int, core::bool>> :async_future = new asy::_Future::•<core::Map<core::int, core::bool>>();
+  core::bool* :is_sync = false;
+  core::Map<core::int, core::bool>? :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 {
+      #L2:
+      {
+        :return_value = <core::int, core::bool>{};
+        break #L2;
+      }
+      asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
+      return;
+    }
+    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};
+  :is_sync = true;
+  return :async_future;
+}
+static method setfun() → asy::Future<core::Set<core::int>> /* futureValueType= core::Set<core::int> */ /* originally async */ {
+  final asy::_Future<core::Set<core::int>> :async_future = new asy::_Future::•<core::Set<core::int>>();
+  core::bool* :is_sync = false;
+  core::Set<core::int>? :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 {
+      #L3:
+      {
+        :return_value = block {
+          final core::Set<core::int> #t14 = new col::_CompactLinkedHashSet::•<core::int>();
+        } =>#t14;
+        break #L3;
+      }
+      asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
+      return;
+    }
+    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};
+  :is_sync = true;
+  return :async_future;
+}
+static method iterablefun() → asy::Future<core::Iterable<core::int>> /* futureValueType= core::Iterable<core::int> */ /* originally async */ {
+  final asy::_Future<core::Iterable<core::int>> :async_future = new asy::_Future::•<core::Iterable<core::int>>();
+  core::bool* :is_sync = false;
+  core::Iterable<core::int>? :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 = block {
+          final core::Set<core::int> #t15 = new col::_CompactLinkedHashSet::•<core::int>();
+        } =>#t15;
+        break #L4;
+      }
+      asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
+      return;
+    }
+    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};
+  :is_sync = true;
+  return :async_future;
+}
+static method lhsfun() → asy::Future<col::LinkedHashSet<core::int>> /* futureValueType= col::LinkedHashSet<core::int> */ /* originally async */ {
+  final asy::_Future<col::LinkedHashSet<core::int>> :async_future = new asy::_Future::•<col::LinkedHashSet<core::int>>();
+  core::bool* :is_sync = false;
+  FutureOr<col::LinkedHashSet<core::int>>? :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 = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:32:46: Error: A value of type 'Set<dynamic>' can't be returned from an async function with return type 'Future<LinkedHashSet<int>>'.
+ - 'Set' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ - 'LinkedHashSet' is from 'dart:collection'.
+Future<LinkedHashSet<int>> lhsfun() async => {};
+                                             ^" in ( block {
+          final core::Set<dynamic> #t16 = new col::_CompactLinkedHashSet::•<dynamic>();
+        } =>#t16) as{TypeError,ForNonNullableByDefault} col::LinkedHashSet<core::int>;
+        break #L5;
+      }
+      asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
+      return;
+    }
+    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};
+  :is_sync = true;
+  return :async_future;
+}
+static method lhmfun() → asy::Future<col::LinkedHashMap<core::int, core::bool>> /* futureValueType= col::LinkedHashMap<core::int, core::bool> */ /* originally async */ {
+  final asy::_Future<col::LinkedHashMap<core::int, core::bool>> :async_future = new asy::_Future::•<col::LinkedHashMap<core::int, core::bool>>();
+  core::bool* :is_sync = false;
+  FutureOr<col::LinkedHashMap<core::int, core::bool>>? :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 = invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:33:52: Error: A value of type 'Map<dynamic, dynamic>' can't be returned from an async function with return type 'Future<LinkedHashMap<int, bool>>'.
+ - 'Map' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ - 'LinkedHashMap' is from 'dart:collection'.
+Future<LinkedHashMap<int, bool>> lhmfun() async => {};
+                                                   ^" in <dynamic, dynamic>{} as{TypeError,ForNonNullableByDefault} col::LinkedHashMap<core::int, core::bool>;
+        break #L6;
+      }
+      asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
+      return;
+    }
+    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};
+  :is_sync = true;
+  return :async_future;
+}
+static method mapfun2() → FutureOr<core::Map<core::int, core::bool>>
+  return <core::int, core::bool>{};
+static method setfun2() → FutureOr<core::Set<core::int>>
+  return block {
+    final core::Set<core::int> #t17 = new col::_CompactLinkedHashSet::•<core::int>();
+  } =>#t17;
+static method iterablefun2() → FutureOr<core::Iterable<core::int>>
+  return block {
+    final core::Set<core::int> #t18 = new col::_CompactLinkedHashSet::•<core::int>();
+  } =>#t18;
+static method lhsfun2() → FutureOr<col::LinkedHashSet<core::int>>
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:38:43: Error: A value of type 'Set<dynamic>' can't be returned from a function with return type 'FutureOr<LinkedHashSet<int>>'.
+ - 'Set' is from 'dart:core'.
+ - 'LinkedHashSet' is from 'dart:collection'.
+FutureOr<LinkedHashSet<int>> lhsfun2() => {};
+                                          ^" in ( block {
+    final core::Set<dynamic> #t19 = new col::_CompactLinkedHashSet::•<dynamic>();
+  } =>#t19) as{TypeError,ForNonNullableByDefault} FutureOr<col::LinkedHashSet<core::int>>;
+static method lhmfun2() → FutureOr<col::LinkedHashMap<core::int, core::bool>>
+  return invalid-expression "pkg/front_end/testcases/set_literals/disambiguation_rule2.dart:39:49: Error: A value of type 'Map<dynamic, dynamic>' can't be returned from a function with return type 'FutureOr<LinkedHashMap<int, bool>>'.
+ - 'Map' is from 'dart:core'.
+ - 'LinkedHashMap' is from 'dart:collection'.
+FutureOr<LinkedHashMap<int, bool>> lhmfun2() => {};
+                                                ^" in <dynamic, dynamic>{} as{TypeError,ForNonNullableByDefault} FutureOr<col::LinkedHashMap<core::int, core::bool>>;
diff --git a/pkg/front_end/testcases/text_serialization.status b/pkg/front_end/testcases/text_serialization.status
index 889ec70..93f5cae 100644
--- a/pkg/front_end/testcases/text_serialization.status
+++ b/pkg/front_end/testcases/text_serialization.status
@@ -152,7 +152,6 @@
 rasta/issue_000041: RuntimeError
 rasta/issue_000042: RuntimeError
 rasta/issue_000044: RuntimeError
-rasta/issue_000081: RuntimeError
 rasta/malformed_const_constructor: RuntimeError
 rasta/malformed_function: RuntimeError
 rasta/mixin_library: TypeCheckError
@@ -170,11 +169,11 @@
 regress/issue_29976: RuntimeError
 regress/issue_29982: RuntimeError
 regress/issue_31180: TypeCheckError
+regress/issue_31180_2: TypeCheckError
 regress/issue_32972: RuntimeError
 regress/issue_33452: RuntimeError
 regress/issue_34225: RuntimeError
 regress/issue_34563: RuntimeError
-regress/issue_35177: RuntimeError
 regress/issue_35258: RuntimeError
 regress/issue_35259: RuntimeError
 regress/issue_35260: RuntimeError
@@ -183,6 +182,7 @@
 regress/issue_39091_2: RuntimeError
 runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast: RuntimeError
 set_literals/disambiguation_rule: RuntimeError
+set_literals/disambiguation_rule2: RuntimeError
 value_class/copy_with_call_sites: RuntimeError # Expected
 value_class/simple: RuntimeError # Expected
 value_class/value_extends_non_value: RuntimeError # Expected
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial2.dart b/pkg/front_end/testcases/unified_collections/fold_initial2.dart
new file mode 100644
index 0000000..034f35d
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/fold_initial2.dart
@@ -0,0 +1,113 @@
+// 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.
+
+void foldInitialElements() {
+  dynamic element0 = 0;
+  int? element1 = 1;
+  int element2 = 2;
+  var list = <int?>[element0, element1, element2, if (true) 3, 4, 5, 6];
+
+  expect(new List<int?>.generate(7, (int? i) => i), list);
+
+  var set = <int?>{element0, element1, element2, if (true) 3, 4, 5, 6};
+
+  expect(new List<int?>.generate(7, (int? i) => i), set.toList());
+}
+
+void foldInitialSpread1() {
+  dynamic initial = [0, 1, 2];
+  var list = <int>[...initial, if (true) 3, 4, 5, 6];
+
+  expect(new List<int>.generate(7, (int i) => i), list);
+
+  var set = <int>{...initial, if (true) 3, 4, 5, 6};
+
+  expect(new List<int>.generate(7, (int i) => i), set.toList());
+}
+
+void foldInitialSpread2([bool c = false]) {
+  Iterable<int?> initial = [0, 1, 2];
+  if (c) {
+    initial = [null];
+  }
+  var list = <int?>[...initial, if (true) 3, 4, 5, 6];
+
+  expect(new List<int?>.generate(7, (int? i) => i), list);
+
+  var set = <int?>{...initial, if (true) 3, 4, 5, 6};
+
+  expect(new List<int?>.generate(7, (int? i) => i), set.toList());
+}
+
+void foldInitialSpread3([bool c = false]) {
+  List<int?> initial = [0, 1, 2];
+  if (c) {
+    initial = [null];
+  }
+  var list = <int?>[...initial, if (true) 3, 4, 5, 6];
+
+  expect(new List<int?>.generate(7, (int? i) => i), list);
+
+  var set = <int?>{...initial, if (true) 3, 4, 5, 6};
+
+  expect(new List<int?>.generate(7, (int? i) => i), set.toList());
+}
+
+void foldInitialSpread4([bool c = false]) {
+  Iterable<int> initial = [0, 1, 2];
+  var list = <int>[...initial, if (true) 3, 4, 5, 6];
+
+  expect(new List<int>.generate(7, (int i) => i), list);
+
+  var set = <int>{...initial, if (true) 3, 4, 5, 6};
+
+  expect(new List<int>.generate(7, (int i) => i), set.toList());
+}
+
+void foldInitialSpread5([bool c = false]) {
+  List<int> initial = [0, 1, 2];
+  var list = <int>[...initial, if (true) 3, 4, 5, 6];
+
+  expect(new List<int>.generate(7, (int i) => i), list);
+
+  var set = <int>{...initial, if (true) 3, 4, 5, 6};
+
+  expect(new List<int>.generate(7, (int i) => i), set.toList());
+}
+
+void foldInitialSpread6([bool c = false]) {
+  List<int>? initial = [0, 1, 2];
+  if (c) {
+    initial = null;
+  }
+  var list = <int>[...?initial, if (true) 3, 4, 5, 6];
+
+  expect(new List<int>.generate(7, (int i) => i), list);
+
+  var set = <int>{...?initial, if (true) 3, 4, 5, 6};
+
+  expect(new List<int>.generate(7, (int i) => i), set.toList());
+}
+
+main() {
+  foldInitialElements();
+  foldInitialSpread1();
+  foldInitialSpread2();
+  foldInitialSpread3();
+  foldInitialSpread4();
+  foldInitialSpread5();
+  foldInitialSpread6();
+}
+
+void expect(List list1, List list2) {
+  if (list1.length != list2.length) {
+    throw 'Unexpected length. Expected ${list1.length}, actual ${list2.length}.';
+  }
+  for (int i = 0; i < list1.length; i++) {
+    if (list1[i] != list2[i]) {
+      throw 'Unexpected element at index $i. '
+          'Expected ${list1[i]}, actual ${list2[i]}.';
+    }
+  }
+}
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial2.dart.textual_outline.expect b/pkg/front_end/testcases/unified_collections/fold_initial2.dart.textual_outline.expect
new file mode 100644
index 0000000..9615248
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/fold_initial2.dart.textual_outline.expect
@@ -0,0 +1,9 @@
+void foldInitialElements() {}
+void foldInitialSpread1() {}
+void foldInitialSpread2([bool c = false]) {}
+void foldInitialSpread3([bool c = false]) {}
+void foldInitialSpread4([bool c = false]) {}
+void foldInitialSpread5([bool c = false]) {}
+void foldInitialSpread6([bool c = false]) {}
+main() {}
+void expect(List list1, List list2) {}
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/unified_collections/fold_initial2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..61f14e7
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/fold_initial2.dart.textual_outline_modelled.expect
@@ -0,0 +1,9 @@
+main() {}
+void expect(List list1, List list2) {}
+void foldInitialElements() {}
+void foldInitialSpread1() {}
+void foldInitialSpread2([bool c = false]) {}
+void foldInitialSpread3([bool c = false]) {}
+void foldInitialSpread4([bool c = false]) {}
+void foldInitialSpread5([bool c = false]) {}
+void foldInitialSpread6([bool c = false]) {}
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial2.dart.weak.expect b/pkg/front_end/testcases/unified_collections/fold_initial2.dart.weak.expect
new file mode 100644
index 0000000..8bf896b
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/fold_initial2.dart.weak.expect
@@ -0,0 +1,203 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method foldInitialElements() → void {
+  dynamic element0 = 0;
+  core::int? element1 = 1;
+  core::int element2 = 2;
+  core::List<core::int?> list = block {
+    final core::List<core::int?> #t1 = <core::int?>[element0 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?, element1{core::int}, element2];
+    if(true)
+      #t1.{core::List::add}{Invariant}(3){(core::int?) → void};
+    #t1.{core::List::add}{Invariant}(4){(core::int?) → void};
+    #t1.{core::List::add}{Invariant}(5){(core::int?) → void};
+    #t1.{core::List::add}{Invariant}(6){(core::int?) → void};
+  } =>#t1;
+  self::expect(core::List::generate<core::int?>(7, (core::int? i) → core::int? => i), list);
+  core::Set<core::int?> set = block {
+    final core::Set<core::int?> #t2 = col::LinkedHashSet::•<core::int?>();
+    #t2.{core::Set::add}{Invariant}(element0 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(element1{core::int}){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(element2){(core::int?) → core::bool};
+    if(true)
+      #t2.{core::Set::add}{Invariant}(3){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(4){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(5){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(6){(core::int?) → core::bool};
+  } =>#t2;
+  self::expect(core::List::generate<core::int?>(7, (core::int? i) → core::int? => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int?>});
+}
+static method foldInitialSpread1() → void {
+  dynamic initial = <core::int>[0, 1, 2];
+  core::List<core::int> list = block {
+    final core::List<core::int> #t3 = <core::int>[];
+    for (final has-declared-initializer dynamic #t4 in initial as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+      final core::int #t5 = #t4 as{TypeError,ForNonNullableByDefault} core::int;
+      #t3.{core::List::add}{Invariant}(#t5){(core::int) → void};
+    }
+    if(true)
+      #t3.{core::List::add}{Invariant}(3){(core::int) → void};
+    #t3.{core::List::add}{Invariant}(4){(core::int) → void};
+    #t3.{core::List::add}{Invariant}(5){(core::int) → void};
+    #t3.{core::List::add}{Invariant}(6){(core::int) → void};
+  } =>#t3;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), list);
+  core::Set<core::int> set = block {
+    final core::Set<core::int> #t6 = col::LinkedHashSet::•<core::int>();
+    for (final has-declared-initializer dynamic #t7 in initial as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+      final core::int #t8 = #t7 as{TypeError,ForNonNullableByDefault} core::int;
+      #t6.{core::Set::add}{Invariant}(#t8){(core::int) → core::bool};
+    }
+    if(true)
+      #t6.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
+    #t6.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
+    #t6.{core::Set::add}{Invariant}(5){(core::int) → core::bool};
+    #t6.{core::Set::add}{Invariant}(6){(core::int) → core::bool};
+  } =>#t6;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int>});
+}
+static method foldInitialSpread2([core::bool c = #C1]) → void {
+  core::Iterable<core::int?> initial = <core::int?>[0, 1, 2];
+  if(c) {
+    initial = <core::int?>[null];
+  }
+  core::List<core::int?> list = block {
+    final core::List<core::int?> #t9 = core::List::of<core::int?>(initial);
+    if(true)
+      #t9.{core::List::add}{Invariant}(3){(core::int?) → void};
+    #t9.{core::List::add}{Invariant}(4){(core::int?) → void};
+    #t9.{core::List::add}{Invariant}(5){(core::int?) → void};
+    #t9.{core::List::add}{Invariant}(6){(core::int?) → void};
+  } =>#t9;
+  self::expect(core::List::generate<core::int?>(7, (core::int? i) → core::int? => i), list);
+  core::Set<core::int?> set = block {
+    final core::Set<core::int?> #t10 = col::LinkedHashSet::of<core::int?>(initial);
+    if(true)
+      #t10.{core::Set::add}{Invariant}(3){(core::int?) → core::bool};
+    #t10.{core::Set::add}{Invariant}(4){(core::int?) → core::bool};
+    #t10.{core::Set::add}{Invariant}(5){(core::int?) → core::bool};
+    #t10.{core::Set::add}{Invariant}(6){(core::int?) → core::bool};
+  } =>#t10;
+  self::expect(core::List::generate<core::int?>(7, (core::int? i) → core::int? => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int?>});
+}
+static method foldInitialSpread3([core::bool c = #C1]) → void {
+  core::List<core::int?> initial = <core::int?>[0, 1, 2];
+  if(c) {
+    initial = <core::int?>[null];
+  }
+  core::List<core::int?> list = block {
+    final core::List<core::int?> #t11 = core::List::of<core::int?>(initial);
+    if(true)
+      #t11.{core::List::add}{Invariant}(3){(core::int?) → void};
+    #t11.{core::List::add}{Invariant}(4){(core::int?) → void};
+    #t11.{core::List::add}{Invariant}(5){(core::int?) → void};
+    #t11.{core::List::add}{Invariant}(6){(core::int?) → void};
+  } =>#t11;
+  self::expect(core::List::generate<core::int?>(7, (core::int? i) → core::int? => i), list);
+  core::Set<core::int?> set = block {
+    final core::Set<core::int?> #t12 = col::LinkedHashSet::of<core::int?>(initial);
+    if(true)
+      #t12.{core::Set::add}{Invariant}(3){(core::int?) → core::bool};
+    #t12.{core::Set::add}{Invariant}(4){(core::int?) → core::bool};
+    #t12.{core::Set::add}{Invariant}(5){(core::int?) → core::bool};
+    #t12.{core::Set::add}{Invariant}(6){(core::int?) → core::bool};
+  } =>#t12;
+  self::expect(core::List::generate<core::int?>(7, (core::int? i) → core::int? => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int?>});
+}
+static method foldInitialSpread4([core::bool c = #C1]) → void {
+  core::Iterable<core::int> initial = <core::int>[0, 1, 2];
+  core::List<core::int> list = block {
+    final core::List<core::int> #t13 = core::List::of<core::int>(initial);
+    if(true)
+      #t13.{core::List::add}{Invariant}(3){(core::int) → void};
+    #t13.{core::List::add}{Invariant}(4){(core::int) → void};
+    #t13.{core::List::add}{Invariant}(5){(core::int) → void};
+    #t13.{core::List::add}{Invariant}(6){(core::int) → void};
+  } =>#t13;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), list);
+  core::Set<core::int> set = block {
+    final core::Set<core::int> #t14 = col::LinkedHashSet::of<core::int>(initial);
+    if(true)
+      #t14.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
+    #t14.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
+    #t14.{core::Set::add}{Invariant}(5){(core::int) → core::bool};
+    #t14.{core::Set::add}{Invariant}(6){(core::int) → core::bool};
+  } =>#t14;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int>});
+}
+static method foldInitialSpread5([core::bool c = #C1]) → void {
+  core::List<core::int> initial = <core::int>[0, 1, 2];
+  core::List<core::int> list = block {
+    final core::List<core::int> #t15 = core::List::of<core::int>(initial);
+    if(true)
+      #t15.{core::List::add}{Invariant}(3){(core::int) → void};
+    #t15.{core::List::add}{Invariant}(4){(core::int) → void};
+    #t15.{core::List::add}{Invariant}(5){(core::int) → void};
+    #t15.{core::List::add}{Invariant}(6){(core::int) → void};
+  } =>#t15;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), list);
+  core::Set<core::int> set = block {
+    final core::Set<core::int> #t16 = col::LinkedHashSet::of<core::int>(initial);
+    if(true)
+      #t16.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
+    #t16.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
+    #t16.{core::Set::add}{Invariant}(5){(core::int) → core::bool};
+    #t16.{core::Set::add}{Invariant}(6){(core::int) → core::bool};
+  } =>#t16;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int>});
+}
+static method foldInitialSpread6([core::bool c = #C1]) → void {
+  core::List<core::int>? initial = <core::int>[0, 1, 2];
+  if(c) {
+    initial = null;
+  }
+  core::List<core::int> list = block {
+    final core::List<core::int> #t17 = <core::int>[];
+    final core::Iterable<core::int>? #t18 = initial;
+    if(!(#t18 == null))
+      #t17.{core::List::addAll}{Invariant}(#t18{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+    if(true)
+      #t17.{core::List::add}{Invariant}(3){(core::int) → void};
+    #t17.{core::List::add}{Invariant}(4){(core::int) → void};
+    #t17.{core::List::add}{Invariant}(5){(core::int) → void};
+    #t17.{core::List::add}{Invariant}(6){(core::int) → void};
+  } =>#t17;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), list);
+  core::Set<core::int> set = block {
+    final core::Set<core::int> #t19 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<core::int>? #t20 = initial;
+    if(!(#t20 == null))
+      #t19.{core::Set::addAll}{Invariant}(#t20{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+    if(true)
+      #t19.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
+    #t19.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
+    #t19.{core::Set::add}{Invariant}(5){(core::int) → core::bool};
+    #t19.{core::Set::add}{Invariant}(6){(core::int) → core::bool};
+  } =>#t19;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int>});
+}
+static method main() → dynamic {
+  self::foldInitialElements();
+  self::foldInitialSpread1();
+  self::foldInitialSpread2();
+  self::foldInitialSpread3();
+  self::foldInitialSpread4();
+  self::foldInitialSpread5();
+  self::foldInitialSpread6();
+}
+static method expect(core::List<dynamic> list1, core::List<dynamic> list2) → void {
+  if(!(list1.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} list2.{core::List::length}{core::int})) {
+    throw "Unexpected length. Expected ${list1.{core::List::length}{core::int}}, actual ${list2.{core::List::length}{core::int}}.";
+  }
+  for (core::int i = 0; i.{core::num::<}(list1.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    if(!(list1.{core::List::[]}(i){(core::int) → dynamic} =={core::Object::==}{(core::Object) → core::bool} list2.{core::List::[]}(i){(core::int) → dynamic})) {
+      throw "Unexpected element at index ${i}. Expected ${list1.{core::List::[]}(i){(core::int) → dynamic}}, actual ${list2.{core::List::[]}(i){(core::int) → dynamic}}.";
+    }
+  }
+}
+
+constants  {
+  #C1 = false
+}
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial2.dart.weak.modular.expect b/pkg/front_end/testcases/unified_collections/fold_initial2.dart.weak.modular.expect
new file mode 100644
index 0000000..8bf896b
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/fold_initial2.dart.weak.modular.expect
@@ -0,0 +1,203 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method foldInitialElements() → void {
+  dynamic element0 = 0;
+  core::int? element1 = 1;
+  core::int element2 = 2;
+  core::List<core::int?> list = block {
+    final core::List<core::int?> #t1 = <core::int?>[element0 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?, element1{core::int}, element2];
+    if(true)
+      #t1.{core::List::add}{Invariant}(3){(core::int?) → void};
+    #t1.{core::List::add}{Invariant}(4){(core::int?) → void};
+    #t1.{core::List::add}{Invariant}(5){(core::int?) → void};
+    #t1.{core::List::add}{Invariant}(6){(core::int?) → void};
+  } =>#t1;
+  self::expect(core::List::generate<core::int?>(7, (core::int? i) → core::int? => i), list);
+  core::Set<core::int?> set = block {
+    final core::Set<core::int?> #t2 = col::LinkedHashSet::•<core::int?>();
+    #t2.{core::Set::add}{Invariant}(element0 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(element1{core::int}){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(element2){(core::int?) → core::bool};
+    if(true)
+      #t2.{core::Set::add}{Invariant}(3){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(4){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(5){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(6){(core::int?) → core::bool};
+  } =>#t2;
+  self::expect(core::List::generate<core::int?>(7, (core::int? i) → core::int? => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int?>});
+}
+static method foldInitialSpread1() → void {
+  dynamic initial = <core::int>[0, 1, 2];
+  core::List<core::int> list = block {
+    final core::List<core::int> #t3 = <core::int>[];
+    for (final has-declared-initializer dynamic #t4 in initial as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+      final core::int #t5 = #t4 as{TypeError,ForNonNullableByDefault} core::int;
+      #t3.{core::List::add}{Invariant}(#t5){(core::int) → void};
+    }
+    if(true)
+      #t3.{core::List::add}{Invariant}(3){(core::int) → void};
+    #t3.{core::List::add}{Invariant}(4){(core::int) → void};
+    #t3.{core::List::add}{Invariant}(5){(core::int) → void};
+    #t3.{core::List::add}{Invariant}(6){(core::int) → void};
+  } =>#t3;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), list);
+  core::Set<core::int> set = block {
+    final core::Set<core::int> #t6 = col::LinkedHashSet::•<core::int>();
+    for (final has-declared-initializer dynamic #t7 in initial as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+      final core::int #t8 = #t7 as{TypeError,ForNonNullableByDefault} core::int;
+      #t6.{core::Set::add}{Invariant}(#t8){(core::int) → core::bool};
+    }
+    if(true)
+      #t6.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
+    #t6.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
+    #t6.{core::Set::add}{Invariant}(5){(core::int) → core::bool};
+    #t6.{core::Set::add}{Invariant}(6){(core::int) → core::bool};
+  } =>#t6;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int>});
+}
+static method foldInitialSpread2([core::bool c = #C1]) → void {
+  core::Iterable<core::int?> initial = <core::int?>[0, 1, 2];
+  if(c) {
+    initial = <core::int?>[null];
+  }
+  core::List<core::int?> list = block {
+    final core::List<core::int?> #t9 = core::List::of<core::int?>(initial);
+    if(true)
+      #t9.{core::List::add}{Invariant}(3){(core::int?) → void};
+    #t9.{core::List::add}{Invariant}(4){(core::int?) → void};
+    #t9.{core::List::add}{Invariant}(5){(core::int?) → void};
+    #t9.{core::List::add}{Invariant}(6){(core::int?) → void};
+  } =>#t9;
+  self::expect(core::List::generate<core::int?>(7, (core::int? i) → core::int? => i), list);
+  core::Set<core::int?> set = block {
+    final core::Set<core::int?> #t10 = col::LinkedHashSet::of<core::int?>(initial);
+    if(true)
+      #t10.{core::Set::add}{Invariant}(3){(core::int?) → core::bool};
+    #t10.{core::Set::add}{Invariant}(4){(core::int?) → core::bool};
+    #t10.{core::Set::add}{Invariant}(5){(core::int?) → core::bool};
+    #t10.{core::Set::add}{Invariant}(6){(core::int?) → core::bool};
+  } =>#t10;
+  self::expect(core::List::generate<core::int?>(7, (core::int? i) → core::int? => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int?>});
+}
+static method foldInitialSpread3([core::bool c = #C1]) → void {
+  core::List<core::int?> initial = <core::int?>[0, 1, 2];
+  if(c) {
+    initial = <core::int?>[null];
+  }
+  core::List<core::int?> list = block {
+    final core::List<core::int?> #t11 = core::List::of<core::int?>(initial);
+    if(true)
+      #t11.{core::List::add}{Invariant}(3){(core::int?) → void};
+    #t11.{core::List::add}{Invariant}(4){(core::int?) → void};
+    #t11.{core::List::add}{Invariant}(5){(core::int?) → void};
+    #t11.{core::List::add}{Invariant}(6){(core::int?) → void};
+  } =>#t11;
+  self::expect(core::List::generate<core::int?>(7, (core::int? i) → core::int? => i), list);
+  core::Set<core::int?> set = block {
+    final core::Set<core::int?> #t12 = col::LinkedHashSet::of<core::int?>(initial);
+    if(true)
+      #t12.{core::Set::add}{Invariant}(3){(core::int?) → core::bool};
+    #t12.{core::Set::add}{Invariant}(4){(core::int?) → core::bool};
+    #t12.{core::Set::add}{Invariant}(5){(core::int?) → core::bool};
+    #t12.{core::Set::add}{Invariant}(6){(core::int?) → core::bool};
+  } =>#t12;
+  self::expect(core::List::generate<core::int?>(7, (core::int? i) → core::int? => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int?>});
+}
+static method foldInitialSpread4([core::bool c = #C1]) → void {
+  core::Iterable<core::int> initial = <core::int>[0, 1, 2];
+  core::List<core::int> list = block {
+    final core::List<core::int> #t13 = core::List::of<core::int>(initial);
+    if(true)
+      #t13.{core::List::add}{Invariant}(3){(core::int) → void};
+    #t13.{core::List::add}{Invariant}(4){(core::int) → void};
+    #t13.{core::List::add}{Invariant}(5){(core::int) → void};
+    #t13.{core::List::add}{Invariant}(6){(core::int) → void};
+  } =>#t13;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), list);
+  core::Set<core::int> set = block {
+    final core::Set<core::int> #t14 = col::LinkedHashSet::of<core::int>(initial);
+    if(true)
+      #t14.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
+    #t14.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
+    #t14.{core::Set::add}{Invariant}(5){(core::int) → core::bool};
+    #t14.{core::Set::add}{Invariant}(6){(core::int) → core::bool};
+  } =>#t14;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int>});
+}
+static method foldInitialSpread5([core::bool c = #C1]) → void {
+  core::List<core::int> initial = <core::int>[0, 1, 2];
+  core::List<core::int> list = block {
+    final core::List<core::int> #t15 = core::List::of<core::int>(initial);
+    if(true)
+      #t15.{core::List::add}{Invariant}(3){(core::int) → void};
+    #t15.{core::List::add}{Invariant}(4){(core::int) → void};
+    #t15.{core::List::add}{Invariant}(5){(core::int) → void};
+    #t15.{core::List::add}{Invariant}(6){(core::int) → void};
+  } =>#t15;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), list);
+  core::Set<core::int> set = block {
+    final core::Set<core::int> #t16 = col::LinkedHashSet::of<core::int>(initial);
+    if(true)
+      #t16.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
+    #t16.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
+    #t16.{core::Set::add}{Invariant}(5){(core::int) → core::bool};
+    #t16.{core::Set::add}{Invariant}(6){(core::int) → core::bool};
+  } =>#t16;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int>});
+}
+static method foldInitialSpread6([core::bool c = #C1]) → void {
+  core::List<core::int>? initial = <core::int>[0, 1, 2];
+  if(c) {
+    initial = null;
+  }
+  core::List<core::int> list = block {
+    final core::List<core::int> #t17 = <core::int>[];
+    final core::Iterable<core::int>? #t18 = initial;
+    if(!(#t18 == null))
+      #t17.{core::List::addAll}{Invariant}(#t18{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+    if(true)
+      #t17.{core::List::add}{Invariant}(3){(core::int) → void};
+    #t17.{core::List::add}{Invariant}(4){(core::int) → void};
+    #t17.{core::List::add}{Invariant}(5){(core::int) → void};
+    #t17.{core::List::add}{Invariant}(6){(core::int) → void};
+  } =>#t17;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), list);
+  core::Set<core::int> set = block {
+    final core::Set<core::int> #t19 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<core::int>? #t20 = initial;
+    if(!(#t20 == null))
+      #t19.{core::Set::addAll}{Invariant}(#t20{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+    if(true)
+      #t19.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
+    #t19.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
+    #t19.{core::Set::add}{Invariant}(5){(core::int) → core::bool};
+    #t19.{core::Set::add}{Invariant}(6){(core::int) → core::bool};
+  } =>#t19;
+  self::expect(core::List::generate<core::int>(7, (core::int i) → core::int => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int>});
+}
+static method main() → dynamic {
+  self::foldInitialElements();
+  self::foldInitialSpread1();
+  self::foldInitialSpread2();
+  self::foldInitialSpread3();
+  self::foldInitialSpread4();
+  self::foldInitialSpread5();
+  self::foldInitialSpread6();
+}
+static method expect(core::List<dynamic> list1, core::List<dynamic> list2) → void {
+  if(!(list1.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} list2.{core::List::length}{core::int})) {
+    throw "Unexpected length. Expected ${list1.{core::List::length}{core::int}}, actual ${list2.{core::List::length}{core::int}}.";
+  }
+  for (core::int i = 0; i.{core::num::<}(list1.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    if(!(list1.{core::List::[]}(i){(core::int) → dynamic} =={core::Object::==}{(core::Object) → core::bool} list2.{core::List::[]}(i){(core::int) → dynamic})) {
+      throw "Unexpected element at index ${i}. Expected ${list1.{core::List::[]}(i){(core::int) → dynamic}}, actual ${list2.{core::List::[]}(i){(core::int) → dynamic}}.";
+    }
+  }
+}
+
+constants  {
+  #C1 = false
+}
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial2.dart.weak.outline.expect b/pkg/front_end/testcases/unified_collections/fold_initial2.dart.weak.outline.expect
new file mode 100644
index 0000000..39dbeec
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/fold_initial2.dart.weak.outline.expect
@@ -0,0 +1,22 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method foldInitialElements() → void
+  ;
+static method foldInitialSpread1() → void
+  ;
+static method foldInitialSpread2([has-declared-initializer core::bool c]) → void
+  ;
+static method foldInitialSpread3([has-declared-initializer core::bool c]) → void
+  ;
+static method foldInitialSpread4([has-declared-initializer core::bool c]) → void
+  ;
+static method foldInitialSpread5([has-declared-initializer core::bool c]) → void
+  ;
+static method foldInitialSpread6([has-declared-initializer core::bool c]) → void
+  ;
+static method main() → dynamic
+  ;
+static method expect(core::List<dynamic> list1, core::List<dynamic> list2) → void
+  ;
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial2.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/fold_initial2.dart.weak.transformed.expect
new file mode 100644
index 0000000..a52dccb
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/fold_initial2.dart.weak.transformed.expect
@@ -0,0 +1,215 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method foldInitialElements() → void {
+  dynamic element0 = 0;
+  core::int? element1 = 1;
+  core::int element2 = 2;
+  core::List<core::int?> list = block {
+    final core::List<core::int?> #t1 = core::_GrowableList::_literal3<core::int?>(element0 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?, element1{core::int}, element2);
+    if(true)
+      #t1.{core::List::add}{Invariant}(3){(core::int?) → void};
+    #t1.{core::List::add}{Invariant}(4){(core::int?) → void};
+    #t1.{core::List::add}{Invariant}(5){(core::int?) → void};
+    #t1.{core::List::add}{Invariant}(6){(core::int?) → void};
+  } =>#t1;
+  self::expect(core::_GrowableList::generate<core::int?>(7, (core::int? i) → core::int? => i), list);
+  core::Set<core::int?> set = block {
+    final core::Set<core::int?> #t2 = new col::_CompactLinkedHashSet::•<core::int?>();
+    #t2.{core::Set::add}{Invariant}(element0 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(element1{core::int}){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(element2){(core::int?) → core::bool};
+    if(true)
+      #t2.{core::Set::add}{Invariant}(3){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(4){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(5){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(6){(core::int?) → core::bool};
+  } =>#t2;
+  self::expect(core::_GrowableList::generate<core::int?>(7, (core::int? i) → core::int? => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int?>});
+}
+static method foldInitialSpread1() → void {
+  dynamic initial = core::_GrowableList::_literal3<core::int>(0, 1, 2);
+  core::List<core::int> list = block {
+    final core::List<core::int> #t3 = core::_GrowableList::•<core::int>(0);
+    {
+      core::Iterator<dynamic> :sync-for-iterator = (initial as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{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};
+        {
+          final core::int #t5 = #t4 as{TypeError,ForNonNullableByDefault} core::int;
+          #t3.{core::List::add}{Invariant}(#t5){(core::int) → void};
+        }
+      }
+    }
+    if(true)
+      #t3.{core::List::add}{Invariant}(3){(core::int) → void};
+    #t3.{core::List::add}{Invariant}(4){(core::int) → void};
+    #t3.{core::List::add}{Invariant}(5){(core::int) → void};
+    #t3.{core::List::add}{Invariant}(6){(core::int) → void};
+  } =>#t3;
+  self::expect(core::_GrowableList::generate<core::int>(7, (core::int i) → core::int => i), list);
+  core::Set<core::int> set = block {
+    final core::Set<core::int> #t6 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = (initial as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final dynamic #t7 = :sync-for-iterator.{core::Iterator::current}{dynamic};
+        {
+          final core::int #t8 = #t7 as{TypeError,ForNonNullableByDefault} core::int;
+          #t6.{core::Set::add}{Invariant}(#t8){(core::int) → core::bool};
+        }
+      }
+    }
+    if(true)
+      #t6.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
+    #t6.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
+    #t6.{core::Set::add}{Invariant}(5){(core::int) → core::bool};
+    #t6.{core::Set::add}{Invariant}(6){(core::int) → core::bool};
+  } =>#t6;
+  self::expect(core::_GrowableList::generate<core::int>(7, (core::int i) → core::int => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int>});
+}
+static method foldInitialSpread2([core::bool c = #C1]) → void {
+  core::Iterable<core::int?> initial = core::_GrowableList::_literal3<core::int?>(0, 1, 2);
+  if(c) {
+    initial = core::_GrowableList::_literal1<core::int?>(null);
+  }
+  core::List<core::int?> list = block {
+    final core::List<core::int?> #t9 = core::List::of<core::int?>(initial);
+    if(true)
+      #t9.{core::List::add}{Invariant}(3){(core::int?) → void};
+    #t9.{core::List::add}{Invariant}(4){(core::int?) → void};
+    #t9.{core::List::add}{Invariant}(5){(core::int?) → void};
+    #t9.{core::List::add}{Invariant}(6){(core::int?) → void};
+  } =>#t9;
+  self::expect(core::_GrowableList::generate<core::int?>(7, (core::int? i) → core::int? => i), list);
+  core::Set<core::int?> set = block {
+    final core::Set<core::int?> #t10 = col::LinkedHashSet::of<core::int?>(initial);
+    if(true)
+      #t10.{core::Set::add}{Invariant}(3){(core::int?) → core::bool};
+    #t10.{core::Set::add}{Invariant}(4){(core::int?) → core::bool};
+    #t10.{core::Set::add}{Invariant}(5){(core::int?) → core::bool};
+    #t10.{core::Set::add}{Invariant}(6){(core::int?) → core::bool};
+  } =>#t10;
+  self::expect(core::_GrowableList::generate<core::int?>(7, (core::int? i) → core::int? => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int?>});
+}
+static method foldInitialSpread3([core::bool c = #C1]) → void {
+  core::List<core::int?> initial = core::_GrowableList::_literal3<core::int?>(0, 1, 2);
+  if(c) {
+    initial = core::_GrowableList::_literal1<core::int?>(null);
+  }
+  core::List<core::int?> list = block {
+    final core::List<core::int?> #t11 = core::List::of<core::int?>(initial);
+    if(true)
+      #t11.{core::List::add}{Invariant}(3){(core::int?) → void};
+    #t11.{core::List::add}{Invariant}(4){(core::int?) → void};
+    #t11.{core::List::add}{Invariant}(5){(core::int?) → void};
+    #t11.{core::List::add}{Invariant}(6){(core::int?) → void};
+  } =>#t11;
+  self::expect(core::_GrowableList::generate<core::int?>(7, (core::int? i) → core::int? => i), list);
+  core::Set<core::int?> set = block {
+    final core::Set<core::int?> #t12 = col::LinkedHashSet::of<core::int?>(initial);
+    if(true)
+      #t12.{core::Set::add}{Invariant}(3){(core::int?) → core::bool};
+    #t12.{core::Set::add}{Invariant}(4){(core::int?) → core::bool};
+    #t12.{core::Set::add}{Invariant}(5){(core::int?) → core::bool};
+    #t12.{core::Set::add}{Invariant}(6){(core::int?) → core::bool};
+  } =>#t12;
+  self::expect(core::_GrowableList::generate<core::int?>(7, (core::int? i) → core::int? => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int?>});
+}
+static method foldInitialSpread4([core::bool c = #C1]) → void {
+  core::Iterable<core::int> initial = core::_GrowableList::_literal3<core::int>(0, 1, 2);
+  core::List<core::int> list = block {
+    final core::List<core::int> #t13 = core::List::of<core::int>(initial);
+    if(true)
+      #t13.{core::List::add}{Invariant}(3){(core::int) → void};
+    #t13.{core::List::add}{Invariant}(4){(core::int) → void};
+    #t13.{core::List::add}{Invariant}(5){(core::int) → void};
+    #t13.{core::List::add}{Invariant}(6){(core::int) → void};
+  } =>#t13;
+  self::expect(core::_GrowableList::generate<core::int>(7, (core::int i) → core::int => i), list);
+  core::Set<core::int> set = block {
+    final core::Set<core::int> #t14 = col::LinkedHashSet::of<core::int>(initial);
+    if(true)
+      #t14.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
+    #t14.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
+    #t14.{core::Set::add}{Invariant}(5){(core::int) → core::bool};
+    #t14.{core::Set::add}{Invariant}(6){(core::int) → core::bool};
+  } =>#t14;
+  self::expect(core::_GrowableList::generate<core::int>(7, (core::int i) → core::int => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int>});
+}
+static method foldInitialSpread5([core::bool c = #C1]) → void {
+  core::List<core::int> initial = core::_GrowableList::_literal3<core::int>(0, 1, 2);
+  core::List<core::int> list = block {
+    final core::List<core::int> #t15 = core::List::of<core::int>(initial);
+    if(true)
+      #t15.{core::List::add}{Invariant}(3){(core::int) → void};
+    #t15.{core::List::add}{Invariant}(4){(core::int) → void};
+    #t15.{core::List::add}{Invariant}(5){(core::int) → void};
+    #t15.{core::List::add}{Invariant}(6){(core::int) → void};
+  } =>#t15;
+  self::expect(core::_GrowableList::generate<core::int>(7, (core::int i) → core::int => i), list);
+  core::Set<core::int> set = block {
+    final core::Set<core::int> #t16 = col::LinkedHashSet::of<core::int>(initial);
+    if(true)
+      #t16.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
+    #t16.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
+    #t16.{core::Set::add}{Invariant}(5){(core::int) → core::bool};
+    #t16.{core::Set::add}{Invariant}(6){(core::int) → core::bool};
+  } =>#t16;
+  self::expect(core::_GrowableList::generate<core::int>(7, (core::int i) → core::int => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int>});
+}
+static method foldInitialSpread6([core::bool c = #C1]) → void {
+  core::List<core::int>? initial = core::_GrowableList::_literal3<core::int>(0, 1, 2);
+  if(c) {
+    initial = null;
+  }
+  core::List<core::int> list = block {
+    final core::List<core::int> #t17 = core::_GrowableList::•<core::int>(0);
+    final core::Iterable<core::int>? #t18 = initial;
+    if(!(#t18 == null))
+      #t17.{core::List::addAll}{Invariant}(#t18{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+    if(true)
+      #t17.{core::List::add}{Invariant}(3){(core::int) → void};
+    #t17.{core::List::add}{Invariant}(4){(core::int) → void};
+    #t17.{core::List::add}{Invariant}(5){(core::int) → void};
+    #t17.{core::List::add}{Invariant}(6){(core::int) → void};
+  } =>#t17;
+  self::expect(core::_GrowableList::generate<core::int>(7, (core::int i) → core::int => i), list);
+  core::Set<core::int> set = block {
+    final core::Set<core::int> #t19 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<core::int>? #t20 = initial;
+    if(!(#t20 == null))
+      #t19.{core::Set::addAll}{Invariant}(#t20{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+    if(true)
+      #t19.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
+    #t19.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
+    #t19.{core::Set::add}{Invariant}(5){(core::int) → core::bool};
+    #t19.{core::Set::add}{Invariant}(6){(core::int) → core::bool};
+  } =>#t19;
+  self::expect(core::_GrowableList::generate<core::int>(7, (core::int i) → core::int => i), set.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::int>});
+}
+static method main() → dynamic {
+  self::foldInitialElements();
+  self::foldInitialSpread1();
+  self::foldInitialSpread2();
+  self::foldInitialSpread3();
+  self::foldInitialSpread4();
+  self::foldInitialSpread5();
+  self::foldInitialSpread6();
+}
+static method expect(core::List<dynamic> list1, core::List<dynamic> list2) → void {
+  if(!(list1.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} list2.{core::List::length}{core::int})) {
+    throw "Unexpected length. Expected ${list1.{core::List::length}{core::int}}, actual ${list2.{core::List::length}{core::int}}.";
+  }
+  for (core::int i = 0; i.{core::num::<}(list1.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    if(!(list1.{core::List::[]}(i){(core::int) → dynamic} =={core::Object::==}{(core::Object) → core::bool} list2.{core::List::[]}(i){(core::int) → dynamic})) {
+      throw "Unexpected element at index ${i}. Expected ${list1.{core::List::[]}(i){(core::int) → dynamic}}, actual ${list2.{core::List::[]}(i){(core::int) → dynamic}}.";
+    }
+  }
+}
+
+constants  {
+  #C1 = false
+}
diff --git a/pkg/front_end/testcases/unified_collections/invariance2.dart b/pkg/front_end/testcases/unified_collections/invariance2.dart
new file mode 100644
index 0000000..a4c812f
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/invariance2.dart
@@ -0,0 +1,26 @@
+// 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.
+
+main() {
+  var list1 = <int>[0];
+  var list2 = <int?>[0];
+  dynamic list3 = <int>[0];
+  var list = <int?>[0, ...list1, ...list2, ...list3, if (true) 2];
+
+  var set1 = <int>{0};
+  var set2 = <int?>{0};
+  dynamic set3 = <int>{0};
+  var set = <int?>{0, ...set1, ...set2, ...set3, if (true) 2};
+
+  var map1 = <int, String>{0: 'foo'};
+  var map2 = <int?, String?>{0: 'bar'};
+  dynamic map3 = <int, String>{0: 'baz'};
+  var map = <int?, String?>{
+    0: 'foo',
+    ...map1,
+    ...map2,
+    ...map3,
+    if (true) 2: 'baz'
+  };
+}
diff --git a/pkg/front_end/testcases/unified_collections/invariance2.dart.textual_outline.expect b/pkg/front_end/testcases/unified_collections/invariance2.dart.textual_outline.expect
new file mode 100644
index 0000000..bae895a
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/invariance2.dart.textual_outline.expect
@@ -0,0 +1 @@
+main() {}
diff --git a/pkg/front_end/testcases/unified_collections/invariance2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/unified_collections/invariance2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..bae895a
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/invariance2.dart.textual_outline_modelled.expect
@@ -0,0 +1 @@
+main() {}
diff --git a/pkg/front_end/testcases/unified_collections/invariance2.dart.weak.expect b/pkg/front_end/testcases/unified_collections/invariance2.dart.weak.expect
new file mode 100644
index 0000000..010c0de
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/invariance2.dart.weak.expect
@@ -0,0 +1,63 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method main() → dynamic {
+  core::List<core::int> list1 = <core::int>[0];
+  core::List<core::int?> list2 = <core::int?>[0];
+  dynamic list3 = <core::int>[0];
+  core::List<core::int?> list = block {
+    final core::List<core::int?> #t1 = <core::int?>[0];
+    #t1.{core::List::addAll}{Invariant}(list1){(core::Iterable<core::int?>) → void};
+    #t1.{core::List::addAll}{Invariant}(list2){(core::Iterable<core::int?>) → void};
+    for (final has-declared-initializer dynamic #t2 in list3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+      final core::int? #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int?;
+      #t1.{core::List::add}{Invariant}(#t3){(core::int?) → void};
+    }
+    if(true)
+      #t1.{core::List::add}{Invariant}(2){(core::int?) → void};
+  } =>#t1;
+  core::Set<core::int> set1 = block {
+    final core::Set<core::int> #t4 = col::LinkedHashSet::•<core::int>();
+    #t4.{core::Set::add}{Invariant}(0){(core::int) → core::bool};
+  } =>#t4;
+  core::Set<core::int?> set2 = block {
+    final core::Set<core::int?> #t5 = col::LinkedHashSet::•<core::int?>();
+    #t5.{core::Set::add}{Invariant}(0){(core::int?) → core::bool};
+  } =>#t5;
+  dynamic set3 = block {
+    final core::Set<core::int> #t6 = col::LinkedHashSet::•<core::int>();
+    #t6.{core::Set::add}{Invariant}(0){(core::int) → core::bool};
+  } =>#t6;
+  core::Set<core::int?> set = block {
+    final core::Set<core::int?> #t7 = col::LinkedHashSet::•<core::int?>();
+    #t7.{core::Set::add}{Invariant}(0){(core::int?) → core::bool};
+    #t7.{core::Set::addAll}{Invariant}(set1){(core::Iterable<core::int?>) → void};
+    #t7.{core::Set::addAll}{Invariant}(set2){(core::Iterable<core::int?>) → void};
+    for (final has-declared-initializer dynamic #t8 in set3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+      final core::int? #t9 = #t8 as{TypeError,ForNonNullableByDefault} core::int?;
+      #t7.{core::Set::add}{Invariant}(#t9){(core::int?) → core::bool};
+    }
+    if(true)
+      #t7.{core::Set::add}{Invariant}(2){(core::int?) → core::bool};
+  } =>#t7;
+  core::Map<core::int, core::String> map1 = <core::int, core::String>{0: "foo"};
+  core::Map<core::int?, core::String?> map2 = <core::int?, core::String?>{0: "bar"};
+  dynamic map3 = <core::int, core::String>{0: "baz"};
+  core::Map<core::int?, core::String?> map = block {
+    final core::Map<core::int?, core::String?> #t10 = <core::int?, core::String?>{};
+    #t10.{core::Map::[]=}{Invariant}(0, "foo"){(core::int?, core::String?) → void};
+    for (final has-declared-initializer core::MapEntry<core::int?, core::String?> #t11 in map1.{core::Map::entries}{core::Iterable<core::MapEntry<core::int?, core::String?>>})
+      #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}{core::int?}, #t11.{core::MapEntry::value}{core::String?}){(core::int?, core::String?) → void};
+    for (final has-declared-initializer core::MapEntry<core::int?, core::String?> #t12 in map2.{core::Map::entries}{core::Iterable<core::MapEntry<core::int?, core::String?>>})
+      #t10.{core::Map::[]=}{Invariant}(#t12.{core::MapEntry::key}{core::int?}, #t12.{core::MapEntry::value}{core::String?}){(core::int?, core::String?) → void};
+    for (final has-declared-initializer core::MapEntry<dynamic, dynamic> #t13 in (map3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<core::int?, core::String?>>}) {
+      final core::int? #t14 = #t13.{core::MapEntry::key}{dynamic} as{TypeError,ForNonNullableByDefault} core::int?;
+      final core::String? #t15 = #t13.{core::MapEntry::value}{dynamic} as{TypeError,ForNonNullableByDefault} core::String?;
+      #t10.{core::Map::[]=}{Invariant}(#t14, #t15){(core::int?, core::String?) → void};
+    }
+    if(true)
+      #t10.{core::Map::[]=}{Invariant}(2, "baz"){(core::int?, core::String?) → void};
+  } =>#t10;
+}
diff --git a/pkg/front_end/testcases/unified_collections/invariance2.dart.weak.modular.expect b/pkg/front_end/testcases/unified_collections/invariance2.dart.weak.modular.expect
new file mode 100644
index 0000000..010c0de
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/invariance2.dart.weak.modular.expect
@@ -0,0 +1,63 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method main() → dynamic {
+  core::List<core::int> list1 = <core::int>[0];
+  core::List<core::int?> list2 = <core::int?>[0];
+  dynamic list3 = <core::int>[0];
+  core::List<core::int?> list = block {
+    final core::List<core::int?> #t1 = <core::int?>[0];
+    #t1.{core::List::addAll}{Invariant}(list1){(core::Iterable<core::int?>) → void};
+    #t1.{core::List::addAll}{Invariant}(list2){(core::Iterable<core::int?>) → void};
+    for (final has-declared-initializer dynamic #t2 in list3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+      final core::int? #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int?;
+      #t1.{core::List::add}{Invariant}(#t3){(core::int?) → void};
+    }
+    if(true)
+      #t1.{core::List::add}{Invariant}(2){(core::int?) → void};
+  } =>#t1;
+  core::Set<core::int> set1 = block {
+    final core::Set<core::int> #t4 = col::LinkedHashSet::•<core::int>();
+    #t4.{core::Set::add}{Invariant}(0){(core::int) → core::bool};
+  } =>#t4;
+  core::Set<core::int?> set2 = block {
+    final core::Set<core::int?> #t5 = col::LinkedHashSet::•<core::int?>();
+    #t5.{core::Set::add}{Invariant}(0){(core::int?) → core::bool};
+  } =>#t5;
+  dynamic set3 = block {
+    final core::Set<core::int> #t6 = col::LinkedHashSet::•<core::int>();
+    #t6.{core::Set::add}{Invariant}(0){(core::int) → core::bool};
+  } =>#t6;
+  core::Set<core::int?> set = block {
+    final core::Set<core::int?> #t7 = col::LinkedHashSet::•<core::int?>();
+    #t7.{core::Set::add}{Invariant}(0){(core::int?) → core::bool};
+    #t7.{core::Set::addAll}{Invariant}(set1){(core::Iterable<core::int?>) → void};
+    #t7.{core::Set::addAll}{Invariant}(set2){(core::Iterable<core::int?>) → void};
+    for (final has-declared-initializer dynamic #t8 in set3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+      final core::int? #t9 = #t8 as{TypeError,ForNonNullableByDefault} core::int?;
+      #t7.{core::Set::add}{Invariant}(#t9){(core::int?) → core::bool};
+    }
+    if(true)
+      #t7.{core::Set::add}{Invariant}(2){(core::int?) → core::bool};
+  } =>#t7;
+  core::Map<core::int, core::String> map1 = <core::int, core::String>{0: "foo"};
+  core::Map<core::int?, core::String?> map2 = <core::int?, core::String?>{0: "bar"};
+  dynamic map3 = <core::int, core::String>{0: "baz"};
+  core::Map<core::int?, core::String?> map = block {
+    final core::Map<core::int?, core::String?> #t10 = <core::int?, core::String?>{};
+    #t10.{core::Map::[]=}{Invariant}(0, "foo"){(core::int?, core::String?) → void};
+    for (final has-declared-initializer core::MapEntry<core::int?, core::String?> #t11 in map1.{core::Map::entries}{core::Iterable<core::MapEntry<core::int?, core::String?>>})
+      #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}{core::int?}, #t11.{core::MapEntry::value}{core::String?}){(core::int?, core::String?) → void};
+    for (final has-declared-initializer core::MapEntry<core::int?, core::String?> #t12 in map2.{core::Map::entries}{core::Iterable<core::MapEntry<core::int?, core::String?>>})
+      #t10.{core::Map::[]=}{Invariant}(#t12.{core::MapEntry::key}{core::int?}, #t12.{core::MapEntry::value}{core::String?}){(core::int?, core::String?) → void};
+    for (final has-declared-initializer core::MapEntry<dynamic, dynamic> #t13 in (map3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<core::int?, core::String?>>}) {
+      final core::int? #t14 = #t13.{core::MapEntry::key}{dynamic} as{TypeError,ForNonNullableByDefault} core::int?;
+      final core::String? #t15 = #t13.{core::MapEntry::value}{dynamic} as{TypeError,ForNonNullableByDefault} core::String?;
+      #t10.{core::Map::[]=}{Invariant}(#t14, #t15){(core::int?, core::String?) → void};
+    }
+    if(true)
+      #t10.{core::Map::[]=}{Invariant}(2, "baz"){(core::int?, core::String?) → void};
+  } =>#t10;
+}
diff --git a/pkg/front_end/testcases/unified_collections/invariance2.dart.weak.outline.expect b/pkg/front_end/testcases/unified_collections/invariance2.dart.weak.outline.expect
new file mode 100644
index 0000000..e2cba6b
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/invariance2.dart.weak.outline.expect
@@ -0,0 +1,5 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/unified_collections/invariance2.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/invariance2.dart.weak.transformed.expect
new file mode 100644
index 0000000..14be25b
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/invariance2.dart.weak.transformed.expect
@@ -0,0 +1,91 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method main() → dynamic {
+  core::List<core::int> list1 = core::_GrowableList::_literal1<core::int>(0);
+  core::List<core::int?> list2 = core::_GrowableList::_literal1<core::int?>(0);
+  dynamic list3 = core::_GrowableList::_literal1<core::int>(0);
+  core::List<core::int?> list = block {
+    final core::List<core::int?> #t1 = core::_GrowableList::_literal1<core::int?>(0);
+    #t1.{core::List::addAll}{Invariant}(list1){(core::Iterable<core::int?>) → void};
+    #t1.{core::List::addAll}{Invariant}(list2){(core::Iterable<core::int?>) → void};
+    {
+      core::Iterator<dynamic> :sync-for-iterator = (list3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{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};
+        {
+          final core::int? #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int?;
+          #t1.{core::List::add}{Invariant}(#t3){(core::int?) → void};
+        }
+      }
+    }
+    if(true)
+      #t1.{core::List::add}{Invariant}(2){(core::int?) → void};
+  } =>#t1;
+  core::Set<core::int> set1 = block {
+    final core::Set<core::int> #t4 = new col::_CompactLinkedHashSet::•<core::int>();
+    #t4.{core::Set::add}{Invariant}(0){(core::int) → core::bool};
+  } =>#t4;
+  core::Set<core::int?> set2 = block {
+    final core::Set<core::int?> #t5 = new col::_CompactLinkedHashSet::•<core::int?>();
+    #t5.{core::Set::add}{Invariant}(0){(core::int?) → core::bool};
+  } =>#t5;
+  dynamic set3 = block {
+    final core::Set<core::int> #t6 = new col::_CompactLinkedHashSet::•<core::int>();
+    #t6.{core::Set::add}{Invariant}(0){(core::int) → core::bool};
+  } =>#t6;
+  core::Set<core::int?> set = block {
+    final core::Set<core::int?> #t7 = new col::_CompactLinkedHashSet::•<core::int?>();
+    #t7.{core::Set::add}{Invariant}(0){(core::int?) → core::bool};
+    #t7.{core::Set::addAll}{Invariant}(set1){(core::Iterable<core::int?>) → void};
+    #t7.{core::Set::addAll}{Invariant}(set2){(core::Iterable<core::int?>) → void};
+    {
+      core::Iterator<dynamic> :sync-for-iterator = (set3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{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};
+        {
+          final core::int? #t9 = #t8 as{TypeError,ForNonNullableByDefault} core::int?;
+          #t7.{core::Set::add}{Invariant}(#t9){(core::int?) → core::bool};
+        }
+      }
+    }
+    if(true)
+      #t7.{core::Set::add}{Invariant}(2){(core::int?) → core::bool};
+  } =>#t7;
+  core::Map<core::int, core::String> map1 = <core::int, core::String>{0: "foo"};
+  core::Map<core::int?, core::String?> map2 = <core::int?, core::String?>{0: "bar"};
+  dynamic map3 = <core::int, core::String>{0: "baz"};
+  core::Map<core::int?, core::String?> map = block {
+    final core::Map<core::int?, core::String?> #t10 = <core::int?, core::String?>{};
+    #t10.{core::Map::[]=}{Invariant}(0, "foo"){(core::int?, core::String?) → void};
+    {
+      core::Iterator<core::MapEntry<core::int?, core::String?>> :sync-for-iterator = map1.{core::Map::entries}{core::Iterable<core::MapEntry<core::int?, core::String?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int?, core::String?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::int?, core::String?> #t11 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int?, core::String?>};
+        #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}{core::int?}, #t11.{core::MapEntry::value}{core::String?}){(core::int?, core::String?) → void};
+      }
+    }
+    {
+      core::Iterator<core::MapEntry<core::int?, core::String?>> :sync-for-iterator = map2.{core::Map::entries}{core::Iterable<core::MapEntry<core::int?, core::String?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int?, core::String?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::int?, core::String?> #t12 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int?, core::String?>};
+        #t10.{core::Map::[]=}{Invariant}(#t12.{core::MapEntry::key}{core::int?}, #t12.{core::MapEntry::value}{core::String?}){(core::int?, core::String?) → void};
+      }
+    }
+    {
+      core::Iterator<core::MapEntry<core::int?, core::String?>> :sync-for-iterator = (map3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<core::int?, core::String?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int?, core::String?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<dynamic, dynamic> #t13 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int?, core::String?>};
+        {
+          final core::int? #t14 = #t13.{core::MapEntry::key}{dynamic} as{TypeError,ForNonNullableByDefault} core::int?;
+          final core::String? #t15 = #t13.{core::MapEntry::value}{dynamic} as{TypeError,ForNonNullableByDefault} core::String?;
+          #t10.{core::Map::[]=}{Invariant}(#t14, #t15){(core::int?, core::String?) → void};
+        }
+      }
+    }
+    if(true)
+      #t10.{core::Map::[]=}{Invariant}(2, "baz"){(core::int?, core::String?) → void};
+  } =>#t10;
+}
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart b/pkg/front_end/testcases/unified_collections/mixed_entries.dart
index fa03bc7..55810a0 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.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
-
 bool b = false;
 
 var list = [];
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline.expect
index 147bb36..480a19e 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 bool b = false;
 var list = [];
 var map0 = {};
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline_modelled.expect
index 1f1b82d..1843b5c 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 bool b = false;
 main() {}
 var error10 = {
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.expect
index 4389b70..a85bfed 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.expect
@@ -1,176 +1,176 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error4 = {if (b) 0: 1 else for (var a in list) a};
 //                                ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:36:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error5 = {if (b) for (var a in list) a else 0: 1};
 //                      ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error8 = {if (b) 0: 1 else for (var i = 0; i < list.length; i++) list[i]};
 //                                ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:44:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error9 = {if (b) for (var i = 0; i < list.length; i++) list[i] else 0: 1};
 //                      ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:37:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error6 = {
 //              ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:40:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:38:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error7 = {
 //              ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:45:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error10 = {
 //               ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:48:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:46:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error11 = {
 //               ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:51:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:49:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error12 = {
 //               ^
 //
 import self as self;
 import "dart:core" as core;
 
-static field core::bool* b = false;
-static field core::List<dynamic>* list = <dynamic>[];
-static field core::Map<dynamic, dynamic>* map0 = <dynamic, dynamic>{};
-static field core::Map<dynamic, dynamic>* map1 = block {
-  final core::Map<dynamic, dynamic>* #t1 = <dynamic, dynamic>{};
+static field core::bool b = false;
+static field core::List<dynamic> list = <dynamic>[];
+static field core::Map<dynamic, dynamic> map0 = <dynamic, dynamic>{};
+static field core::Map<dynamic, dynamic> map1 = block {
+  final core::Map<dynamic, dynamic> #t1 = <dynamic, dynamic>{};
   if(self::b)
-    #t1.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) →* void};
+    #t1.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) → void};
   else
-    for (final has-declared-initializer core::MapEntry<dynamic, dynamic>* #t2 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
-      #t1.{core::Map::[]=}{Invariant}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+    for (final has-declared-initializer core::MapEntry<dynamic, dynamic> #t2 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
+      #t1.{core::Map::[]=}{Invariant}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
 } =>#t1;
-static field core::Map<dynamic, dynamic>* map2 = block {
-  final core::Map<dynamic, dynamic>* #t3 = <dynamic, dynamic>{};
+static field core::Map<dynamic, dynamic> map2 = block {
+  final core::Map<dynamic, dynamic> #t3 = <dynamic, dynamic>{};
   if(self::b)
-    for (final has-declared-initializer core::MapEntry<dynamic, dynamic>* #t4 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
-      #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}{dynamic}, #t4.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+    for (final has-declared-initializer core::MapEntry<dynamic, dynamic> #t4 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
+      #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}{dynamic}, #t4.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
   else
-    #t3.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) →* void};
+    #t3.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) → void};
 } =>#t3;
-static field core::Map<dynamic, dynamic>* map3 = block {
-  final core::Map<dynamic, dynamic>* #t5 = <dynamic, dynamic>{};
+static field core::Map<dynamic, dynamic> map3 = block {
+  final core::Map<dynamic, dynamic> #t5 = <dynamic, dynamic>{};
   if(self::b)
-    for (final has-declared-initializer core::MapEntry<dynamic, dynamic>* #t6 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
-      #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}{dynamic}, #t6.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+    for (final has-declared-initializer core::MapEntry<dynamic, dynamic> #t6 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
+      #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}{dynamic}, #t6.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
   else
-    for (final has-declared-initializer core::MapEntry<dynamic, dynamic>* #t7 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
-      #t5.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+    for (final has-declared-initializer core::MapEntry<dynamic, dynamic> #t7 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
+      #t5.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
 } =>#t5;
-static field core::Map<dynamic, core::int*>* map4 = block {
-  final core::Map<dynamic, core::int*>* #t8 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map4 = block {
+  final core::Map<dynamic, core::int> #t8 = <dynamic, core::int>{};
   if(self::b)
-    #t8.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t8.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
   else
     for (dynamic a in self::list)
-      #t8.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int*) →* void};
+      #t8.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int) → void};
 } =>#t8;
-static field core::Map<dynamic, core::int*>* map5 = block {
-  final core::Map<dynamic, core::int*>* #t9 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map5 = block {
+  final core::Map<dynamic, core::int> #t9 = <dynamic, core::int>{};
   if(self::b)
     for (dynamic a in self::list)
-      #t9.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int*) →* void};
+      #t9.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int) → void};
   else
-    #t9.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t9.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
 } =>#t9;
-static field core::Map<dynamic, core::int*>* map6 = block {
-  final core::Map<dynamic, core::int*>* #t10 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map6 = block {
+  final core::Map<dynamic, core::int> #t10 = <dynamic, core::int>{};
   if(self::b)
-    #t10.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t10.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
   else
     for (dynamic a in self::list)
-      for (final has-declared-initializer core::MapEntry<dynamic, core::int*>* #t11 in <dynamic, core::int*>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>})
-        #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}{dynamic}, #t11.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+      for (final has-declared-initializer core::MapEntry<dynamic, core::int> #t11 in <dynamic, core::int>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int>>})
+        #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}{dynamic}, #t11.{core::MapEntry::value}{core::int}){(dynamic, core::int) → void};
 } =>#t10;
-static field core::Map<dynamic, core::int*>* map7 = block {
-  final core::Map<dynamic, core::int*>* #t12 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map7 = block {
+  final core::Map<dynamic, core::int> #t12 = <dynamic, core::int>{};
   if(self::b)
     for (dynamic a in self::list)
-      for (final has-declared-initializer core::MapEntry<dynamic, core::int*>* #t13 in <dynamic, core::int*>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>})
-        #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{dynamic}, #t13.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+      for (final has-declared-initializer core::MapEntry<dynamic, core::int> #t13 in <dynamic, core::int>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int>>})
+        #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{dynamic}, #t13.{core::MapEntry::value}{core::int}){(dynamic, core::int) → void};
   else
-    #t12.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t12.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
 } =>#t12;
-static field core::Map<dynamic, core::int*>* map8 = block {
-  final core::Map<dynamic, core::int*>* #t14 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map8 = block {
+  final core::Map<dynamic, core::int> #t14 = <dynamic, core::int>{};
   if(self::b)
-    #t14.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t14.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
   else
-    for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t14.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int*) →* dynamic}, 1){(dynamic, core::int*) →* void};
+    for (core::int i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t14.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int) → dynamic}, 1){(dynamic, core::int) → void};
 } =>#t14;
-static field core::Map<dynamic, core::int*>* map9 = block {
-  final core::Map<dynamic, core::int*>* #t15 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map9 = block {
+  final core::Map<dynamic, core::int> #t15 = <dynamic, core::int>{};
   if(self::b)
-    for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t15.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int*) →* dynamic}, 1){(dynamic, core::int*) →* void};
+    for (core::int i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t15.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int) → dynamic}, 1){(dynamic, core::int) → void};
   else
-    #t15.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t15.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
 } =>#t15;
-static field core::Map<dynamic, core::int*>* map10 = block {
-  final core::Map<dynamic, core::int*>* #t16 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map10 = block {
+  final core::Map<dynamic, core::int> #t16 = <dynamic, core::int>{};
   if(self::b)
-    #t16.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t16.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
   else
-    for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      for (final has-declared-initializer core::MapEntry<dynamic, core::int*>* #t17 in <dynamic, core::int*>{self::list.{core::List::[]}(i){(core::int*) →* dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>})
-        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}{dynamic}, #t17.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+    for (core::int i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final has-declared-initializer core::MapEntry<dynamic, core::int> #t17 in <dynamic, core::int>{self::list.{core::List::[]}(i){(core::int) → dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int>>})
+        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}{dynamic}, #t17.{core::MapEntry::value}{core::int}){(dynamic, core::int) → void};
 } =>#t16;
-static field core::Map<dynamic, core::int*>* map11 = block {
-  final core::Map<dynamic, core::int*>* #t18 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map11 = block {
+  final core::Map<dynamic, core::int> #t18 = <dynamic, core::int>{};
   if(self::b)
-    for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      for (final has-declared-initializer core::MapEntry<dynamic, core::int*>* #t19 in <dynamic, core::int*>{self::list.{core::List::[]}(i){(core::int*) →* dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>})
-        #t18.{core::Map::[]=}{Invariant}(#t19.{core::MapEntry::key}{dynamic}, #t19.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+    for (core::int i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final has-declared-initializer core::MapEntry<dynamic, core::int> #t19 in <dynamic, core::int>{self::list.{core::List::[]}(i){(core::int) → dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int>>})
+        #t18.{core::Map::[]=}{Invariant}(#t19.{core::MapEntry::key}{dynamic}, #t19.{core::MapEntry::value}{core::int}){(dynamic, core::int) → void};
   else
-    #t18.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t18.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
 } =>#t18;
-static field core::Map<core::int*, core::int*>* map12 = block {
-  final core::Map<core::int*, core::int*>* #t20 = <core::int*, core::int*>{};
+static field core::Map<core::int, core::int> map12 = block {
+  final core::Map<core::int, core::int> #t20 = <core::int, core::int>{};
   if(self::b)
-    #t20.{core::Map::[]=}{Invariant}(0, 1){(core::int*, core::int*) →* void};
+    #t20.{core::Map::[]=}{Invariant}(0, 1){(core::int, core::int) → void};
   else
     if(self::b)
-      for (final has-declared-initializer core::MapEntry<core::int*, core::int*>* #t21 in <core::int*, core::int*>{0: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>})
-        #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{core::int*}, #t21.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
+      for (final has-declared-initializer core::MapEntry<core::int, core::int> #t21 in <core::int, core::int>{0: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
+        #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{core::int}, #t21.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
 } =>#t20;
-static field core::Map<invalid-type, Null>* error4 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null> error4 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error4 = {if (b) 0: 1 else for (var a in list) a};
                                ^": null};
-static field core::Map<invalid-type, Null>* error5 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:36:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null> error5 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error5 = {if (b) for (var a in list) a else 0: 1};
                      ^": null};
-static field Null error6 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:37:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error6 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error6 = {
              ^";
-static field Null error7 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:40:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error7 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:38:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error7 = {
              ^";
-static field core::Map<invalid-type, Null>* error8 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null> error8 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error8 = {if (b) 0: 1 else for (var i = 0; i < list.length; i++) list[i]};
                                ^": null};
-static field core::Map<invalid-type, Null>* error9 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:44:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null> error9 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error9 = {if (b) for (var i = 0; i < list.length; i++) list[i] else 0: 1};
                      ^": null};
-static field Null error10 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:45:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error10 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error10 = {
               ^";
-static field Null error11 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:48:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error11 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:46:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error11 = {
               ^";
-static field Null error12 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:51:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error12 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:49:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error12 = {
               ^";
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.modular.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.modular.expect
index 4389b70..a85bfed 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.modular.expect
@@ -1,176 +1,176 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error4 = {if (b) 0: 1 else for (var a in list) a};
 //                                ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:36:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error5 = {if (b) for (var a in list) a else 0: 1};
 //                      ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error8 = {if (b) 0: 1 else for (var i = 0; i < list.length; i++) list[i]};
 //                                ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:44:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error9 = {if (b) for (var i = 0; i < list.length; i++) list[i] else 0: 1};
 //                      ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:37:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error6 = {
 //              ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:40:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:38:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error7 = {
 //              ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:45:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error10 = {
 //               ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:48:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:46:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error11 = {
 //               ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:51:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:49:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error12 = {
 //               ^
 //
 import self as self;
 import "dart:core" as core;
 
-static field core::bool* b = false;
-static field core::List<dynamic>* list = <dynamic>[];
-static field core::Map<dynamic, dynamic>* map0 = <dynamic, dynamic>{};
-static field core::Map<dynamic, dynamic>* map1 = block {
-  final core::Map<dynamic, dynamic>* #t1 = <dynamic, dynamic>{};
+static field core::bool b = false;
+static field core::List<dynamic> list = <dynamic>[];
+static field core::Map<dynamic, dynamic> map0 = <dynamic, dynamic>{};
+static field core::Map<dynamic, dynamic> map1 = block {
+  final core::Map<dynamic, dynamic> #t1 = <dynamic, dynamic>{};
   if(self::b)
-    #t1.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) →* void};
+    #t1.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) → void};
   else
-    for (final has-declared-initializer core::MapEntry<dynamic, dynamic>* #t2 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
-      #t1.{core::Map::[]=}{Invariant}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+    for (final has-declared-initializer core::MapEntry<dynamic, dynamic> #t2 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
+      #t1.{core::Map::[]=}{Invariant}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
 } =>#t1;
-static field core::Map<dynamic, dynamic>* map2 = block {
-  final core::Map<dynamic, dynamic>* #t3 = <dynamic, dynamic>{};
+static field core::Map<dynamic, dynamic> map2 = block {
+  final core::Map<dynamic, dynamic> #t3 = <dynamic, dynamic>{};
   if(self::b)
-    for (final has-declared-initializer core::MapEntry<dynamic, dynamic>* #t4 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
-      #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}{dynamic}, #t4.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+    for (final has-declared-initializer core::MapEntry<dynamic, dynamic> #t4 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
+      #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}{dynamic}, #t4.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
   else
-    #t3.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) →* void};
+    #t3.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) → void};
 } =>#t3;
-static field core::Map<dynamic, dynamic>* map3 = block {
-  final core::Map<dynamic, dynamic>* #t5 = <dynamic, dynamic>{};
+static field core::Map<dynamic, dynamic> map3 = block {
+  final core::Map<dynamic, dynamic> #t5 = <dynamic, dynamic>{};
   if(self::b)
-    for (final has-declared-initializer core::MapEntry<dynamic, dynamic>* #t6 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
-      #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}{dynamic}, #t6.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+    for (final has-declared-initializer core::MapEntry<dynamic, dynamic> #t6 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
+      #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}{dynamic}, #t6.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
   else
-    for (final has-declared-initializer core::MapEntry<dynamic, dynamic>* #t7 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
-      #t5.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+    for (final has-declared-initializer core::MapEntry<dynamic, dynamic> #t7 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
+      #t5.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
 } =>#t5;
-static field core::Map<dynamic, core::int*>* map4 = block {
-  final core::Map<dynamic, core::int*>* #t8 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map4 = block {
+  final core::Map<dynamic, core::int> #t8 = <dynamic, core::int>{};
   if(self::b)
-    #t8.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t8.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
   else
     for (dynamic a in self::list)
-      #t8.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int*) →* void};
+      #t8.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int) → void};
 } =>#t8;
-static field core::Map<dynamic, core::int*>* map5 = block {
-  final core::Map<dynamic, core::int*>* #t9 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map5 = block {
+  final core::Map<dynamic, core::int> #t9 = <dynamic, core::int>{};
   if(self::b)
     for (dynamic a in self::list)
-      #t9.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int*) →* void};
+      #t9.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int) → void};
   else
-    #t9.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t9.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
 } =>#t9;
-static field core::Map<dynamic, core::int*>* map6 = block {
-  final core::Map<dynamic, core::int*>* #t10 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map6 = block {
+  final core::Map<dynamic, core::int> #t10 = <dynamic, core::int>{};
   if(self::b)
-    #t10.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t10.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
   else
     for (dynamic a in self::list)
-      for (final has-declared-initializer core::MapEntry<dynamic, core::int*>* #t11 in <dynamic, core::int*>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>})
-        #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}{dynamic}, #t11.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+      for (final has-declared-initializer core::MapEntry<dynamic, core::int> #t11 in <dynamic, core::int>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int>>})
+        #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}{dynamic}, #t11.{core::MapEntry::value}{core::int}){(dynamic, core::int) → void};
 } =>#t10;
-static field core::Map<dynamic, core::int*>* map7 = block {
-  final core::Map<dynamic, core::int*>* #t12 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map7 = block {
+  final core::Map<dynamic, core::int> #t12 = <dynamic, core::int>{};
   if(self::b)
     for (dynamic a in self::list)
-      for (final has-declared-initializer core::MapEntry<dynamic, core::int*>* #t13 in <dynamic, core::int*>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>})
-        #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{dynamic}, #t13.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+      for (final has-declared-initializer core::MapEntry<dynamic, core::int> #t13 in <dynamic, core::int>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int>>})
+        #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{dynamic}, #t13.{core::MapEntry::value}{core::int}){(dynamic, core::int) → void};
   else
-    #t12.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t12.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
 } =>#t12;
-static field core::Map<dynamic, core::int*>* map8 = block {
-  final core::Map<dynamic, core::int*>* #t14 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map8 = block {
+  final core::Map<dynamic, core::int> #t14 = <dynamic, core::int>{};
   if(self::b)
-    #t14.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t14.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
   else
-    for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t14.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int*) →* dynamic}, 1){(dynamic, core::int*) →* void};
+    for (core::int i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t14.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int) → dynamic}, 1){(dynamic, core::int) → void};
 } =>#t14;
-static field core::Map<dynamic, core::int*>* map9 = block {
-  final core::Map<dynamic, core::int*>* #t15 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map9 = block {
+  final core::Map<dynamic, core::int> #t15 = <dynamic, core::int>{};
   if(self::b)
-    for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t15.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int*) →* dynamic}, 1){(dynamic, core::int*) →* void};
+    for (core::int i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t15.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int) → dynamic}, 1){(dynamic, core::int) → void};
   else
-    #t15.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t15.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
 } =>#t15;
-static field core::Map<dynamic, core::int*>* map10 = block {
-  final core::Map<dynamic, core::int*>* #t16 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map10 = block {
+  final core::Map<dynamic, core::int> #t16 = <dynamic, core::int>{};
   if(self::b)
-    #t16.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t16.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
   else
-    for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      for (final has-declared-initializer core::MapEntry<dynamic, core::int*>* #t17 in <dynamic, core::int*>{self::list.{core::List::[]}(i){(core::int*) →* dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>})
-        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}{dynamic}, #t17.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+    for (core::int i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final has-declared-initializer core::MapEntry<dynamic, core::int> #t17 in <dynamic, core::int>{self::list.{core::List::[]}(i){(core::int) → dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int>>})
+        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}{dynamic}, #t17.{core::MapEntry::value}{core::int}){(dynamic, core::int) → void};
 } =>#t16;
-static field core::Map<dynamic, core::int*>* map11 = block {
-  final core::Map<dynamic, core::int*>* #t18 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map11 = block {
+  final core::Map<dynamic, core::int> #t18 = <dynamic, core::int>{};
   if(self::b)
-    for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      for (final has-declared-initializer core::MapEntry<dynamic, core::int*>* #t19 in <dynamic, core::int*>{self::list.{core::List::[]}(i){(core::int*) →* dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>})
-        #t18.{core::Map::[]=}{Invariant}(#t19.{core::MapEntry::key}{dynamic}, #t19.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+    for (core::int i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final has-declared-initializer core::MapEntry<dynamic, core::int> #t19 in <dynamic, core::int>{self::list.{core::List::[]}(i){(core::int) → dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int>>})
+        #t18.{core::Map::[]=}{Invariant}(#t19.{core::MapEntry::key}{dynamic}, #t19.{core::MapEntry::value}{core::int}){(dynamic, core::int) → void};
   else
-    #t18.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t18.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
 } =>#t18;
-static field core::Map<core::int*, core::int*>* map12 = block {
-  final core::Map<core::int*, core::int*>* #t20 = <core::int*, core::int*>{};
+static field core::Map<core::int, core::int> map12 = block {
+  final core::Map<core::int, core::int> #t20 = <core::int, core::int>{};
   if(self::b)
-    #t20.{core::Map::[]=}{Invariant}(0, 1){(core::int*, core::int*) →* void};
+    #t20.{core::Map::[]=}{Invariant}(0, 1){(core::int, core::int) → void};
   else
     if(self::b)
-      for (final has-declared-initializer core::MapEntry<core::int*, core::int*>* #t21 in <core::int*, core::int*>{0: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>})
-        #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{core::int*}, #t21.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
+      for (final has-declared-initializer core::MapEntry<core::int, core::int> #t21 in <core::int, core::int>{0: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
+        #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{core::int}, #t21.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
 } =>#t20;
-static field core::Map<invalid-type, Null>* error4 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null> error4 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error4 = {if (b) 0: 1 else for (var a in list) a};
                                ^": null};
-static field core::Map<invalid-type, Null>* error5 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:36:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null> error5 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error5 = {if (b) for (var a in list) a else 0: 1};
                      ^": null};
-static field Null error6 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:37:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error6 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error6 = {
              ^";
-static field Null error7 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:40:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error7 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:38:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error7 = {
              ^";
-static field core::Map<invalid-type, Null>* error8 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null> error8 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error8 = {if (b) 0: 1 else for (var i = 0; i < list.length; i++) list[i]};
                                ^": null};
-static field core::Map<invalid-type, Null>* error9 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:44:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null> error9 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error9 = {if (b) for (var i = 0; i < list.length; i++) list[i] else 0: 1};
                      ^": null};
-static field Null error10 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:45:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error10 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error10 = {
               ^";
-static field Null error11 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:48:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error11 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:46:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error11 = {
               ^";
-static field Null error12 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:51:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error12 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:49:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error12 = {
               ^";
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.outline.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.outline.expect
index 142ef6b..9649040 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.outline.expect
@@ -1,49 +1,49 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error4 = {if (b) 0: 1 else for (var a in list) a};
 //                                ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:36:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error5 = {if (b) for (var a in list) a else 0: 1};
 //                      ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error8 = {if (b) 0: 1 else for (var i = 0; i < list.length; i++) list[i]};
 //                                ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:44:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error9 = {if (b) for (var i = 0; i < list.length; i++) list[i] else 0: 1};
 //                      ^
 //
 import self as self;
 import "dart:core" as core;
 
-static field core::bool* b;
-static field core::List<dynamic>* list;
-static field core::Map<dynamic, dynamic>* map0;
-static field core::Map<dynamic, dynamic>* map1;
-static field core::Map<dynamic, dynamic>* map2;
-static field core::Map<dynamic, dynamic>* map3;
-static field core::Map<dynamic, core::int*>* map4;
-static field core::Map<dynamic, core::int*>* map5;
-static field core::Map<dynamic, core::int*>* map6;
-static field core::Map<dynamic, core::int*>* map7;
-static field core::Map<dynamic, core::int*>* map8;
-static field core::Map<dynamic, core::int*>* map9;
-static field core::Map<dynamic, core::int*>* map10;
-static field core::Map<dynamic, core::int*>* map11;
-static field core::Map<core::int*, core::int*>* map12;
-static field core::Map<invalid-type, Null>* error4;
-static field core::Map<invalid-type, Null>* error5;
-static field Null error6;
-static field Null error7;
-static field core::Map<invalid-type, Null>* error8;
-static field core::Map<invalid-type, Null>* error9;
-static field Null error10;
-static field Null error11;
-static field Null error12;
+static field core::bool b;
+static field core::List<dynamic> list;
+static field core::Map<dynamic, dynamic> map0;
+static field core::Map<dynamic, dynamic> map1;
+static field core::Map<dynamic, dynamic> map2;
+static field core::Map<dynamic, dynamic> map3;
+static field core::Map<dynamic, core::int> map4;
+static field core::Map<dynamic, core::int> map5;
+static field core::Map<dynamic, core::int> map6;
+static field core::Map<dynamic, core::int> map7;
+static field core::Map<dynamic, core::int> map8;
+static field core::Map<dynamic, core::int> map9;
+static field core::Map<dynamic, core::int> map10;
+static field core::Map<dynamic, core::int> map11;
+static field core::Map<core::int, core::int> map12;
+static field core::Map<dynamic, Null> error4;
+static field core::Map<dynamic, Null> error5;
+static field Never error6;
+static field Never error7;
+static field core::Map<dynamic, Null> error8;
+static field core::Map<dynamic, Null> error9;
+static field Never error10;
+static field Never error11;
+static field Never error12;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect
index c14132e..03bc08b 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect
@@ -1,230 +1,230 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error4 = {if (b) 0: 1 else for (var a in list) a};
 //                                ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:36:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error5 = {if (b) for (var a in list) a else 0: 1};
 //                      ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error8 = {if (b) 0: 1 else for (var i = 0; i < list.length; i++) list[i]};
 //                                ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:44:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error9 = {if (b) for (var i = 0; i < list.length; i++) list[i] else 0: 1};
 //                      ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:37:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error6 = {
 //              ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:40:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:38:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error7 = {
 //              ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:45:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error10 = {
 //               ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:48:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:46:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error11 = {
 //               ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:51:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:49:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error12 = {
 //               ^
 //
 import self as self;
 import "dart:core" as core;
 
-static field core::bool* b = false;
-static field core::List<dynamic>* list = core::_GrowableList::•<dynamic>(0);
-static field core::Map<dynamic, dynamic>* map0 = <dynamic, dynamic>{};
-static field core::Map<dynamic, dynamic>* map1 = block {
-  final core::Map<dynamic, dynamic>* #t1 = <dynamic, dynamic>{};
+static field core::bool b = false;
+static field core::List<dynamic> list = core::_GrowableList::•<dynamic>(0);
+static field core::Map<dynamic, dynamic> map0 = <dynamic, dynamic>{};
+static field core::Map<dynamic, dynamic> map1 = block {
+  final core::Map<dynamic, dynamic> #t1 = <dynamic, dynamic>{};
   if(self::b)
-    #t1.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) →* void};
+    #t1.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) → void};
   else {
-    core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>*};
+    core::Iterator<core::MapEntry<dynamic, dynamic>> :sync-for-iterator = self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-      final core::MapEntry<dynamic, dynamic>* #t2 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
-      #t1.{core::Map::[]=}{Invariant}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+      final core::MapEntry<dynamic, dynamic> #t2 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
+      #t1.{core::Map::[]=}{Invariant}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
     }
   }
 } =>#t1;
-static field core::Map<dynamic, dynamic>* map2 = block {
-  final core::Map<dynamic, dynamic>* #t3 = <dynamic, dynamic>{};
+static field core::Map<dynamic, dynamic> map2 = block {
+  final core::Map<dynamic, dynamic> #t3 = <dynamic, dynamic>{};
   if(self::b) {
-    core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>*};
+    core::Iterator<core::MapEntry<dynamic, dynamic>> :sync-for-iterator = self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-      final core::MapEntry<dynamic, dynamic>* #t4 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
-      #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}{dynamic}, #t4.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+      final core::MapEntry<dynamic, dynamic> #t4 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
+      #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}{dynamic}, #t4.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
     }
   }
   else
-    #t3.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) →* void};
+    #t3.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) → void};
 } =>#t3;
-static field core::Map<dynamic, dynamic>* map3 = block {
-  final core::Map<dynamic, dynamic>* #t5 = <dynamic, dynamic>{};
+static field core::Map<dynamic, dynamic> map3 = block {
+  final core::Map<dynamic, dynamic> #t5 = <dynamic, dynamic>{};
   if(self::b) {
-    core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>*};
+    core::Iterator<core::MapEntry<dynamic, dynamic>> :sync-for-iterator = self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-      final core::MapEntry<dynamic, dynamic>* #t6 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
-      #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}{dynamic}, #t6.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+      final core::MapEntry<dynamic, dynamic> #t6 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
+      #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}{dynamic}, #t6.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
     }
   }
   else {
-    core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>*};
+    core::Iterator<core::MapEntry<dynamic, dynamic>> :sync-for-iterator = self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-      final core::MapEntry<dynamic, dynamic>* #t7 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
-      #t5.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+      final core::MapEntry<dynamic, dynamic> #t7 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
+      #t5.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
     }
   }
 } =>#t5;
-static field core::Map<dynamic, core::int*>* map4 = block {
-  final core::Map<dynamic, core::int*>* #t8 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map4 = block {
+  final core::Map<dynamic, core::int> #t8 = <dynamic, core::int>{};
   if(self::b)
-    #t8.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t8.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
   else {
-    core::Iterator<dynamic>* :sync-for-iterator = self::list.{core::Iterable::iterator}{core::Iterator<dynamic>*};
+    core::Iterator<dynamic> :sync-for-iterator = self::list.{core::Iterable::iterator}{core::Iterator<dynamic>};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
       dynamic a = :sync-for-iterator.{core::Iterator::current}{dynamic};
-      #t8.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int*) →* void};
+      #t8.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int) → void};
     }
   }
 } =>#t8;
-static field core::Map<dynamic, core::int*>* map5 = block {
-  final core::Map<dynamic, core::int*>* #t9 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map5 = block {
+  final core::Map<dynamic, core::int> #t9 = <dynamic, core::int>{};
   if(self::b) {
-    core::Iterator<dynamic>* :sync-for-iterator = self::list.{core::Iterable::iterator}{core::Iterator<dynamic>*};
+    core::Iterator<dynamic> :sync-for-iterator = self::list.{core::Iterable::iterator}{core::Iterator<dynamic>};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
       dynamic a = :sync-for-iterator.{core::Iterator::current}{dynamic};
-      #t9.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int*) →* void};
+      #t9.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int) → void};
     }
   }
   else
-    #t9.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t9.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
 } =>#t9;
-static field core::Map<dynamic, core::int*>* map6 = block {
-  final core::Map<dynamic, core::int*>* #t10 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map6 = block {
+  final core::Map<dynamic, core::int> #t10 = <dynamic, core::int>{};
   if(self::b)
-    #t10.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t10.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
   else {
-    core::Iterator<dynamic>* :sync-for-iterator = self::list.{core::Iterable::iterator}{core::Iterator<dynamic>*};
+    core::Iterator<dynamic> :sync-for-iterator = self::list.{core::Iterable::iterator}{core::Iterator<dynamic>};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
       dynamic a = :sync-for-iterator.{core::Iterator::current}{dynamic};
       {
-        core::Iterator<core::MapEntry<dynamic, core::int*>>* :sync-for-iterator = <dynamic, core::int*>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, core::int*>>*};
+        core::Iterator<core::MapEntry<dynamic, core::int>> :sync-for-iterator = <dynamic, core::int>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, core::int>>};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-          final core::MapEntry<dynamic, core::int*>* #t11 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, core::int*>};
-          #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}{dynamic}, #t11.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+          final core::MapEntry<dynamic, core::int> #t11 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, core::int>};
+          #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}{dynamic}, #t11.{core::MapEntry::value}{core::int}){(dynamic, core::int) → void};
         }
       }
     }
   }
 } =>#t10;
-static field core::Map<dynamic, core::int*>* map7 = block {
-  final core::Map<dynamic, core::int*>* #t12 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map7 = block {
+  final core::Map<dynamic, core::int> #t12 = <dynamic, core::int>{};
   if(self::b) {
-    core::Iterator<dynamic>* :sync-for-iterator = self::list.{core::Iterable::iterator}{core::Iterator<dynamic>*};
+    core::Iterator<dynamic> :sync-for-iterator = self::list.{core::Iterable::iterator}{core::Iterator<dynamic>};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
       dynamic a = :sync-for-iterator.{core::Iterator::current}{dynamic};
       {
-        core::Iterator<core::MapEntry<dynamic, core::int*>>* :sync-for-iterator = <dynamic, core::int*>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, core::int*>>*};
+        core::Iterator<core::MapEntry<dynamic, core::int>> :sync-for-iterator = <dynamic, core::int>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, core::int>>};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-          final core::MapEntry<dynamic, core::int*>* #t13 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, core::int*>};
-          #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{dynamic}, #t13.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+          final core::MapEntry<dynamic, core::int> #t13 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, core::int>};
+          #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{dynamic}, #t13.{core::MapEntry::value}{core::int}){(dynamic, core::int) → void};
         }
       }
     }
   }
   else
-    #t12.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t12.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
 } =>#t12;
-static field core::Map<dynamic, core::int*>* map8 = block {
-  final core::Map<dynamic, core::int*>* #t14 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map8 = block {
+  final core::Map<dynamic, core::int> #t14 = <dynamic, core::int>{};
   if(self::b)
-    #t14.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t14.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
   else
-    for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t14.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int*) →* dynamic}, 1){(dynamic, core::int*) →* void};
+    for (core::int i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t14.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int) → dynamic}, 1){(dynamic, core::int) → void};
 } =>#t14;
-static field core::Map<dynamic, core::int*>* map9 = block {
-  final core::Map<dynamic, core::int*>* #t15 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map9 = block {
+  final core::Map<dynamic, core::int> #t15 = <dynamic, core::int>{};
   if(self::b)
-    for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t15.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int*) →* dynamic}, 1){(dynamic, core::int*) →* void};
+    for (core::int i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t15.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int) → dynamic}, 1){(dynamic, core::int) → void};
   else
-    #t15.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t15.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
 } =>#t15;
-static field core::Map<dynamic, core::int*>* map10 = block {
-  final core::Map<dynamic, core::int*>* #t16 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map10 = block {
+  final core::Map<dynamic, core::int> #t16 = <dynamic, core::int>{};
   if(self::b)
-    #t16.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t16.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
   else
-    for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-      core::Iterator<core::MapEntry<dynamic, core::int*>>* :sync-for-iterator = <dynamic, core::int*>{self::list.{core::List::[]}(i){(core::int*) →* dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, core::int*>>*};
+    for (core::int i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      core::Iterator<core::MapEntry<dynamic, core::int>> :sync-for-iterator = <dynamic, core::int>{self::list.{core::List::[]}(i){(core::int) → dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, core::int>>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        final core::MapEntry<dynamic, core::int*>* #t17 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, core::int*>};
-        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}{dynamic}, #t17.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+        final core::MapEntry<dynamic, core::int> #t17 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, core::int>};
+        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}{dynamic}, #t17.{core::MapEntry::value}{core::int}){(dynamic, core::int) → void};
       }
     }
 } =>#t16;
-static field core::Map<dynamic, core::int*>* map11 = block {
-  final core::Map<dynamic, core::int*>* #t18 = <dynamic, core::int*>{};
+static field core::Map<dynamic, core::int> map11 = block {
+  final core::Map<dynamic, core::int> #t18 = <dynamic, core::int>{};
   if(self::b)
-    for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-      core::Iterator<core::MapEntry<dynamic, core::int*>>* :sync-for-iterator = <dynamic, core::int*>{self::list.{core::List::[]}(i){(core::int*) →* dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, core::int*>>*};
+    for (core::int i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      core::Iterator<core::MapEntry<dynamic, core::int>> :sync-for-iterator = <dynamic, core::int>{self::list.{core::List::[]}(i){(core::int) → dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, core::int>>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        final core::MapEntry<dynamic, core::int*>* #t19 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, core::int*>};
-        #t18.{core::Map::[]=}{Invariant}(#t19.{core::MapEntry::key}{dynamic}, #t19.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+        final core::MapEntry<dynamic, core::int> #t19 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, core::int>};
+        #t18.{core::Map::[]=}{Invariant}(#t19.{core::MapEntry::key}{dynamic}, #t19.{core::MapEntry::value}{core::int}){(dynamic, core::int) → void};
       }
     }
   else
-    #t18.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
+    #t18.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int) → void};
 } =>#t18;
-static field core::Map<core::int*, core::int*>* map12 = block {
-  final core::Map<core::int*, core::int*>* #t20 = <core::int*, core::int*>{};
+static field core::Map<core::int, core::int> map12 = block {
+  final core::Map<core::int, core::int> #t20 = <core::int, core::int>{};
   if(self::b)
-    #t20.{core::Map::[]=}{Invariant}(0, 1){(core::int*, core::int*) →* void};
+    #t20.{core::Map::[]=}{Invariant}(0, 1){(core::int, core::int) → void};
   else
     if(self::b) {
-      core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = <core::int*, core::int*>{0: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int*, core::int*>>*};
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = <core::int, core::int>{0: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        final core::MapEntry<core::int*, core::int*>* #t21 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int*, core::int*>};
-        #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{core::int*}, #t21.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
+        final core::MapEntry<core::int, core::int> #t21 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
+        #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{core::int}, #t21.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
       }
     }
 } =>#t20;
-static field core::Map<invalid-type, Null>* error4 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null> error4 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error4 = {if (b) 0: 1 else for (var a in list) a};
                                ^": null};
-static field core::Map<invalid-type, Null>* error5 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:36:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null> error5 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error5 = {if (b) for (var a in list) a else 0: 1};
                      ^": null};
-static field Null error6 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:37:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error6 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error6 = {
              ^";
-static field Null error7 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:40:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error7 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:38:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error7 = {
              ^";
-static field core::Map<invalid-type, Null>* error8 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null> error8 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error8 = {if (b) 0: 1 else for (var i = 0; i < list.length; i++) list[i]};
                                ^": null};
-static field core::Map<invalid-type, Null>* error9 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:44:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null> error9 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error9 = {if (b) for (var i = 0; i < list.length; i++) list[i] else 0: 1};
                      ^": null};
-static field Null error10 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:45:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error10 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error10 = {
               ^";
-static field Null error11 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:48:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error11 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:46:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error11 = {
               ^";
-static field Null error12 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:51:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field Never error12 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:49:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error12 = {
               ^";
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart b/pkg/front_end/testcases/unified_collections/string_concatenation.dart
index d1528c2..9d9d77c 100644
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.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
-
 main() {
   bool b = false;
   ['a' 'b', if (b) 'c' 'd'];
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.expect
index 2263773..2b3d8b4 100644
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.expect
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.expect
@@ -1,12 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::bool* b = false;
+  core::bool b = false;
   block {
-    final core::List<core::String*>* #t1 = <core::String*>["ab"];
+    final core::List<core::String> #t1 = <core::String>["ab"];
     if(b)
-      #t1.{core::List::add}{Invariant}("cd"){(core::String*) →* void};
+      #t1.{core::List::add}{Invariant}("cd"){(core::String) → void};
   } =>#t1;
 }
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.modular.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.modular.expect
index 2263773..2b3d8b4 100644
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::bool* b = false;
+  core::bool b = false;
   block {
-    final core::List<core::String*>* #t1 = <core::String*>["ab"];
+    final core::List<core::String> #t1 = <core::String>["ab"];
     if(b)
-      #t1.{core::List::add}{Invariant}("cd"){(core::String*) →* void};
+      #t1.{core::List::add}{Invariant}("cd"){(core::String) → void};
   } =>#t1;
 }
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.outline.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.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/unified_collections/string_concatenation.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.transformed.expect
index 30ae805..bcfe99d 100644
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.transformed.expect
@@ -1,18 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::bool* b = false;
+  core::bool b = false;
   block {
-    final core::List<core::String*>* #t1 = core::_GrowableList::_literal1<core::String*>("ab");
+    final core::List<core::String> #t1 = core::_GrowableList::_literal1<core::String>("ab");
     if(b)
-      #t1.{core::List::add}{Invariant}("cd"){(core::String*) →* void};
+      #t1.{core::List::add}{Invariant}("cd"){(core::String) → void};
   } =>#t1;
 }
 
 
 Extra constant evaluation status:
-Evaluated: StringConcatenation @ org-dartlang-testcase:///string_concatenation.dart:9:3 -> StringConstant("ab")
-Evaluated: StringConcatenation @ org-dartlang-testcase:///string_concatenation.dart:9:18 -> StringConstant("cd")
+Evaluated: StringConcatenation @ org-dartlang-testcase:///string_concatenation.dart:7:3 -> StringConstant("ab")
+Evaluated: StringConcatenation @ org-dartlang-testcase:///string_concatenation.dart:7:18 -> StringConstant("cd")
 Extra constant evaluation: evaluated: 8, effectively constant: 2
diff --git a/pkg/front_end/testcases/weak.status b/pkg/front_end/testcases/weak.status
index a0bc52a4..5a91ed6 100644
--- a/pkg/front_end/testcases/weak.status
+++ b/pkg/front_end/testcases/weak.status
@@ -242,7 +242,6 @@
 rasta/issue_000041: RuntimeError
 rasta/issue_000042: RuntimeError
 rasta/issue_000044: RuntimeError
-rasta/issue_000081: RuntimeError
 rasta/malformed_const_constructor: RuntimeError
 rasta/malformed_function: RuntimeError
 rasta/mixin_library: TypeCheckError
@@ -260,11 +259,11 @@
 regress/issue_29976: RuntimeError # Tests runtime behavior of error recovery.
 regress/issue_29982: RuntimeError # Tests runtime behavior of error recovery.
 regress/issue_31180: TypeCheckError
+regress/issue_31180_2: TypeCheckError
 regress/issue_32972: RuntimeError
 regress/issue_33452: RuntimeError # Test has an intentional error
 regress/issue_34225: RuntimeError
 regress/issue_34563: RuntimeError # Test execution after recovery
-regress/issue_35177: RuntimeError
 regress/issue_35258: RuntimeError # Expected
 regress/issue_35259: RuntimeError # Expected
 regress/issue_35260: RuntimeError # Expected
@@ -274,6 +273,7 @@
 runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast: RuntimeError
 runtime_checks_new/mixin_forwarding_stub_getter: TypeCheckError
 set_literals/disambiguation_rule: RuntimeError
+set_literals/disambiguation_rule2: RuntimeError
 value_class/copy_with_call_sites: RuntimeError # Expected
 value_class/simple: RuntimeError # Expected
 value_class/value_extends_non_value: RuntimeError # Expected
diff --git a/pkg/front_end/testing.json b/pkg/front_end/testing.json
index 0b67866..2d92f0b 100644
--- a/pkg/front_end/testing.json
+++ b/pkg/front_end/testing.json
@@ -343,8 +343,10 @@
         "testcases/inference/overloaded_int_operators\\.dart$",
         "testcases/instantiate_to_bound/non_simple_many\\.dart$",
         "testcases/instantiate_to_bound/non_simple_suppress_consequence\\.dart$",
+        "testcases/rasta/switch_execution_case_t01\\.dart$",
         "testcases/rasta/switch_execution_case_t02\\.dart$",
         "testcases/set_literals/disambiguation_rule\\.dart$",
+        "testcases/set_literals/disambiguation_rule2\\.dart$",
         "tool/_fasta/abcompile\\.dart$"
       ]
     },