Version 2.17.0-163.0.dev

Merge commit 'c031e73df029d220a422fbed017c25d53d5c073c' into 'dev'
diff --git a/pkg/front_end/lib/src/fasta/source/source_enum_builder.dart b/pkg/front_end/lib/src/fasta/source/source_enum_builder.dart
index d2e74f6..5376f21 100644
--- a/pkg/front_end/lib/src/fasta/source/source_enum_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_enum_builder.dart
@@ -27,11 +27,13 @@
 import '../fasta_codes.dart'
     show
         LocatedMessage,
+        Severity,
         messageEnumContainsValuesDeclaration,
         messageEnumEntryWithTypeArgumentsWithoutArguments,
         messageEnumNonConstConstructor,
         messageNoUnnamedConstructorInObject,
         noLength,
+        templateConstructorNotFound,
         templateDuplicatedDeclaration,
         templateDuplicatedDeclarationCause,
         templateDuplicatedDeclarationSyntheticCause,
@@ -625,6 +627,12 @@
 
           String constructorName =
               enumConstantInfo.constructorReferenceBuilder?.suffix ?? "";
+          String fullConstructorNameForErrors =
+              enumConstantInfo.constructorReferenceBuilder?.fullNameForErrors ??
+                  name;
+          int fileOffset =
+              enumConstantInfo.constructorReferenceBuilder?.charOffset ??
+                  enumConstantInfo.charOffset;
           MemberBuilder? constructorBuilder =
               constructorScope.lookupLocalMember(constructorName);
 
@@ -642,7 +650,6 @@
               typeArguments.add(typeBuilder.build(library));
             }
           }
-          BodyBuilder? bodyBuilder;
           if (libraryBuilder.enableEnhancedEnumsInLibrary) {
             // We need to create a BodyBuilder to solve the following: 1) if
             // the arguments token is provided, we'll use the BodyBuilder to
@@ -650,49 +657,39 @@
             // aren't provided, but required, we'll use it to infer them, and
             // 3) in case of erroneous code the constructor invocation should
             // be built via a body builder to detect potential errors.
-            bodyBuilder = library.loader.createBodyBuilderForOutlineExpression(
-                library, this, this, scope, fileUri);
+            BodyBuilder bodyBuilder = library.loader
+                .createBodyBuilderForOutlineExpression(
+                    library, this, this, scope, fileUri);
             bodyBuilder.constantContext = ConstantContext.inferred;
-          }
 
-          if (enumConstantInfo.argumentsBeginToken != null) {
-            arguments = bodyBuilder!
-                .parseArguments(enumConstantInfo.argumentsBeginToken!);
-            bodyBuilder.performBacklogComputations(delayedActionPerformers);
+            if (enumConstantInfo.argumentsBeginToken != null) {
+              arguments = bodyBuilder
+                  .parseArguments(enumConstantInfo.argumentsBeginToken!);
+              bodyBuilder.performBacklogComputations(delayedActionPerformers);
 
-            arguments.positional.insertAll(0, enumSyntheticArguments);
-            arguments.argumentsOriginalOrder
-                ?.insertAll(0, enumSyntheticArguments);
-          } else {
-            arguments = new ArgumentsImpl(enumSyntheticArguments);
-          }
-
-          if (typeArguments != null) {
-            ArgumentsImpl.setNonInferrableArgumentTypes(
-                arguments, typeArguments);
-          } else if (cls.typeParameters.isNotEmpty) {
-            arguments.types.addAll(new List<DartType>.filled(
-                cls.typeParameters.length, const UnknownType()));
-          }
-          setParents(enumSyntheticArguments, arguments);
-
-          if (constructorBuilder == null ||
-              constructorBuilder is! SourceConstructorBuilder) {
-            field.buildBody(
-                classHierarchy.coreTypes,
-                bodyBuilder!.buildUnresolvedError(
-                    new NullLiteral(),
-                    enumConstantInfo
-                            .constructorReferenceBuilder?.fullNameForErrors ??
-                        constructorName,
-                    arguments,
-                    enumConstantInfo.constructorReferenceBuilder?.charOffset ??
-                        enumConstantInfo.charOffset,
-                    kind: UnresolvedKind.Constructor));
-          } else {
-            Expression initializer;
-            if (bodyBuilder != null) {
-              initializer = bodyBuilder.buildStaticInvocation(
+              arguments.positional.insertAll(0, enumSyntheticArguments);
+              arguments.argumentsOriginalOrder
+                  ?.insertAll(0, enumSyntheticArguments);
+            } else {
+              arguments = new ArgumentsImpl(enumSyntheticArguments);
+            }
+            if (typeArguments != null) {
+              ArgumentsImpl.setNonInferrableArgumentTypes(
+                  arguments, typeArguments);
+            } else if (cls.typeParameters.isNotEmpty) {
+              arguments.types.addAll(new List<DartType>.filled(
+                  cls.typeParameters.length, const UnknownType()));
+            }
+            setParents(enumSyntheticArguments, arguments);
+            if (constructorBuilder == null ||
+                constructorBuilder is! SourceConstructorBuilder) {
+              field.buildBody(
+                  classHierarchy.coreTypes,
+                  bodyBuilder.buildUnresolvedError(new NullLiteral(),
+                      fullConstructorNameForErrors, arguments, fileOffset,
+                      kind: UnresolvedKind.Constructor));
+            } else {
+              Expression initializer = bodyBuilder.buildStaticInvocation(
                   constructorBuilder.constructor, arguments,
                   constness: Constness.explicitConst,
                   charOffset: field.charOffset);
@@ -700,15 +697,33 @@
                   bodyBuilder.typeInferrer.inferFieldInitializer(
                       bodyBuilder, const UnknownType(), initializer);
               initializer = inferenceResult.expression;
-              if (initializer is ConstructorInvocation) {}
               field.fieldType = inferenceResult.inferredType;
+              field.buildBody(classHierarchy.coreTypes, initializer);
+            }
+          } else {
+            arguments = new ArgumentsImpl(enumSyntheticArguments);
+            setParents(enumSyntheticArguments, arguments);
+            if (constructorBuilder == null ||
+                constructorBuilder is! SourceConstructorBuilder) {
+              // This can only occur if there enhanced enum features are used
+              // when they are not enabled.
+              assert(libraryBuilder.loader.hasSeenError);
+              String text = libraryBuilder.loader.target.context
+                  .format(
+                      templateConstructorNotFound
+                          .withArguments(fullConstructorNameForErrors)
+                          .withLocation(field.fileUri, fileOffset, noLength),
+                      Severity.error)
+                  .plain;
+              field.buildBody(classHierarchy.coreTypes,
+                  new InvalidExpression(text)..fileOffset = charOffset);
             } else {
-              initializer = new ConstructorInvocation(
+              Expression initializer = new ConstructorInvocation(
                   constructorBuilder.constructor, arguments,
                   isConst: true)
                 ..fileOffset = field.charOffset;
+              field.buildBody(classHierarchy.coreTypes, initializer);
             }
-            field.buildBody(classHierarchy.coreTypes, initializer);
           }
         }
       }
diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart
new file mode 100644
index 0000000..e7a0979
--- /dev/null
+++ b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart
@@ -0,0 +1,17 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+enum T {
+  t;
+
+  const T.named();
+}
+
+enum S {
+  s.named();
+
+  const S();
+}
+
+void main() {}
\ No newline at end of file
diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.strong.expect b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.strong.expect
new file mode 100644
index 0000000..65cd747
--- /dev/null
+++ b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.strong.expect
@@ -0,0 +1,42 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+//   t;
+//    ^
+//
+// pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+//   s.named();
+//    ^
+//
+import self as self;
+import "dart:core" as core;
+
+class T extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::T> values = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+  t;
+   ^";
+  static const field self::T t = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+  t;
+   ^";
+  const constructor named(core::int index, core::String name) → self::T
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "T.${this.{core::_Enum::_name}{core::String}}";
+}
+class S extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::S> values = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+  s.named();
+   ^^^^^";
+  static const field self::S s = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+  s.named();
+   ^^^^^";
+  const constructor •(core::int index, core::String name) → self::S
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "S.${this.{core::_Enum::_name}{core::String}}";
+}
+static method main() → void {}
diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.strong.transformed.expect b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.strong.transformed.expect
new file mode 100644
index 0000000..65cd747
--- /dev/null
+++ b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.strong.transformed.expect
@@ -0,0 +1,42 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+//   t;
+//    ^
+//
+// pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+//   s.named();
+//    ^
+//
+import self as self;
+import "dart:core" as core;
+
+class T extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::T> values = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+  t;
+   ^";
+  static const field self::T t = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+  t;
+   ^";
+  const constructor named(core::int index, core::String name) → self::T
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "T.${this.{core::_Enum::_name}{core::String}}";
+}
+class S extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::S> values = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+  s.named();
+   ^^^^^";
+  static const field self::S s = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+  s.named();
+   ^^^^^";
+  const constructor •(core::int index, core::String name) → self::S
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "S.${this.{core::_Enum::_name}{core::String}}";
+}
+static method main() → void {}
diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.textual_outline.expect
new file mode 100644
index 0000000..474ee41
--- /dev/null
+++ b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.textual_outline.expect
@@ -0,0 +1,3 @@
+enum T { t; const T.named(); }
+enum S { s.named(); const S(); }
+void main() {}
diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.weak.expect b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.weak.expect
new file mode 100644
index 0000000..65cd747
--- /dev/null
+++ b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.weak.expect
@@ -0,0 +1,42 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+//   t;
+//    ^
+//
+// pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+//   s.named();
+//    ^
+//
+import self as self;
+import "dart:core" as core;
+
+class T extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::T> values = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+  t;
+   ^";
+  static const field self::T t = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+  t;
+   ^";
+  const constructor named(core::int index, core::String name) → self::T
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "T.${this.{core::_Enum::_name}{core::String}}";
+}
+class S extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::S> values = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+  s.named();
+   ^^^^^";
+  static const field self::S s = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+  s.named();
+   ^^^^^";
+  const constructor •(core::int index, core::String name) → self::S
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "S.${this.{core::_Enum::_name}{core::String}}";
+}
+static method main() → void {}
diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.weak.modular.expect b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.weak.modular.expect
new file mode 100644
index 0000000..65cd747
--- /dev/null
+++ b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.weak.modular.expect
@@ -0,0 +1,42 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+//   t;
+//    ^
+//
+// pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+//   s.named();
+//    ^
+//
+import self as self;
+import "dart:core" as core;
+
+class T extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::T> values = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+  t;
+   ^";
+  static const field self::T t = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+  t;
+   ^";
+  const constructor named(core::int index, core::String name) → self::T
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "T.${this.{core::_Enum::_name}{core::String}}";
+}
+class S extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::S> values = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+  s.named();
+   ^^^^^";
+  static const field self::S s = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+  s.named();
+   ^^^^^";
+  const constructor •(core::int index, core::String name) → self::S
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "S.${this.{core::_Enum::_name}{core::String}}";
+}
+static method main() → void {}
diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.weak.outline.expect b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.weak.outline.expect
new file mode 100644
index 0000000..3f74c75
--- /dev/null
+++ b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.weak.outline.expect
@@ -0,0 +1,39 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+//   t;
+//    ^
+//
+// pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+//   s.named();
+//    ^
+//
+import self as self;
+import "dart:core" as core;
+
+class T extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::T> values = const <self::T>[self::T::t];
+  static const field self::T t = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+  t;
+   ^";
+  const constructor named(core::int index, core::String name) → self::T
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "T.${this.{core::_Enum::_name}{core::String}}";
+}
+class S extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::S> values = const <self::S>[self::S::s];
+  static const field self::S s = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+  s.named();
+   ^^^^^";
+  const constructor •(core::int index, core::String name) → self::S
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "S.${this.{core::_Enum::_name}{core::String}}";
+}
+static method main() → void
+  ;
diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.weak.transformed.expect b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.weak.transformed.expect
new file mode 100644
index 0000000..65cd747
--- /dev/null
+++ b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.weak.transformed.expect
@@ -0,0 +1,42 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+//   t;
+//    ^
+//
+// pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+//   s.named();
+//    ^
+//
+import self as self;
+import "dart:core" as core;
+
+class T extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::T> values = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+  t;
+   ^";
+  static const field self::T t = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:6:4: Error: Couldn't find constructor 'T'.
+  t;
+   ^";
+  const constructor named(core::int index, core::String name) → self::T
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "T.${this.{core::_Enum::_name}{core::String}}";
+}
+class S extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::S> values = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+  s.named();
+   ^^^^^";
+  static const field self::S s = invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart:12:4: Error: Couldn't find constructor 'S.named'.
+  s.named();
+   ^^^^^";
+  const constructor •(core::int index, core::String name) → self::S
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "S.${this.{core::_Enum::_name}{core::String}}";
+}
+static method main() → void {}
diff --git a/pkg/front_end/testcases/general/DeltaBlue.dart b/pkg/front_end/testcases/general/DeltaBlue.dart
index a69a085..1086dab 100644
--- a/pkg/front_end/testcases/general/DeltaBlue.dart
+++ b/pkg/front_end/testcases/general/DeltaBlue.dart
@@ -18,7 +18,7 @@
 //
 // Translated first from Smalltalk to JavaScript, and finally to
 // Dart by Google 2008-2010.
-// @dart=2.9
+
 /**
  * A Dart implementation of the DeltaBlue constraint-solving
  * algorithm, as described in:
@@ -122,7 +122,7 @@
    * there is one, or nil, if there isn't.
    * Assume: I am not already satisfied.
    */
-  Constraint satisfy(mark) {
+  Constraint? satisfy(mark) {
     chooseMethod(mark);
     if (!isSatisfied()) {
       if (strength == REQUIRED) {
@@ -132,7 +132,7 @@
     }
     markInputs(mark);
     Variable out = output();
-    Constraint overridden = out.determinedBy;
+    Constraint? overridden = out.determinedBy;
     if (overridden != null) overridden.markUnsatisfied();
     out.determinedBy = this;
     if (!planner.addPropagate(this, mark)) print("Cycle encountered");
@@ -410,7 +410,7 @@
  **/
 class Variable {
   List<Constraint> constraints = <Constraint>[];
-  Constraint determinedBy;
+  Constraint? determinedBy;
   int mark = 0;
   Strength walkStrength = WEAKEST;
   bool stay = true;
@@ -453,7 +453,7 @@
    */
   void incrementalAdd(Constraint c) {
     int mark = newMark();
-    for (Constraint overridden = c.satisfy(mark);
+    for (Constraint? overridden = c.satisfy(mark);
         overridden != null;
         overridden = overridden.satisfy(mark));
   }
@@ -579,7 +579,7 @@
         Constraint c = v.constraints[i];
         if (!c.isSatisfied()) unsatisfied.add(c);
       }
-      Constraint determining = v.determinedBy;
+      Constraint? determining = v.determinedBy;
       for (int i = 0; i < v.constraints.length; i++) {
         Constraint next = v.constraints[i];
         if (next != determining && next.isSatisfied()) {
@@ -592,7 +592,7 @@
   }
 
   void addConstraintsConsumingTo(Variable v, List<Constraint> coll) {
-    Constraint determining = v.determinedBy;
+    Constraint? determining = v.determinedBy;
     for (int i = 0; i < v.constraints.length; i++) {
       Constraint c = v.constraints[i];
       if (c != determining && c.isSatisfied()) coll.add(c);
@@ -636,7 +636,7 @@
  */
 void chainTest(int n) {
   planner = new Planner();
-  Variable prev = null, first = null, last = null;
+  Variable? prev = null, first = null, last = null;
   // Build chain of n equality constraints.
   for (int i = 0; i <= n; i++) {
     Variable v = new Variable("v$i", 0);
@@ -645,8 +645,8 @@
     if (i == n) last = v;
     prev = v;
   }
-  new StayConstraint(last, STRONG_DEFAULT);
-  EditConstraint edit = new EditConstraint(first, PREFERRED);
+  new StayConstraint(last!, STRONG_DEFAULT);
+  EditConstraint edit = new EditConstraint(first!, PREFERRED);
   Plan plan = planner.extractPlanFromConstraints(<Constraint>[edit]);
   for (int i = 0; i < 100; i++) {
     first.value = i;
@@ -668,7 +668,7 @@
   planner = new Planner();
   Variable scale = new Variable("scale", 10);
   Variable offset = new Variable("offset", 1000);
-  Variable src = null, dst = null;
+  Variable? src = null, dst = null;
 
   List<Variable> dests = <Variable>[];
   for (int i = 0; i < n; i++) {
@@ -678,8 +678,8 @@
     new StayConstraint(src, NORMAL);
     new ScaleConstraint(src, scale, offset, dst, REQUIRED);
   }
-  change(src, 17);
-  if (dst.value != 1170) print("Projection 1 failed");
+  change(src!, 17);
+  if (dst!.value != 1170) print("Projection 1 failed");
   change(dst, 1050);
   if (src.value != 5) print("Projection 2 failed");
   change(scale, 5);
@@ -702,4 +702,4 @@
   edit.destroyConstraint();
 }
 
-Planner planner;
+late Planner planner;
diff --git a/pkg/front_end/testcases/general/DeltaBlue.dart.textual_outline.expect b/pkg/front_end/testcases/general/DeltaBlue.dart.textual_outline.expect
index d32aa29..7b19b9f 100644
--- a/pkg/front_end/testcases/general/DeltaBlue.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/DeltaBlue.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 main() {}
 
 class DeltaBlue {
@@ -45,7 +44,7 @@
   void execute();
   void recalculate();
   void addConstraint() {}
-  Constraint satisfy(mark) {}
+  Constraint? satisfy(mark) {}
   void destroyConstraint() {}
   bool isInput() => false;
 }
@@ -118,7 +117,7 @@
 
 class Variable {
   List<Constraint> constraints = <Constraint>[];
-  Constraint determinedBy;
+  Constraint? determinedBy;
   int mark = 0;
   Strength walkStrength = WEAKEST;
   bool stay = true;
@@ -151,4 +150,4 @@
 void chainTest(int n) {}
 void projectionTest(int n) {}
 void change(Variable v, int newValue) {}
-Planner planner;
+late Planner planner;
diff --git a/pkg/front_end/testcases/general/DeltaBlue.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/DeltaBlue.dart.textual_outline_modelled.expect
index 3e2df26..a9bbfdc 100644
--- a/pkg/front_end/testcases/general/DeltaBlue.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/DeltaBlue.dart.textual_outline_modelled.expect
@@ -1,6 +1,3 @@
-// @dart = 2.9
-Planner planner;
-
 abstract class BinaryConstraint extends Constraint {
   BinaryConstraint(this.v1, this.v2, Strength strength) : super(strength) {}
   Variable input() => direction == FORWARD ? v1 : v2;
@@ -17,9 +14,8 @@
   void recalculate() {}
   void removeFromGraph() {}
 }
-
 abstract class Constraint {
-  Constraint satisfy(mark) {}
+  Constraint? satisfy(mark) {}
   Variable output();
   bool inputsKnown(int mark);
   bool isInput() => false;
@@ -36,7 +32,6 @@
   void recalculate();
   void removeFromGraph();
 }
-
 abstract class UnaryConstraint extends Constraint {
   UnaryConstraint(this.myOutput, Strength strength) : super(strength) {}
   Variable output() => myOutput;
@@ -51,30 +46,24 @@
   void recalculate() {}
   void removeFromGraph() {}
 }
-
 class DeltaBlue {
   void run() {}
 }
-
 class EditConstraint extends UnaryConstraint {
   EditConstraint(Variable v, Strength str) : super(v, str);
   bool isInput() => true;
   void execute() {}
 }
-
 class EqualityConstraint extends BinaryConstraint {
-  EqualityConstraint(Variable v1, Variable v2, Strength strength)
-      : super(v1, v2, strength);
+  EqualityConstraint(Variable v1, Variable v2, Strength strength) : super(v1, v2, strength);
   void execute() {}
 }
-
 class Plan {
   List<Constraint> list = <Constraint>[];
   int size() => list.length;
   void addConstraint(Constraint c) {}
   void execute() {}
 }
-
 class Planner {
   List<Constraint> removePropagateFrom(Variable out) {}
   Plan extractPlanFromConstraints(List<Constraint> constraints) {}
@@ -86,11 +75,8 @@
   void incrementalAdd(Constraint c) {}
   void incrementalRemove(Constraint c) {}
 }
-
 class ScaleConstraint extends BinaryConstraint {
-  ScaleConstraint(
-      Variable src, this.scale, this.offset, Variable dest, Strength strength)
-      : super(src, dest, strength);
+  ScaleConstraint( Variable src, this.scale, this.offset, Variable dest, Strength strength) : super(src, dest, strength);
   final Variable offset;
   final Variable scale;
   void addToGraph() {}
@@ -99,21 +85,12 @@
   void recalculate() {}
   void removeFromGraph() {}
 }
-
 class StayConstraint extends UnaryConstraint {
   StayConstraint(Variable v, Strength str) : super(v, str);
   void execute() {}
 }
-
 class Strength {
-  Strength nextWeaker() => const <Strength>[
-        STRONG_PREFERRED,
-        PREFERRED,
-        STRONG_DEFAULT,
-        NORMAL,
-        WEAK_DEFAULT,
-        WEAKEST
-      ][value];
+  Strength nextWeaker() => const <Strength>[ STRONG_PREFERRED, PREFERRED, STRONG_DEFAULT, NORMAL, WEAK_DEFAULT, WEAKEST ][value];
   const Strength(this.value, this.name);
   final String name;
   final int value;
@@ -122,9 +99,8 @@
   static bool stronger(Strength s1, Strength s2) {}
   static bool weaker(Strength s1, Strength s2) {}
 }
-
 class Variable {
-  Constraint determinedBy;
+  Constraint? determinedBy;
   List<Constraint> constraints = <Constraint>[];
   Strength walkStrength = WEAKEST;
   Variable(this.name, this.value);
@@ -135,7 +111,6 @@
   void addConstraint(Constraint c) {}
   void removeConstraint(Constraint c) {}
 }
-
 const NORMAL = const Strength(4, "normal");
 const PREFERRED = const Strength(2, "preferred");
 const REQUIRED = const Strength(0, "required");
@@ -150,3 +125,7 @@
 void chainTest(int n) {}
 void change(Variable v, int newValue) {}
 void projectionTest(int n) {}
+---- unknown chunk starts ----
+late
+---- unknown chunk ends ----
+Planner planner;
diff --git a/pkg/front_end/testcases/general/DeltaBlue.dart.weak.expect b/pkg/front_end/testcases/general/DeltaBlue.dart.weak.expect
index c7ae21e..8b0ef07 100644
--- a/pkg/front_end/testcases/general/DeltaBlue.dart.weak.expect
+++ b/pkg/front_end/testcases/general/DeltaBlue.dart.weak.expect
@@ -1,512 +1,452 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class DeltaBlue extends core::Object {
-  synthetic constructor •() → self::DeltaBlue*
+  synthetic constructor •() → self::DeltaBlue
     : super core::Object::•()
     ;
   method run() → void {
     self::chainTest(100);
     self::projectionTest(100);
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Strength extends core::Object /*hasConstConstructor*/  {
-  final field core::int* value;
-  final field core::String* name;
-  const constructor •(core::int* value, core::String* name) → self::Strength*
+  final field core::int value;
+  final field core::String name;
+  const constructor •(core::int value, core::String name) → self::Strength
     : self::Strength::value = value, self::Strength::name = name, super core::Object::•()
     ;
-  method nextWeaker() → self::Strength*
-    return #C19.{core::List::[]}(this.{self::Strength::value}{core::int*}){(core::int*) →* self::Strength*};
-  static method stronger(self::Strength* s1, self::Strength* s2) → core::bool* {
-    return s1.{self::Strength::value}{core::int*}.{core::num::<}(s2.{self::Strength::value}{core::int*}){(core::num*) →* core::bool*};
+  method nextWeaker() → self::Strength
+    return #C19.{core::List::[]}(this.{self::Strength::value}{core::int}){(core::int) → self::Strength};
+  static method stronger(self::Strength s1, self::Strength s2) → core::bool {
+    return s1.{self::Strength::value}{core::int}.{core::num::<}(s2.{self::Strength::value}{core::int}){(core::num) → core::bool};
   }
-  static method weaker(self::Strength* s1, self::Strength* s2) → core::bool* {
-    return s1.{self::Strength::value}{core::int*}.{core::num::>}(s2.{self::Strength::value}{core::int*}){(core::num*) →* core::bool*};
+  static method weaker(self::Strength s1, self::Strength s2) → core::bool {
+    return s1.{self::Strength::value}{core::int}.{core::num::>}(s2.{self::Strength::value}{core::int}){(core::num) → core::bool};
   }
-  static method weakest(self::Strength* s1, self::Strength* s2) → self::Strength* {
-    return self::Strength::weaker(s1, s2) ?{self::Strength*} s1 : s2;
+  static method weakest(self::Strength s1, self::Strength s2) → self::Strength {
+    return self::Strength::weaker(s1, s2) ?{self::Strength} s1 : s2;
   }
-  static method strongest(self::Strength* s1, self::Strength* s2) → self::Strength* {
-    return self::Strength::stronger(s1, s2) ?{self::Strength*} s1 : s2;
+  static method strongest(self::Strength s1, self::Strength s2) → self::Strength {
+    return self::Strength::stronger(s1, s2) ?{self::Strength} s1 : s2;
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 Constraint extends core::Object /*hasConstConstructor*/  {
-  final field self::Strength* strength;
-  const constructor •(self::Strength* strength) → self::Constraint*
+  final field self::Strength strength;
+  const constructor •(self::Strength strength) → self::Constraint
     : self::Constraint::strength = strength, super core::Object::•()
     ;
-  abstract method isSatisfied() → core::bool*;
+  abstract method isSatisfied() → core::bool;
   abstract method markUnsatisfied() → void;
   abstract method addToGraph() → void;
   abstract method removeFromGraph() → void;
-  abstract method chooseMethod(core::int* mark) → void;
-  abstract method markInputs(core::int* mark) → void;
-  abstract method inputsKnown(core::int* mark) → core::bool*;
-  abstract method output() → self::Variable*;
+  abstract method chooseMethod(core::int mark) → void;
+  abstract method markInputs(core::int mark) → void;
+  abstract method inputsKnown(core::int mark) → core::bool;
+  abstract method output() → self::Variable;
   abstract method execute() → void;
   abstract method recalculate() → void;
   method addConstraint() → void {
-    this.{self::Constraint::addToGraph}(){() →* void};
-    self::planner.{self::Planner::incrementalAdd}(this){(self::Constraint*) →* void};
+    this.{self::Constraint::addToGraph}(){() → void};
+    self::planner.{self::Planner::incrementalAdd}(this){(self::Constraint) → void};
   }
-  method satisfy(dynamic mark) → self::Constraint* {
-    this.{self::Constraint::chooseMethod}(mark as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
-    if(!this.{self::Constraint::isSatisfied}(){() →* core::bool*}) {
-      if(this.{self::Constraint::strength}{self::Strength*} =={self::Strength::==}{(dynamic) →* core::bool*} #C22) {
+  method satisfy(dynamic mark) → self::Constraint? {
+    this.{self::Constraint::chooseMethod}(mark as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+    if(!this.{self::Constraint::isSatisfied}(){() → core::bool}) {
+      if(this.{self::Constraint::strength}{self::Strength} =={core::Object::==}{(core::Object) → core::bool} #C22) {
         core::print("Could not satisfy a required constraint!");
       }
       return null;
     }
-    this.{self::Constraint::markInputs}(mark as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
-    self::Variable* out = this.{self::Constraint::output}(){() →* self::Variable*};
-    self::Constraint* overridden = out.{self::Variable::determinedBy}{self::Constraint*};
+    this.{self::Constraint::markInputs}(mark as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+    self::Variable out = this.{self::Constraint::output}(){() → self::Variable};
+    self::Constraint? overridden = out.{self::Variable::determinedBy}{self::Constraint?};
     if(!(overridden == null))
-      overridden.{self::Constraint::markUnsatisfied}(){() →* void};
+      overridden{self::Constraint}.{self::Constraint::markUnsatisfied}(){() → void};
     out.{self::Variable::determinedBy} = this;
-    if(!self::planner.{self::Planner::addPropagate}(this, mark as{TypeError,ForDynamic} core::int*){(self::Constraint*, core::int*) →* core::bool*})
+    if(!self::planner.{self::Planner::addPropagate}(this, mark as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(self::Constraint, core::int) → core::bool})
       core::print("Cycle encountered");
-    out.{self::Variable::mark} = mark as{TypeError,ForDynamic} core::int*;
+    out.{self::Variable::mark} = mark as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
     return overridden;
   }
   method destroyConstraint() → void {
-    if(this.{self::Constraint::isSatisfied}(){() →* core::bool*})
-      self::planner.{self::Planner::incrementalRemove}(this){(self::Constraint*) →* void};
-    this.{self::Constraint::removeFromGraph}(){() →* void};
+    if(this.{self::Constraint::isSatisfied}(){() → core::bool})
+      self::planner.{self::Planner::incrementalRemove}(this){(self::Constraint) → void};
+    this.{self::Constraint::removeFromGraph}(){() → void};
   }
-  method isInput() → core::bool*
+  method isInput() → core::bool
     return false;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 UnaryConstraint extends self::Constraint {
-  final field self::Variable* myOutput;
-  field core::bool* satisfied = false;
-  constructor •(self::Variable* myOutput, self::Strength* strength) → self::UnaryConstraint*
+  final field self::Variable myOutput;
+  field core::bool satisfied = false;
+  constructor •(self::Variable myOutput, self::Strength strength) → self::UnaryConstraint
     : self::UnaryConstraint::myOutput = myOutput, super self::Constraint::•(strength) {
-    this.{self::Constraint::addConstraint}(){() →* void};
+    this.{self::Constraint::addConstraint}(){() → void};
   }
   method addToGraph() → void {
-    this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
+    this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
     this.{self::UnaryConstraint::satisfied} = false;
   }
-  method chooseMethod(core::int* mark) → void {
-    this.{self::UnaryConstraint::satisfied} = !(this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*});
+  method chooseMethod(core::int mark) → void {
+    this.{self::UnaryConstraint::satisfied} = !(this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::walkStrength}{self::Strength});
   }
-  method isSatisfied() → core::bool*
-    return this.{self::UnaryConstraint::satisfied}{core::bool*};
-  method markInputs(core::int* mark) → void {}
-  method output() → self::Variable*
-    return this.{self::UnaryConstraint::myOutput}{self::Variable*};
+  method isSatisfied() → core::bool
+    return this.{self::UnaryConstraint::satisfied}{core::bool};
+  method markInputs(core::int mark) → void {}
+  method output() → self::Variable
+    return this.{self::UnaryConstraint::myOutput}{self::Variable};
   method recalculate() → void {
-    this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::walkStrength} = this.{self::Constraint::strength}{self::Strength*};
-    this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::stay} = !this.{self::Constraint::isInput}(){() →* core::bool*};
-    if(this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::stay}{core::bool*})
-      this.{self::Constraint::execute}(){() →* void};
+    this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::walkStrength} = this.{self::Constraint::strength}{self::Strength};
+    this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::stay} = !this.{self::Constraint::isInput}(){() → core::bool};
+    if(this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::stay}{core::bool})
+      this.{self::Constraint::execute}(){() → void};
   }
   method markUnsatisfied() → void {
     this.{self::UnaryConstraint::satisfied} = false;
   }
-  method inputsKnown(core::int* mark) → core::bool*
+  method inputsKnown(core::int mark) → core::bool
     return true;
   method removeFromGraph() → void {
-    if(!(this.{self::UnaryConstraint::myOutput}{self::Variable*} == null))
-      this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
+    if(!(this.{self::UnaryConstraint::myOutput}{self::Variable} == null))
+      this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
     this.{self::UnaryConstraint::satisfied} = false;
   }
 }
 class StayConstraint extends self::UnaryConstraint {
-  constructor •(self::Variable* v, self::Strength* str) → self::StayConstraint*
+  constructor •(self::Variable v, self::Strength str) → self::StayConstraint
     : super self::UnaryConstraint::•(v, str)
     ;
   method execute() → void {}
 }
 class EditConstraint extends self::UnaryConstraint {
-  constructor •(self::Variable* v, self::Strength* str) → self::EditConstraint*
+  constructor •(self::Variable v, self::Strength str) → self::EditConstraint
     : super self::UnaryConstraint::•(v, str)
     ;
-  method isInput() → core::bool*
+  method isInput() → core::bool
     return true;
   method execute() → void {}
 }
 abstract class BinaryConstraint extends self::Constraint {
-  field self::Variable* v1;
-  field self::Variable* v2;
-  field core::int* direction = #C1;
-  constructor •(self::Variable* v1, self::Variable* v2, self::Strength* strength) → self::BinaryConstraint*
+  field self::Variable v1;
+  field self::Variable v2;
+  field core::int direction = #C1;
+  constructor •(self::Variable v1, self::Variable v2, self::Strength strength) → self::BinaryConstraint
     : self::BinaryConstraint::v1 = v1, self::BinaryConstraint::v2 = v2, super self::Constraint::•(strength) {
-    this.{self::Constraint::addConstraint}(){() →* void};
+    this.{self::Constraint::addConstraint}(){() → void};
   }
-  method chooseMethod(core::int* mark) → void {
-    if(this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) {
-      this.{self::BinaryConstraint::direction} = !(this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}) ?{core::int*} #C4 : #C1;
+  method chooseMethod(core::int mark) → void {
+    if(this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) {
+      this.{self::BinaryConstraint::direction} = !(this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::walkStrength}{self::Strength}) ?{core::int} #C4 : #C1;
     }
-    if(this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) {
-      this.{self::BinaryConstraint::direction} = !(this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}) ?{core::int*} #C20 : #C1;
+    if(this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) {
+      this.{self::BinaryConstraint::direction} = !(this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::walkStrength}{self::Strength}) ?{core::int} #C20 : #C1;
     }
-    if(self::Strength::weaker(this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}, this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*})) {
-      this.{self::BinaryConstraint::direction} = self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}) ?{core::int*} #C20 : #C1;
+    if(self::Strength::weaker(this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::walkStrength}{self::Strength}, this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::walkStrength}{self::Strength})) {
+      this.{self::BinaryConstraint::direction} = self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::walkStrength}{self::Strength}) ?{core::int} #C20 : #C1;
     }
     else {
-      this.{self::BinaryConstraint::direction} = self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}) ?{core::int*} #C4 : #C20;
+      this.{self::BinaryConstraint::direction} = self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::walkStrength}{self::Strength}) ?{core::int} #C4 : #C20;
     }
   }
   method addToGraph() → void {
-    this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
-    this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
+    this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
+    this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
     this.{self::BinaryConstraint::direction} = #C1;
   }
-  method isSatisfied() → core::bool*
-    return !(this.{self::BinaryConstraint::direction}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} #C1);
-  method markInputs(core::int* mark) → void {
-    this.{self::BinaryConstraint::input}(){() →* self::Variable*}.{self::Variable::mark} = mark;
+  method isSatisfied() → core::bool
+    return !(this.{self::BinaryConstraint::direction}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1);
+  method markInputs(core::int mark) → void {
+    this.{self::BinaryConstraint::input}(){() → self::Variable}.{self::Variable::mark} = mark;
   }
-  method input() → self::Variable*
-    return this.{self::BinaryConstraint::direction}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} #C4 ?{self::Variable*} this.{self::BinaryConstraint::v1}{self::Variable*} : this.{self::BinaryConstraint::v2}{self::Variable*};
-  method output() → self::Variable*
-    return this.{self::BinaryConstraint::direction}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} #C4 ?{self::Variable*} this.{self::BinaryConstraint::v2}{self::Variable*} : this.{self::BinaryConstraint::v1}{self::Variable*};
+  method input() → self::Variable
+    return this.{self::BinaryConstraint::direction}{core::int} =={core::num::==}{(core::Object) → core::bool} #C4 ?{self::Variable} this.{self::BinaryConstraint::v1}{self::Variable} : this.{self::BinaryConstraint::v2}{self::Variable};
+  method output() → self::Variable
+    return this.{self::BinaryConstraint::direction}{core::int} =={core::num::==}{(core::Object) → core::bool} #C4 ?{self::Variable} this.{self::BinaryConstraint::v2}{self::Variable} : this.{self::BinaryConstraint::v1}{self::Variable};
   method recalculate() → void {
-    self::Variable* ihn = this.{self::BinaryConstraint::input}(){() →* self::Variable*};
-    self::Variable* out = this.{self::BinaryConstraint::output}(){() →* self::Variable*};
-    out.{self::Variable::walkStrength} = self::Strength::weakest(this.{self::Constraint::strength}{self::Strength*}, ihn.{self::Variable::walkStrength}{self::Strength*});
-    out.{self::Variable::stay} = ihn.{self::Variable::stay}{core::bool*};
-    if(out.{self::Variable::stay}{core::bool*})
-      this.{self::Constraint::execute}(){() →* void};
+    self::Variable ihn = this.{self::BinaryConstraint::input}(){() → self::Variable};
+    self::Variable out = this.{self::BinaryConstraint::output}(){() → self::Variable};
+    out.{self::Variable::walkStrength} = self::Strength::weakest(this.{self::Constraint::strength}{self::Strength}, ihn.{self::Variable::walkStrength}{self::Strength});
+    out.{self::Variable::stay} = ihn.{self::Variable::stay}{core::bool};
+    if(out.{self::Variable::stay}{core::bool})
+      this.{self::Constraint::execute}(){() → void};
   }
   method markUnsatisfied() → void {
     this.{self::BinaryConstraint::direction} = #C1;
   }
-  method inputsKnown(core::int* mark) → core::bool* {
-    self::Variable* i = this.{self::BinaryConstraint::input}(){() →* self::Variable*};
-    return i.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark || i.{self::Variable::stay}{core::bool*} || i.{self::Variable::determinedBy}{self::Constraint*} == null;
+  method inputsKnown(core::int mark) → core::bool {
+    self::Variable i = this.{self::BinaryConstraint::input}(){() → self::Variable};
+    return i.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark || i.{self::Variable::stay}{core::bool} || i.{self::Variable::determinedBy}{self::Constraint?} == null;
   }
   method removeFromGraph() → void {
-    if(!(this.{self::BinaryConstraint::v1}{self::Variable*} == null))
-      this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
-    if(!(this.{self::BinaryConstraint::v2}{self::Variable*} == null))
-      this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
+    if(!(this.{self::BinaryConstraint::v1}{self::Variable} == null))
+      this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
+    if(!(this.{self::BinaryConstraint::v2}{self::Variable} == null))
+      this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
     this.{self::BinaryConstraint::direction} = #C1;
   }
 }
 class ScaleConstraint extends self::BinaryConstraint {
-  final field self::Variable* scale;
-  final field self::Variable* offset;
-  constructor •(self::Variable* src, self::Variable* scale, self::Variable* offset, self::Variable* dest, self::Strength* strength) → self::ScaleConstraint*
+  final field self::Variable scale;
+  final field self::Variable offset;
+  constructor •(self::Variable src, self::Variable scale, self::Variable offset, self::Variable dest, self::Strength strength) → self::ScaleConstraint
     : self::ScaleConstraint::scale = scale, self::ScaleConstraint::offset = offset, super self::BinaryConstraint::•(src, dest, strength)
     ;
   method addToGraph() → void {
     super.{self::BinaryConstraint::addToGraph}();
-    this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
-    this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
+    this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
+    this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
   }
   method removeFromGraph() → void {
     super.{self::BinaryConstraint::removeFromGraph}();
-    if(!(this.{self::ScaleConstraint::scale}{self::Variable*} == null))
-      this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
-    if(!(this.{self::ScaleConstraint::offset}{self::Variable*} == null))
-      this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
+    if(!(this.{self::ScaleConstraint::scale}{self::Variable} == null))
+      this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
+    if(!(this.{self::ScaleConstraint::offset}{self::Variable} == null))
+      this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
   }
-  method markInputs(core::int* mark) → void {
+  method markInputs(core::int mark) → void {
     super.{self::BinaryConstraint::markInputs}(mark);
-    this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::mark} = this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::mark} = mark;
+    this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::mark} = this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::mark} = mark;
   }
   method execute() → void {
-    if(this.{self::BinaryConstraint::direction}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} #C4) {
-      this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::value} = this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::value}{core::int*}.{core::num::*}(this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::value}{core::int*}){(core::num*) →* core::int*}.{core::num::+}(this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::value}{core::int*}){(core::num*) →* core::int*};
+    if(this.{self::BinaryConstraint::direction}{core::int} =={core::num::==}{(core::Object) → core::bool} #C4) {
+      this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::value} = this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::value}{core::int}.{core::num::*}(this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::value}{core::int}){(core::num) → core::int}.{core::num::+}(this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::value}{core::int}){(core::num) → core::int};
     }
     else {
-      this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::value} = this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::value}{core::int*}.{core::num::-}(this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::value}{core::int*}){(core::num*) →* core::int*}.{core::num::~/}(this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::value}{core::int*}){(core::num*) →* core::int*};
+      this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::value} = this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::value}{core::int}.{core::num::-}(this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::value}{core::int}){(core::num) → core::int}.{core::num::~/}(this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::value}{core::int}){(core::num) → core::int};
     }
   }
   method recalculate() → void {
-    self::Variable* ihn = this.{self::BinaryConstraint::input}(){() →* self::Variable*};
-    self::Variable* out = this.{self::BinaryConstraint::output}(){() →* self::Variable*};
-    out.{self::Variable::walkStrength} = self::Strength::weakest(this.{self::Constraint::strength}{self::Strength*}, ihn.{self::Variable::walkStrength}{self::Strength*});
-    out.{self::Variable::stay} = ihn.{self::Variable::stay}{core::bool*} && this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::stay}{core::bool*} && this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::stay}{core::bool*};
-    if(out.{self::Variable::stay}{core::bool*})
-      this.{self::ScaleConstraint::execute}(){() →* void};
+    self::Variable ihn = this.{self::BinaryConstraint::input}(){() → self::Variable};
+    self::Variable out = this.{self::BinaryConstraint::output}(){() → self::Variable};
+    out.{self::Variable::walkStrength} = self::Strength::weakest(this.{self::Constraint::strength}{self::Strength}, ihn.{self::Variable::walkStrength}{self::Strength});
+    out.{self::Variable::stay} = ihn.{self::Variable::stay}{core::bool} && this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::stay}{core::bool} && this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::stay}{core::bool};
+    if(out.{self::Variable::stay}{core::bool})
+      this.{self::ScaleConstraint::execute}(){() → void};
   }
 }
 class EqualityConstraint extends self::BinaryConstraint {
-  constructor •(self::Variable* v1, self::Variable* v2, self::Strength* strength) → self::EqualityConstraint*
+  constructor •(self::Variable v1, self::Variable v2, self::Strength strength) → self::EqualityConstraint
     : super self::BinaryConstraint::•(v1, v2, strength)
     ;
   method execute() → void {
-    this.{self::BinaryConstraint::output}(){() →* self::Variable*}.{self::Variable::value} = this.{self::BinaryConstraint::input}(){() →* self::Variable*}.{self::Variable::value}{core::int*};
+    this.{self::BinaryConstraint::output}(){() → self::Variable}.{self::Variable::value} = this.{self::BinaryConstraint::input}(){() → self::Variable}.{self::Variable::value}{core::int};
   }
 }
 class Variable extends core::Object {
-  field core::List<self::Constraint*>* constraints = <self::Constraint*>[];
-  field self::Constraint* determinedBy = null;
-  field core::int* mark = 0;
-  field self::Strength* walkStrength = #C18;
-  field core::bool* stay = true;
-  field core::int* value;
-  final field core::String* name;
-  constructor •(core::String* name, core::int* value) → self::Variable*
+  field core::List<self::Constraint> constraints = <self::Constraint>[];
+  field self::Constraint? determinedBy = null;
+  field core::int mark = 0;
+  field self::Strength walkStrength = #C18;
+  field core::bool stay = true;
+  field core::int value;
+  final field core::String name;
+  constructor •(core::String name, core::int value) → self::Variable
     : self::Variable::name = name, self::Variable::value = value, super core::Object::•()
     ;
-  method addConstraint(self::Constraint* c) → void {
-    this.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::add}(c){(self::Constraint*) →* void};
+  method addConstraint(self::Constraint c) → void {
+    this.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::add}(c){(self::Constraint) → void};
   }
-  method removeConstraint(self::Constraint* c) → void {
-    this.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::remove}(c){(core::Object*) →* core::bool*};
-    if(this.{self::Variable::determinedBy}{self::Constraint*} =={self::Constraint::==}{(dynamic) →* core::bool*} c)
+  method removeConstraint(self::Constraint c) → void {
+    this.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::remove}(c){(core::Object?) → core::bool};
+    if(this.{self::Variable::determinedBy}{self::Constraint?} =={core::Object::==}{(core::Object) → core::bool} c)
       this.{self::Variable::determinedBy} = null;
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Planner extends core::Object {
-  field core::int* currentMark = 0;
-  synthetic constructor •() → self::Planner*
+  field core::int currentMark = 0;
+  synthetic constructor •() → self::Planner
     : super core::Object::•()
     ;
-  method incrementalAdd(self::Constraint* c) → void {
-    core::int* mark = this.{self::Planner::newMark}(){() →* core::int*};
-    for (self::Constraint* overridden = c.{self::Constraint::satisfy}(mark){(dynamic) →* self::Constraint*}; !(overridden == null); overridden = overridden.{self::Constraint::satisfy}(mark){(dynamic) →* self::Constraint*})
+  method incrementalAdd(self::Constraint c) → void {
+    core::int mark = this.{self::Planner::newMark}(){() → core::int};
+    for (self::Constraint? overridden = c.{self::Constraint::satisfy}(mark){(dynamic) → self::Constraint?}; !(overridden == null); overridden = overridden{self::Constraint}.{self::Constraint::satisfy}(mark){(dynamic) → self::Constraint?})
       ;
   }
-  method incrementalRemove(self::Constraint* c) → void {
-    self::Variable* out = c.{self::Constraint::output}(){() →* self::Variable*};
-    c.{self::Constraint::markUnsatisfied}(){() →* void};
-    c.{self::Constraint::removeFromGraph}(){() →* void};
-    core::List<self::Constraint*>* unsatisfied = this.{self::Planner::removePropagateFrom}(out){(self::Variable*) →* core::List<self::Constraint*>*};
-    self::Strength* strength = #C22;
+  method incrementalRemove(self::Constraint c) → void {
+    self::Variable out = c.{self::Constraint::output}(){() → self::Variable};
+    c.{self::Constraint::markUnsatisfied}(){() → void};
+    c.{self::Constraint::removeFromGraph}(){() → void};
+    core::List<self::Constraint> unsatisfied = this.{self::Planner::removePropagateFrom}(out){(self::Variable) → core::List<self::Constraint>};
+    self::Strength strength = #C22;
     do {
-      for (core::int* i = 0; i.{core::num::<}(unsatisfied.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-        self::Constraint* u = unsatisfied.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-        if(u.{self::Constraint::strength}{self::Strength*} =={self::Strength::==}{(dynamic) →* core::bool*} strength)
-          this.{self::Planner::incrementalAdd}(u){(self::Constraint*) →* void};
+      for (core::int i = 0; i.{core::num::<}(unsatisfied.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+        self::Constraint u = unsatisfied.{core::List::[]}(i){(core::int) → self::Constraint};
+        if(u.{self::Constraint::strength}{self::Strength} =={core::Object::==}{(core::Object) → core::bool} strength)
+          this.{self::Planner::incrementalAdd}(u){(self::Constraint) → void};
       }
-      strength = strength.{self::Strength::nextWeaker}(){() →* self::Strength*};
+      strength = strength.{self::Strength::nextWeaker}(){() → self::Strength};
     }
-    while (!(strength =={self::Strength::==}{(dynamic) →* core::bool*} #C18))
+    while (!(strength =={core::Object::==}{(core::Object) → core::bool} #C18))
   }
-  method newMark() → core::int*
-    return this.{self::Planner::currentMark} = this.{self::Planner::currentMark}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
-  method makePlan(core::List<self::Constraint*>* sources) → self::Plan* {
-    core::int* mark = this.{self::Planner::newMark}(){() →* core::int*};
-    self::Plan* plan = new self::Plan::•();
-    core::List<self::Constraint*>* todo = sources;
-    while (todo.{core::List::length}{core::int*}.{core::num::>}(0){(core::num*) →* core::bool*}) {
-      self::Constraint* c = todo.{core::List::removeLast}(){() →* self::Constraint*};
-      if(!(c.{self::Constraint::output}(){() →* self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) && c.{self::Constraint::inputsKnown}(mark){(core::int*) →* core::bool*}) {
-        plan.{self::Plan::addConstraint}(c){(self::Constraint*) →* void};
-        c.{self::Constraint::output}(){() →* self::Variable*}.{self::Variable::mark} = mark;
-        this.{self::Planner::addConstraintsConsumingTo}(c.{self::Constraint::output}(){() →* self::Variable*}, todo){(self::Variable*, core::List<self::Constraint*>*) →* void};
+  method newMark() → core::int
+    return this.{self::Planner::currentMark} = this.{self::Planner::currentMark}{core::int}.{core::num::+}(1){(core::num) → core::int};
+  method makePlan(core::List<self::Constraint> sources) → self::Plan {
+    core::int mark = this.{self::Planner::newMark}(){() → core::int};
+    self::Plan plan = new self::Plan::•();
+    core::List<self::Constraint> todo = sources;
+    while (todo.{core::List::length}{core::int}.{core::num::>}(0){(core::num) → core::bool}) {
+      self::Constraint c = todo.{core::List::removeLast}(){() → self::Constraint};
+      if(!(c.{self::Constraint::output}(){() → self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) && c.{self::Constraint::inputsKnown}(mark){(core::int) → core::bool}) {
+        plan.{self::Plan::addConstraint}(c){(self::Constraint) → void};
+        c.{self::Constraint::output}(){() → self::Variable}.{self::Variable::mark} = mark;
+        this.{self::Planner::addConstraintsConsumingTo}(c.{self::Constraint::output}(){() → self::Variable}, todo){(self::Variable, core::List<self::Constraint>) → void};
       }
     }
     return plan;
   }
-  method extractPlanFromConstraints(core::List<self::Constraint*>* constraints) → self::Plan* {
-    core::List<self::Constraint*>* sources = <self::Constraint*>[];
-    for (core::int* i = 0; i.{core::num::<}(constraints.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-      self::Constraint* c = constraints.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-      if(c.{self::Constraint::isInput}(){() →* core::bool*} && c.{self::Constraint::isSatisfied}(){() →* core::bool*})
-        sources.{core::List::add}(c){(self::Constraint*) →* void};
+  method extractPlanFromConstraints(core::List<self::Constraint> constraints) → self::Plan {
+    core::List<self::Constraint> sources = <self::Constraint>[];
+    for (core::int i = 0; i.{core::num::<}(constraints.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      self::Constraint c = constraints.{core::List::[]}(i){(core::int) → self::Constraint};
+      if(c.{self::Constraint::isInput}(){() → core::bool} && c.{self::Constraint::isSatisfied}(){() → core::bool})
+        sources.{core::List::add}(c){(self::Constraint) → void};
     }
-    return this.{self::Planner::makePlan}(sources){(core::List<self::Constraint*>*) →* self::Plan*};
+    return this.{self::Planner::makePlan}(sources){(core::List<self::Constraint>) → self::Plan};
   }
-  method addPropagate(self::Constraint* c, core::int* mark) → core::bool* {
-    core::List<self::Constraint*>* todo = <self::Constraint*>[c];
-    while (todo.{core::List::length}{core::int*}.{core::num::>}(0){(core::num*) →* core::bool*}) {
-      self::Constraint* d = todo.{core::List::removeLast}(){() →* self::Constraint*};
-      if(d.{self::Constraint::output}(){() →* self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) {
-        this.{self::Planner::incrementalRemove}(c){(self::Constraint*) →* void};
+  method addPropagate(self::Constraint c, core::int mark) → core::bool {
+    core::List<self::Constraint> todo = <self::Constraint>[c];
+    while (todo.{core::List::length}{core::int}.{core::num::>}(0){(core::num) → core::bool}) {
+      self::Constraint d = todo.{core::List::removeLast}(){() → self::Constraint};
+      if(d.{self::Constraint::output}(){() → self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) {
+        this.{self::Planner::incrementalRemove}(c){(self::Constraint) → void};
         return false;
       }
-      d.{self::Constraint::recalculate}(){() →* void};
-      this.{self::Planner::addConstraintsConsumingTo}(d.{self::Constraint::output}(){() →* self::Variable*}, todo){(self::Variable*, core::List<self::Constraint*>*) →* void};
+      d.{self::Constraint::recalculate}(){() → void};
+      this.{self::Planner::addConstraintsConsumingTo}(d.{self::Constraint::output}(){() → self::Variable}, todo){(self::Variable, core::List<self::Constraint>) → void};
     }
     return true;
   }
-  method removePropagateFrom(self::Variable* out) → core::List<self::Constraint*>* {
+  method removePropagateFrom(self::Variable out) → core::List<self::Constraint> {
     out.{self::Variable::determinedBy} = null;
     out.{self::Variable::walkStrength} = #C18;
     out.{self::Variable::stay} = true;
-    core::List<self::Constraint*>* unsatisfied = <self::Constraint*>[];
-    core::List<self::Variable*>* todo = <self::Variable*>[out];
-    while (todo.{core::List::length}{core::int*}.{core::num::>}(0){(core::num*) →* core::bool*}) {
-      self::Variable* v = todo.{core::List::removeLast}(){() →* self::Variable*};
-      for (core::int* i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-        self::Constraint* c = v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-        if(!c.{self::Constraint::isSatisfied}(){() →* core::bool*})
-          unsatisfied.{core::List::add}(c){(self::Constraint*) →* void};
+    core::List<self::Constraint> unsatisfied = <self::Constraint>[];
+    core::List<self::Variable> todo = <self::Variable>[out];
+    while (todo.{core::List::length}{core::int}.{core::num::>}(0){(core::num) → core::bool}) {
+      self::Variable v = todo.{core::List::removeLast}(){() → self::Variable};
+      for (core::int i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+        self::Constraint c = v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::[]}(i){(core::int) → self::Constraint};
+        if(!c.{self::Constraint::isSatisfied}(){() → core::bool})
+          unsatisfied.{core::List::add}(c){(self::Constraint) → void};
       }
-      self::Constraint* determining = v.{self::Variable::determinedBy}{self::Constraint*};
-      for (core::int* i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-        self::Constraint* next = v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-        if(!(next =={self::Constraint::==}{(dynamic) →* core::bool*} determining) && next.{self::Constraint::isSatisfied}(){() →* core::bool*}) {
-          next.{self::Constraint::recalculate}(){() →* void};
-          todo.{core::List::add}(next.{self::Constraint::output}(){() →* self::Variable*}){(self::Variable*) →* void};
+      self::Constraint? determining = v.{self::Variable::determinedBy}{self::Constraint?};
+      for (core::int i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+        self::Constraint next = v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::[]}(i){(core::int) → self::Constraint};
+        if(!(next =={core::Object::==}{(core::Object) → core::bool} determining) && next.{self::Constraint::isSatisfied}(){() → core::bool}) {
+          next.{self::Constraint::recalculate}(){() → void};
+          todo.{core::List::add}(next.{self::Constraint::output}(){() → self::Variable}){(self::Variable) → void};
         }
       }
     }
     return unsatisfied;
   }
-  method addConstraintsConsumingTo(self::Variable* v, core::List<self::Constraint*>* coll) → void {
-    self::Constraint* determining = v.{self::Variable::determinedBy}{self::Constraint*};
-    for (core::int* i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-      self::Constraint* c = v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-      if(!(c =={self::Constraint::==}{(dynamic) →* core::bool*} determining) && c.{self::Constraint::isSatisfied}(){() →* core::bool*})
-        coll.{core::List::add}(c){(self::Constraint*) →* void};
+  method addConstraintsConsumingTo(self::Variable v, core::List<self::Constraint> coll) → void {
+    self::Constraint? determining = v.{self::Variable::determinedBy}{self::Constraint?};
+    for (core::int i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      self::Constraint c = v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::[]}(i){(core::int) → self::Constraint};
+      if(!(c =={core::Object::==}{(core::Object) → core::bool} determining) && c.{self::Constraint::isSatisfied}(){() → core::bool})
+        coll.{core::List::add}(c){(self::Constraint) → void};
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Plan extends core::Object {
-  field core::List<self::Constraint*>* list = <self::Constraint*>[];
-  synthetic constructor •() → self::Plan*
+  field core::List<self::Constraint> list = <self::Constraint>[];
+  synthetic constructor •() → self::Plan
     : super core::Object::•()
     ;
-  method addConstraint(self::Constraint* c) → void {
-    this.{self::Plan::list}{core::List<self::Constraint*>*}.{core::List::add}(c){(self::Constraint*) →* void};
+  method addConstraint(self::Constraint c) → void {
+    this.{self::Plan::list}{core::List<self::Constraint>}.{core::List::add}(c){(self::Constraint) → void};
   }
-  method size() → core::int*
-    return this.{self::Plan::list}{core::List<self::Constraint*>*}.{core::List::length}{core::int*};
+  method size() → core::int
+    return this.{self::Plan::list}{core::List<self::Constraint>}.{core::List::length}{core::int};
   method execute() → void {
-    for (core::int* i = 0; i.{core::num::<}(this.{self::Plan::list}{core::List<self::Constraint*>*}.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-      this.{self::Plan::list}{core::List<self::Constraint*>*}.{core::List::[]}(i){(core::int*) →* self::Constraint*}.{self::Constraint::execute}(){() →* void};
+    for (core::int i = 0; i.{core::num::<}(this.{self::Plan::list}{core::List<self::Constraint>}.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      this.{self::Plan::list}{core::List<self::Constraint>}.{core::List::[]}(i){(core::int) → self::Constraint}.{self::Constraint::execute}(){() → void};
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static const field self::Strength* REQUIRED = #C22;
-static const field self::Strength* STRONG_PREFERRED = #C3;
-static const field self::Strength* PREFERRED = #C6;
-static const field self::Strength* STRONG_DEFAULT = #C9;
-static const field self::Strength* NORMAL = #C12;
-static const field self::Strength* WEAK_DEFAULT = #C15;
-static const field self::Strength* WEAKEST = #C18;
-static const field core::int* NONE = #C1;
-static const field core::int* FORWARD = #C4;
-static const field core::int* BACKWARD = #C20;
-static field self::Planner* planner;
+static const field self::Strength REQUIRED = #C22;
+static const field self::Strength STRONG_PREFERRED = #C3;
+static const field self::Strength PREFERRED = #C6;
+static const field self::Strength STRONG_DEFAULT = #C9;
+static const field self::Strength NORMAL = #C12;
+static const field self::Strength WEAK_DEFAULT = #C15;
+static const field self::Strength WEAKEST = #C18;
+static const field core::int NONE = #C1;
+static const field core::int FORWARD = #C4;
+static const field core::int BACKWARD = #C20;
+late static field self::Planner planner;
 static method main() → dynamic {
-  new self::DeltaBlue::•().{self::DeltaBlue::run}(){() →* void};
+  new self::DeltaBlue::•().{self::DeltaBlue::run}(){() → void};
 }
-static method chainTest(core::int* n) → void {
+static method chainTest(core::int n) → void {
   self::planner = new self::Planner::•();
-  self::Variable* prev = null;
-  self::Variable* first = null;
-  self::Variable* last = null;
-  for (core::int* i = 0; i.{core::num::<=}(n){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    self::Variable* v = new self::Variable::•("v${i}", 0);
+  self::Variable? prev = null;
+  self::Variable? first = null;
+  self::Variable? last = null;
+  for (core::int i = 0; i.{core::num::<=}(n){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    self::Variable v = new self::Variable::•("v${i}", 0);
     if(!(prev == null))
-      new self::EqualityConstraint::•(prev, v, #C22);
-    if(i =={core::num::==}{(core::Object*) →* core::bool*} 0)
+      new self::EqualityConstraint::•(prev{self::Variable}, v, #C22);
+    if(i =={core::num::==}{(core::Object) → core::bool} 0)
       first = v;
-    if(i =={core::num::==}{(core::Object*) →* core::bool*} n)
+    if(i =={core::num::==}{(core::Object) → core::bool} n)
       last = v;
     prev = v;
   }
-  new self::StayConstraint::•(last, #C9);
-  self::EditConstraint* edit = new self::EditConstraint::•(first, #C6);
-  self::Plan* plan = self::planner.{self::Planner::extractPlanFromConstraints}(<self::Constraint*>[edit]){(core::List<self::Constraint*>*) →* self::Plan*};
-  for (core::int* i = 0; i.{core::num::<}(100){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    first.{self::Variable::value} = i;
-    plan.{self::Plan::execute}(){() →* void};
-    if(!(last.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} i)) {
+  new self::StayConstraint::•(last!, #C9);
+  self::EditConstraint edit = new self::EditConstraint::•(first!, #C6);
+  self::Plan plan = self::planner.{self::Planner::extractPlanFromConstraints}(<self::Constraint>[edit]){(core::List<self::Constraint>) → self::Plan};
+  for (core::int i = 0; i.{core::num::<}(100){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    first{self::Variable}.{self::Variable::value} = i;
+    plan.{self::Plan::execute}(){() → void};
+    if(!(last{self::Variable}.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} i)) {
       core::print("Chain test failed:");
-      core::print("Expected last value to be ${i} but it was ${last.{self::Variable::value}{core::int*}}.");
+      core::print("Expected last value to be ${i} but it was ${last{self::Variable}.{self::Variable::value}{core::int}}.");
     }
   }
 }
-static method projectionTest(core::int* n) → void {
+static method projectionTest(core::int n) → void {
   self::planner = new self::Planner::•();
-  self::Variable* scale = new self::Variable::•("scale", 10);
-  self::Variable* offset = new self::Variable::•("offset", 1000);
-  self::Variable* src = null;
-  self::Variable* dst = null;
-  core::List<self::Variable*>* dests = <self::Variable*>[];
-  for (core::int* i = 0; i.{core::num::<}(n){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+  self::Variable scale = new self::Variable::•("scale", 10);
+  self::Variable offset = new self::Variable::•("offset", 1000);
+  self::Variable? src = null;
+  self::Variable? dst = null;
+  core::List<self::Variable> dests = <self::Variable>[];
+  for (core::int i = 0; i.{core::num::<}(n){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
     src = new self::Variable::•("src", i);
     dst = new self::Variable::•("dst", i);
-    dests.{core::List::add}(dst){(self::Variable*) →* void};
-    new self::StayConstraint::•(src, #C12);
-    new self::ScaleConstraint::•(src, scale, offset, dst, #C22);
+    dests.{core::List::add}(dst{self::Variable}){(self::Variable) → void};
+    new self::StayConstraint::•(src{self::Variable}, #C12);
+    new self::ScaleConstraint::•(src{self::Variable}, scale, offset, dst{self::Variable}, #C22);
   }
-  self::change(src, 17);
-  if(!(dst.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 1170))
+  self::change(src!, 17);
+  if(!(dst!.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} 1170))
     core::print("Projection 1 failed");
-  self::change(dst, 1050);
-  if(!(src.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 5))
+  self::change(dst{self::Variable}, 1050);
+  if(!(src{self::Variable}.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} 5))
     core::print("Projection 2 failed");
   self::change(scale, 5);
-  for (core::int* i = 0; i.{core::num::<}(n.{core::num::-}(1){(core::num*) →* core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    if(!(dests.{core::List::[]}(i){(core::int*) →* self::Variable*}.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} i.{core::num::*}(5){(core::num*) →* core::int*}.{core::num::+}(1000){(core::num*) →* core::int*}))
+  for (core::int i = 0; i.{core::num::<}(n.{core::num::-}(1){(core::num) → core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    if(!(dests.{core::List::[]}(i){(core::int) → self::Variable}.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} i.{core::num::*}(5){(core::num) → core::int}.{core::num::+}(1000){(core::num) → core::int}))
       core::print("Projection 3 failed");
   }
   self::change(offset, 2000);
-  for (core::int* i = 0; i.{core::num::<}(n.{core::num::-}(1){(core::num*) →* core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    if(!(dests.{core::List::[]}(i){(core::int*) →* self::Variable*}.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} i.{core::num::*}(5){(core::num*) →* core::int*}.{core::num::+}(2000){(core::num*) →* core::int*}))
+  for (core::int i = 0; i.{core::num::<}(n.{core::num::-}(1){(core::num) → core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    if(!(dests.{core::List::[]}(i){(core::int) → self::Variable}.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} i.{core::num::*}(5){(core::num) → core::int}.{core::num::+}(2000){(core::num) → core::int}))
       core::print("Projection 4 failed");
   }
 }
-static method change(self::Variable* v, core::int* newValue) → void {
-  self::EditConstraint* edit = new self::EditConstraint::•(v, #C6);
-  self::Plan* plan = self::planner.{self::Planner::extractPlanFromConstraints}(<self::EditConstraint*>[edit]){(core::List<self::Constraint*>*) →* self::Plan*};
-  for (core::int* i = 0; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+static method change(self::Variable v, core::int newValue) → void {
+  self::EditConstraint edit = new self::EditConstraint::•(v, #C6);
+  self::Plan plan = self::planner.{self::Planner::extractPlanFromConstraints}(<self::EditConstraint>[edit]){(core::List<self::Constraint>) → self::Plan};
+  for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
     v.{self::Variable::value} = newValue;
-    plan.{self::Plan::execute}(){() →* void};
+    plan.{self::Plan::execute}(){() → void};
   }
-  edit.{self::Constraint::destroyConstraint}(){() →* void};
+  edit.{self::Constraint::destroyConstraint}(){() → void};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/general/DeltaBlue.dart.weak.modular.expect b/pkg/front_end/testcases/general/DeltaBlue.dart.weak.modular.expect
index c7ae21e..8b0ef07 100644
--- a/pkg/front_end/testcases/general/DeltaBlue.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/DeltaBlue.dart.weak.modular.expect
@@ -1,512 +1,452 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class DeltaBlue extends core::Object {
-  synthetic constructor •() → self::DeltaBlue*
+  synthetic constructor •() → self::DeltaBlue
     : super core::Object::•()
     ;
   method run() → void {
     self::chainTest(100);
     self::projectionTest(100);
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Strength extends core::Object /*hasConstConstructor*/  {
-  final field core::int* value;
-  final field core::String* name;
-  const constructor •(core::int* value, core::String* name) → self::Strength*
+  final field core::int value;
+  final field core::String name;
+  const constructor •(core::int value, core::String name) → self::Strength
     : self::Strength::value = value, self::Strength::name = name, super core::Object::•()
     ;
-  method nextWeaker() → self::Strength*
-    return #C19.{core::List::[]}(this.{self::Strength::value}{core::int*}){(core::int*) →* self::Strength*};
-  static method stronger(self::Strength* s1, self::Strength* s2) → core::bool* {
-    return s1.{self::Strength::value}{core::int*}.{core::num::<}(s2.{self::Strength::value}{core::int*}){(core::num*) →* core::bool*};
+  method nextWeaker() → self::Strength
+    return #C19.{core::List::[]}(this.{self::Strength::value}{core::int}){(core::int) → self::Strength};
+  static method stronger(self::Strength s1, self::Strength s2) → core::bool {
+    return s1.{self::Strength::value}{core::int}.{core::num::<}(s2.{self::Strength::value}{core::int}){(core::num) → core::bool};
   }
-  static method weaker(self::Strength* s1, self::Strength* s2) → core::bool* {
-    return s1.{self::Strength::value}{core::int*}.{core::num::>}(s2.{self::Strength::value}{core::int*}){(core::num*) →* core::bool*};
+  static method weaker(self::Strength s1, self::Strength s2) → core::bool {
+    return s1.{self::Strength::value}{core::int}.{core::num::>}(s2.{self::Strength::value}{core::int}){(core::num) → core::bool};
   }
-  static method weakest(self::Strength* s1, self::Strength* s2) → self::Strength* {
-    return self::Strength::weaker(s1, s2) ?{self::Strength*} s1 : s2;
+  static method weakest(self::Strength s1, self::Strength s2) → self::Strength {
+    return self::Strength::weaker(s1, s2) ?{self::Strength} s1 : s2;
   }
-  static method strongest(self::Strength* s1, self::Strength* s2) → self::Strength* {
-    return self::Strength::stronger(s1, s2) ?{self::Strength*} s1 : s2;
+  static method strongest(self::Strength s1, self::Strength s2) → self::Strength {
+    return self::Strength::stronger(s1, s2) ?{self::Strength} s1 : s2;
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 Constraint extends core::Object /*hasConstConstructor*/  {
-  final field self::Strength* strength;
-  const constructor •(self::Strength* strength) → self::Constraint*
+  final field self::Strength strength;
+  const constructor •(self::Strength strength) → self::Constraint
     : self::Constraint::strength = strength, super core::Object::•()
     ;
-  abstract method isSatisfied() → core::bool*;
+  abstract method isSatisfied() → core::bool;
   abstract method markUnsatisfied() → void;
   abstract method addToGraph() → void;
   abstract method removeFromGraph() → void;
-  abstract method chooseMethod(core::int* mark) → void;
-  abstract method markInputs(core::int* mark) → void;
-  abstract method inputsKnown(core::int* mark) → core::bool*;
-  abstract method output() → self::Variable*;
+  abstract method chooseMethod(core::int mark) → void;
+  abstract method markInputs(core::int mark) → void;
+  abstract method inputsKnown(core::int mark) → core::bool;
+  abstract method output() → self::Variable;
   abstract method execute() → void;
   abstract method recalculate() → void;
   method addConstraint() → void {
-    this.{self::Constraint::addToGraph}(){() →* void};
-    self::planner.{self::Planner::incrementalAdd}(this){(self::Constraint*) →* void};
+    this.{self::Constraint::addToGraph}(){() → void};
+    self::planner.{self::Planner::incrementalAdd}(this){(self::Constraint) → void};
   }
-  method satisfy(dynamic mark) → self::Constraint* {
-    this.{self::Constraint::chooseMethod}(mark as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
-    if(!this.{self::Constraint::isSatisfied}(){() →* core::bool*}) {
-      if(this.{self::Constraint::strength}{self::Strength*} =={self::Strength::==}{(dynamic) →* core::bool*} #C22) {
+  method satisfy(dynamic mark) → self::Constraint? {
+    this.{self::Constraint::chooseMethod}(mark as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+    if(!this.{self::Constraint::isSatisfied}(){() → core::bool}) {
+      if(this.{self::Constraint::strength}{self::Strength} =={core::Object::==}{(core::Object) → core::bool} #C22) {
         core::print("Could not satisfy a required constraint!");
       }
       return null;
     }
-    this.{self::Constraint::markInputs}(mark as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
-    self::Variable* out = this.{self::Constraint::output}(){() →* self::Variable*};
-    self::Constraint* overridden = out.{self::Variable::determinedBy}{self::Constraint*};
+    this.{self::Constraint::markInputs}(mark as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+    self::Variable out = this.{self::Constraint::output}(){() → self::Variable};
+    self::Constraint? overridden = out.{self::Variable::determinedBy}{self::Constraint?};
     if(!(overridden == null))
-      overridden.{self::Constraint::markUnsatisfied}(){() →* void};
+      overridden{self::Constraint}.{self::Constraint::markUnsatisfied}(){() → void};
     out.{self::Variable::determinedBy} = this;
-    if(!self::planner.{self::Planner::addPropagate}(this, mark as{TypeError,ForDynamic} core::int*){(self::Constraint*, core::int*) →* core::bool*})
+    if(!self::planner.{self::Planner::addPropagate}(this, mark as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(self::Constraint, core::int) → core::bool})
       core::print("Cycle encountered");
-    out.{self::Variable::mark} = mark as{TypeError,ForDynamic} core::int*;
+    out.{self::Variable::mark} = mark as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
     return overridden;
   }
   method destroyConstraint() → void {
-    if(this.{self::Constraint::isSatisfied}(){() →* core::bool*})
-      self::planner.{self::Planner::incrementalRemove}(this){(self::Constraint*) →* void};
-    this.{self::Constraint::removeFromGraph}(){() →* void};
+    if(this.{self::Constraint::isSatisfied}(){() → core::bool})
+      self::planner.{self::Planner::incrementalRemove}(this){(self::Constraint) → void};
+    this.{self::Constraint::removeFromGraph}(){() → void};
   }
-  method isInput() → core::bool*
+  method isInput() → core::bool
     return false;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 UnaryConstraint extends self::Constraint {
-  final field self::Variable* myOutput;
-  field core::bool* satisfied = false;
-  constructor •(self::Variable* myOutput, self::Strength* strength) → self::UnaryConstraint*
+  final field self::Variable myOutput;
+  field core::bool satisfied = false;
+  constructor •(self::Variable myOutput, self::Strength strength) → self::UnaryConstraint
     : self::UnaryConstraint::myOutput = myOutput, super self::Constraint::•(strength) {
-    this.{self::Constraint::addConstraint}(){() →* void};
+    this.{self::Constraint::addConstraint}(){() → void};
   }
   method addToGraph() → void {
-    this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
+    this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
     this.{self::UnaryConstraint::satisfied} = false;
   }
-  method chooseMethod(core::int* mark) → void {
-    this.{self::UnaryConstraint::satisfied} = !(this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*});
+  method chooseMethod(core::int mark) → void {
+    this.{self::UnaryConstraint::satisfied} = !(this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::walkStrength}{self::Strength});
   }
-  method isSatisfied() → core::bool*
-    return this.{self::UnaryConstraint::satisfied}{core::bool*};
-  method markInputs(core::int* mark) → void {}
-  method output() → self::Variable*
-    return this.{self::UnaryConstraint::myOutput}{self::Variable*};
+  method isSatisfied() → core::bool
+    return this.{self::UnaryConstraint::satisfied}{core::bool};
+  method markInputs(core::int mark) → void {}
+  method output() → self::Variable
+    return this.{self::UnaryConstraint::myOutput}{self::Variable};
   method recalculate() → void {
-    this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::walkStrength} = this.{self::Constraint::strength}{self::Strength*};
-    this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::stay} = !this.{self::Constraint::isInput}(){() →* core::bool*};
-    if(this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::stay}{core::bool*})
-      this.{self::Constraint::execute}(){() →* void};
+    this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::walkStrength} = this.{self::Constraint::strength}{self::Strength};
+    this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::stay} = !this.{self::Constraint::isInput}(){() → core::bool};
+    if(this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::stay}{core::bool})
+      this.{self::Constraint::execute}(){() → void};
   }
   method markUnsatisfied() → void {
     this.{self::UnaryConstraint::satisfied} = false;
   }
-  method inputsKnown(core::int* mark) → core::bool*
+  method inputsKnown(core::int mark) → core::bool
     return true;
   method removeFromGraph() → void {
-    if(!(this.{self::UnaryConstraint::myOutput}{self::Variable*} == null))
-      this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
+    if(!(this.{self::UnaryConstraint::myOutput}{self::Variable} == null))
+      this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
     this.{self::UnaryConstraint::satisfied} = false;
   }
 }
 class StayConstraint extends self::UnaryConstraint {
-  constructor •(self::Variable* v, self::Strength* str) → self::StayConstraint*
+  constructor •(self::Variable v, self::Strength str) → self::StayConstraint
     : super self::UnaryConstraint::•(v, str)
     ;
   method execute() → void {}
 }
 class EditConstraint extends self::UnaryConstraint {
-  constructor •(self::Variable* v, self::Strength* str) → self::EditConstraint*
+  constructor •(self::Variable v, self::Strength str) → self::EditConstraint
     : super self::UnaryConstraint::•(v, str)
     ;
-  method isInput() → core::bool*
+  method isInput() → core::bool
     return true;
   method execute() → void {}
 }
 abstract class BinaryConstraint extends self::Constraint {
-  field self::Variable* v1;
-  field self::Variable* v2;
-  field core::int* direction = #C1;
-  constructor •(self::Variable* v1, self::Variable* v2, self::Strength* strength) → self::BinaryConstraint*
+  field self::Variable v1;
+  field self::Variable v2;
+  field core::int direction = #C1;
+  constructor •(self::Variable v1, self::Variable v2, self::Strength strength) → self::BinaryConstraint
     : self::BinaryConstraint::v1 = v1, self::BinaryConstraint::v2 = v2, super self::Constraint::•(strength) {
-    this.{self::Constraint::addConstraint}(){() →* void};
+    this.{self::Constraint::addConstraint}(){() → void};
   }
-  method chooseMethod(core::int* mark) → void {
-    if(this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) {
-      this.{self::BinaryConstraint::direction} = !(this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}) ?{core::int*} #C4 : #C1;
+  method chooseMethod(core::int mark) → void {
+    if(this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) {
+      this.{self::BinaryConstraint::direction} = !(this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::walkStrength}{self::Strength}) ?{core::int} #C4 : #C1;
     }
-    if(this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) {
-      this.{self::BinaryConstraint::direction} = !(this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}) ?{core::int*} #C20 : #C1;
+    if(this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) {
+      this.{self::BinaryConstraint::direction} = !(this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::walkStrength}{self::Strength}) ?{core::int} #C20 : #C1;
     }
-    if(self::Strength::weaker(this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}, this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*})) {
-      this.{self::BinaryConstraint::direction} = self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}) ?{core::int*} #C20 : #C1;
+    if(self::Strength::weaker(this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::walkStrength}{self::Strength}, this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::walkStrength}{self::Strength})) {
+      this.{self::BinaryConstraint::direction} = self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::walkStrength}{self::Strength}) ?{core::int} #C20 : #C1;
     }
     else {
-      this.{self::BinaryConstraint::direction} = self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}) ?{core::int*} #C4 : #C20;
+      this.{self::BinaryConstraint::direction} = self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::walkStrength}{self::Strength}) ?{core::int} #C4 : #C20;
     }
   }
   method addToGraph() → void {
-    this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
-    this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
+    this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
+    this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
     this.{self::BinaryConstraint::direction} = #C1;
   }
-  method isSatisfied() → core::bool*
-    return !(this.{self::BinaryConstraint::direction}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} #C1);
-  method markInputs(core::int* mark) → void {
-    this.{self::BinaryConstraint::input}(){() →* self::Variable*}.{self::Variable::mark} = mark;
+  method isSatisfied() → core::bool
+    return !(this.{self::BinaryConstraint::direction}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1);
+  method markInputs(core::int mark) → void {
+    this.{self::BinaryConstraint::input}(){() → self::Variable}.{self::Variable::mark} = mark;
   }
-  method input() → self::Variable*
-    return this.{self::BinaryConstraint::direction}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} #C4 ?{self::Variable*} this.{self::BinaryConstraint::v1}{self::Variable*} : this.{self::BinaryConstraint::v2}{self::Variable*};
-  method output() → self::Variable*
-    return this.{self::BinaryConstraint::direction}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} #C4 ?{self::Variable*} this.{self::BinaryConstraint::v2}{self::Variable*} : this.{self::BinaryConstraint::v1}{self::Variable*};
+  method input() → self::Variable
+    return this.{self::BinaryConstraint::direction}{core::int} =={core::num::==}{(core::Object) → core::bool} #C4 ?{self::Variable} this.{self::BinaryConstraint::v1}{self::Variable} : this.{self::BinaryConstraint::v2}{self::Variable};
+  method output() → self::Variable
+    return this.{self::BinaryConstraint::direction}{core::int} =={core::num::==}{(core::Object) → core::bool} #C4 ?{self::Variable} this.{self::BinaryConstraint::v2}{self::Variable} : this.{self::BinaryConstraint::v1}{self::Variable};
   method recalculate() → void {
-    self::Variable* ihn = this.{self::BinaryConstraint::input}(){() →* self::Variable*};
-    self::Variable* out = this.{self::BinaryConstraint::output}(){() →* self::Variable*};
-    out.{self::Variable::walkStrength} = self::Strength::weakest(this.{self::Constraint::strength}{self::Strength*}, ihn.{self::Variable::walkStrength}{self::Strength*});
-    out.{self::Variable::stay} = ihn.{self::Variable::stay}{core::bool*};
-    if(out.{self::Variable::stay}{core::bool*})
-      this.{self::Constraint::execute}(){() →* void};
+    self::Variable ihn = this.{self::BinaryConstraint::input}(){() → self::Variable};
+    self::Variable out = this.{self::BinaryConstraint::output}(){() → self::Variable};
+    out.{self::Variable::walkStrength} = self::Strength::weakest(this.{self::Constraint::strength}{self::Strength}, ihn.{self::Variable::walkStrength}{self::Strength});
+    out.{self::Variable::stay} = ihn.{self::Variable::stay}{core::bool};
+    if(out.{self::Variable::stay}{core::bool})
+      this.{self::Constraint::execute}(){() → void};
   }
   method markUnsatisfied() → void {
     this.{self::BinaryConstraint::direction} = #C1;
   }
-  method inputsKnown(core::int* mark) → core::bool* {
-    self::Variable* i = this.{self::BinaryConstraint::input}(){() →* self::Variable*};
-    return i.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark || i.{self::Variable::stay}{core::bool*} || i.{self::Variable::determinedBy}{self::Constraint*} == null;
+  method inputsKnown(core::int mark) → core::bool {
+    self::Variable i = this.{self::BinaryConstraint::input}(){() → self::Variable};
+    return i.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark || i.{self::Variable::stay}{core::bool} || i.{self::Variable::determinedBy}{self::Constraint?} == null;
   }
   method removeFromGraph() → void {
-    if(!(this.{self::BinaryConstraint::v1}{self::Variable*} == null))
-      this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
-    if(!(this.{self::BinaryConstraint::v2}{self::Variable*} == null))
-      this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
+    if(!(this.{self::BinaryConstraint::v1}{self::Variable} == null))
+      this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
+    if(!(this.{self::BinaryConstraint::v2}{self::Variable} == null))
+      this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
     this.{self::BinaryConstraint::direction} = #C1;
   }
 }
 class ScaleConstraint extends self::BinaryConstraint {
-  final field self::Variable* scale;
-  final field self::Variable* offset;
-  constructor •(self::Variable* src, self::Variable* scale, self::Variable* offset, self::Variable* dest, self::Strength* strength) → self::ScaleConstraint*
+  final field self::Variable scale;
+  final field self::Variable offset;
+  constructor •(self::Variable src, self::Variable scale, self::Variable offset, self::Variable dest, self::Strength strength) → self::ScaleConstraint
     : self::ScaleConstraint::scale = scale, self::ScaleConstraint::offset = offset, super self::BinaryConstraint::•(src, dest, strength)
     ;
   method addToGraph() → void {
     super.{self::BinaryConstraint::addToGraph}();
-    this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
-    this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
+    this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
+    this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
   }
   method removeFromGraph() → void {
     super.{self::BinaryConstraint::removeFromGraph}();
-    if(!(this.{self::ScaleConstraint::scale}{self::Variable*} == null))
-      this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
-    if(!(this.{self::ScaleConstraint::offset}{self::Variable*} == null))
-      this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
+    if(!(this.{self::ScaleConstraint::scale}{self::Variable} == null))
+      this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
+    if(!(this.{self::ScaleConstraint::offset}{self::Variable} == null))
+      this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
   }
-  method markInputs(core::int* mark) → void {
+  method markInputs(core::int mark) → void {
     super.{self::BinaryConstraint::markInputs}(mark);
-    this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::mark} = this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::mark} = mark;
+    this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::mark} = this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::mark} = mark;
   }
   method execute() → void {
-    if(this.{self::BinaryConstraint::direction}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} #C4) {
-      this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::value} = this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::value}{core::int*}.{core::num::*}(this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::value}{core::int*}){(core::num*) →* core::int*}.{core::num::+}(this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::value}{core::int*}){(core::num*) →* core::int*};
+    if(this.{self::BinaryConstraint::direction}{core::int} =={core::num::==}{(core::Object) → core::bool} #C4) {
+      this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::value} = this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::value}{core::int}.{core::num::*}(this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::value}{core::int}){(core::num) → core::int}.{core::num::+}(this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::value}{core::int}){(core::num) → core::int};
     }
     else {
-      this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::value} = this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::value}{core::int*}.{core::num::-}(this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::value}{core::int*}){(core::num*) →* core::int*}.{core::num::~/}(this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::value}{core::int*}){(core::num*) →* core::int*};
+      this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::value} = this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::value}{core::int}.{core::num::-}(this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::value}{core::int}){(core::num) → core::int}.{core::num::~/}(this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::value}{core::int}){(core::num) → core::int};
     }
   }
   method recalculate() → void {
-    self::Variable* ihn = this.{self::BinaryConstraint::input}(){() →* self::Variable*};
-    self::Variable* out = this.{self::BinaryConstraint::output}(){() →* self::Variable*};
-    out.{self::Variable::walkStrength} = self::Strength::weakest(this.{self::Constraint::strength}{self::Strength*}, ihn.{self::Variable::walkStrength}{self::Strength*});
-    out.{self::Variable::stay} = ihn.{self::Variable::stay}{core::bool*} && this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::stay}{core::bool*} && this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::stay}{core::bool*};
-    if(out.{self::Variable::stay}{core::bool*})
-      this.{self::ScaleConstraint::execute}(){() →* void};
+    self::Variable ihn = this.{self::BinaryConstraint::input}(){() → self::Variable};
+    self::Variable out = this.{self::BinaryConstraint::output}(){() → self::Variable};
+    out.{self::Variable::walkStrength} = self::Strength::weakest(this.{self::Constraint::strength}{self::Strength}, ihn.{self::Variable::walkStrength}{self::Strength});
+    out.{self::Variable::stay} = ihn.{self::Variable::stay}{core::bool} && this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::stay}{core::bool} && this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::stay}{core::bool};
+    if(out.{self::Variable::stay}{core::bool})
+      this.{self::ScaleConstraint::execute}(){() → void};
   }
 }
 class EqualityConstraint extends self::BinaryConstraint {
-  constructor •(self::Variable* v1, self::Variable* v2, self::Strength* strength) → self::EqualityConstraint*
+  constructor •(self::Variable v1, self::Variable v2, self::Strength strength) → self::EqualityConstraint
     : super self::BinaryConstraint::•(v1, v2, strength)
     ;
   method execute() → void {
-    this.{self::BinaryConstraint::output}(){() →* self::Variable*}.{self::Variable::value} = this.{self::BinaryConstraint::input}(){() →* self::Variable*}.{self::Variable::value}{core::int*};
+    this.{self::BinaryConstraint::output}(){() → self::Variable}.{self::Variable::value} = this.{self::BinaryConstraint::input}(){() → self::Variable}.{self::Variable::value}{core::int};
   }
 }
 class Variable extends core::Object {
-  field core::List<self::Constraint*>* constraints = <self::Constraint*>[];
-  field self::Constraint* determinedBy = null;
-  field core::int* mark = 0;
-  field self::Strength* walkStrength = #C18;
-  field core::bool* stay = true;
-  field core::int* value;
-  final field core::String* name;
-  constructor •(core::String* name, core::int* value) → self::Variable*
+  field core::List<self::Constraint> constraints = <self::Constraint>[];
+  field self::Constraint? determinedBy = null;
+  field core::int mark = 0;
+  field self::Strength walkStrength = #C18;
+  field core::bool stay = true;
+  field core::int value;
+  final field core::String name;
+  constructor •(core::String name, core::int value) → self::Variable
     : self::Variable::name = name, self::Variable::value = value, super core::Object::•()
     ;
-  method addConstraint(self::Constraint* c) → void {
-    this.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::add}(c){(self::Constraint*) →* void};
+  method addConstraint(self::Constraint c) → void {
+    this.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::add}(c){(self::Constraint) → void};
   }
-  method removeConstraint(self::Constraint* c) → void {
-    this.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::remove}(c){(core::Object*) →* core::bool*};
-    if(this.{self::Variable::determinedBy}{self::Constraint*} =={self::Constraint::==}{(dynamic) →* core::bool*} c)
+  method removeConstraint(self::Constraint c) → void {
+    this.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::remove}(c){(core::Object?) → core::bool};
+    if(this.{self::Variable::determinedBy}{self::Constraint?} =={core::Object::==}{(core::Object) → core::bool} c)
       this.{self::Variable::determinedBy} = null;
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Planner extends core::Object {
-  field core::int* currentMark = 0;
-  synthetic constructor •() → self::Planner*
+  field core::int currentMark = 0;
+  synthetic constructor •() → self::Planner
     : super core::Object::•()
     ;
-  method incrementalAdd(self::Constraint* c) → void {
-    core::int* mark = this.{self::Planner::newMark}(){() →* core::int*};
-    for (self::Constraint* overridden = c.{self::Constraint::satisfy}(mark){(dynamic) →* self::Constraint*}; !(overridden == null); overridden = overridden.{self::Constraint::satisfy}(mark){(dynamic) →* self::Constraint*})
+  method incrementalAdd(self::Constraint c) → void {
+    core::int mark = this.{self::Planner::newMark}(){() → core::int};
+    for (self::Constraint? overridden = c.{self::Constraint::satisfy}(mark){(dynamic) → self::Constraint?}; !(overridden == null); overridden = overridden{self::Constraint}.{self::Constraint::satisfy}(mark){(dynamic) → self::Constraint?})
       ;
   }
-  method incrementalRemove(self::Constraint* c) → void {
-    self::Variable* out = c.{self::Constraint::output}(){() →* self::Variable*};
-    c.{self::Constraint::markUnsatisfied}(){() →* void};
-    c.{self::Constraint::removeFromGraph}(){() →* void};
-    core::List<self::Constraint*>* unsatisfied = this.{self::Planner::removePropagateFrom}(out){(self::Variable*) →* core::List<self::Constraint*>*};
-    self::Strength* strength = #C22;
+  method incrementalRemove(self::Constraint c) → void {
+    self::Variable out = c.{self::Constraint::output}(){() → self::Variable};
+    c.{self::Constraint::markUnsatisfied}(){() → void};
+    c.{self::Constraint::removeFromGraph}(){() → void};
+    core::List<self::Constraint> unsatisfied = this.{self::Planner::removePropagateFrom}(out){(self::Variable) → core::List<self::Constraint>};
+    self::Strength strength = #C22;
     do {
-      for (core::int* i = 0; i.{core::num::<}(unsatisfied.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-        self::Constraint* u = unsatisfied.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-        if(u.{self::Constraint::strength}{self::Strength*} =={self::Strength::==}{(dynamic) →* core::bool*} strength)
-          this.{self::Planner::incrementalAdd}(u){(self::Constraint*) →* void};
+      for (core::int i = 0; i.{core::num::<}(unsatisfied.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+        self::Constraint u = unsatisfied.{core::List::[]}(i){(core::int) → self::Constraint};
+        if(u.{self::Constraint::strength}{self::Strength} =={core::Object::==}{(core::Object) → core::bool} strength)
+          this.{self::Planner::incrementalAdd}(u){(self::Constraint) → void};
       }
-      strength = strength.{self::Strength::nextWeaker}(){() →* self::Strength*};
+      strength = strength.{self::Strength::nextWeaker}(){() → self::Strength};
     }
-    while (!(strength =={self::Strength::==}{(dynamic) →* core::bool*} #C18))
+    while (!(strength =={core::Object::==}{(core::Object) → core::bool} #C18))
   }
-  method newMark() → core::int*
-    return this.{self::Planner::currentMark} = this.{self::Planner::currentMark}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
-  method makePlan(core::List<self::Constraint*>* sources) → self::Plan* {
-    core::int* mark = this.{self::Planner::newMark}(){() →* core::int*};
-    self::Plan* plan = new self::Plan::•();
-    core::List<self::Constraint*>* todo = sources;
-    while (todo.{core::List::length}{core::int*}.{core::num::>}(0){(core::num*) →* core::bool*}) {
-      self::Constraint* c = todo.{core::List::removeLast}(){() →* self::Constraint*};
-      if(!(c.{self::Constraint::output}(){() →* self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) && c.{self::Constraint::inputsKnown}(mark){(core::int*) →* core::bool*}) {
-        plan.{self::Plan::addConstraint}(c){(self::Constraint*) →* void};
-        c.{self::Constraint::output}(){() →* self::Variable*}.{self::Variable::mark} = mark;
-        this.{self::Planner::addConstraintsConsumingTo}(c.{self::Constraint::output}(){() →* self::Variable*}, todo){(self::Variable*, core::List<self::Constraint*>*) →* void};
+  method newMark() → core::int
+    return this.{self::Planner::currentMark} = this.{self::Planner::currentMark}{core::int}.{core::num::+}(1){(core::num) → core::int};
+  method makePlan(core::List<self::Constraint> sources) → self::Plan {
+    core::int mark = this.{self::Planner::newMark}(){() → core::int};
+    self::Plan plan = new self::Plan::•();
+    core::List<self::Constraint> todo = sources;
+    while (todo.{core::List::length}{core::int}.{core::num::>}(0){(core::num) → core::bool}) {
+      self::Constraint c = todo.{core::List::removeLast}(){() → self::Constraint};
+      if(!(c.{self::Constraint::output}(){() → self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) && c.{self::Constraint::inputsKnown}(mark){(core::int) → core::bool}) {
+        plan.{self::Plan::addConstraint}(c){(self::Constraint) → void};
+        c.{self::Constraint::output}(){() → self::Variable}.{self::Variable::mark} = mark;
+        this.{self::Planner::addConstraintsConsumingTo}(c.{self::Constraint::output}(){() → self::Variable}, todo){(self::Variable, core::List<self::Constraint>) → void};
       }
     }
     return plan;
   }
-  method extractPlanFromConstraints(core::List<self::Constraint*>* constraints) → self::Plan* {
-    core::List<self::Constraint*>* sources = <self::Constraint*>[];
-    for (core::int* i = 0; i.{core::num::<}(constraints.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-      self::Constraint* c = constraints.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-      if(c.{self::Constraint::isInput}(){() →* core::bool*} && c.{self::Constraint::isSatisfied}(){() →* core::bool*})
-        sources.{core::List::add}(c){(self::Constraint*) →* void};
+  method extractPlanFromConstraints(core::List<self::Constraint> constraints) → self::Plan {
+    core::List<self::Constraint> sources = <self::Constraint>[];
+    for (core::int i = 0; i.{core::num::<}(constraints.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      self::Constraint c = constraints.{core::List::[]}(i){(core::int) → self::Constraint};
+      if(c.{self::Constraint::isInput}(){() → core::bool} && c.{self::Constraint::isSatisfied}(){() → core::bool})
+        sources.{core::List::add}(c){(self::Constraint) → void};
     }
-    return this.{self::Planner::makePlan}(sources){(core::List<self::Constraint*>*) →* self::Plan*};
+    return this.{self::Planner::makePlan}(sources){(core::List<self::Constraint>) → self::Plan};
   }
-  method addPropagate(self::Constraint* c, core::int* mark) → core::bool* {
-    core::List<self::Constraint*>* todo = <self::Constraint*>[c];
-    while (todo.{core::List::length}{core::int*}.{core::num::>}(0){(core::num*) →* core::bool*}) {
-      self::Constraint* d = todo.{core::List::removeLast}(){() →* self::Constraint*};
-      if(d.{self::Constraint::output}(){() →* self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) {
-        this.{self::Planner::incrementalRemove}(c){(self::Constraint*) →* void};
+  method addPropagate(self::Constraint c, core::int mark) → core::bool {
+    core::List<self::Constraint> todo = <self::Constraint>[c];
+    while (todo.{core::List::length}{core::int}.{core::num::>}(0){(core::num) → core::bool}) {
+      self::Constraint d = todo.{core::List::removeLast}(){() → self::Constraint};
+      if(d.{self::Constraint::output}(){() → self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) {
+        this.{self::Planner::incrementalRemove}(c){(self::Constraint) → void};
         return false;
       }
-      d.{self::Constraint::recalculate}(){() →* void};
-      this.{self::Planner::addConstraintsConsumingTo}(d.{self::Constraint::output}(){() →* self::Variable*}, todo){(self::Variable*, core::List<self::Constraint*>*) →* void};
+      d.{self::Constraint::recalculate}(){() → void};
+      this.{self::Planner::addConstraintsConsumingTo}(d.{self::Constraint::output}(){() → self::Variable}, todo){(self::Variable, core::List<self::Constraint>) → void};
     }
     return true;
   }
-  method removePropagateFrom(self::Variable* out) → core::List<self::Constraint*>* {
+  method removePropagateFrom(self::Variable out) → core::List<self::Constraint> {
     out.{self::Variable::determinedBy} = null;
     out.{self::Variable::walkStrength} = #C18;
     out.{self::Variable::stay} = true;
-    core::List<self::Constraint*>* unsatisfied = <self::Constraint*>[];
-    core::List<self::Variable*>* todo = <self::Variable*>[out];
-    while (todo.{core::List::length}{core::int*}.{core::num::>}(0){(core::num*) →* core::bool*}) {
-      self::Variable* v = todo.{core::List::removeLast}(){() →* self::Variable*};
-      for (core::int* i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-        self::Constraint* c = v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-        if(!c.{self::Constraint::isSatisfied}(){() →* core::bool*})
-          unsatisfied.{core::List::add}(c){(self::Constraint*) →* void};
+    core::List<self::Constraint> unsatisfied = <self::Constraint>[];
+    core::List<self::Variable> todo = <self::Variable>[out];
+    while (todo.{core::List::length}{core::int}.{core::num::>}(0){(core::num) → core::bool}) {
+      self::Variable v = todo.{core::List::removeLast}(){() → self::Variable};
+      for (core::int i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+        self::Constraint c = v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::[]}(i){(core::int) → self::Constraint};
+        if(!c.{self::Constraint::isSatisfied}(){() → core::bool})
+          unsatisfied.{core::List::add}(c){(self::Constraint) → void};
       }
-      self::Constraint* determining = v.{self::Variable::determinedBy}{self::Constraint*};
-      for (core::int* i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-        self::Constraint* next = v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-        if(!(next =={self::Constraint::==}{(dynamic) →* core::bool*} determining) && next.{self::Constraint::isSatisfied}(){() →* core::bool*}) {
-          next.{self::Constraint::recalculate}(){() →* void};
-          todo.{core::List::add}(next.{self::Constraint::output}(){() →* self::Variable*}){(self::Variable*) →* void};
+      self::Constraint? determining = v.{self::Variable::determinedBy}{self::Constraint?};
+      for (core::int i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+        self::Constraint next = v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::[]}(i){(core::int) → self::Constraint};
+        if(!(next =={core::Object::==}{(core::Object) → core::bool} determining) && next.{self::Constraint::isSatisfied}(){() → core::bool}) {
+          next.{self::Constraint::recalculate}(){() → void};
+          todo.{core::List::add}(next.{self::Constraint::output}(){() → self::Variable}){(self::Variable) → void};
         }
       }
     }
     return unsatisfied;
   }
-  method addConstraintsConsumingTo(self::Variable* v, core::List<self::Constraint*>* coll) → void {
-    self::Constraint* determining = v.{self::Variable::determinedBy}{self::Constraint*};
-    for (core::int* i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-      self::Constraint* c = v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-      if(!(c =={self::Constraint::==}{(dynamic) →* core::bool*} determining) && c.{self::Constraint::isSatisfied}(){() →* core::bool*})
-        coll.{core::List::add}(c){(self::Constraint*) →* void};
+  method addConstraintsConsumingTo(self::Variable v, core::List<self::Constraint> coll) → void {
+    self::Constraint? determining = v.{self::Variable::determinedBy}{self::Constraint?};
+    for (core::int i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      self::Constraint c = v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::[]}(i){(core::int) → self::Constraint};
+      if(!(c =={core::Object::==}{(core::Object) → core::bool} determining) && c.{self::Constraint::isSatisfied}(){() → core::bool})
+        coll.{core::List::add}(c){(self::Constraint) → void};
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Plan extends core::Object {
-  field core::List<self::Constraint*>* list = <self::Constraint*>[];
-  synthetic constructor •() → self::Plan*
+  field core::List<self::Constraint> list = <self::Constraint>[];
+  synthetic constructor •() → self::Plan
     : super core::Object::•()
     ;
-  method addConstraint(self::Constraint* c) → void {
-    this.{self::Plan::list}{core::List<self::Constraint*>*}.{core::List::add}(c){(self::Constraint*) →* void};
+  method addConstraint(self::Constraint c) → void {
+    this.{self::Plan::list}{core::List<self::Constraint>}.{core::List::add}(c){(self::Constraint) → void};
   }
-  method size() → core::int*
-    return this.{self::Plan::list}{core::List<self::Constraint*>*}.{core::List::length}{core::int*};
+  method size() → core::int
+    return this.{self::Plan::list}{core::List<self::Constraint>}.{core::List::length}{core::int};
   method execute() → void {
-    for (core::int* i = 0; i.{core::num::<}(this.{self::Plan::list}{core::List<self::Constraint*>*}.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-      this.{self::Plan::list}{core::List<self::Constraint*>*}.{core::List::[]}(i){(core::int*) →* self::Constraint*}.{self::Constraint::execute}(){() →* void};
+    for (core::int i = 0; i.{core::num::<}(this.{self::Plan::list}{core::List<self::Constraint>}.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      this.{self::Plan::list}{core::List<self::Constraint>}.{core::List::[]}(i){(core::int) → self::Constraint}.{self::Constraint::execute}(){() → void};
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static const field self::Strength* REQUIRED = #C22;
-static const field self::Strength* STRONG_PREFERRED = #C3;
-static const field self::Strength* PREFERRED = #C6;
-static const field self::Strength* STRONG_DEFAULT = #C9;
-static const field self::Strength* NORMAL = #C12;
-static const field self::Strength* WEAK_DEFAULT = #C15;
-static const field self::Strength* WEAKEST = #C18;
-static const field core::int* NONE = #C1;
-static const field core::int* FORWARD = #C4;
-static const field core::int* BACKWARD = #C20;
-static field self::Planner* planner;
+static const field self::Strength REQUIRED = #C22;
+static const field self::Strength STRONG_PREFERRED = #C3;
+static const field self::Strength PREFERRED = #C6;
+static const field self::Strength STRONG_DEFAULT = #C9;
+static const field self::Strength NORMAL = #C12;
+static const field self::Strength WEAK_DEFAULT = #C15;
+static const field self::Strength WEAKEST = #C18;
+static const field core::int NONE = #C1;
+static const field core::int FORWARD = #C4;
+static const field core::int BACKWARD = #C20;
+late static field self::Planner planner;
 static method main() → dynamic {
-  new self::DeltaBlue::•().{self::DeltaBlue::run}(){() →* void};
+  new self::DeltaBlue::•().{self::DeltaBlue::run}(){() → void};
 }
-static method chainTest(core::int* n) → void {
+static method chainTest(core::int n) → void {
   self::planner = new self::Planner::•();
-  self::Variable* prev = null;
-  self::Variable* first = null;
-  self::Variable* last = null;
-  for (core::int* i = 0; i.{core::num::<=}(n){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    self::Variable* v = new self::Variable::•("v${i}", 0);
+  self::Variable? prev = null;
+  self::Variable? first = null;
+  self::Variable? last = null;
+  for (core::int i = 0; i.{core::num::<=}(n){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    self::Variable v = new self::Variable::•("v${i}", 0);
     if(!(prev == null))
-      new self::EqualityConstraint::•(prev, v, #C22);
-    if(i =={core::num::==}{(core::Object*) →* core::bool*} 0)
+      new self::EqualityConstraint::•(prev{self::Variable}, v, #C22);
+    if(i =={core::num::==}{(core::Object) → core::bool} 0)
       first = v;
-    if(i =={core::num::==}{(core::Object*) →* core::bool*} n)
+    if(i =={core::num::==}{(core::Object) → core::bool} n)
       last = v;
     prev = v;
   }
-  new self::StayConstraint::•(last, #C9);
-  self::EditConstraint* edit = new self::EditConstraint::•(first, #C6);
-  self::Plan* plan = self::planner.{self::Planner::extractPlanFromConstraints}(<self::Constraint*>[edit]){(core::List<self::Constraint*>*) →* self::Plan*};
-  for (core::int* i = 0; i.{core::num::<}(100){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    first.{self::Variable::value} = i;
-    plan.{self::Plan::execute}(){() →* void};
-    if(!(last.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} i)) {
+  new self::StayConstraint::•(last!, #C9);
+  self::EditConstraint edit = new self::EditConstraint::•(first!, #C6);
+  self::Plan plan = self::planner.{self::Planner::extractPlanFromConstraints}(<self::Constraint>[edit]){(core::List<self::Constraint>) → self::Plan};
+  for (core::int i = 0; i.{core::num::<}(100){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    first{self::Variable}.{self::Variable::value} = i;
+    plan.{self::Plan::execute}(){() → void};
+    if(!(last{self::Variable}.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} i)) {
       core::print("Chain test failed:");
-      core::print("Expected last value to be ${i} but it was ${last.{self::Variable::value}{core::int*}}.");
+      core::print("Expected last value to be ${i} but it was ${last{self::Variable}.{self::Variable::value}{core::int}}.");
     }
   }
 }
-static method projectionTest(core::int* n) → void {
+static method projectionTest(core::int n) → void {
   self::planner = new self::Planner::•();
-  self::Variable* scale = new self::Variable::•("scale", 10);
-  self::Variable* offset = new self::Variable::•("offset", 1000);
-  self::Variable* src = null;
-  self::Variable* dst = null;
-  core::List<self::Variable*>* dests = <self::Variable*>[];
-  for (core::int* i = 0; i.{core::num::<}(n){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+  self::Variable scale = new self::Variable::•("scale", 10);
+  self::Variable offset = new self::Variable::•("offset", 1000);
+  self::Variable? src = null;
+  self::Variable? dst = null;
+  core::List<self::Variable> dests = <self::Variable>[];
+  for (core::int i = 0; i.{core::num::<}(n){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
     src = new self::Variable::•("src", i);
     dst = new self::Variable::•("dst", i);
-    dests.{core::List::add}(dst){(self::Variable*) →* void};
-    new self::StayConstraint::•(src, #C12);
-    new self::ScaleConstraint::•(src, scale, offset, dst, #C22);
+    dests.{core::List::add}(dst{self::Variable}){(self::Variable) → void};
+    new self::StayConstraint::•(src{self::Variable}, #C12);
+    new self::ScaleConstraint::•(src{self::Variable}, scale, offset, dst{self::Variable}, #C22);
   }
-  self::change(src, 17);
-  if(!(dst.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 1170))
+  self::change(src!, 17);
+  if(!(dst!.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} 1170))
     core::print("Projection 1 failed");
-  self::change(dst, 1050);
-  if(!(src.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 5))
+  self::change(dst{self::Variable}, 1050);
+  if(!(src{self::Variable}.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} 5))
     core::print("Projection 2 failed");
   self::change(scale, 5);
-  for (core::int* i = 0; i.{core::num::<}(n.{core::num::-}(1){(core::num*) →* core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    if(!(dests.{core::List::[]}(i){(core::int*) →* self::Variable*}.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} i.{core::num::*}(5){(core::num*) →* core::int*}.{core::num::+}(1000){(core::num*) →* core::int*}))
+  for (core::int i = 0; i.{core::num::<}(n.{core::num::-}(1){(core::num) → core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    if(!(dests.{core::List::[]}(i){(core::int) → self::Variable}.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} i.{core::num::*}(5){(core::num) → core::int}.{core::num::+}(1000){(core::num) → core::int}))
       core::print("Projection 3 failed");
   }
   self::change(offset, 2000);
-  for (core::int* i = 0; i.{core::num::<}(n.{core::num::-}(1){(core::num*) →* core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    if(!(dests.{core::List::[]}(i){(core::int*) →* self::Variable*}.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} i.{core::num::*}(5){(core::num*) →* core::int*}.{core::num::+}(2000){(core::num*) →* core::int*}))
+  for (core::int i = 0; i.{core::num::<}(n.{core::num::-}(1){(core::num) → core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    if(!(dests.{core::List::[]}(i){(core::int) → self::Variable}.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} i.{core::num::*}(5){(core::num) → core::int}.{core::num::+}(2000){(core::num) → core::int}))
       core::print("Projection 4 failed");
   }
 }
-static method change(self::Variable* v, core::int* newValue) → void {
-  self::EditConstraint* edit = new self::EditConstraint::•(v, #C6);
-  self::Plan* plan = self::planner.{self::Planner::extractPlanFromConstraints}(<self::EditConstraint*>[edit]){(core::List<self::Constraint*>*) →* self::Plan*};
-  for (core::int* i = 0; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+static method change(self::Variable v, core::int newValue) → void {
+  self::EditConstraint edit = new self::EditConstraint::•(v, #C6);
+  self::Plan plan = self::planner.{self::Planner::extractPlanFromConstraints}(<self::EditConstraint>[edit]){(core::List<self::Constraint>) → self::Plan};
+  for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
     v.{self::Variable::value} = newValue;
-    plan.{self::Plan::execute}(){() →* void};
+    plan.{self::Plan::execute}(){() → void};
   }
-  edit.{self::Constraint::destroyConstraint}(){() →* void};
+  edit.{self::Constraint::destroyConstraint}(){() → void};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/general/DeltaBlue.dart.weak.outline.expect b/pkg/front_end/testcases/general/DeltaBlue.dart.weak.outline.expect
index 61148bb..b97846c 100644
--- a/pkg/front_end/testcases/general/DeltaBlue.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/DeltaBlue.dart.weak.outline.expect
@@ -1,159 +1,129 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class DeltaBlue extends core::Object {
-  synthetic constructor •() → self::DeltaBlue*
+  synthetic constructor •() → self::DeltaBlue
     ;
   method run() → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Strength extends core::Object /*hasConstConstructor*/  {
-  final field core::int* value;
-  final field core::String* name;
-  const constructor •(core::int* value, core::String* name) → self::Strength*
+  final field core::int value;
+  final field core::String name;
+  const constructor •(core::int value, core::String name) → self::Strength
     : self::Strength::value = value, self::Strength::name = name, super core::Object::•()
     ;
-  method nextWeaker() → self::Strength*
+  method nextWeaker() → self::Strength
     ;
-  static method stronger(self::Strength* s1, self::Strength* s2) → core::bool*
+  static method stronger(self::Strength s1, self::Strength s2) → core::bool
     ;
-  static method weaker(self::Strength* s1, self::Strength* s2) → core::bool*
+  static method weaker(self::Strength s1, self::Strength s2) → core::bool
     ;
-  static method weakest(self::Strength* s1, self::Strength* s2) → self::Strength*
+  static method weakest(self::Strength s1, self::Strength s2) → self::Strength
     ;
-  static method strongest(self::Strength* s1, self::Strength* s2) → self::Strength*
+  static method strongest(self::Strength s1, self::Strength s2) → self::Strength
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 Constraint extends core::Object /*hasConstConstructor*/  {
-  final field self::Strength* strength;
-  const constructor •(self::Strength* strength) → self::Constraint*
+  final field self::Strength strength;
+  const constructor •(self::Strength strength) → self::Constraint
     : self::Constraint::strength = strength, super core::Object::•()
     ;
-  abstract method isSatisfied() → core::bool*;
+  abstract method isSatisfied() → core::bool;
   abstract method markUnsatisfied() → void;
   abstract method addToGraph() → void;
   abstract method removeFromGraph() → void;
-  abstract method chooseMethod(core::int* mark) → void;
-  abstract method markInputs(core::int* mark) → void;
-  abstract method inputsKnown(core::int* mark) → core::bool*;
-  abstract method output() → self::Variable*;
+  abstract method chooseMethod(core::int mark) → void;
+  abstract method markInputs(core::int mark) → void;
+  abstract method inputsKnown(core::int mark) → core::bool;
+  abstract method output() → self::Variable;
   abstract method execute() → void;
   abstract method recalculate() → void;
   method addConstraint() → void
     ;
-  method satisfy(dynamic mark) → self::Constraint*
+  method satisfy(dynamic mark) → self::Constraint?
     ;
   method destroyConstraint() → void
     ;
-  method isInput() → core::bool*
+  method isInput() → core::bool
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 UnaryConstraint extends self::Constraint {
-  final field self::Variable* myOutput;
-  field core::bool* satisfied;
-  constructor •(self::Variable* myOutput, self::Strength* strength) → self::UnaryConstraint*
+  final field self::Variable myOutput;
+  field core::bool satisfied;
+  constructor •(self::Variable myOutput, self::Strength strength) → self::UnaryConstraint
     ;
   method addToGraph() → void
     ;
-  method chooseMethod(core::int* mark) → void
+  method chooseMethod(core::int mark) → void
     ;
-  method isSatisfied() → core::bool*
+  method isSatisfied() → core::bool
     ;
-  method markInputs(core::int* mark) → void
+  method markInputs(core::int mark) → void
     ;
-  method output() → self::Variable*
+  method output() → self::Variable
     ;
   method recalculate() → void
     ;
   method markUnsatisfied() → void
     ;
-  method inputsKnown(core::int* mark) → core::bool*
+  method inputsKnown(core::int mark) → core::bool
     ;
   method removeFromGraph() → void
     ;
 }
 class StayConstraint extends self::UnaryConstraint {
-  constructor •(self::Variable* v, self::Strength* str) → self::StayConstraint*
+  constructor •(self::Variable v, self::Strength str) → self::StayConstraint
     ;
   method execute() → void
     ;
 }
 class EditConstraint extends self::UnaryConstraint {
-  constructor •(self::Variable* v, self::Strength* str) → self::EditConstraint*
+  constructor •(self::Variable v, self::Strength str) → self::EditConstraint
     ;
-  method isInput() → core::bool*
+  method isInput() → core::bool
     ;
   method execute() → void
     ;
 }
 abstract class BinaryConstraint extends self::Constraint {
-  field self::Variable* v1;
-  field self::Variable* v2;
-  field core::int* direction;
-  constructor •(self::Variable* v1, self::Variable* v2, self::Strength* strength) → self::BinaryConstraint*
+  field self::Variable v1;
+  field self::Variable v2;
+  field core::int direction;
+  constructor •(self::Variable v1, self::Variable v2, self::Strength strength) → self::BinaryConstraint
     ;
-  method chooseMethod(core::int* mark) → void
+  method chooseMethod(core::int mark) → void
     ;
   method addToGraph() → void
     ;
-  method isSatisfied() → core::bool*
+  method isSatisfied() → core::bool
     ;
-  method markInputs(core::int* mark) → void
+  method markInputs(core::int mark) → void
     ;
-  method input() → self::Variable*
+  method input() → self::Variable
     ;
-  method output() → self::Variable*
+  method output() → self::Variable
     ;
   method recalculate() → void
     ;
   method markUnsatisfied() → void
     ;
-  method inputsKnown(core::int* mark) → core::bool*
+  method inputsKnown(core::int mark) → core::bool
     ;
   method removeFromGraph() → void
     ;
 }
 class ScaleConstraint extends self::BinaryConstraint {
-  final field self::Variable* scale;
-  final field self::Variable* offset;
-  constructor •(self::Variable* src, self::Variable* scale, self::Variable* offset, self::Variable* dest, self::Strength* strength) → self::ScaleConstraint*
+  final field self::Variable scale;
+  final field self::Variable offset;
+  constructor •(self::Variable src, self::Variable scale, self::Variable offset, self::Variable dest, self::Strength strength) → self::ScaleConstraint
     ;
   method addToGraph() → void
     ;
   method removeFromGraph() → void
     ;
-  method markInputs(core::int* mark) → void
+  method markInputs(core::int mark) → void
     ;
   method execute() → void
     ;
@@ -161,106 +131,76 @@
     ;
 }
 class EqualityConstraint extends self::BinaryConstraint {
-  constructor •(self::Variable* v1, self::Variable* v2, self::Strength* strength) → self::EqualityConstraint*
+  constructor •(self::Variable v1, self::Variable v2, self::Strength strength) → self::EqualityConstraint
     ;
   method execute() → void
     ;
 }
 class Variable extends core::Object {
-  field core::List<self::Constraint*>* constraints;
-  field self::Constraint* determinedBy;
-  field core::int* mark;
-  field self::Strength* walkStrength;
-  field core::bool* stay;
-  field core::int* value;
-  final field core::String* name;
-  constructor •(core::String* name, core::int* value) → self::Variable*
+  field core::List<self::Constraint> constraints;
+  field self::Constraint? determinedBy;
+  field core::int mark;
+  field self::Strength walkStrength;
+  field core::bool stay;
+  field core::int value;
+  final field core::String name;
+  constructor •(core::String name, core::int value) → self::Variable
     ;
-  method addConstraint(self::Constraint* c) → void
+  method addConstraint(self::Constraint c) → void
     ;
-  method removeConstraint(self::Constraint* c) → void
+  method removeConstraint(self::Constraint c) → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Planner extends core::Object {
-  field core::int* currentMark;
-  synthetic constructor •() → self::Planner*
+  field core::int currentMark;
+  synthetic constructor •() → self::Planner
     ;
-  method incrementalAdd(self::Constraint* c) → void
+  method incrementalAdd(self::Constraint c) → void
     ;
-  method incrementalRemove(self::Constraint* c) → void
+  method incrementalRemove(self::Constraint c) → void
     ;
-  method newMark() → core::int*
+  method newMark() → core::int
     ;
-  method makePlan(core::List<self::Constraint*>* sources) → self::Plan*
+  method makePlan(core::List<self::Constraint> sources) → self::Plan
     ;
-  method extractPlanFromConstraints(core::List<self::Constraint*>* constraints) → self::Plan*
+  method extractPlanFromConstraints(core::List<self::Constraint> constraints) → self::Plan
     ;
-  method addPropagate(self::Constraint* c, core::int* mark) → core::bool*
+  method addPropagate(self::Constraint c, core::int mark) → core::bool
     ;
-  method removePropagateFrom(self::Variable* out) → core::List<self::Constraint*>*
+  method removePropagateFrom(self::Variable out) → core::List<self::Constraint>
     ;
-  method addConstraintsConsumingTo(self::Variable* v, core::List<self::Constraint*>* coll) → void
+  method addConstraintsConsumingTo(self::Variable v, core::List<self::Constraint> coll) → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Plan extends core::Object {
-  field core::List<self::Constraint*>* list;
-  synthetic constructor •() → self::Plan*
+  field core::List<self::Constraint> list;
+  synthetic constructor •() → self::Plan
     ;
-  method addConstraint(self::Constraint* c) → void
+  method addConstraint(self::Constraint c) → void
     ;
-  method size() → core::int*
+  method size() → core::int
     ;
   method execute() → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static const field self::Strength* REQUIRED = const self::Strength::•(0, "required");
-static const field self::Strength* STRONG_PREFERRED = const self::Strength::•(1, "strongPreferred");
-static const field self::Strength* PREFERRED = const self::Strength::•(2, "preferred");
-static const field self::Strength* STRONG_DEFAULT = const self::Strength::•(3, "strongDefault");
-static const field self::Strength* NORMAL = const self::Strength::•(4, "normal");
-static const field self::Strength* WEAK_DEFAULT = const self::Strength::•(5, "weakDefault");
-static const field self::Strength* WEAKEST = const self::Strength::•(6, "weakest");
-static const field core::int* NONE = 1;
-static const field core::int* FORWARD = 2;
-static const field core::int* BACKWARD = 0;
-static field self::Planner* planner;
+static const field self::Strength REQUIRED = const self::Strength::•(0, "required");
+static const field self::Strength STRONG_PREFERRED = const self::Strength::•(1, "strongPreferred");
+static const field self::Strength PREFERRED = const self::Strength::•(2, "preferred");
+static const field self::Strength STRONG_DEFAULT = const self::Strength::•(3, "strongDefault");
+static const field self::Strength NORMAL = const self::Strength::•(4, "normal");
+static const field self::Strength WEAK_DEFAULT = const self::Strength::•(5, "weakDefault");
+static const field self::Strength WEAKEST = const self::Strength::•(6, "weakest");
+static const field core::int NONE = 1;
+static const field core::int FORWARD = 2;
+static const field core::int BACKWARD = 0;
+late static field self::Planner planner;
 static method main() → dynamic
   ;
-static method chainTest(core::int* n) → void
+static method chainTest(core::int n) → void
   ;
-static method projectionTest(core::int* n) → void
+static method projectionTest(core::int n) → void
   ;
-static method change(self::Variable* v, core::int* newValue) → void
+static method change(self::Variable v, core::int newValue) → void
   ;
 
 
diff --git a/pkg/front_end/testcases/general/DeltaBlue.dart.weak.transformed.expect b/pkg/front_end/testcases/general/DeltaBlue.dart.weak.transformed.expect
index 2bbd69a..f39595d 100644
--- a/pkg/front_end/testcases/general/DeltaBlue.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/DeltaBlue.dart.weak.transformed.expect
@@ -1,512 +1,452 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class DeltaBlue extends core::Object {
-  synthetic constructor •() → self::DeltaBlue*
+  synthetic constructor •() → self::DeltaBlue
     : super core::Object::•()
     ;
   method run() → void {
     self::chainTest(100);
     self::projectionTest(100);
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Strength extends core::Object /*hasConstConstructor*/  {
-  final field core::int* value;
-  final field core::String* name;
-  const constructor •(core::int* value, core::String* name) → self::Strength*
+  final field core::int value;
+  final field core::String name;
+  const constructor •(core::int value, core::String name) → self::Strength
     : self::Strength::value = value, self::Strength::name = name, super core::Object::•()
     ;
-  method nextWeaker() → self::Strength*
-    return #C19.{core::List::[]}(this.{self::Strength::value}{core::int*}){(core::int*) →* self::Strength*};
-  static method stronger(self::Strength* s1, self::Strength* s2) → core::bool* {
-    return s1.{self::Strength::value}{core::int*}.{core::num::<}(s2.{self::Strength::value}{core::int*}){(core::num*) →* core::bool*};
+  method nextWeaker() → self::Strength
+    return #C19.{core::List::[]}(this.{self::Strength::value}{core::int}){(core::int) → self::Strength};
+  static method stronger(self::Strength s1, self::Strength s2) → core::bool {
+    return s1.{self::Strength::value}{core::int}.{core::num::<}(s2.{self::Strength::value}{core::int}){(core::num) → core::bool};
   }
-  static method weaker(self::Strength* s1, self::Strength* s2) → core::bool* {
-    return s1.{self::Strength::value}{core::int*}.{core::num::>}(s2.{self::Strength::value}{core::int*}){(core::num*) →* core::bool*};
+  static method weaker(self::Strength s1, self::Strength s2) → core::bool {
+    return s1.{self::Strength::value}{core::int}.{core::num::>}(s2.{self::Strength::value}{core::int}){(core::num) → core::bool};
   }
-  static method weakest(self::Strength* s1, self::Strength* s2) → self::Strength* {
-    return self::Strength::weaker(s1, s2) ?{self::Strength*} s1 : s2;
+  static method weakest(self::Strength s1, self::Strength s2) → self::Strength {
+    return self::Strength::weaker(s1, s2) ?{self::Strength} s1 : s2;
   }
-  static method strongest(self::Strength* s1, self::Strength* s2) → self::Strength* {
-    return self::Strength::stronger(s1, s2) ?{self::Strength*} s1 : s2;
+  static method strongest(self::Strength s1, self::Strength s2) → self::Strength {
+    return self::Strength::stronger(s1, s2) ?{self::Strength} s1 : s2;
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 Constraint extends core::Object /*hasConstConstructor*/  {
-  final field self::Strength* strength;
-  const constructor •(self::Strength* strength) → self::Constraint*
+  final field self::Strength strength;
+  const constructor •(self::Strength strength) → self::Constraint
     : self::Constraint::strength = strength, super core::Object::•()
     ;
-  abstract method isSatisfied() → core::bool*;
+  abstract method isSatisfied() → core::bool;
   abstract method markUnsatisfied() → void;
   abstract method addToGraph() → void;
   abstract method removeFromGraph() → void;
-  abstract method chooseMethod(core::int* mark) → void;
-  abstract method markInputs(core::int* mark) → void;
-  abstract method inputsKnown(core::int* mark) → core::bool*;
-  abstract method output() → self::Variable*;
+  abstract method chooseMethod(core::int mark) → void;
+  abstract method markInputs(core::int mark) → void;
+  abstract method inputsKnown(core::int mark) → core::bool;
+  abstract method output() → self::Variable;
   abstract method execute() → void;
   abstract method recalculate() → void;
   method addConstraint() → void {
-    this.{self::Constraint::addToGraph}(){() →* void};
-    self::planner.{self::Planner::incrementalAdd}(this){(self::Constraint*) →* void};
+    this.{self::Constraint::addToGraph}(){() → void};
+    self::planner.{self::Planner::incrementalAdd}(this){(self::Constraint) → void};
   }
-  method satisfy(dynamic mark) → self::Constraint* {
-    this.{self::Constraint::chooseMethod}(mark as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
-    if(!this.{self::Constraint::isSatisfied}(){() →* core::bool*}) {
-      if(this.{self::Constraint::strength}{self::Strength*} =={self::Strength::==}{(dynamic) →* core::bool*} #C22) {
+  method satisfy(dynamic mark) → self::Constraint? {
+    this.{self::Constraint::chooseMethod}(mark as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+    if(!this.{self::Constraint::isSatisfied}(){() → core::bool}) {
+      if(this.{self::Constraint::strength}{self::Strength} =={core::Object::==}{(core::Object) → core::bool} #C22) {
         core::print("Could not satisfy a required constraint!");
       }
       return null;
     }
-    this.{self::Constraint::markInputs}(mark as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
-    self::Variable* out = this.{self::Constraint::output}(){() →* self::Variable*};
-    self::Constraint* overridden = out.{self::Variable::determinedBy}{self::Constraint*};
+    this.{self::Constraint::markInputs}(mark as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+    self::Variable out = this.{self::Constraint::output}(){() → self::Variable};
+    self::Constraint? overridden = out.{self::Variable::determinedBy}{self::Constraint?};
     if(!(overridden == null))
-      overridden.{self::Constraint::markUnsatisfied}(){() →* void};
+      overridden{self::Constraint}.{self::Constraint::markUnsatisfied}(){() → void};
     out.{self::Variable::determinedBy} = this;
-    if(!self::planner.{self::Planner::addPropagate}(this, mark as{TypeError,ForDynamic} core::int*){(self::Constraint*, core::int*) →* core::bool*})
+    if(!self::planner.{self::Planner::addPropagate}(this, mark as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(self::Constraint, core::int) → core::bool})
       core::print("Cycle encountered");
-    out.{self::Variable::mark} = mark as{TypeError,ForDynamic} core::int*;
+    out.{self::Variable::mark} = mark as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
     return overridden;
   }
   method destroyConstraint() → void {
-    if(this.{self::Constraint::isSatisfied}(){() →* core::bool*})
-      self::planner.{self::Planner::incrementalRemove}(this){(self::Constraint*) →* void};
-    this.{self::Constraint::removeFromGraph}(){() →* void};
+    if(this.{self::Constraint::isSatisfied}(){() → core::bool})
+      self::planner.{self::Planner::incrementalRemove}(this){(self::Constraint) → void};
+    this.{self::Constraint::removeFromGraph}(){() → void};
   }
-  method isInput() → core::bool*
+  method isInput() → core::bool
     return false;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 UnaryConstraint extends self::Constraint {
-  final field self::Variable* myOutput;
-  field core::bool* satisfied = false;
-  constructor •(self::Variable* myOutput, self::Strength* strength) → self::UnaryConstraint*
+  final field self::Variable myOutput;
+  field core::bool satisfied = false;
+  constructor •(self::Variable myOutput, self::Strength strength) → self::UnaryConstraint
     : self::UnaryConstraint::myOutput = myOutput, super self::Constraint::•(strength) {
-    this.{self::Constraint::addConstraint}(){() →* void};
+    this.{self::Constraint::addConstraint}(){() → void};
   }
   method addToGraph() → void {
-    this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
+    this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
     this.{self::UnaryConstraint::satisfied} = false;
   }
-  method chooseMethod(core::int* mark) → void {
-    this.{self::UnaryConstraint::satisfied} = !(this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*});
+  method chooseMethod(core::int mark) → void {
+    this.{self::UnaryConstraint::satisfied} = !(this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::walkStrength}{self::Strength});
   }
-  method isSatisfied() → core::bool*
-    return this.{self::UnaryConstraint::satisfied}{core::bool*};
-  method markInputs(core::int* mark) → void {}
-  method output() → self::Variable*
-    return this.{self::UnaryConstraint::myOutput}{self::Variable*};
+  method isSatisfied() → core::bool
+    return this.{self::UnaryConstraint::satisfied}{core::bool};
+  method markInputs(core::int mark) → void {}
+  method output() → self::Variable
+    return this.{self::UnaryConstraint::myOutput}{self::Variable};
   method recalculate() → void {
-    this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::walkStrength} = this.{self::Constraint::strength}{self::Strength*};
-    this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::stay} = !this.{self::Constraint::isInput}(){() →* core::bool*};
-    if(this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::stay}{core::bool*})
-      this.{self::Constraint::execute}(){() →* void};
+    this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::walkStrength} = this.{self::Constraint::strength}{self::Strength};
+    this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::stay} = !this.{self::Constraint::isInput}(){() → core::bool};
+    if(this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::stay}{core::bool})
+      this.{self::Constraint::execute}(){() → void};
   }
   method markUnsatisfied() → void {
     this.{self::UnaryConstraint::satisfied} = false;
   }
-  method inputsKnown(core::int* mark) → core::bool*
+  method inputsKnown(core::int mark) → core::bool
     return true;
   method removeFromGraph() → void {
-    if(!(this.{self::UnaryConstraint::myOutput}{self::Variable*} == null))
-      this.{self::UnaryConstraint::myOutput}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
+    if(!(this.{self::UnaryConstraint::myOutput}{self::Variable} == null))
+      this.{self::UnaryConstraint::myOutput}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
     this.{self::UnaryConstraint::satisfied} = false;
   }
 }
 class StayConstraint extends self::UnaryConstraint {
-  constructor •(self::Variable* v, self::Strength* str) → self::StayConstraint*
+  constructor •(self::Variable v, self::Strength str) → self::StayConstraint
     : super self::UnaryConstraint::•(v, str)
     ;
   method execute() → void {}
 }
 class EditConstraint extends self::UnaryConstraint {
-  constructor •(self::Variable* v, self::Strength* str) → self::EditConstraint*
+  constructor •(self::Variable v, self::Strength str) → self::EditConstraint
     : super self::UnaryConstraint::•(v, str)
     ;
-  method isInput() → core::bool*
+  method isInput() → core::bool
     return true;
   method execute() → void {}
 }
 abstract class BinaryConstraint extends self::Constraint {
-  field self::Variable* v1;
-  field self::Variable* v2;
-  field core::int* direction = #C1;
-  constructor •(self::Variable* v1, self::Variable* v2, self::Strength* strength) → self::BinaryConstraint*
+  field self::Variable v1;
+  field self::Variable v2;
+  field core::int direction = #C1;
+  constructor •(self::Variable v1, self::Variable v2, self::Strength strength) → self::BinaryConstraint
     : self::BinaryConstraint::v1 = v1, self::BinaryConstraint::v2 = v2, super self::Constraint::•(strength) {
-    this.{self::Constraint::addConstraint}(){() →* void};
+    this.{self::Constraint::addConstraint}(){() → void};
   }
-  method chooseMethod(core::int* mark) → void {
-    if(this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) {
-      this.{self::BinaryConstraint::direction} = !(this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}) ?{core::int*} #C4 : #C1;
+  method chooseMethod(core::int mark) → void {
+    if(this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) {
+      this.{self::BinaryConstraint::direction} = !(this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::walkStrength}{self::Strength}) ?{core::int} #C4 : #C1;
     }
-    if(this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) {
-      this.{self::BinaryConstraint::direction} = !(this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}) ?{core::int*} #C20 : #C1;
+    if(this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) {
+      this.{self::BinaryConstraint::direction} = !(this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) && self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::walkStrength}{self::Strength}) ?{core::int} #C20 : #C1;
     }
-    if(self::Strength::weaker(this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}, this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*})) {
-      this.{self::BinaryConstraint::direction} = self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}) ?{core::int*} #C20 : #C1;
+    if(self::Strength::weaker(this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::walkStrength}{self::Strength}, this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::walkStrength}{self::Strength})) {
+      this.{self::BinaryConstraint::direction} = self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::walkStrength}{self::Strength}) ?{core::int} #C20 : #C1;
     }
     else {
-      this.{self::BinaryConstraint::direction} = self::Strength::stronger(this.{self::Constraint::strength}{self::Strength*}, this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::walkStrength}{self::Strength*}) ?{core::int*} #C4 : #C20;
+      this.{self::BinaryConstraint::direction} = self::Strength::stronger(this.{self::Constraint::strength}{self::Strength}, this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::walkStrength}{self::Strength}) ?{core::int} #C4 : #C20;
     }
   }
   method addToGraph() → void {
-    this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
-    this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
+    this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
+    this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
     this.{self::BinaryConstraint::direction} = #C1;
   }
-  method isSatisfied() → core::bool*
-    return !(this.{self::BinaryConstraint::direction}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} #C1);
-  method markInputs(core::int* mark) → void {
-    this.{self::BinaryConstraint::input}(){() →* self::Variable*}.{self::Variable::mark} = mark;
+  method isSatisfied() → core::bool
+    return !(this.{self::BinaryConstraint::direction}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1);
+  method markInputs(core::int mark) → void {
+    this.{self::BinaryConstraint::input}(){() → self::Variable}.{self::Variable::mark} = mark;
   }
-  method input() → self::Variable*
-    return this.{self::BinaryConstraint::direction}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} #C4 ?{self::Variable*} this.{self::BinaryConstraint::v1}{self::Variable*} : this.{self::BinaryConstraint::v2}{self::Variable*};
-  method output() → self::Variable*
-    return this.{self::BinaryConstraint::direction}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} #C4 ?{self::Variable*} this.{self::BinaryConstraint::v2}{self::Variable*} : this.{self::BinaryConstraint::v1}{self::Variable*};
+  method input() → self::Variable
+    return this.{self::BinaryConstraint::direction}{core::int} =={core::num::==}{(core::Object) → core::bool} #C4 ?{self::Variable} this.{self::BinaryConstraint::v1}{self::Variable} : this.{self::BinaryConstraint::v2}{self::Variable};
+  method output() → self::Variable
+    return this.{self::BinaryConstraint::direction}{core::int} =={core::num::==}{(core::Object) → core::bool} #C4 ?{self::Variable} this.{self::BinaryConstraint::v2}{self::Variable} : this.{self::BinaryConstraint::v1}{self::Variable};
   method recalculate() → void {
-    self::Variable* ihn = this.{self::BinaryConstraint::input}(){() →* self::Variable*};
-    self::Variable* out = this.{self::BinaryConstraint::output}(){() →* self::Variable*};
-    out.{self::Variable::walkStrength} = self::Strength::weakest(this.{self::Constraint::strength}{self::Strength*}, ihn.{self::Variable::walkStrength}{self::Strength*});
-    out.{self::Variable::stay} = ihn.{self::Variable::stay}{core::bool*};
-    if(out.{self::Variable::stay}{core::bool*})
-      this.{self::Constraint::execute}(){() →* void};
+    self::Variable ihn = this.{self::BinaryConstraint::input}(){() → self::Variable};
+    self::Variable out = this.{self::BinaryConstraint::output}(){() → self::Variable};
+    out.{self::Variable::walkStrength} = self::Strength::weakest(this.{self::Constraint::strength}{self::Strength}, ihn.{self::Variable::walkStrength}{self::Strength});
+    out.{self::Variable::stay} = ihn.{self::Variable::stay}{core::bool};
+    if(out.{self::Variable::stay}{core::bool})
+      this.{self::Constraint::execute}(){() → void};
   }
   method markUnsatisfied() → void {
     this.{self::BinaryConstraint::direction} = #C1;
   }
-  method inputsKnown(core::int* mark) → core::bool* {
-    self::Variable* i = this.{self::BinaryConstraint::input}(){() →* self::Variable*};
-    return i.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark || i.{self::Variable::stay}{core::bool*} || i.{self::Variable::determinedBy}{self::Constraint*} == null;
+  method inputsKnown(core::int mark) → core::bool {
+    self::Variable i = this.{self::BinaryConstraint::input}(){() → self::Variable};
+    return i.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark || i.{self::Variable::stay}{core::bool} || i.{self::Variable::determinedBy}{self::Constraint?} == null;
   }
   method removeFromGraph() → void {
-    if(!(this.{self::BinaryConstraint::v1}{self::Variable*} == null))
-      this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
-    if(!(this.{self::BinaryConstraint::v2}{self::Variable*} == null))
-      this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
+    if(!(this.{self::BinaryConstraint::v1}{self::Variable} == null))
+      this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
+    if(!(this.{self::BinaryConstraint::v2}{self::Variable} == null))
+      this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
     this.{self::BinaryConstraint::direction} = #C1;
   }
 }
 class ScaleConstraint extends self::BinaryConstraint {
-  final field self::Variable* scale;
-  final field self::Variable* offset;
-  constructor •(self::Variable* src, self::Variable* scale, self::Variable* offset, self::Variable* dest, self::Strength* strength) → self::ScaleConstraint*
+  final field self::Variable scale;
+  final field self::Variable offset;
+  constructor •(self::Variable src, self::Variable scale, self::Variable offset, self::Variable dest, self::Strength strength) → self::ScaleConstraint
     : self::ScaleConstraint::scale = scale, self::ScaleConstraint::offset = offset, super self::BinaryConstraint::•(src, dest, strength)
     ;
   method addToGraph() → void {
     super.{self::BinaryConstraint::addToGraph}();
-    this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
-    this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::addConstraint}(this){(self::Constraint*) →* void};
+    this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
+    this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::addConstraint}(this){(self::Constraint) → void};
   }
   method removeFromGraph() → void {
     super.{self::BinaryConstraint::removeFromGraph}();
-    if(!(this.{self::ScaleConstraint::scale}{self::Variable*} == null))
-      this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
-    if(!(this.{self::ScaleConstraint::offset}{self::Variable*} == null))
-      this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::removeConstraint}(this){(self::Constraint*) →* void};
+    if(!(this.{self::ScaleConstraint::scale}{self::Variable} == null))
+      this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
+    if(!(this.{self::ScaleConstraint::offset}{self::Variable} == null))
+      this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::removeConstraint}(this){(self::Constraint) → void};
   }
-  method markInputs(core::int* mark) → void {
+  method markInputs(core::int mark) → void {
     super.{self::BinaryConstraint::markInputs}(mark);
-    this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::mark} = this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::mark} = mark;
+    this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::mark} = this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::mark} = mark;
   }
   method execute() → void {
-    if(this.{self::BinaryConstraint::direction}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} #C4) {
-      this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::value} = this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::value}{core::int*}.{core::num::*}(this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::value}{core::int*}){(core::num*) →* core::int*}.{core::num::+}(this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::value}{core::int*}){(core::num*) →* core::int*};
+    if(this.{self::BinaryConstraint::direction}{core::int} =={core::num::==}{(core::Object) → core::bool} #C4) {
+      this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::value} = this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::value}{core::int}.{core::num::*}(this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::value}{core::int}){(core::num) → core::int}.{core::num::+}(this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::value}{core::int}){(core::num) → core::int};
     }
     else {
-      this.{self::BinaryConstraint::v1}{self::Variable*}.{self::Variable::value} = this.{self::BinaryConstraint::v2}{self::Variable*}.{self::Variable::value}{core::int*}.{core::num::-}(this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::value}{core::int*}){(core::num*) →* core::int*}.{core::num::~/}(this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::value}{core::int*}){(core::num*) →* core::int*};
+      this.{self::BinaryConstraint::v1}{self::Variable}.{self::Variable::value} = this.{self::BinaryConstraint::v2}{self::Variable}.{self::Variable::value}{core::int}.{core::num::-}(this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::value}{core::int}){(core::num) → core::int}.{core::num::~/}(this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::value}{core::int}){(core::num) → core::int};
     }
   }
   method recalculate() → void {
-    self::Variable* ihn = this.{self::BinaryConstraint::input}(){() →* self::Variable*};
-    self::Variable* out = this.{self::BinaryConstraint::output}(){() →* self::Variable*};
-    out.{self::Variable::walkStrength} = self::Strength::weakest(this.{self::Constraint::strength}{self::Strength*}, ihn.{self::Variable::walkStrength}{self::Strength*});
-    out.{self::Variable::stay} = ihn.{self::Variable::stay}{core::bool*} && this.{self::ScaleConstraint::scale}{self::Variable*}.{self::Variable::stay}{core::bool*} && this.{self::ScaleConstraint::offset}{self::Variable*}.{self::Variable::stay}{core::bool*};
-    if(out.{self::Variable::stay}{core::bool*})
-      this.{self::ScaleConstraint::execute}(){() →* void};
+    self::Variable ihn = this.{self::BinaryConstraint::input}(){() → self::Variable};
+    self::Variable out = this.{self::BinaryConstraint::output}(){() → self::Variable};
+    out.{self::Variable::walkStrength} = self::Strength::weakest(this.{self::Constraint::strength}{self::Strength}, ihn.{self::Variable::walkStrength}{self::Strength});
+    out.{self::Variable::stay} = ihn.{self::Variable::stay}{core::bool} && this.{self::ScaleConstraint::scale}{self::Variable}.{self::Variable::stay}{core::bool} && this.{self::ScaleConstraint::offset}{self::Variable}.{self::Variable::stay}{core::bool};
+    if(out.{self::Variable::stay}{core::bool})
+      this.{self::ScaleConstraint::execute}(){() → void};
   }
 }
 class EqualityConstraint extends self::BinaryConstraint {
-  constructor •(self::Variable* v1, self::Variable* v2, self::Strength* strength) → self::EqualityConstraint*
+  constructor •(self::Variable v1, self::Variable v2, self::Strength strength) → self::EqualityConstraint
     : super self::BinaryConstraint::•(v1, v2, strength)
     ;
   method execute() → void {
-    this.{self::BinaryConstraint::output}(){() →* self::Variable*}.{self::Variable::value} = this.{self::BinaryConstraint::input}(){() →* self::Variable*}.{self::Variable::value}{core::int*};
+    this.{self::BinaryConstraint::output}(){() → self::Variable}.{self::Variable::value} = this.{self::BinaryConstraint::input}(){() → self::Variable}.{self::Variable::value}{core::int};
   }
 }
 class Variable extends core::Object {
-  field core::List<self::Constraint*>* constraints = core::_GrowableList::•<self::Constraint*>(0);
-  field self::Constraint* determinedBy = null;
-  field core::int* mark = 0;
-  field self::Strength* walkStrength = #C18;
-  field core::bool* stay = true;
-  field core::int* value;
-  final field core::String* name;
-  constructor •(core::String* name, core::int* value) → self::Variable*
+  field core::List<self::Constraint> constraints = core::_GrowableList::•<self::Constraint>(0);
+  field self::Constraint? determinedBy = null;
+  field core::int mark = 0;
+  field self::Strength walkStrength = #C18;
+  field core::bool stay = true;
+  field core::int value;
+  final field core::String name;
+  constructor •(core::String name, core::int value) → self::Variable
     : self::Variable::name = name, self::Variable::value = value, super core::Object::•()
     ;
-  method addConstraint(self::Constraint* c) → void {
-    this.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::add}(c){(self::Constraint*) →* void};
+  method addConstraint(self::Constraint c) → void {
+    this.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::add}(c){(self::Constraint) → void};
   }
-  method removeConstraint(self::Constraint* c) → void {
-    this.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::remove}(c){(core::Object*) →* core::bool*};
-    if(this.{self::Variable::determinedBy}{self::Constraint*} =={self::Constraint::==}{(dynamic) →* core::bool*} c)
+  method removeConstraint(self::Constraint c) → void {
+    this.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::remove}(c){(core::Object?) → core::bool};
+    if(this.{self::Variable::determinedBy}{self::Constraint?} =={core::Object::==}{(core::Object) → core::bool} c)
       this.{self::Variable::determinedBy} = null;
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Planner extends core::Object {
-  field core::int* currentMark = 0;
-  synthetic constructor •() → self::Planner*
+  field core::int currentMark = 0;
+  synthetic constructor •() → self::Planner
     : super core::Object::•()
     ;
-  method incrementalAdd(self::Constraint* c) → void {
-    core::int* mark = this.{self::Planner::newMark}(){() →* core::int*};
-    for (self::Constraint* overridden = c.{self::Constraint::satisfy}(mark){(dynamic) →* self::Constraint*}; !(overridden == null); overridden = overridden.{self::Constraint::satisfy}(mark){(dynamic) →* self::Constraint*})
+  method incrementalAdd(self::Constraint c) → void {
+    core::int mark = this.{self::Planner::newMark}(){() → core::int};
+    for (self::Constraint? overridden = c.{self::Constraint::satisfy}(mark){(dynamic) → self::Constraint?}; !(overridden == null); overridden = overridden{self::Constraint}.{self::Constraint::satisfy}(mark){(dynamic) → self::Constraint?})
       ;
   }
-  method incrementalRemove(self::Constraint* c) → void {
-    self::Variable* out = c.{self::Constraint::output}(){() →* self::Variable*};
-    c.{self::Constraint::markUnsatisfied}(){() →* void};
-    c.{self::Constraint::removeFromGraph}(){() →* void};
-    core::List<self::Constraint*>* unsatisfied = this.{self::Planner::removePropagateFrom}(out){(self::Variable*) →* core::List<self::Constraint*>*};
-    self::Strength* strength = #C22;
+  method incrementalRemove(self::Constraint c) → void {
+    self::Variable out = c.{self::Constraint::output}(){() → self::Variable};
+    c.{self::Constraint::markUnsatisfied}(){() → void};
+    c.{self::Constraint::removeFromGraph}(){() → void};
+    core::List<self::Constraint> unsatisfied = this.{self::Planner::removePropagateFrom}(out){(self::Variable) → core::List<self::Constraint>};
+    self::Strength strength = #C22;
     do {
-      for (core::int* i = 0; i.{core::num::<}(unsatisfied.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-        self::Constraint* u = unsatisfied.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-        if(u.{self::Constraint::strength}{self::Strength*} =={self::Strength::==}{(dynamic) →* core::bool*} strength)
-          this.{self::Planner::incrementalAdd}(u){(self::Constraint*) →* void};
+      for (core::int i = 0; i.{core::num::<}(unsatisfied.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+        self::Constraint u = unsatisfied.{core::List::[]}(i){(core::int) → self::Constraint};
+        if(u.{self::Constraint::strength}{self::Strength} =={core::Object::==}{(core::Object) → core::bool} strength)
+          this.{self::Planner::incrementalAdd}(u){(self::Constraint) → void};
       }
-      strength = strength.{self::Strength::nextWeaker}(){() →* self::Strength*};
+      strength = strength.{self::Strength::nextWeaker}(){() → self::Strength};
     }
-    while (!(strength =={self::Strength::==}{(dynamic) →* core::bool*} #C18))
+    while (!(strength =={core::Object::==}{(core::Object) → core::bool} #C18))
   }
-  method newMark() → core::int*
-    return this.{self::Planner::currentMark} = this.{self::Planner::currentMark}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
-  method makePlan(core::List<self::Constraint*>* sources) → self::Plan* {
-    core::int* mark = this.{self::Planner::newMark}(){() →* core::int*};
-    self::Plan* plan = new self::Plan::•();
-    core::List<self::Constraint*>* todo = sources;
-    while (todo.{core::List::length}{core::int*}.{core::num::>}(0){(core::num*) →* core::bool*}) {
-      self::Constraint* c = todo.{core::List::removeLast}(){() →* self::Constraint*};
-      if(!(c.{self::Constraint::output}(){() →* self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) && c.{self::Constraint::inputsKnown}(mark){(core::int*) →* core::bool*}) {
-        plan.{self::Plan::addConstraint}(c){(self::Constraint*) →* void};
-        c.{self::Constraint::output}(){() →* self::Variable*}.{self::Variable::mark} = mark;
-        this.{self::Planner::addConstraintsConsumingTo}(c.{self::Constraint::output}(){() →* self::Variable*}, todo){(self::Variable*, core::List<self::Constraint*>*) →* void};
+  method newMark() → core::int
+    return this.{self::Planner::currentMark} = this.{self::Planner::currentMark}{core::int}.{core::num::+}(1){(core::num) → core::int};
+  method makePlan(core::List<self::Constraint> sources) → self::Plan {
+    core::int mark = this.{self::Planner::newMark}(){() → core::int};
+    self::Plan plan = new self::Plan::•();
+    core::List<self::Constraint> todo = sources;
+    while (todo.{core::List::length}{core::int}.{core::num::>}(0){(core::num) → core::bool}) {
+      self::Constraint c = todo.{core::List::removeLast}(){() → self::Constraint};
+      if(!(c.{self::Constraint::output}(){() → self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) && c.{self::Constraint::inputsKnown}(mark){(core::int) → core::bool}) {
+        plan.{self::Plan::addConstraint}(c){(self::Constraint) → void};
+        c.{self::Constraint::output}(){() → self::Variable}.{self::Variable::mark} = mark;
+        this.{self::Planner::addConstraintsConsumingTo}(c.{self::Constraint::output}(){() → self::Variable}, todo){(self::Variable, core::List<self::Constraint>) → void};
       }
     }
     return plan;
   }
-  method extractPlanFromConstraints(core::List<self::Constraint*>* constraints) → self::Plan* {
-    core::List<self::Constraint*>* sources = core::_GrowableList::•<self::Constraint*>(0);
-    for (core::int* i = 0; i.{core::num::<}(constraints.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-      self::Constraint* c = constraints.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-      if(c.{self::Constraint::isInput}(){() →* core::bool*} && c.{self::Constraint::isSatisfied}(){() →* core::bool*})
-        sources.{core::List::add}(c){(self::Constraint*) →* void};
+  method extractPlanFromConstraints(core::List<self::Constraint> constraints) → self::Plan {
+    core::List<self::Constraint> sources = core::_GrowableList::•<self::Constraint>(0);
+    for (core::int i = 0; i.{core::num::<}(constraints.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      self::Constraint c = constraints.{core::List::[]}(i){(core::int) → self::Constraint};
+      if(c.{self::Constraint::isInput}(){() → core::bool} && c.{self::Constraint::isSatisfied}(){() → core::bool})
+        sources.{core::List::add}(c){(self::Constraint) → void};
     }
-    return this.{self::Planner::makePlan}(sources){(core::List<self::Constraint*>*) →* self::Plan*};
+    return this.{self::Planner::makePlan}(sources){(core::List<self::Constraint>) → self::Plan};
   }
-  method addPropagate(self::Constraint* c, core::int* mark) → core::bool* {
-    core::List<self::Constraint*>* todo = core::_GrowableList::_literal1<self::Constraint*>(c);
-    while (todo.{core::List::length}{core::int*}.{core::num::>}(0){(core::num*) →* core::bool*}) {
-      self::Constraint* d = todo.{core::List::removeLast}(){() →* self::Constraint*};
-      if(d.{self::Constraint::output}(){() →* self::Variable*}.{self::Variable::mark}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} mark) {
-        this.{self::Planner::incrementalRemove}(c){(self::Constraint*) →* void};
+  method addPropagate(self::Constraint c, core::int mark) → core::bool {
+    core::List<self::Constraint> todo = core::_GrowableList::_literal1<self::Constraint>(c);
+    while (todo.{core::List::length}{core::int}.{core::num::>}(0){(core::num) → core::bool}) {
+      self::Constraint d = todo.{core::List::removeLast}(){() → self::Constraint};
+      if(d.{self::Constraint::output}(){() → self::Variable}.{self::Variable::mark}{core::int} =={core::num::==}{(core::Object) → core::bool} mark) {
+        this.{self::Planner::incrementalRemove}(c){(self::Constraint) → void};
         return false;
       }
-      d.{self::Constraint::recalculate}(){() →* void};
-      this.{self::Planner::addConstraintsConsumingTo}(d.{self::Constraint::output}(){() →* self::Variable*}, todo){(self::Variable*, core::List<self::Constraint*>*) →* void};
+      d.{self::Constraint::recalculate}(){() → void};
+      this.{self::Planner::addConstraintsConsumingTo}(d.{self::Constraint::output}(){() → self::Variable}, todo){(self::Variable, core::List<self::Constraint>) → void};
     }
     return true;
   }
-  method removePropagateFrom(self::Variable* out) → core::List<self::Constraint*>* {
+  method removePropagateFrom(self::Variable out) → core::List<self::Constraint> {
     out.{self::Variable::determinedBy} = null;
     out.{self::Variable::walkStrength} = #C18;
     out.{self::Variable::stay} = true;
-    core::List<self::Constraint*>* unsatisfied = core::_GrowableList::•<self::Constraint*>(0);
-    core::List<self::Variable*>* todo = core::_GrowableList::_literal1<self::Variable*>(out);
-    while (todo.{core::List::length}{core::int*}.{core::num::>}(0){(core::num*) →* core::bool*}) {
-      self::Variable* v = todo.{core::List::removeLast}(){() →* self::Variable*};
-      for (core::int* i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-        self::Constraint* c = v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-        if(!c.{self::Constraint::isSatisfied}(){() →* core::bool*})
-          unsatisfied.{core::List::add}(c){(self::Constraint*) →* void};
+    core::List<self::Constraint> unsatisfied = core::_GrowableList::•<self::Constraint>(0);
+    core::List<self::Variable> todo = core::_GrowableList::_literal1<self::Variable>(out);
+    while (todo.{core::List::length}{core::int}.{core::num::>}(0){(core::num) → core::bool}) {
+      self::Variable v = todo.{core::List::removeLast}(){() → self::Variable};
+      for (core::int i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+        self::Constraint c = v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::[]}(i){(core::int) → self::Constraint};
+        if(!c.{self::Constraint::isSatisfied}(){() → core::bool})
+          unsatisfied.{core::List::add}(c){(self::Constraint) → void};
       }
-      self::Constraint* determining = v.{self::Variable::determinedBy}{self::Constraint*};
-      for (core::int* i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-        self::Constraint* next = v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-        if(!(next =={self::Constraint::==}{(dynamic) →* core::bool*} determining) && next.{self::Constraint::isSatisfied}(){() →* core::bool*}) {
-          next.{self::Constraint::recalculate}(){() →* void};
-          todo.{core::List::add}(next.{self::Constraint::output}(){() →* self::Variable*}){(self::Variable*) →* void};
+      self::Constraint? determining = v.{self::Variable::determinedBy}{self::Constraint?};
+      for (core::int i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+        self::Constraint next = v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::[]}(i){(core::int) → self::Constraint};
+        if(!(next =={core::Object::==}{(core::Object) → core::bool} determining) && next.{self::Constraint::isSatisfied}(){() → core::bool}) {
+          next.{self::Constraint::recalculate}(){() → void};
+          todo.{core::List::add}(next.{self::Constraint::output}(){() → self::Variable}){(self::Variable) → void};
         }
       }
     }
     return unsatisfied;
   }
-  method addConstraintsConsumingTo(self::Variable* v, core::List<self::Constraint*>* coll) → void {
-    self::Constraint* determining = v.{self::Variable::determinedBy}{self::Constraint*};
-    for (core::int* i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-      self::Constraint* c = v.{self::Variable::constraints}{core::List<self::Constraint*>*}.{core::List::[]}(i){(core::int*) →* self::Constraint*};
-      if(!(c =={self::Constraint::==}{(dynamic) →* core::bool*} determining) && c.{self::Constraint::isSatisfied}(){() →* core::bool*})
-        coll.{core::List::add}(c){(self::Constraint*) →* void};
+  method addConstraintsConsumingTo(self::Variable v, core::List<self::Constraint> coll) → void {
+    self::Constraint? determining = v.{self::Variable::determinedBy}{self::Constraint?};
+    for (core::int i = 0; i.{core::num::<}(v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      self::Constraint c = v.{self::Variable::constraints}{core::List<self::Constraint>}.{core::List::[]}(i){(core::int) → self::Constraint};
+      if(!(c =={core::Object::==}{(core::Object) → core::bool} determining) && c.{self::Constraint::isSatisfied}(){() → core::bool})
+        coll.{core::List::add}(c){(self::Constraint) → void};
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Plan extends core::Object {
-  field core::List<self::Constraint*>* list = core::_GrowableList::•<self::Constraint*>(0);
-  synthetic constructor •() → self::Plan*
+  field core::List<self::Constraint> list = core::_GrowableList::•<self::Constraint>(0);
+  synthetic constructor •() → self::Plan
     : super core::Object::•()
     ;
-  method addConstraint(self::Constraint* c) → void {
-    this.{self::Plan::list}{core::List<self::Constraint*>*}.{core::List::add}(c){(self::Constraint*) →* void};
+  method addConstraint(self::Constraint c) → void {
+    this.{self::Plan::list}{core::List<self::Constraint>}.{core::List::add}(c){(self::Constraint) → void};
   }
-  method size() → core::int*
-    return this.{self::Plan::list}{core::List<self::Constraint*>*}.{core::List::length}{core::int*};
+  method size() → core::int
+    return this.{self::Plan::list}{core::List<self::Constraint>}.{core::List::length}{core::int};
   method execute() → void {
-    for (core::int* i = 0; i.{core::num::<}(this.{self::Plan::list}{core::List<self::Constraint*>*}.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-      this.{self::Plan::list}{core::List<self::Constraint*>*}.{core::List::[]}(i){(core::int*) →* self::Constraint*}.{self::Constraint::execute}(){() →* void};
+    for (core::int i = 0; i.{core::num::<}(this.{self::Plan::list}{core::List<self::Constraint>}.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      this.{self::Plan::list}{core::List<self::Constraint>}.{core::List::[]}(i){(core::int) → self::Constraint}.{self::Constraint::execute}(){() → void};
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static const field self::Strength* REQUIRED = #C22;
-static const field self::Strength* STRONG_PREFERRED = #C3;
-static const field self::Strength* PREFERRED = #C6;
-static const field self::Strength* STRONG_DEFAULT = #C9;
-static const field self::Strength* NORMAL = #C12;
-static const field self::Strength* WEAK_DEFAULT = #C15;
-static const field self::Strength* WEAKEST = #C18;
-static const field core::int* NONE = #C1;
-static const field core::int* FORWARD = #C4;
-static const field core::int* BACKWARD = #C20;
-static field self::Planner* planner;
+static const field self::Strength REQUIRED = #C22;
+static const field self::Strength STRONG_PREFERRED = #C3;
+static const field self::Strength PREFERRED = #C6;
+static const field self::Strength STRONG_DEFAULT = #C9;
+static const field self::Strength NORMAL = #C12;
+static const field self::Strength WEAK_DEFAULT = #C15;
+static const field self::Strength WEAKEST = #C18;
+static const field core::int NONE = #C1;
+static const field core::int FORWARD = #C4;
+static const field core::int BACKWARD = #C20;
+late static field self::Planner planner;
 static method main() → dynamic {
-  new self::DeltaBlue::•().{self::DeltaBlue::run}(){() →* void};
+  new self::DeltaBlue::•().{self::DeltaBlue::run}(){() → void};
 }
-static method chainTest(core::int* n) → void {
+static method chainTest(core::int n) → void {
   self::planner = new self::Planner::•();
-  self::Variable* prev = null;
-  self::Variable* first = null;
-  self::Variable* last = null;
-  for (core::int* i = 0; i.{core::num::<=}(n){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    self::Variable* v = new self::Variable::•("v${i}", 0);
+  self::Variable? prev = null;
+  self::Variable? first = null;
+  self::Variable? last = null;
+  for (core::int i = 0; i.{core::num::<=}(n){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    self::Variable v = new self::Variable::•("v${i}", 0);
     if(!(prev == null))
-      new self::EqualityConstraint::•(prev, v, #C22);
-    if(i =={core::num::==}{(core::Object*) →* core::bool*} 0)
+      new self::EqualityConstraint::•(prev{self::Variable}, v, #C22);
+    if(i =={core::num::==}{(core::Object) → core::bool} 0)
       first = v;
-    if(i =={core::num::==}{(core::Object*) →* core::bool*} n)
+    if(i =={core::num::==}{(core::Object) → core::bool} n)
       last = v;
     prev = v;
   }
-  new self::StayConstraint::•(last, #C9);
-  self::EditConstraint* edit = new self::EditConstraint::•(first, #C6);
-  self::Plan* plan = self::planner.{self::Planner::extractPlanFromConstraints}(core::_GrowableList::_literal1<self::Constraint*>(edit)){(core::List<self::Constraint*>*) →* self::Plan*};
-  for (core::int* i = 0; i.{core::num::<}(100){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    first.{self::Variable::value} = i;
-    plan.{self::Plan::execute}(){() →* void};
-    if(!(last.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} i)) {
+  new self::StayConstraint::•(last!, #C9);
+  self::EditConstraint edit = new self::EditConstraint::•(first!, #C6);
+  self::Plan plan = self::planner.{self::Planner::extractPlanFromConstraints}(core::_GrowableList::_literal1<self::Constraint>(edit)){(core::List<self::Constraint>) → self::Plan};
+  for (core::int i = 0; i.{core::num::<}(100){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    first{self::Variable}.{self::Variable::value} = i;
+    plan.{self::Plan::execute}(){() → void};
+    if(!(last{self::Variable}.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} i)) {
       core::print("Chain test failed:");
-      core::print("Expected last value to be ${i} but it was ${last.{self::Variable::value}{core::int*}}.");
+      core::print("Expected last value to be ${i} but it was ${last{self::Variable}.{self::Variable::value}{core::int}}.");
     }
   }
 }
-static method projectionTest(core::int* n) → void {
+static method projectionTest(core::int n) → void {
   self::planner = new self::Planner::•();
-  self::Variable* scale = new self::Variable::•("scale", 10);
-  self::Variable* offset = new self::Variable::•("offset", 1000);
-  self::Variable* src = null;
-  self::Variable* dst = null;
-  core::List<self::Variable*>* dests = core::_GrowableList::•<self::Variable*>(0);
-  for (core::int* i = 0; i.{core::num::<}(n){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+  self::Variable scale = new self::Variable::•("scale", 10);
+  self::Variable offset = new self::Variable::•("offset", 1000);
+  self::Variable? src = null;
+  self::Variable? dst = null;
+  core::List<self::Variable> dests = core::_GrowableList::•<self::Variable>(0);
+  for (core::int i = 0; i.{core::num::<}(n){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
     src = new self::Variable::•("src", i);
     dst = new self::Variable::•("dst", i);
-    dests.{core::List::add}(dst){(self::Variable*) →* void};
-    new self::StayConstraint::•(src, #C12);
-    new self::ScaleConstraint::•(src, scale, offset, dst, #C22);
+    dests.{core::List::add}(dst{self::Variable}){(self::Variable) → void};
+    new self::StayConstraint::•(src{self::Variable}, #C12);
+    new self::ScaleConstraint::•(src{self::Variable}, scale, offset, dst{self::Variable}, #C22);
   }
-  self::change(src, 17);
-  if(!(dst.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 1170))
+  self::change(src!, 17);
+  if(!(dst!.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} 1170))
     core::print("Projection 1 failed");
-  self::change(dst, 1050);
-  if(!(src.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} 5))
+  self::change(dst{self::Variable}, 1050);
+  if(!(src{self::Variable}.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} 5))
     core::print("Projection 2 failed");
   self::change(scale, 5);
-  for (core::int* i = 0; i.{core::num::<}(n.{core::num::-}(1){(core::num*) →* core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    if(!(dests.{core::List::[]}(i){(core::int*) →* self::Variable*}.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} i.{core::num::*}(5){(core::num*) →* core::int*}.{core::num::+}(1000){(core::num*) →* core::int*}))
+  for (core::int i = 0; i.{core::num::<}(n.{core::num::-}(1){(core::num) → core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    if(!(dests.{core::List::[]}(i){(core::int) → self::Variable}.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} i.{core::num::*}(5){(core::num) → core::int}.{core::num::+}(1000){(core::num) → core::int}))
       core::print("Projection 3 failed");
   }
   self::change(offset, 2000);
-  for (core::int* i = 0; i.{core::num::<}(n.{core::num::-}(1){(core::num*) →* core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    if(!(dests.{core::List::[]}(i){(core::int*) →* self::Variable*}.{self::Variable::value}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} i.{core::num::*}(5){(core::num*) →* core::int*}.{core::num::+}(2000){(core::num*) →* core::int*}))
+  for (core::int i = 0; i.{core::num::<}(n.{core::num::-}(1){(core::num) → core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    if(!(dests.{core::List::[]}(i){(core::int) → self::Variable}.{self::Variable::value}{core::int} =={core::num::==}{(core::Object) → core::bool} i.{core::num::*}(5){(core::num) → core::int}.{core::num::+}(2000){(core::num) → core::int}))
       core::print("Projection 4 failed");
   }
 }
-static method change(self::Variable* v, core::int* newValue) → void {
-  self::EditConstraint* edit = new self::EditConstraint::•(v, #C6);
-  self::Plan* plan = self::planner.{self::Planner::extractPlanFromConstraints}(core::_GrowableList::_literal1<self::EditConstraint*>(edit)){(core::List<self::Constraint*>*) →* self::Plan*};
-  for (core::int* i = 0; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+static method change(self::Variable v, core::int newValue) → void {
+  self::EditConstraint edit = new self::EditConstraint::•(v, #C6);
+  self::Plan plan = self::planner.{self::Planner::extractPlanFromConstraints}(core::_GrowableList::_literal1<self::EditConstraint>(edit)){(core::List<self::Constraint>) → self::Plan};
+  for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
     v.{self::Variable::value} = newValue;
-    plan.{self::Plan::execute}(){() →* void};
+    plan.{self::Plan::execute}(){() → void};
   }
-  edit.{self::Constraint::destroyConstraint}(){() →* void};
+  edit.{self::Constraint::destroyConstraint}(){() → void};
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/general/abstract_members.dart b/pkg/front_end/testcases/general/abstract_members.dart
index 656f193..127c6fc 100644
--- a/pkg/front_end/testcases/general/abstract_members.dart
+++ b/pkg/front_end/testcases/general/abstract_members.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// @dart=2.9
-
 class Interface1 {
   void interfaceMethod1() {}
 }
diff --git a/pkg/front_end/testcases/general/abstract_members.dart.textual_outline.expect b/pkg/front_end/testcases/general/abstract_members.dart.textual_outline.expect
index 1b76287..866053c 100644
--- a/pkg/front_end/testcases/general/abstract_members.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/abstract_members.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Interface1 {
   void interfaceMethod1() {}
 }
diff --git a/pkg/front_end/testcases/general/abstract_members.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/abstract_members.dart.textual_outline_modelled.expect
index 4f03476..77e8755 100644
--- a/pkg/front_end/testcases/general/abstract_members.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/abstract_members.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class A implements Interface1, Interface2, Interface3 {
   aMethod() {}
   abstractMethod();
diff --git a/pkg/front_end/testcases/general/abstract_members.dart.weak.expect b/pkg/front_end/testcases/general/abstract_members.dart.weak.expect
index d874a11..c71dba4 100644
--- a/pkg/front_end/testcases/general/abstract_members.dart.weak.expect
+++ b/pkg/front_end/testcases/general/abstract_members.dart.weak.expect
@@ -1,38 +1,38 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/abstract_members.dart:21:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:19:16: Error: Can't inherit members that conflict with each other.
 // abstract class A implements Interface1, Interface2, Interface3 {
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:29:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:27:16: Error: Can't inherit members that conflict with each other.
 // abstract class B extends A {
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:35:7: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:33:7: Error: Can't inherit members that conflict with each other.
 // class MyClass extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:35:7: Error: The non-abstract class 'MyClass' is missing implementations for these members:
+// pkg/front_end/testcases/general/abstract_members.dart:33:7: Error: The non-abstract class 'MyClass' is missing implementations for these members:
 //  - A.abstractMethod
 //  - A.property1=
 //  - A.property3=
@@ -48,59 +48,59 @@
 //
 // class MyClass extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:23:3: Context: 'A.abstractMethod' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:21:3: Context: 'A.abstractMethod' is defined here.
 //   abstractMethod();
 //   ^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:24:12: Context: 'A.property1=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:22:12: Context: 'A.property1=' is defined here.
 //   void set property1(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:26:12: Context: 'A.property3=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:24:12: Context: 'A.property3=' is defined here.
 //   void set property3(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: 'Interface1.interfaceMethod1' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: 'Interface1.interfaceMethod1' is defined here.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: 'Interface2.interfaceMethod1' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: 'Interface2.interfaceMethod1' is defined here.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:12:8: Context: 'Interface2.interfaceMethod2' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:10:8: Context: 'Interface2.interfaceMethod2' is defined here.
 //   void interfaceMethod2() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:18:8: Context: 'Interface3.interfaceMethod3' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:16:8: Context: 'Interface3.interfaceMethod3' is defined here.
 //   void interfaceMethod3() {}
 //        ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:44:7: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:42:7: Error: Can't inherit members that conflict with each other.
 // class MyMock1 extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:50:7: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:48:7: Error: Can't inherit members that conflict with each other.
 // class MyMock2 extends MyMock1 {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:56:7: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:54:7: Error: Can't inherit members that conflict with each other.
 // class MyMock3 extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:56:7: Error: The non-abstract class 'MyMock3' is missing implementations for these members:
+// pkg/front_end/testcases/general/abstract_members.dart:54:7: Error: The non-abstract class 'MyMock3' is missing implementations for these members:
 //  - A.abstractMethod
 //  - A.property1=
 //  - A.property2=
@@ -117,125 +117,110 @@
 //
 // class MyMock3 extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:23:3: Context: 'A.abstractMethod' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:21:3: Context: 'A.abstractMethod' is defined here.
 //   abstractMethod();
 //   ^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:24:12: Context: 'A.property1=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:22:12: Context: 'A.property1=' is defined here.
 //   void set property1(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:25:12: Context: 'A.property2=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:23:12: Context: 'A.property2=' is defined here.
 //   void set property2(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:26:12: Context: 'A.property3=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:24:12: Context: 'A.property3=' is defined here.
 //   void set property3(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: 'Interface1.interfaceMethod1' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: 'Interface1.interfaceMethod1' is defined here.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: 'Interface2.interfaceMethod1' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: 'Interface2.interfaceMethod1' is defined here.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:12:8: Context: 'Interface2.interfaceMethod2' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:10:8: Context: 'Interface2.interfaceMethod2' is defined here.
 //   void interfaceMethod2() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:18:8: Context: 'Interface3.interfaceMethod3' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:16:8: Context: 'Interface3.interfaceMethod3' is defined here.
 //   void interfaceMethod3() {}
 //        ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:66:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:64:16: Error: Can't inherit members that conflict with each other.
 // abstract class D extends C implements Interface2 {}
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is one inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:61:8: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:59:8: Context: This is the other inherited member.
 //   void interfaceMethod1(_) {}
 //        ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:74:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:72:16: Error: Can't inherit members that conflict with each other.
 // abstract class F extends E implements Interface1 {}
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:69:12: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:67:12: Context: This is the other inherited member.
 //   void set interfaceMethod1(_) {}
 //            ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:86:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:84:16: Error: Can't inherit members that conflict with each other.
 // abstract class H extends G implements Foo {}
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:77:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:75:8: Context: This is one inherited member.
 //   void foo() {}
 //        ^^^
-// pkg/front_end/testcases/general/abstract_members.dart:81:14: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:79:14: Context: This is the other inherited member.
 //   Object get foo => null;
 //              ^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:98:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:96:16: Error: Can't inherit members that conflict with each other.
 // abstract class J extends I implements Bar {}
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:89:14: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:87:14: Context: This is one inherited member.
 //   Object get foo => null;
 //              ^^^
-// pkg/front_end/testcases/general/abstract_members.dart:93:10: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:91:10: Context: This is the other inherited member.
 //   Object foo() {}
 //          ^^^
 //
+// pkg/front_end/testcases/general/abstract_members.dart:79:21: Error: The value 'null' can't be returned from a function with return type 'Object' because 'Object' is not nullable.
+//  - 'Object' is from 'dart:core'.
+//   Object get foo => null;
+//                     ^
+//
+// pkg/front_end/testcases/general/abstract_members.dart:87:21: Error: The value 'null' can't be returned from a function with return type 'Object' because 'Object' is not nullable.
+//  - 'Object' is from 'dart:core'.
+//   Object get foo => null;
+//                     ^
+//
+// pkg/front_end/testcases/general/abstract_members.dart:91:10: Error: A non-null value must be returned since the return type 'Object' doesn't allow null.
+//  - 'Object' is from 'dart:core'.
+//   Object foo() {}
+//          ^
+//
 import self as self;
 import "dart:core" as core;
 
 class Interface1 extends core::Object {
-  synthetic constructor •() → self::Interface1*
+  synthetic constructor •() → self::Interface1
     : super core::Object::•()
     ;
   method interfaceMethod1() → void {}
-  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 Interface2 extends core::Object {
   field dynamic interfaceMethod1 = null;
-  synthetic constructor •() → self::Interface2*
+  synthetic constructor •() → self::Interface2
     : super core::Object::•()
     ;
   method interfaceMethod2() → void {}
-  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 Interface3 extends core::Object {
-  synthetic constructor •() → self::Interface3*
+  synthetic constructor •() → self::Interface3
     : super core::Object::•()
     ;
   method interfaceMethod3() → void {}
-  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
 }
 abstract class A extends core::Object implements self::Interface1, self::Interface2, self::Interface3 {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   method aMethod() → dynamic {}
@@ -243,20 +228,10 @@
   abstract set property1(dynamic _) → void;
   abstract set property2(dynamic _) → void;
   abstract set property3(dynamic _) → void;
-  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
 }
 abstract class B extends self::A {
   final field dynamic property1 = null;
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
   method aMethod() → dynamic {}
@@ -264,7 +239,7 @@
 }
 class MyClass extends self::B {
   field dynamic property2 = null;
-  synthetic constructor •() → self::MyClass*
+  synthetic constructor •() → self::MyClass
     : super self::B::•()
     ;
   method aaMethod() → dynamic {}
@@ -273,155 +248,106 @@
   method cMethod() → dynamic {}
 }
 class MyMock1 extends self::B {
-  synthetic constructor •() → self::MyMock1*
+  synthetic constructor •() → self::MyMock1
     : super self::B::•()
     ;
-  method noSuchMethod(core::Invocation* _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     return null;
   no-such-method-forwarder method interfaceMethod2() → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
   no-such-method-forwarder method abstractMethod() → dynamic
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} dynamic;
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} dynamic;
   no-such-method-forwarder method interfaceMethod1() → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
   no-such-method-forwarder method interfaceMethod3() → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
   no-such-method-forwarder set property3(dynamic _) → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
   no-such-method-forwarder set interfaceMethod1(dynamic value) → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
   no-such-method-forwarder set property1(dynamic _) → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
   no-such-method-forwarder set property2(dynamic _) → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C11, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C11, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
 }
 class MyMock2 extends self::MyMock1 {
-  synthetic constructor •() → self::MyMock2*
+  synthetic constructor •() → self::MyMock2
     : super self::MyMock1::•()
     ;
-  abstract method noSuchMethod(core::Invocation* _) → dynamic;
+  abstract method noSuchMethod(core::Invocation _) → dynamic;
 }
 class MyMock3 extends self::B {
-  synthetic constructor •() → self::MyMock3*
+  synthetic constructor •() → self::MyMock3
     : super self::B::•()
     ;
-  abstract method noSuchMethod(core::Invocation* _) → dynamic;
+  abstract method noSuchMethod(core::Invocation _) → dynamic;
 }
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   method interfaceMethod1(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
 }
 abstract class D extends self::C implements self::Interface2 {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
 }
 class E extends core::Object {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super core::Object::•()
     ;
   set interfaceMethod1(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
 }
 abstract class F extends self::E implements self::Interface1 {
-  synthetic constructor •() → self::F*
+  synthetic constructor •() → self::F
     : super self::E::•()
     ;
 }
 class Foo extends core::Object {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : super core::Object::•()
     ;
   method foo() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class G extends core::Object {
-  synthetic constructor •() → self::G*
+  synthetic constructor •() → self::G
     : super core::Object::•()
     ;
-  get foo() → core::Object*
-    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
+  get foo() → core::Object
+    return invalid-expression "pkg/front_end/testcases/general/abstract_members.dart:79:21: Error: The value 'null' can't be returned from a function with return type 'Object' because 'Object' is not nullable.
+ - 'Object' is from 'dart:core'.
+  Object get foo => null;
+                    ^" in null as{TypeError,ForNonNullableByDefault} core::Object;
 }
 abstract class H extends self::G implements self::Foo {
-  synthetic constructor •() → self::H*
+  synthetic constructor •() → self::H
     : super self::G::•()
     ;
 }
 class Bar extends core::Object {
-  synthetic constructor •() → self::Bar*
+  synthetic constructor •() → self::Bar
     : super core::Object::•()
     ;
-  get foo() → core::Object*
-    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
+  get foo() → core::Object
+    return invalid-expression "pkg/front_end/testcases/general/abstract_members.dart:87:21: Error: The value 'null' can't be returned from a function with return type 'Object' because 'Object' is not nullable.
+ - 'Object' is from 'dart:core'.
+  Object get foo => null;
+                    ^" in null as{TypeError,ForNonNullableByDefault} core::Object;
 }
 class I extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     : super core::Object::•()
     ;
-  method foo() → core::Object* {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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::Object {
+    return invalid-expression "pkg/front_end/testcases/general/abstract_members.dart:91:10: Error: A non-null value must be returned since the return type 'Object' doesn't allow null.
+ - 'Object' is from 'dart:core'.
+  Object foo() {}
+         ^" in null;
+  }
 }
 abstract class J extends self::I implements self::Bar {
-  synthetic constructor •() → self::J*
+  synthetic constructor •() → self::J
     : super self::I::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/abstract_members.dart.weak.modular.expect b/pkg/front_end/testcases/general/abstract_members.dart.weak.modular.expect
index d874a11..c71dba4 100644
--- a/pkg/front_end/testcases/general/abstract_members.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/abstract_members.dart.weak.modular.expect
@@ -1,38 +1,38 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/abstract_members.dart:21:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:19:16: Error: Can't inherit members that conflict with each other.
 // abstract class A implements Interface1, Interface2, Interface3 {
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:29:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:27:16: Error: Can't inherit members that conflict with each other.
 // abstract class B extends A {
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:35:7: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:33:7: Error: Can't inherit members that conflict with each other.
 // class MyClass extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:35:7: Error: The non-abstract class 'MyClass' is missing implementations for these members:
+// pkg/front_end/testcases/general/abstract_members.dart:33:7: Error: The non-abstract class 'MyClass' is missing implementations for these members:
 //  - A.abstractMethod
 //  - A.property1=
 //  - A.property3=
@@ -48,59 +48,59 @@
 //
 // class MyClass extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:23:3: Context: 'A.abstractMethod' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:21:3: Context: 'A.abstractMethod' is defined here.
 //   abstractMethod();
 //   ^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:24:12: Context: 'A.property1=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:22:12: Context: 'A.property1=' is defined here.
 //   void set property1(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:26:12: Context: 'A.property3=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:24:12: Context: 'A.property3=' is defined here.
 //   void set property3(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: 'Interface1.interfaceMethod1' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: 'Interface1.interfaceMethod1' is defined here.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: 'Interface2.interfaceMethod1' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: 'Interface2.interfaceMethod1' is defined here.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:12:8: Context: 'Interface2.interfaceMethod2' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:10:8: Context: 'Interface2.interfaceMethod2' is defined here.
 //   void interfaceMethod2() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:18:8: Context: 'Interface3.interfaceMethod3' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:16:8: Context: 'Interface3.interfaceMethod3' is defined here.
 //   void interfaceMethod3() {}
 //        ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:44:7: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:42:7: Error: Can't inherit members that conflict with each other.
 // class MyMock1 extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:50:7: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:48:7: Error: Can't inherit members that conflict with each other.
 // class MyMock2 extends MyMock1 {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:56:7: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:54:7: Error: Can't inherit members that conflict with each other.
 // class MyMock3 extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:56:7: Error: The non-abstract class 'MyMock3' is missing implementations for these members:
+// pkg/front_end/testcases/general/abstract_members.dart:54:7: Error: The non-abstract class 'MyMock3' is missing implementations for these members:
 //  - A.abstractMethod
 //  - A.property1=
 //  - A.property2=
@@ -117,125 +117,110 @@
 //
 // class MyMock3 extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:23:3: Context: 'A.abstractMethod' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:21:3: Context: 'A.abstractMethod' is defined here.
 //   abstractMethod();
 //   ^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:24:12: Context: 'A.property1=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:22:12: Context: 'A.property1=' is defined here.
 //   void set property1(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:25:12: Context: 'A.property2=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:23:12: Context: 'A.property2=' is defined here.
 //   void set property2(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:26:12: Context: 'A.property3=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:24:12: Context: 'A.property3=' is defined here.
 //   void set property3(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: 'Interface1.interfaceMethod1' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: 'Interface1.interfaceMethod1' is defined here.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: 'Interface2.interfaceMethod1' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: 'Interface2.interfaceMethod1' is defined here.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:12:8: Context: 'Interface2.interfaceMethod2' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:10:8: Context: 'Interface2.interfaceMethod2' is defined here.
 //   void interfaceMethod2() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:18:8: Context: 'Interface3.interfaceMethod3' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:16:8: Context: 'Interface3.interfaceMethod3' is defined here.
 //   void interfaceMethod3() {}
 //        ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:66:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:64:16: Error: Can't inherit members that conflict with each other.
 // abstract class D extends C implements Interface2 {}
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is one inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:61:8: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:59:8: Context: This is the other inherited member.
 //   void interfaceMethod1(_) {}
 //        ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:74:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:72:16: Error: Can't inherit members that conflict with each other.
 // abstract class F extends E implements Interface1 {}
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:69:12: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:67:12: Context: This is the other inherited member.
 //   void set interfaceMethod1(_) {}
 //            ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:86:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:84:16: Error: Can't inherit members that conflict with each other.
 // abstract class H extends G implements Foo {}
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:77:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:75:8: Context: This is one inherited member.
 //   void foo() {}
 //        ^^^
-// pkg/front_end/testcases/general/abstract_members.dart:81:14: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:79:14: Context: This is the other inherited member.
 //   Object get foo => null;
 //              ^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:98:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:96:16: Error: Can't inherit members that conflict with each other.
 // abstract class J extends I implements Bar {}
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:89:14: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:87:14: Context: This is one inherited member.
 //   Object get foo => null;
 //              ^^^
-// pkg/front_end/testcases/general/abstract_members.dart:93:10: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:91:10: Context: This is the other inherited member.
 //   Object foo() {}
 //          ^^^
 //
+// pkg/front_end/testcases/general/abstract_members.dart:79:21: Error: The value 'null' can't be returned from a function with return type 'Object' because 'Object' is not nullable.
+//  - 'Object' is from 'dart:core'.
+//   Object get foo => null;
+//                     ^
+//
+// pkg/front_end/testcases/general/abstract_members.dart:87:21: Error: The value 'null' can't be returned from a function with return type 'Object' because 'Object' is not nullable.
+//  - 'Object' is from 'dart:core'.
+//   Object get foo => null;
+//                     ^
+//
+// pkg/front_end/testcases/general/abstract_members.dart:91:10: Error: A non-null value must be returned since the return type 'Object' doesn't allow null.
+//  - 'Object' is from 'dart:core'.
+//   Object foo() {}
+//          ^
+//
 import self as self;
 import "dart:core" as core;
 
 class Interface1 extends core::Object {
-  synthetic constructor •() → self::Interface1*
+  synthetic constructor •() → self::Interface1
     : super core::Object::•()
     ;
   method interfaceMethod1() → void {}
-  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 Interface2 extends core::Object {
   field dynamic interfaceMethod1 = null;
-  synthetic constructor •() → self::Interface2*
+  synthetic constructor •() → self::Interface2
     : super core::Object::•()
     ;
   method interfaceMethod2() → void {}
-  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 Interface3 extends core::Object {
-  synthetic constructor •() → self::Interface3*
+  synthetic constructor •() → self::Interface3
     : super core::Object::•()
     ;
   method interfaceMethod3() → void {}
-  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
 }
 abstract class A extends core::Object implements self::Interface1, self::Interface2, self::Interface3 {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   method aMethod() → dynamic {}
@@ -243,20 +228,10 @@
   abstract set property1(dynamic _) → void;
   abstract set property2(dynamic _) → void;
   abstract set property3(dynamic _) → void;
-  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
 }
 abstract class B extends self::A {
   final field dynamic property1 = null;
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
   method aMethod() → dynamic {}
@@ -264,7 +239,7 @@
 }
 class MyClass extends self::B {
   field dynamic property2 = null;
-  synthetic constructor •() → self::MyClass*
+  synthetic constructor •() → self::MyClass
     : super self::B::•()
     ;
   method aaMethod() → dynamic {}
@@ -273,155 +248,106 @@
   method cMethod() → dynamic {}
 }
 class MyMock1 extends self::B {
-  synthetic constructor •() → self::MyMock1*
+  synthetic constructor •() → self::MyMock1
     : super self::B::•()
     ;
-  method noSuchMethod(core::Invocation* _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     return null;
   no-such-method-forwarder method interfaceMethod2() → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
   no-such-method-forwarder method abstractMethod() → dynamic
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} dynamic;
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} dynamic;
   no-such-method-forwarder method interfaceMethod1() → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
   no-such-method-forwarder method interfaceMethod3() → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
   no-such-method-forwarder set property3(dynamic _) → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
   no-such-method-forwarder set interfaceMethod1(dynamic value) → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
   no-such-method-forwarder set property1(dynamic _) → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
   no-such-method-forwarder set property2(dynamic _) → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C11, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#C11, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
 }
 class MyMock2 extends self::MyMock1 {
-  synthetic constructor •() → self::MyMock2*
+  synthetic constructor •() → self::MyMock2
     : super self::MyMock1::•()
     ;
-  abstract method noSuchMethod(core::Invocation* _) → dynamic;
+  abstract method noSuchMethod(core::Invocation _) → dynamic;
 }
 class MyMock3 extends self::B {
-  synthetic constructor •() → self::MyMock3*
+  synthetic constructor •() → self::MyMock3
     : super self::B::•()
     ;
-  abstract method noSuchMethod(core::Invocation* _) → dynamic;
+  abstract method noSuchMethod(core::Invocation _) → dynamic;
 }
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   method interfaceMethod1(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
 }
 abstract class D extends self::C implements self::Interface2 {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
 }
 class E extends core::Object {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super core::Object::•()
     ;
   set interfaceMethod1(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
 }
 abstract class F extends self::E implements self::Interface1 {
-  synthetic constructor •() → self::F*
+  synthetic constructor •() → self::F
     : super self::E::•()
     ;
 }
 class Foo extends core::Object {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : super core::Object::•()
     ;
   method foo() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class G extends core::Object {
-  synthetic constructor •() → self::G*
+  synthetic constructor •() → self::G
     : super core::Object::•()
     ;
-  get foo() → core::Object*
-    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
+  get foo() → core::Object
+    return invalid-expression "pkg/front_end/testcases/general/abstract_members.dart:79:21: Error: The value 'null' can't be returned from a function with return type 'Object' because 'Object' is not nullable.
+ - 'Object' is from 'dart:core'.
+  Object get foo => null;
+                    ^" in null as{TypeError,ForNonNullableByDefault} core::Object;
 }
 abstract class H extends self::G implements self::Foo {
-  synthetic constructor •() → self::H*
+  synthetic constructor •() → self::H
     : super self::G::•()
     ;
 }
 class Bar extends core::Object {
-  synthetic constructor •() → self::Bar*
+  synthetic constructor •() → self::Bar
     : super core::Object::•()
     ;
-  get foo() → core::Object*
-    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
+  get foo() → core::Object
+    return invalid-expression "pkg/front_end/testcases/general/abstract_members.dart:87:21: Error: The value 'null' can't be returned from a function with return type 'Object' because 'Object' is not nullable.
+ - 'Object' is from 'dart:core'.
+  Object get foo => null;
+                    ^" in null as{TypeError,ForNonNullableByDefault} core::Object;
 }
 class I extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     : super core::Object::•()
     ;
-  method foo() → core::Object* {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::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::Object {
+    return invalid-expression "pkg/front_end/testcases/general/abstract_members.dart:91:10: Error: A non-null value must be returned since the return type 'Object' doesn't allow null.
+ - 'Object' is from 'dart:core'.
+  Object foo() {}
+         ^" in null;
+  }
 }
 abstract class J extends self::I implements self::Bar {
-  synthetic constructor •() → self::J*
+  synthetic constructor •() → self::J
     : super self::I::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/abstract_members.dart.weak.outline.expect b/pkg/front_end/testcases/general/abstract_members.dart.weak.outline.expect
index 9685255..ed720cb 100644
--- a/pkg/front_end/testcases/general/abstract_members.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/abstract_members.dart.weak.outline.expect
@@ -1,38 +1,38 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/abstract_members.dart:21:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:19:16: Error: Can't inherit members that conflict with each other.
 // abstract class A implements Interface1, Interface2, Interface3 {
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:29:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:27:16: Error: Can't inherit members that conflict with each other.
 // abstract class B extends A {
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:35:7: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:33:7: Error: Can't inherit members that conflict with each other.
 // class MyClass extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:35:7: Error: The non-abstract class 'MyClass' is missing implementations for these members:
+// pkg/front_end/testcases/general/abstract_members.dart:33:7: Error: The non-abstract class 'MyClass' is missing implementations for these members:
 //  - A.abstractMethod
 //  - A.property1=
 //  - A.property3=
@@ -48,59 +48,59 @@
 //
 // class MyClass extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:23:3: Context: 'A.abstractMethod' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:21:3: Context: 'A.abstractMethod' is defined here.
 //   abstractMethod();
 //   ^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:24:12: Context: 'A.property1=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:22:12: Context: 'A.property1=' is defined here.
 //   void set property1(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:26:12: Context: 'A.property3=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:24:12: Context: 'A.property3=' is defined here.
 //   void set property3(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: 'Interface1.interfaceMethod1' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: 'Interface1.interfaceMethod1' is defined here.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: 'Interface2.interfaceMethod1' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: 'Interface2.interfaceMethod1' is defined here.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:12:8: Context: 'Interface2.interfaceMethod2' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:10:8: Context: 'Interface2.interfaceMethod2' is defined here.
 //   void interfaceMethod2() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:18:8: Context: 'Interface3.interfaceMethod3' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:16:8: Context: 'Interface3.interfaceMethod3' is defined here.
 //   void interfaceMethod3() {}
 //        ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:44:7: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:42:7: Error: Can't inherit members that conflict with each other.
 // class MyMock1 extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:50:7: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:48:7: Error: Can't inherit members that conflict with each other.
 // class MyMock2 extends MyMock1 {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:56:7: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:54:7: Error: Can't inherit members that conflict with each other.
 // class MyMock3 extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is the other inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:56:7: Error: The non-abstract class 'MyMock3' is missing implementations for these members:
+// pkg/front_end/testcases/general/abstract_members.dart:54:7: Error: The non-abstract class 'MyMock3' is missing implementations for these members:
 //  - A.abstractMethod
 //  - A.property1=
 //  - A.property2=
@@ -117,68 +117,68 @@
 //
 // class MyMock3 extends B {
 //       ^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:23:3: Context: 'A.abstractMethod' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:21:3: Context: 'A.abstractMethod' is defined here.
 //   abstractMethod();
 //   ^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:24:12: Context: 'A.property1=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:22:12: Context: 'A.property1=' is defined here.
 //   void set property1(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:25:12: Context: 'A.property2=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:23:12: Context: 'A.property2=' is defined here.
 //   void set property2(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:26:12: Context: 'A.property3=' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:24:12: Context: 'A.property3=' is defined here.
 //   void set property3(_);
 //            ^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: 'Interface1.interfaceMethod1' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: 'Interface1.interfaceMethod1' is defined here.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: 'Interface2.interfaceMethod1' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: 'Interface2.interfaceMethod1' is defined here.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:12:8: Context: 'Interface2.interfaceMethod2' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:10:8: Context: 'Interface2.interfaceMethod2' is defined here.
 //   void interfaceMethod2() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:18:8: Context: 'Interface3.interfaceMethod3' is defined here.
+// pkg/front_end/testcases/general/abstract_members.dart:16:8: Context: 'Interface3.interfaceMethod3' is defined here.
 //   void interfaceMethod3() {}
 //        ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:66:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:64:16: Error: Can't inherit members that conflict with each other.
 // abstract class D extends C implements Interface2 {}
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:14:7: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:12:7: Context: This is one inherited member.
 //   var interfaceMethod1;
 //       ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:61:8: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:59:8: Context: This is the other inherited member.
 //   void interfaceMethod1(_) {}
 //        ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:74:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:72:16: Error: Can't inherit members that conflict with each other.
 // abstract class F extends E implements Interface1 {}
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:8:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:6:8: Context: This is one inherited member.
 //   void interfaceMethod1() {}
 //        ^^^^^^^^^^^^^^^^
-// pkg/front_end/testcases/general/abstract_members.dart:69:12: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:67:12: Context: This is the other inherited member.
 //   void set interfaceMethod1(_) {}
 //            ^^^^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:86:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:84:16: Error: Can't inherit members that conflict with each other.
 // abstract class H extends G implements Foo {}
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:77:8: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:75:8: Context: This is one inherited member.
 //   void foo() {}
 //        ^^^
-// pkg/front_end/testcases/general/abstract_members.dart:81:14: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:79:14: Context: This is the other inherited member.
 //   Object get foo => null;
 //              ^^^
 //
-// pkg/front_end/testcases/general/abstract_members.dart:98:16: Error: Can't inherit members that conflict with each other.
+// pkg/front_end/testcases/general/abstract_members.dart:96:16: Error: Can't inherit members that conflict with each other.
 // abstract class J extends I implements Bar {}
 //                ^
-// pkg/front_end/testcases/general/abstract_members.dart:89:14: Context: This is one inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:87:14: Context: This is one inherited member.
 //   Object get foo => null;
 //              ^^^
-// pkg/front_end/testcases/general/abstract_members.dart:93:10: Context: This is the other inherited member.
+// pkg/front_end/testcases/general/abstract_members.dart:91:10: Context: This is the other inherited member.
 //   Object foo() {}
 //          ^^^
 //
@@ -186,56 +186,26 @@
 import "dart:core" as core;
 
 class Interface1 extends core::Object {
-  synthetic constructor •() → self::Interface1*
+  synthetic constructor •() → self::Interface1
     ;
   method interfaceMethod1() → void
     ;
-  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 Interface2 extends core::Object {
   field dynamic interfaceMethod1;
-  synthetic constructor •() → self::Interface2*
+  synthetic constructor •() → self::Interface2
     ;
   method interfaceMethod2() → void
     ;
-  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 Interface3 extends core::Object {
-  synthetic constructor •() → self::Interface3*
+  synthetic constructor •() → self::Interface3
     ;
   method interfaceMethod3() → void
     ;
-  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
 }
 abstract class A extends core::Object implements self::Interface1, self::Interface2, self::Interface3 {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
   method aMethod() → dynamic
     ;
@@ -243,20 +213,10 @@
   abstract set property1(dynamic _) → void;
   abstract set property2(dynamic _) → void;
   abstract set property3(dynamic _) → void;
-  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
 }
 abstract class B extends self::A {
   final field dynamic property1;
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
   method aMethod() → dynamic
     ;
@@ -265,7 +225,7 @@
 }
 class MyClass extends self::B {
   field dynamic property2;
-  synthetic constructor •() → self::MyClass*
+  synthetic constructor •() → self::MyClass
     ;
   method aaMethod() → dynamic
     ;
@@ -277,147 +237,87 @@
     ;
 }
 class MyMock1 extends self::B {
-  synthetic constructor •() → self::MyMock1*
+  synthetic constructor •() → self::MyMock1
     ;
-  method noSuchMethod(core::Invocation* _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     ;
   no-such-method-forwarder method interfaceMethod2() → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod2, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod2, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic};
   no-such-method-forwarder method abstractMethod() → dynamic
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#abstractMethod, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} dynamic;
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#abstractMethod, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} dynamic;
   no-such-method-forwarder method interfaceMethod1() → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod1, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod1, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic};
   no-such-method-forwarder method interfaceMethod3() → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod3, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod3, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic};
   no-such-method-forwarder set property3(dynamic _) → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#property3=, 2, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#property3=, 2, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic};
   no-such-method-forwarder set interfaceMethod1(dynamic value) → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod1=, 2, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod1=, 2, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic};
   no-such-method-forwarder set property1(dynamic _) → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#property1=, 2, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#property1=, 2, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic};
   no-such-method-forwarder set property2(dynamic _) → void
-    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#property2=, 2, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic};
+    return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#property2=, 2, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[_]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic};
 }
 class MyMock2 extends self::MyMock1 {
-  synthetic constructor •() → self::MyMock2*
+  synthetic constructor •() → self::MyMock2
     ;
-  abstract method noSuchMethod(core::Invocation* _) → dynamic;
+  abstract method noSuchMethod(core::Invocation _) → dynamic;
 }
 class MyMock3 extends self::B {
-  synthetic constructor •() → self::MyMock3*
+  synthetic constructor •() → self::MyMock3
     ;
-  abstract method noSuchMethod(core::Invocation* _) → dynamic;
+  abstract method noSuchMethod(core::Invocation _) → dynamic;
 }
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
   method interfaceMethod1(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
 }
 abstract class D extends self::C implements self::Interface2 {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
 }
 class E extends core::Object {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     ;
   set interfaceMethod1(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
 }
 abstract class F extends self::E implements self::Interface1 {
-  synthetic constructor •() → self::F*
+  synthetic constructor •() → self::F
     ;
 }
 class Foo extends core::Object {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     ;
   method foo() → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class G extends core::Object {
-  synthetic constructor •() → self::G*
+  synthetic constructor •() → self::G
     ;
-  get foo() → core::Object*
+  get foo() → core::Object
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 H extends self::G implements self::Foo {
-  synthetic constructor •() → self::H*
+  synthetic constructor •() → self::H
     ;
 }
 class Bar extends core::Object {
-  synthetic constructor •() → self::Bar*
+  synthetic constructor •() → self::Bar
     ;
-  get foo() → core::Object*
+  get foo() → core::Object
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class I extends core::Object {
-  synthetic constructor •() → self::I*
+  synthetic constructor •() → self::I
     ;
-  method foo() → core::Object*
+  method foo() → core::Object
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 extends self::I implements self::Bar {
-  synthetic constructor •() → self::J*
+  synthetic constructor •() → self::J
     ;
 }
 static method main() → dynamic
@@ -425,32 +325,32 @@
 
 
 Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:12:8 -> SymbolConstant(#interfaceMethod2)
-Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:12:8 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:12:8 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:12:8 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:23:3 -> SymbolConstant(#abstractMethod)
-Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:23:3 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:23:3 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:23:3 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:8:8 -> SymbolConstant(#interfaceMethod1)
-Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:8:8 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:8:8 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:8:8 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:18:8 -> SymbolConstant(#interfaceMethod3)
-Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:18:8 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:18:8 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:18:8 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:26:12 -> SymbolConstant(#property3=)
-Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:26:12 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:26:12 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:14:7 -> SymbolConstant(#interfaceMethod1=)
-Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:14:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:14:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:24:12 -> SymbolConstant(#property1=)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:10:8 -> SymbolConstant(#interfaceMethod2)
+Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:10:8 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:10:8 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:10:8 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:21:3 -> SymbolConstant(#abstractMethod)
+Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:21:3 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:21:3 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:21:3 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:6:8 -> SymbolConstant(#interfaceMethod1)
+Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:6:8 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:6:8 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:6:8 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:16:8 -> SymbolConstant(#interfaceMethod3)
+Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:16:8 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:16:8 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:16:8 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:24:12 -> SymbolConstant(#property3=)
 Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:24:12 -> ListConstant(const <Type*>[])
 Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:24:12 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:25:12 -> SymbolConstant(#property2=)
-Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:25:12 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:25:12 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:12:7 -> SymbolConstant(#interfaceMethod1=)
+Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:22:12 -> SymbolConstant(#property1=)
+Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:22:12 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:22:12 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_members.dart:23:12 -> SymbolConstant(#property2=)
+Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_members.dart:23:12 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_members.dart:23:12 -> MapConstant(const <Symbol*, dynamic>{})
 Extra constant evaluation: evaluated: 73, effectively constant: 28
diff --git a/pkg/front_end/testcases/general/abstract_operator_override.dart b/pkg/front_end/testcases/general/abstract_operator_override.dart
index 47d3698..89d5f93 100644
--- a/pkg/front_end/testcases/general/abstract_operator_override.dart
+++ b/pkg/front_end/testcases/general/abstract_operator_override.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-// @dart=2.9
+
 class A {
   A operator +(B b) => new A();
   A operator -() => new A();
diff --git a/pkg/front_end/testcases/general/abstract_operator_override.dart.textual_outline.expect b/pkg/front_end/testcases/general/abstract_operator_override.dart.textual_outline.expect
index 5e5db9f..cbb8adc 100644
--- a/pkg/front_end/testcases/general/abstract_operator_override.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/abstract_operator_override.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A operator +(B b) => new A();
   A operator -() => new A();
diff --git a/pkg/front_end/testcases/general/abstract_operator_override.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/abstract_operator_override.dart.textual_outline_modelled.expect
index 26007df..a8a7f31 100644
--- a/pkg/front_end/testcases/general/abstract_operator_override.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/abstract_operator_override.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A operator +(B b) => new A();
   A operator -() => new A();
diff --git a/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.expect b/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.expect
index 6b85486..eb7c6ae 100644
--- a/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.expect
+++ b/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -84,41 +84,31 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator +(self::B* b) → self::A*
+  operator +(self::B b) → self::A
     return new self::A::•();
-  operator unary-() → self::A*
+  operator unary-() → self::A
     return new self::A::•();
-  operator [](self::B* b) → self::A*
+  operator [](self::B b) → self::A
     return new self::A::•();
-  operator []=(self::B* b1, self::B* b2) → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  operator []=(self::B b1, self::B b2) → void {}
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  abstract operator +(self::A* a) → self::A*;
-  abstract operator unary-() → self::B*;
-  abstract operator [](self::A* a) → self::A*;
-  abstract operator []=(self::A* a, self::B* b) → void;
+  abstract operator +(self::A a) → self::A;
+  abstract operator unary-() → self::B;
+  abstract operator [](self::A a) → self::A;
+  abstract operator []=(self::A a, self::B b) → void;
 }
 class C extends self::A {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::A::•()
     ;
-  abstract operator [](self::B* b) → self::B*;
-  abstract operator []=(self::B* b, self::A* a) → void;
+  abstract operator [](self::B b) → self::B;
+  abstract operator []=(self::B b, self::A a) → void;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.modular.expect b/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.modular.expect
index 6b85486..eb7c6ae 100644
--- a/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -84,41 +84,31 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator +(self::B* b) → self::A*
+  operator +(self::B b) → self::A
     return new self::A::•();
-  operator unary-() → self::A*
+  operator unary-() → self::A
     return new self::A::•();
-  operator [](self::B* b) → self::A*
+  operator [](self::B b) → self::A
     return new self::A::•();
-  operator []=(self::B* b1, self::B* b2) → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  operator []=(self::B b1, self::B b2) → void {}
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  abstract operator +(self::A* a) → self::A*;
-  abstract operator unary-() → self::B*;
-  abstract operator [](self::A* a) → self::A*;
-  abstract operator []=(self::A* a, self::B* b) → void;
+  abstract operator +(self::A a) → self::A;
+  abstract operator unary-() → self::B;
+  abstract operator [](self::A a) → self::A;
+  abstract operator []=(self::A a, self::B b) → void;
 }
 class C extends self::A {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::A::•()
     ;
-  abstract operator [](self::B* b) → self::B*;
-  abstract operator []=(self::B* b, self::A* a) → void;
+  abstract operator [](self::B b) → self::B;
+  abstract operator []=(self::B b, self::A a) → void;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.outline.expect b/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.outline.expect
index 529c1d7..77101de 100644
--- a/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -84,40 +84,30 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
-  operator +(self::B* b) → self::A*
+  operator +(self::B b) → self::A
     ;
-  operator unary-() → self::A*
+  operator unary-() → self::A
     ;
-  operator [](self::B* b) → self::A*
+  operator [](self::B b) → self::A
     ;
-  operator []=(self::B* b1, self::B* b2) → void
+  operator []=(self::B b1, self::B b2) → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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
     ;
-  abstract operator +(self::A* a) → self::A*;
-  abstract operator unary-() → self::B*;
-  abstract operator [](self::A* a) → self::A*;
-  abstract operator []=(self::A* a, self::B* b) → void;
+  abstract operator +(self::A a) → self::A;
+  abstract operator unary-() → self::B;
+  abstract operator [](self::A a) → self::A;
+  abstract operator []=(self::A a, self::B b) → void;
 }
 class C extends self::A {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  abstract operator [](self::B* b) → self::B*;
-  abstract operator []=(self::B* b, self::A* a) → void;
+  abstract operator [](self::B b) → self::B;
+  abstract operator []=(self::B b, self::A a) → void;
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.transformed.expect b/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.transformed.expect
index 6b85486..eb7c6ae 100644
--- a/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/abstract_operator_override.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -84,41 +84,31 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator +(self::B* b) → self::A*
+  operator +(self::B b) → self::A
     return new self::A::•();
-  operator unary-() → self::A*
+  operator unary-() → self::A
     return new self::A::•();
-  operator [](self::B* b) → self::A*
+  operator [](self::B b) → self::A
     return new self::A::•();
-  operator []=(self::B* b1, self::B* b2) → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  operator []=(self::B b1, self::B b2) → void {}
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  abstract operator +(self::A* a) → self::A*;
-  abstract operator unary-() → self::B*;
-  abstract operator [](self::A* a) → self::A*;
-  abstract operator []=(self::A* a, self::B* b) → void;
+  abstract operator +(self::A a) → self::A;
+  abstract operator unary-() → self::B;
+  abstract operator [](self::A a) → self::A;
+  abstract operator []=(self::A a, self::B b) → void;
 }
 class C extends self::A {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::A::•()
     ;
-  abstract operator [](self::B* b) → self::B*;
-  abstract operator []=(self::B* b, self::A* a) → void;
+  abstract operator [](self::B b) → self::B;
+  abstract operator []=(self::B b, self::A a) → void;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart
index b7152e5..8a0f040 100644
--- a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete.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 {
   void foo() {}
 }
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.textual_outline.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.textual_outline.expect
index 09d2c13..5b023fe 100644
--- a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   void foo() {}
 }
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.textual_outline_modelled.expect
index bee9faa..7f52cec 100644
--- a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class B extends A {
   void foo([a]);
 }
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.expect
index 90c7a87..60f6733 100644
--- a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.expect
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -36,62 +36,42 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   method foo() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 foo([dynamic a = #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
 }
 abstract class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
   abstract method foo([dynamic a = #C1]) → void;
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
 class D extends self::A implements self::I {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::A::•()
     ;
   abstract member-signature method foo([dynamic a = #C1]) → void; -> self::I::foo
 }
 abstract class E extends self::A implements self::I {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super self::A::•()
     ;
   abstract member-signature method foo([dynamic a = #C1]) → void; -> self::I::foo
 }
 class F extends self::E {
-  synthetic constructor •() → self::F*
+  synthetic constructor •() → self::F
     : super self::E::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.modular.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.modular.expect
index 90c7a87..60f6733 100644
--- a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -36,62 +36,42 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   method foo() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 foo([dynamic a = #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
 }
 abstract class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
   abstract method foo([dynamic a = #C1]) → void;
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
 class D extends self::A implements self::I {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::A::•()
     ;
   abstract member-signature method foo([dynamic a = #C1]) → void; -> self::I::foo
 }
 abstract class E extends self::A implements self::I {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super self::A::•()
     ;
   abstract member-signature method foo([dynamic a = #C1]) → void; -> self::I::foo
 }
 class F extends self::E {
-  synthetic constructor •() → self::F*
+  synthetic constructor •() → self::F
     : super self::E::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.outline.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.outline.expect
index d789cb9..670f664 100644
--- a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -36,57 +36,37 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
   method foo() → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 foo([dynamic a]) → void;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
   abstract method foo([dynamic a]) → void;
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
 }
 class D extends self::A implements self::I {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
   abstract member-signature method foo([dynamic a]) → void; -> self::I::foo
 }
 abstract class E extends self::A implements self::I {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     ;
   abstract member-signature method foo([dynamic a]) → void; -> self::I::foo
 }
 class F extends self::E {
-  synthetic constructor •() → self::F*
+  synthetic constructor •() → self::F
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.transformed.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.transformed.expect
index 90c7a87..60f6733 100644
--- a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -36,62 +36,42 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   method foo() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 foo([dynamic a = #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
 }
 abstract class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
   abstract method foo([dynamic a = #C1]) → void;
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
 }
 class D extends self::A implements self::I {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::A::•()
     ;
   abstract member-signature method foo([dynamic a = #C1]) → void; -> self::I::foo
 }
 abstract class E extends self::A implements self::I {
-  synthetic constructor •() → self::E*
+  synthetic constructor •() → self::E
     : super self::A::•()
     ;
   abstract member-signature method foo([dynamic a = #C1]) → void; -> self::I::foo
 }
 class F extends self::E {
-  synthetic constructor •() → self::F*
+  synthetic constructor •() → self::F
     : super self::E::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart b/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart
index 3899c92..ee62ec7 100644
--- a/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart
@@ -1,9 +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
+
 abstract class A {
-  A foo() => null;
+  A foo() => throw '';
 }
 
 abstract class B extends A {
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.textual_outline.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.textual_outline.expect
index 815f3ac..1943350 100644
--- a/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.textual_outline.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
 abstract class A {
-  A foo() => null;
+  A foo() => throw '';
 }
 
 abstract class B extends A {
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.textual_outline_modelled.expect
index 815f3ac..1943350 100644
--- a/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.textual_outline_modelled.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
 abstract class A {
-  A foo() => null;
+  A foo() => throw '';
 }
 
 abstract class B extends A {
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.expect
index 882db16..04cdcaf 100644
--- a/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.expect
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.expect
@@ -1,52 +1,33 @@
-library;
+library /*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::•()
     ;
-  method foo() → self::A*
-    return null;
-  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
+  method foo() → self::A
+    return throw "";
 }
 abstract class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  abstract method foo() → self::B*;
+  abstract method foo() → self::B;
 }
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  method noSuchMethod(core::Invocation* _) → dynamic
+  method noSuchMethod(core::Invocation _) → 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 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::•()
     ;
-  no-such-method-forwarder method foo() → self::B*
-    return this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} self::B*;
+  no-such-method-forwarder method foo() → self::B
+    return this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} self::B;
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.modular.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.modular.expect
index 882db16..04cdcaf 100644
--- a/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.modular.expect
@@ -1,52 +1,33 @@
-library;
+library /*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::•()
     ;
-  method foo() → self::A*
-    return null;
-  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
+  method foo() → self::A
+    return throw "";
 }
 abstract class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  abstract method foo() → self::B*;
+  abstract method foo() → self::B;
 }
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  method noSuchMethod(core::Invocation* _) → dynamic
+  method noSuchMethod(core::Invocation _) → 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 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::•()
     ;
-  no-such-method-forwarder method foo() → self::B*
-    return this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} self::B*;
+  no-such-method-forwarder method foo() → self::B
+    return this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} self::B;
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.outline.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.outline.expect
index 41d6539..0686850 100644
--- a/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.outline.expect
@@ -1,48 +1,29 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
-  method foo() → self::A*
+  method foo() → self::A
     ;
-  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
 }
 abstract class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  abstract method foo() → self::B*;
+  abstract method foo() → self::B;
 }
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  method noSuchMethod(core::Invocation* _) → dynamic
+  method noSuchMethod(core::Invocation _) → 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 get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class D extends self::C implements self::B {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
-  no-such-method-forwarder method foo() → self::B*
-    return this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} self::B*;
+  no-such-method-forwarder method foo() → self::B
+    return this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} self::B;
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.transformed.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.transformed.expect
index 882db16..04cdcaf 100644
--- a/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete_with_no_such_method.dart.weak.transformed.expect
@@ -1,52 +1,33 @@
-library;
+library /*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::•()
     ;
-  method foo() → self::A*
-    return null;
-  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
+  method foo() → self::A
+    return throw "";
 }
 abstract class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  abstract method foo() → self::B*;
+  abstract method foo() → self::B;
 }
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  method noSuchMethod(core::Invocation* _) → dynamic
+  method noSuchMethod(core::Invocation _) → 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 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::•()
     ;
-  no-such-method-forwarder method foo() → self::B*
-    return this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} self::B*;
+  no-such-method-forwarder method foo() → self::B
+    return this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} self::B;
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/general/accessors.dart b/pkg/front_end/testcases/general/accessors.dart
index 67c5b20..5ac1323 100644
--- a/pkg/front_end/testcases/general/accessors.dart
+++ b/pkg/front_end/testcases/general/accessors.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
+
 void set onlySetter(value) {
   print("onlySetter called with $value.");
 }
diff --git a/pkg/front_end/testcases/general/accessors.dart.textual_outline.expect b/pkg/front_end/testcases/general/accessors.dart.textual_outline.expect
index a9e633e..9c4a898 100644
--- a/pkg/front_end/testcases/general/accessors.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/accessors.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 void set onlySetter(value) {}
 
 class C {
diff --git a/pkg/front_end/testcases/general/accessors.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/accessors.dart.textual_outline_modelled.expect
index 7bea72f..3072e99 100644
--- a/pkg/front_end/testcases/general/accessors.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/accessors.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class C {
   testC() {}
   testD() {}
diff --git a/pkg/front_end/testcases/general/accessors.dart.weak.expect b/pkg/front_end/testcases/general/accessors.dart.weak.expect
index d09f07b..9e6c42b 100644
--- a/pkg/front_end/testcases/general/accessors.dart.weak.expect
+++ b/pkg/front_end/testcases/general/accessors.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -22,7 +22,7 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   set onlySetter(dynamic value) → void {
@@ -37,7 +37,7 @@
             ^^^^^^^^^^" in this{<unresolved>}.onlySetter);
       throw "No error thrown";
     }
-    on core::NoSuchMethodError* catch(final core::NoSuchMethodError* e) {
+    on core::NoSuchMethodError catch(final core::NoSuchMethodError e) {
       core::print("Expected error: ${e}");
     }
     this.{self::C::onlySetter} = "hest";
@@ -50,22 +50,12 @@
           ^^^^^^^^^^" in this{<unresolved>}.onlySetter);
     this.{self::C::onlySetter} = "hest";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  get onlySetter() → core::String*
+  get onlySetter() → core::String
     return "D.onlySetter called.";
   set onlySetter(dynamic value) → void {
     core::print("D.onlySetter called with ${value}.");
@@ -81,10 +71,10 @@
           ^^^^^^^^^^");
     throw "No error thrown";
   }
-  on core::NoSuchMethodError* catch(final core::NoSuchMethodError* e) {
+  on core::NoSuchMethodError catch(final core::NoSuchMethodError e) {
     core::print("Expected error: ${e}");
   }
   self::onlySetter = "fisk";
-  new self::C::•().{self::C::testC}(){() →* dynamic};
-  new self::D::•().{self::C::testD}(){() →* dynamic};
+  new self::C::•().{self::C::testC}(){() → dynamic};
+  new self::D::•().{self::C::testD}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/general/accessors.dart.weak.modular.expect b/pkg/front_end/testcases/general/accessors.dart.weak.modular.expect
index d09f07b..9e6c42b 100644
--- a/pkg/front_end/testcases/general/accessors.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/accessors.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -22,7 +22,7 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   set onlySetter(dynamic value) → void {
@@ -37,7 +37,7 @@
             ^^^^^^^^^^" in this{<unresolved>}.onlySetter);
       throw "No error thrown";
     }
-    on core::NoSuchMethodError* catch(final core::NoSuchMethodError* e) {
+    on core::NoSuchMethodError catch(final core::NoSuchMethodError e) {
       core::print("Expected error: ${e}");
     }
     this.{self::C::onlySetter} = "hest";
@@ -50,22 +50,12 @@
           ^^^^^^^^^^" in this{<unresolved>}.onlySetter);
     this.{self::C::onlySetter} = "hest";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  get onlySetter() → core::String*
+  get onlySetter() → core::String
     return "D.onlySetter called.";
   set onlySetter(dynamic value) → void {
     core::print("D.onlySetter called with ${value}.");
@@ -81,10 +71,10 @@
           ^^^^^^^^^^");
     throw "No error thrown";
   }
-  on core::NoSuchMethodError* catch(final core::NoSuchMethodError* e) {
+  on core::NoSuchMethodError catch(final core::NoSuchMethodError e) {
     core::print("Expected error: ${e}");
   }
   self::onlySetter = "fisk";
-  new self::C::•().{self::C::testC}(){() →* dynamic};
-  new self::D::•().{self::C::testD}(){() →* dynamic};
+  new self::C::•().{self::C::testC}(){() → dynamic};
+  new self::D::•().{self::C::testD}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/general/accessors.dart.weak.outline.expect b/pkg/front_end/testcases/general/accessors.dart.weak.outline.expect
index a0876da..c899f60 100644
--- a/pkg/front_end/testcases/general/accessors.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/accessors.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-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
     ;
   set onlySetter(dynamic value) → void
     ;
@@ -11,21 +11,11 @@
     ;
   method testD() → dynamic
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
-  get onlySetter() → core::String*
+  get onlySetter() → core::String
     ;
   set onlySetter(dynamic value) → void
     ;
diff --git a/pkg/front_end/testcases/general/accessors.dart.weak.transformed.expect b/pkg/front_end/testcases/general/accessors.dart.weak.transformed.expect
index d09f07b..9e6c42b 100644
--- a/pkg/front_end/testcases/general/accessors.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/accessors.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -22,7 +22,7 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
   set onlySetter(dynamic value) → void {
@@ -37,7 +37,7 @@
             ^^^^^^^^^^" in this{<unresolved>}.onlySetter);
       throw "No error thrown";
     }
-    on core::NoSuchMethodError* catch(final core::NoSuchMethodError* e) {
+    on core::NoSuchMethodError catch(final core::NoSuchMethodError e) {
       core::print("Expected error: ${e}");
     }
     this.{self::C::onlySetter} = "hest";
@@ -50,22 +50,12 @@
           ^^^^^^^^^^" in this{<unresolved>}.onlySetter);
     this.{self::C::onlySetter} = "hest";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  get onlySetter() → core::String*
+  get onlySetter() → core::String
     return "D.onlySetter called.";
   set onlySetter(dynamic value) → void {
     core::print("D.onlySetter called with ${value}.");
@@ -81,10 +71,10 @@
           ^^^^^^^^^^");
     throw "No error thrown";
   }
-  on core::NoSuchMethodError* catch(final core::NoSuchMethodError* e) {
+  on core::NoSuchMethodError catch(final core::NoSuchMethodError e) {
     core::print("Expected error: ${e}");
   }
   self::onlySetter = "fisk";
-  new self::C::•().{self::C::testC}(){() →* dynamic};
-  new self::D::•().{self::C::testD}(){() →* dynamic};
+  new self::C::•().{self::C::testC}(){() → dynamic};
+  new self::D::•().{self::C::testD}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/general/all_variances.dart b/pkg/front_end/testcases/general/all_variances.dart
index 8d98162..3f1a118 100644
--- a/pkg/front_end/testcases/general/all_variances.dart
+++ b/pkg/front_end/testcases/general/all_variances.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
+
 // The test checks how type parameters of different variances are serialized.
 
 typedef F<W, X, Y, Z> = X Function(Y, Z Function(Z));
diff --git a/pkg/front_end/testcases/general/all_variances.dart.textual_outline.expect b/pkg/front_end/testcases/general/all_variances.dart.textual_outline.expect
index e3a12d0..e174256 100644
--- a/pkg/front_end/testcases/general/all_variances.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/all_variances.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 typedef F<W, X, Y, Z> = X Function(Y, Z Function(Z));
 main() {}
diff --git a/pkg/front_end/testcases/general/all_variances.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/all_variances.dart.textual_outline_modelled.expect
index 5b8c061..487ff53 100644
--- a/pkg/front_end/testcases/general/all_variances.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/all_variances.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
 typedef F<W, X, Y, Z> = X Function(Y, Z Function(Z));
diff --git a/pkg/front_end/testcases/general/all_variances.dart.weak.expect b/pkg/front_end/testcases/general/all_variances.dart.weak.expect
index f7afd1b..daa49a0 100644
--- a/pkg/front_end/testcases/general/all_variances.dart.weak.expect
+++ b/pkg/front_end/testcases/general/all_variances.dart.weak.expect
@@ -1,6 +1,6 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<unrelated W extends core::Object* = dynamic, X extends core::Object* = dynamic, contravariant Y extends core::Object* = dynamic, invariant Z extends core::Object* = dynamic> = (Y*, (Z*) →* Z*) →* X*;
+typedef F<unrelated W extends core::Object? = dynamic, X extends core::Object? = dynamic, contravariant Y extends core::Object? = dynamic, invariant Z extends core::Object? = dynamic> = (Y%, (Z%) → Z%) → X%;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/all_variances.dart.weak.modular.expect b/pkg/front_end/testcases/general/all_variances.dart.weak.modular.expect
index f7afd1b..daa49a0 100644
--- a/pkg/front_end/testcases/general/all_variances.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/all_variances.dart.weak.modular.expect
@@ -1,6 +1,6 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<unrelated W extends core::Object* = dynamic, X extends core::Object* = dynamic, contravariant Y extends core::Object* = dynamic, invariant Z extends core::Object* = dynamic> = (Y*, (Z*) →* Z*) →* X*;
+typedef F<unrelated W extends core::Object? = dynamic, X extends core::Object? = dynamic, contravariant Y extends core::Object? = dynamic, invariant Z extends core::Object? = dynamic> = (Y%, (Z%) → Z%) → X%;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/all_variances.dart.weak.outline.expect b/pkg/front_end/testcases/general/all_variances.dart.weak.outline.expect
index 23f7ffa..40eee95 100644
--- a/pkg/front_end/testcases/general/all_variances.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/all_variances.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<unrelated W extends core::Object* = dynamic, X extends core::Object* = dynamic, contravariant Y extends core::Object* = dynamic, invariant Z extends core::Object* = dynamic> = (Y*, (Z*) →* Z*) →* X*;
+typedef F<unrelated W extends core::Object? = dynamic, X extends core::Object? = dynamic, contravariant Y extends core::Object? = dynamic, invariant Z extends core::Object? = dynamic> = (Y%, (Z%) → Z%) → X%;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/all_variances.dart.weak.transformed.expect b/pkg/front_end/testcases/general/all_variances.dart.weak.transformed.expect
index f7afd1b..daa49a0 100644
--- a/pkg/front_end/testcases/general/all_variances.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/all_variances.dart.weak.transformed.expect
@@ -1,6 +1,6 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F<unrelated W extends core::Object* = dynamic, X extends core::Object* = dynamic, contravariant Y extends core::Object* = dynamic, invariant Z extends core::Object* = dynamic> = (Y*, (Z*) →* Z*) →* X*;
+typedef F<unrelated W extends core::Object? = dynamic, X extends core::Object? = dynamic, contravariant Y extends core::Object? = dynamic, invariant Z extends core::Object? = dynamic> = (Y%, (Z%) → Z%) → X%;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/ambiguous_exports.dart b/pkg/front_end/testcases/general/ambiguous_exports.dart
index 1ee8c77..123d1dd 100644
--- a/pkg/front_end/testcases/general/ambiguous_exports.dart
+++ b/pkg/front_end/testcases/general/ambiguous_exports.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
+
 export 'hello.dart' show main;
 
 export 'map.dart' show main;
diff --git a/pkg/front_end/testcases/general/ambiguous_exports.dart.textual_outline.expect b/pkg/front_end/testcases/general/ambiguous_exports.dart.textual_outline.expect
index 88998de..7fe554b 100644
--- a/pkg/front_end/testcases/general/ambiguous_exports.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/ambiguous_exports.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 export 'hello.dart' show main;
 export 'map.dart' show main;
diff --git a/pkg/front_end/testcases/general/ambiguous_exports.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/ambiguous_exports.dart.textual_outline_modelled.expect
index 88998de..7fe554b 100644
--- a/pkg/front_end/testcases/general/ambiguous_exports.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/ambiguous_exports.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 export 'hello.dart' show main;
 export 'map.dart' show main;
diff --git a/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.expect b/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.expect
index 8155e8e..c4277c5 100644
--- a/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.expect
+++ b/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,9 +12,9 @@
 export "org-dartlang-testcase:///hello.dart" show main;
 export "org-dartlang-testcase:///map.dart" show main;
 
-static const field dynamic _exports# = #C1;
+static const field dynamic _exports# = #C1 /*isLegacy*/;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
@@ -22,7 +22,7 @@
   core::print("Hello, World!");
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.modular.expect b/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.modular.expect
index 8155e8e..c4277c5 100644
--- a/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,9 +12,9 @@
 export "org-dartlang-testcase:///hello.dart" show main;
 export "org-dartlang-testcase:///map.dart" show main;
 
-static const field dynamic _exports# = #C1;
+static const field dynamic _exports# = #C1 /*isLegacy*/;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
@@ -22,7 +22,7 @@
   core::print("Hello, World!");
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.outline.expect b/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.outline.expect
index 8f8c65a..97b23de 100644
--- a/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,15 +11,15 @@
 export "org-dartlang-testcase:///hello.dart" show main;
 export "org-dartlang-testcase:///map.dart" show main;
 
-static const field dynamic _exports# = "{\"main\":\"'main' is exported from both 'pkg/front_end/testcases/general/hello.dart' and 'pkg/front_end/testcases/general/map.dart'.\"}";
+static const field dynamic _exports# = "{\"main\":\"'main' is exported from both 'pkg/front_end/testcases/general/hello.dart' and 'pkg/front_end/testcases/general/map.dart'.\"}" /*isLegacy*/;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 
 static method main() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.transformed.expect b/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.transformed.expect
index 8155e8e..c4277c5 100644
--- a/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/ambiguous_exports.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -12,9 +12,9 @@
 export "org-dartlang-testcase:///hello.dart" show main;
 export "org-dartlang-testcase:///map.dart" show main;
 
-static const field dynamic _exports# = #C1;
+static const field dynamic _exports# = #C1 /*isLegacy*/;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
@@ -22,7 +22,7 @@
   core::print("Hello, World!");
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/general/annotation_eof.dart b/pkg/front_end/testcases/general/annotation_eof.dart
index 0a6ab32..55b8bb0 100644
--- a/pkg/front_end/testcases/general/annotation_eof.dart
+++ b/pkg/front_end/testcases/general/annotation_eof.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() {
   print('There is a dangling annotation at the end of this file');
 }
diff --git a/pkg/front_end/testcases/general/annotation_eof.dart.textual_outline.expect b/pkg/front_end/testcases/general/annotation_eof.dart.textual_outline.expect
index f6bb0c3..a1a8776 100644
--- a/pkg/front_end/testcases/general/annotation_eof.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/annotation_eof.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
 @AnnotationAtEOF
diff --git a/pkg/front_end/testcases/general/annotation_eof.dart.weak.expect b/pkg/front_end/testcases/general/annotation_eof.dart.weak.expect
index f4d0e53..bde2743 100644
--- a/pkg/front_end/testcases/general/annotation_eof.dart.weak.expect
+++ b/pkg/front_end/testcases/general/annotation_eof.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/general/annotation_eof.dart.weak.modular.expect b/pkg/front_end/testcases/general/annotation_eof.dart.weak.modular.expect
index f4d0e53..bde2743 100644
--- a/pkg/front_end/testcases/general/annotation_eof.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/annotation_eof.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/general/annotation_eof.dart.weak.outline.expect b/pkg/front_end/testcases/general/annotation_eof.dart.weak.outline.expect
index 6c6eddf..29c5fd5 100644
--- a/pkg/front_end/testcases/general/annotation_eof.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/annotation_eof.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/general/annotation_eof.dart.weak.transformed.expect b/pkg/front_end/testcases/general/annotation_eof.dart.weak.transformed.expect
index f4d0e53..bde2743 100644
--- a/pkg/front_end/testcases/general/annotation_eof.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/annotation_eof.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/general/annotation_on_enum_values.dart b/pkg/front_end/testcases/general/annotation_on_enum_values.dart
index a992a24..7e7fca2 100644
--- a/pkg/front_end/testcases/general/annotation_on_enum_values.dart
+++ b/pkg/front_end/testcases/general/annotation_on_enum_values.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
+
 // This test checks that annotations on enum values are preserved by the
 // compiler.
 
diff --git a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline.expect b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline.expect
index acd4589..42c4aa9 100644
--- a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 const int hest = 42;
 
 class Fisk<T> {
diff --git a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline_modelled.expect
index e371c97..1866609 100644
--- a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Fisk<T> {
   const Fisk.fisk(this.x);
   final T x;
diff --git a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.expect b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.expect
index 5144c47..68a491f 100644
--- a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.expect
+++ b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.expect
@@ -1,48 +1,27 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class Fisk<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  final field self::Fisk::T* x;
-  const constructor fisk(self::Fisk::T* x) → self::Fisk<self::Fisk::T*>*
+class Fisk<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  final field self::Fisk::T% x;
+  const constructor fisk(self::Fisk::T% x) → self::Fisk<self::Fisk::T%>
     : self::Fisk::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
 }
 class Foo extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::Foo*>* values = #C10;
+  static const field core::List<self::Foo> values = #C10;
   @#C11
-  static const field self::Foo* bar = #C3;
+  static const field self::Foo bar = #C3;
   @#C12
-  static const field self::Foo* baz = #C6;
-  static const field self::Foo* cafebabe = #C9;
-  const constructor •(core::int* index, core::String* name) → self::Foo*
+  static const field self::Foo baz = #C6;
+  static const field self::Foo cafebabe = #C9;
+  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 const field core::int* hest = #C11;
+static const field core::int hest = #C11;
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.modular.expect b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.modular.expect
index 5144c47..68a491f 100644
--- a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.modular.expect
@@ -1,48 +1,27 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class Fisk<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  final field self::Fisk::T* x;
-  const constructor fisk(self::Fisk::T* x) → self::Fisk<self::Fisk::T*>*
+class Fisk<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  final field self::Fisk::T% x;
+  const constructor fisk(self::Fisk::T% x) → self::Fisk<self::Fisk::T%>
     : self::Fisk::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
 }
 class Foo extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::Foo*>* values = #C10;
+  static const field core::List<self::Foo> values = #C10;
   @#C11
-  static const field self::Foo* bar = #C3;
+  static const field self::Foo bar = #C3;
   @#C12
-  static const field self::Foo* baz = #C6;
-  static const field self::Foo* cafebabe = #C9;
-  const constructor •(core::int* index, core::String* name) → self::Foo*
+  static const field self::Foo baz = #C6;
+  static const field self::Foo cafebabe = #C9;
+  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 const field core::int* hest = #C11;
+static const field core::int hest = #C11;
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.outline.expect b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.outline.expect
index e14c553..42e2727 100644
--- a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.outline.expect
@@ -1,48 +1,27 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class Fisk<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  final field self::Fisk::T* x;
-  const constructor fisk(self::Fisk::T* x) → self::Fisk<self::Fisk::T*>*
+class Fisk<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  final field self::Fisk::T% x;
+  const constructor fisk(self::Fisk::T% x) → self::Fisk<self::Fisk::T%>
     : self::Fisk::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
 }
 class Foo extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::Foo*>* values = const <self::Foo*>[self::Foo::bar, self::Foo::baz, self::Foo::cafebabe];
+  static const field core::List<self::Foo> values = const <self::Foo>[self::Foo::bar, self::Foo::baz, self::Foo::cafebabe];
   @self::hest
-  static const field self::Foo* bar = const self::Foo::•(0, "bar");
-  @self::Fisk::fisk<core::int*>(self::hest)
-  static const field self::Foo* baz = const self::Foo::•(1, "baz");
-  static const field self::Foo* cafebabe = const self::Foo::•(2, "cafebabe");
-  const constructor •(core::int* index, core::String* name) → self::Foo*
+  static const field self::Foo bar = const self::Foo::•(0, "bar");
+  @self::Fisk::fisk<core::int>(self::hest)
+  static const field self::Foo baz = const self::Foo::•(1, "baz");
+  static const field self::Foo cafebabe = const self::Foo::•(2, "cafebabe");
+  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 const field core::int* hest = 42;
+static const field core::int hest = 42;
 static method main() → dynamic
   ;
 
diff --git a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.transformed.expect b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.transformed.expect
index 5144c47..68a491f 100644
--- a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.weak.transformed.expect
@@ -1,48 +1,27 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class Fisk<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  final field self::Fisk::T* x;
-  const constructor fisk(self::Fisk::T* x) → self::Fisk<self::Fisk::T*>*
+class Fisk<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  final field self::Fisk::T% x;
+  const constructor fisk(self::Fisk::T% x) → self::Fisk<self::Fisk::T%>
     : self::Fisk::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
 }
 class Foo extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::Foo*>* values = #C10;
+  static const field core::List<self::Foo> values = #C10;
   @#C11
-  static const field self::Foo* bar = #C3;
+  static const field self::Foo bar = #C3;
   @#C12
-  static const field self::Foo* baz = #C6;
-  static const field self::Foo* cafebabe = #C9;
-  const constructor •(core::int* index, core::String* name) → self::Foo*
+  static const field self::Foo baz = #C6;
+  static const field self::Foo cafebabe = #C9;
+  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 const field core::int* hest = #C11;
+static const field core::int hest = #C11;
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/general/annotation_top.dart b/pkg/front_end/testcases/general/annotation_top.dart
index ee7490b..b3601f6 100644
--- a/pkg/front_end/testcases/general/annotation_top.dart
+++ b/pkg/front_end/testcases/general/annotation_top.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
+
 @a
 @A(1)
 library test;
@@ -26,7 +26,7 @@
 
 @a
 @A(3)
-int f1, f2;
+int? f1, f2;
 
 @a
 @A(4)
diff --git a/pkg/front_end/testcases/general/annotation_top.dart.textual_outline.expect b/pkg/front_end/testcases/general/annotation_top.dart.textual_outline.expect
index 2135285..e016597 100644
--- a/pkg/front_end/testcases/general/annotation_top.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/annotation_top.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 @a
 @A(1)
 library test;
@@ -21,7 +20,7 @@
 typedef F2 = void Function();
 @a
 @A(3)
-int f1, f2;
+int? f1, f2;
 @a
 @A(4)
 void main() {}
diff --git a/pkg/front_end/testcases/general/annotation_top.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/annotation_top.dart.textual_outline_modelled.expect
index 09e49c6..1d26ed8 100644
--- a/pkg/front_end/testcases/general/annotation_top.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/annotation_top.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 @a
 @A(1)
 library test;
@@ -14,7 +13,7 @@
 const Object a = const Object();
 @a
 @A(3)
-int f1, f2;
+int? f1, f2;
 @a
 @A(3)
 typedef F2 = void Function();
diff --git a/pkg/front_end/testcases/general/annotation_top.dart.weak.expect b/pkg/front_end/testcases/general/annotation_top.dart.weak.expect
index b8fa4b8..c2da223 100644
--- a/pkg/front_end/testcases/general/annotation_top.dart.weak.expect
+++ b/pkg/front_end/testcases/general/annotation_top.dart.weak.expect
@@ -1,54 +1,34 @@
 @#C1
 @#C2
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 @#C1
 @#C2
-typedef F1 = () →* void;
+typedef F1 = () → void;
 @#C1
 @#C2
-typedef F2 = () →* void;
+typedef F2 = () → void;
 class A extends core::Object /*hasConstConstructor*/  {
-  const constructor •(core::int* value) → self::A*
+  const constructor •(core::int value) → 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
 }
 @#C1
 @#C2
 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 const field core::Object* a = #C1;
+static const field core::Object a = #C1;
 @#C1
 @#C2
-static field core::int* f1;
+static field core::int? f1;
 @#C1
 @#C2
-static field core::int* f2;
+static field core::int? f2;
 @#C1
 @#C2
 static method main() → void {}
diff --git a/pkg/front_end/testcases/general/annotation_top.dart.weak.modular.expect b/pkg/front_end/testcases/general/annotation_top.dart.weak.modular.expect
index b8fa4b8..c2da223 100644
--- a/pkg/front_end/testcases/general/annotation_top.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/annotation_top.dart.weak.modular.expect
@@ -1,54 +1,34 @@
 @#C1
 @#C2
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 @#C1
 @#C2
-typedef F1 = () →* void;
+typedef F1 = () → void;
 @#C1
 @#C2
-typedef F2 = () →* void;
+typedef F2 = () → void;
 class A extends core::Object /*hasConstConstructor*/  {
-  const constructor •(core::int* value) → self::A*
+  const constructor •(core::int value) → 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
 }
 @#C1
 @#C2
 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 const field core::Object* a = #C1;
+static const field core::Object a = #C1;
 @#C1
 @#C2
-static field core::int* f1;
+static field core::int? f1;
 @#C1
 @#C2
-static field core::int* f2;
+static field core::int? f2;
 @#C1
 @#C2
 static method main() → void {}
diff --git a/pkg/front_end/testcases/general/annotation_top.dart.weak.outline.expect b/pkg/front_end/testcases/general/annotation_top.dart.weak.outline.expect
index f0fe7fb..d31937d 100644
--- a/pkg/front_end/testcases/general/annotation_top.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/annotation_top.dart.weak.outline.expect
@@ -1,53 +1,33 @@
 @test::a
 @test::A::•(1)
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 @self::a
 @self::A::•(2)
-typedef F1 = () →* void;
+typedef F1 = () → void;
 @self::a
 @self::A::•(3)
-typedef F2 = () →* void;
+typedef F2 = () → void;
 class A extends core::Object /*hasConstConstructor*/  {
-  const constructor •(core::int* value) → self::A*
+  const constructor •(core::int value) → 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
 }
 @self::a
 @self::A::•(2)
 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 const field core::Object* a = const core::Object::•();
+static const field core::Object a = const core::Object::•();
 @self::a
 @self::A::•(3)
-static field core::int* f1;
+static field core::int? f1;
 @self::a
 @self::A::•(3)
-static field core::int* f2;
+static field core::int? f2;
 @self::a
 @self::A::•(4)
 static method main() → void
diff --git a/pkg/front_end/testcases/general/annotation_top.dart.weak.transformed.expect b/pkg/front_end/testcases/general/annotation_top.dart.weak.transformed.expect
index b8fa4b8..c2da223 100644
--- a/pkg/front_end/testcases/general/annotation_top.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/annotation_top.dart.weak.transformed.expect
@@ -1,54 +1,34 @@
 @#C1
 @#C2
-library test;
+library test /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 @#C1
 @#C2
-typedef F1 = () →* void;
+typedef F1 = () → void;
 @#C1
 @#C2
-typedef F2 = () →* void;
+typedef F2 = () → void;
 class A extends core::Object /*hasConstConstructor*/  {
-  const constructor •(core::int* value) → self::A*
+  const constructor •(core::int value) → 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
 }
 @#C1
 @#C2
 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 const field core::Object* a = #C1;
+static const field core::Object a = #C1;
 @#C1
 @#C2
-static field core::int* f1;
+static field core::int? f1;
 @#C1
 @#C2
-static field core::int* f2;
+static field core::int? f2;
 @#C1
 @#C2
 static method main() → void {}
diff --git a/pkg/front_end/testcases/general/annotation_typedef_formals.dart b/pkg/front_end/testcases/general/annotation_typedef_formals.dart
index 1eb641f..bfa05d7 100644
--- a/pkg/front_end/testcases/general/annotation_typedef_formals.dart
+++ b/pkg/front_end/testcases/general/annotation_typedef_formals.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
+
 // This test checks that the compiler handles annotations on formals of
 // typedefs.
 
diff --git a/pkg/front_end/testcases/general/annotation_typedef_formals.dart.textual_outline.expect b/pkg/front_end/testcases/general/annotation_typedef_formals.dart.textual_outline.expect
index 85560f8..15fb5d5 100644
--- a/pkg/front_end/testcases/general/annotation_typedef_formals.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/annotation_typedef_formals.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 const int foo = 21;
 const int bar = 42;
 const int baz = 84;
diff --git a/pkg/front_end/testcases/general/annotation_typedef_formals.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/annotation_typedef_formals.dart.textual_outline_modelled.expect
index 38e9070..b301156 100644
--- a/pkg/front_end/testcases/general/annotation_typedef_formals.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/annotation_typedef_formals.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 const int bar = 42;
 const int baz = 84;
 const int foo = 21;
diff --git a/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.expect b/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.expect
index d6f9911..44bd339 100644
--- a/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.expect
+++ b/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.expect
@@ -1,12 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F = (@#C1 core::int* x, core::num* y, {@#C2 @#C3 core::String* z, core::Object* w}) →* void;
-typedef G = (@#C1 core::int* a, core::num* b, [@#C2 @#C3 core::String* c, core::Object* d]) →* void;
-static const field core::int* foo = #C1;
-static const field core::int* bar = #C2;
-static const field core::int* baz = #C3;
+typedef F = (@#C1 core::int x, core::num y, {@#C2 @#C3 core::String z, core::Object w}) → void;
+typedef G = (@#C1 core::int a, core::num b, [@#C2 @#C3 core::String c, core::Object d]) → void;
+static const field core::int foo = #C1;
+static const field core::int bar = #C2;
+static const field core::int baz = #C3;
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.modular.expect b/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.modular.expect
index d6f9911..44bd339 100644
--- a/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F = (@#C1 core::int* x, core::num* y, {@#C2 @#C3 core::String* z, core::Object* w}) →* void;
-typedef G = (@#C1 core::int* a, core::num* b, [@#C2 @#C3 core::String* c, core::Object* d]) →* void;
-static const field core::int* foo = #C1;
-static const field core::int* bar = #C2;
-static const field core::int* baz = #C3;
+typedef F = (@#C1 core::int x, core::num y, {@#C2 @#C3 core::String z, core::Object w}) → void;
+typedef G = (@#C1 core::int a, core::num b, [@#C2 @#C3 core::String c, core::Object d]) → void;
+static const field core::int foo = #C1;
+static const field core::int bar = #C2;
+static const field core::int baz = #C3;
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.outline.expect b/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.outline.expect
index c1deefb..e3a44ee 100644
--- a/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F = (core::int*, core::num*, {w: core::Object*, z: core::String*}) →* void;
-typedef G = (core::int*, core::num*, [core::String*, core::Object*]) →* void;
-static const field core::int* foo = 21;
-static const field core::int* bar = 42;
-static const field core::int* baz = 84;
+typedef F = (core::int, core::num, {w: core::Object, z: core::String}) → void;
+typedef G = (core::int, core::num, [core::String, core::Object]) → void;
+static const field core::int foo = 21;
+static const field core::int bar = 42;
+static const field core::int baz = 84;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.transformed.expect b/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.transformed.expect
index d6f9911..44bd339 100644
--- a/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/annotation_typedef_formals.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F = (@#C1 core::int* x, core::num* y, {@#C2 @#C3 core::String* z, core::Object* w}) →* void;
-typedef G = (@#C1 core::int* a, core::num* b, [@#C2 @#C3 core::String* c, core::Object* d]) →* void;
-static const field core::int* foo = #C1;
-static const field core::int* bar = #C2;
-static const field core::int* baz = #C3;
+typedef F = (@#C1 core::int x, core::num y, {@#C2 @#C3 core::String z, core::Object w}) → void;
+typedef G = (@#C1 core::int a, core::num b, [@#C2 @#C3 core::String c, core::Object d]) → void;
+static const field core::int foo = #C1;
+static const field core::int bar = #C2;
+static const field core::int baz = #C3;
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart b/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart
index 81560dc..64d7e03 100644
--- a/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart
+++ b/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.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
+
 // This test checks that the annotation on a formal parameter of a typedef is
 // resolved to the top-level constant, and not to the parameter itself in case
 // of a name match.
diff --git a/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.textual_outline.expect b/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.textual_outline.expect
index 2549290..31a5a66 100644
--- a/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 const int app = 0;
 typedef int F(@app int app);
 main() {}
diff --git a/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.textual_outline_modelled.expect
index af7fca0..e353a08 100644
--- a/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 const int app = 0;
 main() {}
 typedef int F(@app int app);
diff --git a/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.expect b/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.expect
index 9bab9c9..95d7ed5 100644
--- a/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.expect
+++ b/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F = (@#C1 core::int* app) →* core::int*;
-static const field core::int* app = #C1;
+typedef F = (@#C1 core::int app) → core::int;
+static const field core::int app = #C1;
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.modular.expect b/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.modular.expect
index 9bab9c9..95d7ed5 100644
--- a/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F = (@#C1 core::int* app) →* core::int*;
-static const field core::int* app = #C1;
+typedef F = (@#C1 core::int app) → core::int;
+static const field core::int app = #C1;
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.outline.expect b/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.outline.expect
index 4c75196..f4adaf4 100644
--- a/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F = (core::int*) →* core::int*;
-static const field core::int* app = 0;
+typedef F = (core::int) → core::int;
+static const field core::int app = 0;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.transformed.expect b/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.transformed.expect
index 9bab9c9..95d7ed5 100644
--- a/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/annotation_typedef_formals_resolution.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef F = (@#C1 core::int* app) →* core::int*;
-static const field core::int* app = #C1;
+typedef F = (@#C1 core::int app) → core::int;
+static const field core::int app = #C1;
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/general/annotation_variable_declaration.dart b/pkg/front_end/testcases/general/annotation_variable_declaration.dart
index 7635fa4..82ff403 100644
--- a/pkg/front_end/testcases/general/annotation_variable_declaration.dart
+++ b/pkg/front_end/testcases/general/annotation_variable_declaration.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-// @dart=2.9
+
 const int foo = 42;
 
 class Bar {
@@ -12,7 +12,7 @@
 class Baz {
   Baz(@foo constructorFormal);
 
-  factory Baz.bazFactory(@foo factoryFormal) => null;
+  factory Baz.bazFactory(@foo factoryFormal) => throw '';
 
   fisk(@foo formal1, @Bar() formal2, @Bar.named(foo) formal3,
       @foo @Bar.named(foo) formal4,
diff --git a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.textual_outline.expect
index 788c674..82a6689 100644
--- a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 const int foo = 42;
 
 class Bar {
@@ -8,7 +7,7 @@
 
 class Baz {
   Baz(@foo constructorFormal);
-  factory Baz.bazFactory(@foo factoryFormal) => null;
+  factory Baz.bazFactory(@foo factoryFormal) => throw '';
   fisk(@foo formal1, @Bar() formal2, @Bar.named(foo) formal3,
       @foo @Bar.named(foo) formal4,
       [@foo optional]) {}
diff --git a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.textual_outline_modelled.expect
index cbd062c..a836c90 100644
--- a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Bar {
   const Bar();
   const Bar.named(x);
@@ -6,7 +5,7 @@
 
 class Baz {
   Baz(@foo constructorFormal);
-  factory Baz.bazFactory(@foo factoryFormal) => null;
+  factory Baz.bazFactory(@foo factoryFormal) => throw '';
   fisk(@foo formal1, @Bar() formal2, @Bar.named(foo) formal3,
       @foo @Bar.named(foo) formal4,
       [@foo optional]) {}
diff --git a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.expect b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.expect
index de080e6..d111b25 100644
--- a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.expect
+++ b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.expect
@@ -1,58 +1,38 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef hest_t = ({@#C1 dynamic named}) →* dynamic;
+typedef hest_t = ({@#C1 dynamic named}) → dynamic;
 class Bar extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::Bar*
+  const constructor •() → self::Bar
     : super core::Object::•()
     ;
-  const constructor named(dynamic x) → self::Bar*
+  const constructor named(dynamic x) → self::Bar
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Baz extends core::Object {
-  constructor •(@#C1 dynamic constructorFormal) → self::Baz*
+  constructor •(@#C1 dynamic constructorFormal) → self::Baz
     : super core::Object::•()
     ;
-  static factory bazFactory(@#C1 dynamic factoryFormal) → self::Baz*
-    return null;
+  static factory bazFactory(@#C1 dynamic factoryFormal) → self::Baz
+    return throw "";
   method fisk(@#C1 dynamic formal1, @#C2 dynamic formal2, @#C2 dynamic formal3, @#C1 @#C2 dynamic formal4, [@#C1 dynamic optional = #C3]) → dynamic {
     @#C1 dynamic local1;
     @#C2 dynamic local2;
     @#C2 dynamic local3;
     @#C1 @#C2 dynamic local4;
-    @#C1 core::String* localWithInitializer = "hello";
+    @#C1 core::String localWithInitializer = "hello";
     @#C1 @#C2 dynamic localGroupPart1;
     @#C1 @#C2 dynamic localGroupPart2;
     function naebdyr(@#C1 dynamic nestedFormal) → Null
       return null;
-    (dynamic) →* Null roedmus = (@#C1 dynamic closureFormal) → Null => null;
+    (dynamic) → Null roedmus = (@#C1 dynamic closureFormal) → Null => null;
   }
   method hest({@#C1 dynamic named = #C3}) → 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 const field core::int* foo = #C1;
+static const field core::int foo = #C1;
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.modular.expect
index de080e6..d111b25 100644
--- a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.modular.expect
@@ -1,58 +1,38 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef hest_t = ({@#C1 dynamic named}) →* dynamic;
+typedef hest_t = ({@#C1 dynamic named}) → dynamic;
 class Bar extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::Bar*
+  const constructor •() → self::Bar
     : super core::Object::•()
     ;
-  const constructor named(dynamic x) → self::Bar*
+  const constructor named(dynamic x) → self::Bar
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Baz extends core::Object {
-  constructor •(@#C1 dynamic constructorFormal) → self::Baz*
+  constructor •(@#C1 dynamic constructorFormal) → self::Baz
     : super core::Object::•()
     ;
-  static factory bazFactory(@#C1 dynamic factoryFormal) → self::Baz*
-    return null;
+  static factory bazFactory(@#C1 dynamic factoryFormal) → self::Baz
+    return throw "";
   method fisk(@#C1 dynamic formal1, @#C2 dynamic formal2, @#C2 dynamic formal3, @#C1 @#C2 dynamic formal4, [@#C1 dynamic optional = #C3]) → dynamic {
     @#C1 dynamic local1;
     @#C2 dynamic local2;
     @#C2 dynamic local3;
     @#C1 @#C2 dynamic local4;
-    @#C1 core::String* localWithInitializer = "hello";
+    @#C1 core::String localWithInitializer = "hello";
     @#C1 @#C2 dynamic localGroupPart1;
     @#C1 @#C2 dynamic localGroupPart2;
     function naebdyr(@#C1 dynamic nestedFormal) → Null
       return null;
-    (dynamic) →* Null roedmus = (@#C1 dynamic closureFormal) → Null => null;
+    (dynamic) → Null roedmus = (@#C1 dynamic closureFormal) → Null => null;
   }
   method hest({@#C1 dynamic named = #C3}) → 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 const field core::int* foo = #C1;
+static const field core::int foo = #C1;
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.outline.expect
index cf16cc9..2ca5306 100644
--- a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.outline.expect
@@ -1,46 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef hest_t = ({named: dynamic}) →* dynamic;
+typedef hest_t = ({named: dynamic}) → dynamic;
 class Bar extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::Bar*
+  const constructor •() → self::Bar
     : super core::Object::•()
     ;
-  const constructor named(dynamic x) → self::Bar*
+  const constructor named(dynamic x) → self::Bar
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Baz extends core::Object {
-  constructor •(dynamic constructorFormal) → self::Baz*
+  constructor •(dynamic constructorFormal) → self::Baz
     ;
-  static factory bazFactory(dynamic factoryFormal) → self::Baz*
+  static factory bazFactory(dynamic factoryFormal) → self::Baz
     ;
   method fisk(dynamic formal1, dynamic formal2, dynamic formal3, dynamic formal4, [dynamic optional]) → dynamic
     ;
   method hest({dynamic named}) → 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 const field core::int* foo = 42;
+static const field core::int foo = 42;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.transformed.expect
index de080e6..d111b25 100644
--- a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.weak.transformed.expect
@@ -1,58 +1,38 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef hest_t = ({@#C1 dynamic named}) →* dynamic;
+typedef hest_t = ({@#C1 dynamic named}) → dynamic;
 class Bar extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::Bar*
+  const constructor •() → self::Bar
     : super core::Object::•()
     ;
-  const constructor named(dynamic x) → self::Bar*
+  const constructor named(dynamic x) → self::Bar
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Baz extends core::Object {
-  constructor •(@#C1 dynamic constructorFormal) → self::Baz*
+  constructor •(@#C1 dynamic constructorFormal) → self::Baz
     : super core::Object::•()
     ;
-  static factory bazFactory(@#C1 dynamic factoryFormal) → self::Baz*
-    return null;
+  static factory bazFactory(@#C1 dynamic factoryFormal) → self::Baz
+    return throw "";
   method fisk(@#C1 dynamic formal1, @#C2 dynamic formal2, @#C2 dynamic formal3, @#C1 @#C2 dynamic formal4, [@#C1 dynamic optional = #C3]) → dynamic {
     @#C1 dynamic local1;
     @#C2 dynamic local2;
     @#C2 dynamic local3;
     @#C1 @#C2 dynamic local4;
-    @#C1 core::String* localWithInitializer = "hello";
+    @#C1 core::String localWithInitializer = "hello";
     @#C1 @#C2 dynamic localGroupPart1;
     @#C1 @#C2 dynamic localGroupPart2;
     function naebdyr(@#C1 dynamic nestedFormal) → Null
       return null;
-    (dynamic) →* Null roedmus = (@#C1 dynamic closureFormal) → Null => null;
+    (dynamic) → Null roedmus = (@#C1 dynamic closureFormal) → Null => null;
   }
   method hest({@#C1 dynamic named = #C3}) → 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 const field core::int* foo = #C1;
+static const field core::int foo = #C1;
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/general/argument.dart b/pkg/front_end/testcases/general/argument.dart
index e483d8a..8642ce9 100644
--- a/pkg/front_end/testcases/general/argument.dart
+++ b/pkg/front_end/testcases/general/argument.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 Base {}
 
 class Foo extends Base {}
diff --git a/pkg/front_end/testcases/general/argument.dart.textual_outline.expect b/pkg/front_end/testcases/general/argument.dart.textual_outline.expect
index c9367b3..09a1fdd 100644
--- a/pkg/front_end/testcases/general/argument.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/argument.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class Base {}
 
 class Foo extends Base {}
diff --git a/pkg/front_end/testcases/general/argument.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/argument.dart.textual_outline_modelled.expect
index 66bc084..3150668 100644
--- a/pkg/front_end/testcases/general/argument.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/argument.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class Base {}
 
 class Bar extends Base {}
diff --git a/pkg/front_end/testcases/general/argument.dart.weak.expect b/pkg/front_end/testcases/general/argument.dart.weak.expect
index e667193..e9814c5 100644
--- a/pkg/front_end/testcases/general/argument.dart.weak.expect
+++ b/pkg/front_end/testcases/general/argument.dart.weak.expect
@@ -1,34 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class Base extends core::Object {
-  synthetic constructor •() → self::Base*
+  synthetic constructor •() → self::Base
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Foo extends self::Base {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : super self::Base::•()
     ;
 }
 class Bar extends self::Base {
-  synthetic constructor •() → self::Bar*
+  synthetic constructor •() → self::Bar
     : super self::Base::•()
     ;
 }
 class Baz extends self::Base {
-  synthetic constructor •() → self::Baz*
+  synthetic constructor •() → self::Baz
     : super self::Base::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/argument.dart.weak.modular.expect b/pkg/front_end/testcases/general/argument.dart.weak.modular.expect
index e667193..e9814c5 100644
--- a/pkg/front_end/testcases/general/argument.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/argument.dart.weak.modular.expect
@@ -1,34 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class Base extends core::Object {
-  synthetic constructor •() → self::Base*
+  synthetic constructor •() → self::Base
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Foo extends self::Base {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : super self::Base::•()
     ;
 }
 class Bar extends self::Base {
-  synthetic constructor •() → self::Bar*
+  synthetic constructor •() → self::Bar
     : super self::Base::•()
     ;
 }
 class Baz extends self::Base {
-  synthetic constructor •() → self::Baz*
+  synthetic constructor •() → self::Baz
     : super self::Base::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/argument.dart.weak.outline.expect b/pkg/front_end/testcases/general/argument.dart.weak.outline.expect
index 4dc8fe1..c976045 100644
--- a/pkg/front_end/testcases/general/argument.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/argument.dart.weak.outline.expect
@@ -1,31 +1,21 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class Base extends core::Object {
-  synthetic constructor •() → self::Base*
+  synthetic constructor •() → self::Base
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Foo extends self::Base {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     ;
 }
 class Bar extends self::Base {
-  synthetic constructor •() → self::Bar*
+  synthetic constructor •() → self::Bar
     ;
 }
 class Baz extends self::Base {
-  synthetic constructor •() → self::Baz*
+  synthetic constructor •() → self::Baz
     ;
 }
 static method foo(dynamic x) → void
diff --git a/pkg/front_end/testcases/general/argument.dart.weak.transformed.expect b/pkg/front_end/testcases/general/argument.dart.weak.transformed.expect
index e667193..e9814c5 100644
--- a/pkg/front_end/testcases/general/argument.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/argument.dart.weak.transformed.expect
@@ -1,34 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class Base extends core::Object {
-  synthetic constructor •() → self::Base*
+  synthetic constructor •() → self::Base
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Foo extends self::Base {
-  synthetic constructor •() → self::Foo*
+  synthetic constructor •() → self::Foo
     : super self::Base::•()
     ;
 }
 class Bar extends self::Base {
-  synthetic constructor •() → self::Bar*
+  synthetic constructor •() → self::Bar
     : super self::Base::•()
     ;
 }
 class Baz extends self::Base {
-  synthetic constructor •() → self::Baz*
+  synthetic constructor •() → self::Baz
     : super self::Base::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/argument_mismatch.dart b/pkg/front_end/testcases/general/argument_mismatch.dart
index ed5aa97..ec2894e 100644
--- a/pkg/front_end/testcases/general/argument_mismatch.dart
+++ b/pkg/front_end/testcases/general/argument_mismatch.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() {}
 
 test() {
diff --git a/pkg/front_end/testcases/general/argument_mismatch.dart.textual_outline.expect b/pkg/front_end/testcases/general/argument_mismatch.dart.textual_outline.expect
index 0a62fd2..3b58842 100644
--- a/pkg/front_end/testcases/general/argument_mismatch.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/argument_mismatch.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 foo() {}
 test() {}
 main() {}
diff --git a/pkg/front_end/testcases/general/argument_mismatch.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/argument_mismatch.dart.textual_outline_modelled.expect
index 3bcd9ca..1391a6a 100644
--- a/pkg/front_end/testcases/general/argument_mismatch.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/argument_mismatch.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 foo() {}
 main() {}
 test() {}
diff --git a/pkg/front_end/testcases/general/argument_mismatch.dart.weak.expect b/pkg/front_end/testcases/general/argument_mismatch.dart.weak.expect
index b0d5171..4ad0d86 100644
--- a/pkg/front_end/testcases/general/argument_mismatch.dart.weak.expect
+++ b/pkg/front_end/testcases/general/argument_mismatch.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/general/argument_mismatch.dart.weak.modular.expect b/pkg/front_end/testcases/general/argument_mismatch.dart.weak.modular.expect
index b0d5171..4ad0d86 100644
--- a/pkg/front_end/testcases/general/argument_mismatch.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/argument_mismatch.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/general/argument_mismatch.dart.weak.outline.expect b/pkg/front_end/testcases/general/argument_mismatch.dart.weak.outline.expect
index 33d65b1..9bfb41e 100644
--- a/pkg/front_end/testcases/general/argument_mismatch.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/argument_mismatch.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method foo() → dynamic
diff --git a/pkg/front_end/testcases/general/argument_mismatch.dart.weak.transformed.expect b/pkg/front_end/testcases/general/argument_mismatch.dart.weak.transformed.expect
index b0d5171..4ad0d86 100644
--- a/pkg/front_end/testcases/general/argument_mismatch.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/argument_mismatch.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/general/arithmetic.dart b/pkg/front_end/testcases/general/arithmetic.dart
index d1d5bfb..9441f1c 100644
--- a/pkg/front_end/testcases/general/arithmetic.dart
+++ b/pkg/front_end/testcases/general/arithmetic.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
-
 int foo(int x, int y) {
   var z = x + y;
   return z << 4;
diff --git a/pkg/front_end/testcases/general/arithmetic.dart.textual_outline.expect b/pkg/front_end/testcases/general/arithmetic.dart.textual_outline.expect
index 96ca7d7..5c6fdec 100644
--- a/pkg/front_end/testcases/general/arithmetic.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/arithmetic.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 int foo(int x, int y) {}
 void loop(List xs) {}
 main() {}
diff --git a/pkg/front_end/testcases/general/arithmetic.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/arithmetic.dart.textual_outline_modelled.expect
index 19ae1c4..d2e4a11 100644
--- a/pkg/front_end/testcases/general/arithmetic.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/arithmetic.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 int foo(int x, int y) {}
 main() {}
 void loop(List xs) {}
diff --git a/pkg/front_end/testcases/general/arithmetic.dart.weak.expect b/pkg/front_end/testcases/general/arithmetic.dart.weak.expect
index 0e703fd..720607a 100644
--- a/pkg/front_end/testcases/general/arithmetic.dart.weak.expect
+++ b/pkg/front_end/testcases/general/arithmetic.dart.weak.expect
@@ -1,14 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method foo(core::int* x, core::int* y) → core::int* {
-  core::int* z = x.{core::num::+}(y){(core::num*) →* core::int*};
-  return z.{core::int::<<}(4){(core::int*) →* core::int*};
+static method foo(core::int x, core::int y) → core::int {
+  core::int z = x.{core::num::+}(y){(core::num) → core::int};
+  return z.{core::int::<<}(4){(core::int) → core::int};
 }
-static method loop(core::List<dynamic>* xs) → void {
-  core::int* _ = xs.{core::List::length}{core::int*};
-  for (core::int* i = 0; i.{core::num::<}(xs.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+static method loop(core::List<dynamic> xs) → void {
+  core::int _ = xs.{core::List::length}{core::int};
+  for (core::int i = 0; i.{core::num::<}(xs.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
   }
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/general/arithmetic.dart.weak.modular.expect b/pkg/front_end/testcases/general/arithmetic.dart.weak.modular.expect
index 0e703fd..720607a 100644
--- a/pkg/front_end/testcases/general/arithmetic.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/arithmetic.dart.weak.modular.expect
@@ -1,14 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method foo(core::int* x, core::int* y) → core::int* {
-  core::int* z = x.{core::num::+}(y){(core::num*) →* core::int*};
-  return z.{core::int::<<}(4){(core::int*) →* core::int*};
+static method foo(core::int x, core::int y) → core::int {
+  core::int z = x.{core::num::+}(y){(core::num) → core::int};
+  return z.{core::int::<<}(4){(core::int) → core::int};
 }
-static method loop(core::List<dynamic>* xs) → void {
-  core::int* _ = xs.{core::List::length}{core::int*};
-  for (core::int* i = 0; i.{core::num::<}(xs.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+static method loop(core::List<dynamic> xs) → void {
+  core::int _ = xs.{core::List::length}{core::int};
+  for (core::int i = 0; i.{core::num::<}(xs.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
   }
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/general/arithmetic.dart.weak.outline.expect b/pkg/front_end/testcases/general/arithmetic.dart.weak.outline.expect
index 6a82a38..e78ce7e 100644
--- a/pkg/front_end/testcases/general/arithmetic.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/arithmetic.dart.weak.outline.expect
@@ -1,10 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method foo(core::int* x, core::int* y) → core::int*
+static method foo(core::int x, core::int y) → core::int
   ;
-static method loop(core::List<dynamic>* xs) → void
+static method loop(core::List<dynamic> xs) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/arithmetic.dart.weak.transformed.expect b/pkg/front_end/testcases/general/arithmetic.dart.weak.transformed.expect
index 595172d..cedcaed 100644
--- a/pkg/front_end/testcases/general/arithmetic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/arithmetic.dart.weak.transformed.expect
@@ -1,14 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method foo(core::int* x, core::int* y) → core::int* {
-  core::int* z = x.{core::num::+}(y){(core::num*) →* core::int*};
-  return z.{core::int::<<}(4){(core::int*) →* core::int*};
+static method foo(core::int x, core::int y) → core::int {
+  core::int z = x.{core::num::+}(y){(core::num) → core::int};
+  return z.{core::int::<<}(4){(core::int) → core::int};
 }
-static method loop(core::List<dynamic>* xs) → void {
-  core::int* _ = xs.{core::List::length}{core::int*};
-  for (core::int* i = 0; i.{core::num::<}(xs.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+static method loop(core::List<dynamic> xs) → void {
+  core::int _ = xs.{core::List::length}{core::int};
+  for (core::int i = 0; i.{core::num::<}(xs.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
   }
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/general/arrow_function.dart b/pkg/front_end/testcases/general/arrow_function.dart
index f189150..0b8e57d 100644
--- a/pkg/front_end/testcases/general/arrow_function.dart
+++ b/pkg/front_end/testcases/general/arrow_function.dart
@@ -1,5 +1,5 @@
 // Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-// @dart=2.9
+
 main<T>() => () => T;
diff --git a/pkg/front_end/testcases/general/arrow_function.dart.textual_outline.expect b/pkg/front_end/testcases/general/arrow_function.dart.textual_outline.expect
index 3ac95b3..b66ca49 100644
--- a/pkg/front_end/testcases/general/arrow_function.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/arrow_function.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main<T>() => () => T;
diff --git a/pkg/front_end/testcases/general/arrow_function.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/arrow_function.dart.textual_outline_modelled.expect
index 3ac95b3..b66ca49 100644
--- a/pkg/front_end/testcases/general/arrow_function.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/arrow_function.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main<T>() => () => T;
diff --git a/pkg/front_end/testcases/general/arrow_function.dart.weak.expect b/pkg/front_end/testcases/general/arrow_function.dart.weak.expect
index 964b0b4..eb9e929 100644
--- a/pkg/front_end/testcases/general/arrow_function.dart.weak.expect
+++ b/pkg/front_end/testcases/general/arrow_function.dart.weak.expect
@@ -1,6 +1,6 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method main<T extends core::Object* = dynamic>() → dynamic
-  return () → core::Type* => self::main::T*;
+static method main<T extends core::Object? = dynamic>() → dynamic
+  return () → core::Type => self::main::T%;
diff --git a/pkg/front_end/testcases/general/arrow_function.dart.weak.modular.expect b/pkg/front_end/testcases/general/arrow_function.dart.weak.modular.expect
index 964b0b4..eb9e929 100644
--- a/pkg/front_end/testcases/general/arrow_function.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/arrow_function.dart.weak.modular.expect
@@ -1,6 +1,6 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method main<T extends core::Object* = dynamic>() → dynamic
-  return () → core::Type* => self::main::T*;
+static method main<T extends core::Object? = dynamic>() → dynamic
+  return () → core::Type => self::main::T%;
diff --git a/pkg/front_end/testcases/general/arrow_function.dart.weak.outline.expect b/pkg/front_end/testcases/general/arrow_function.dart.weak.outline.expect
index 5ea07d3..f19948f 100644
--- a/pkg/front_end/testcases/general/arrow_function.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/arrow_function.dart.weak.outline.expect
@@ -1,6 +1,6 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method main<T extends core::Object* = dynamic>() → dynamic
+static method main<T extends core::Object? = dynamic>() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/arrow_function.dart.weak.transformed.expect b/pkg/front_end/testcases/general/arrow_function.dart.weak.transformed.expect
index 964b0b4..eb9e929 100644
--- a/pkg/front_end/testcases/general/arrow_function.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/arrow_function.dart.weak.transformed.expect
@@ -1,6 +1,6 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method main<T extends core::Object* = dynamic>() → dynamic
-  return () → core::Type* => self::main::T*;
+static method main<T extends core::Object? = dynamic>() → dynamic
+  return () → core::Type => self::main::T%;
diff --git a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart
index e6ee1c2..dd3d5b3 100644
--- a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart
+++ b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-// @dart=2.9
+
 import "package:expect/expect.dart";
 
 class A {
diff --git a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.textual_outline.expect b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.textual_outline.expect
index 9cb355d..0ee755e 100644
--- a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/assign_to_initializing_formal.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/general/assign_to_initializing_formal.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.textual_outline_modelled.expect
index c0dd247..4d7dc12 100644
--- a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/assign_to_initializing_formal.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/general/assign_to_initializing_formal.dart.weak.expect b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.expect
index 49729e1..c7f1953 100644
--- a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.expect
+++ b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,22 +14,12 @@
 class A extends core::Object {
   field dynamic x;
   field dynamic y;
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → self::A
     : self::A::x = x, self::A::y = () → Null {
       invalid-expression "pkg/front_end/testcases/general/assign_to_initializing_formal.dart:13:11: Error: Can't assign to the final variable 'x'.
           x = 3;
           ^";
     }, super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.modular.expect b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.modular.expect
index 49729e1..c7f1953 100644
--- a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,22 +14,12 @@
 class A extends core::Object {
   field dynamic x;
   field dynamic y;
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → self::A
     : self::A::x = x, self::A::y = () → Null {
       invalid-expression "pkg/front_end/testcases/general/assign_to_initializing_formal.dart:13:11: Error: Can't assign to the final variable 'x'.
           x = 3;
           ^";
     }, super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.outline.expect b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.outline.expect
index ddf3acf..e59235d 100644
--- a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -7,18 +7,8 @@
 class A extends core::Object {
   field dynamic x;
   field dynamic y;
-  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
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.transformed.expect b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.transformed.expect
index 49729e1..c7f1953 100644
--- a/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/assign_to_initializing_formal.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,22 +14,12 @@
 class A extends core::Object {
   field dynamic x;
   field dynamic y;
-  constructor •(dynamic x) → self::A*
+  constructor •(dynamic x) → self::A
     : self::A::x = x, self::A::y = () → Null {
       invalid-expression "pkg/front_end/testcases/general/assign_to_initializing_formal.dart:13:11: Error: Can't assign to the final variable 'x'.
           x = 3;
           ^";
     }, super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/async_function.dart b/pkg/front_end/testcases/general/async_function.dart
index 3ba8a91..66a6f7e 100644
--- a/pkg/front_end/testcases/general/async_function.dart
+++ b/pkg/front_end/testcases/general/async_function.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// @dart=2.9
-
 import 'dart:async';
 
 Future<String> asyncString() async {
diff --git a/pkg/front_end/testcases/general/async_function.dart.textual_outline.expect b/pkg/front_end/testcases/general/async_function.dart.textual_outline.expect
index 8440a30..20ff937 100644
--- a/pkg/front_end/testcases/general/async_function.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/async_function.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:async';
 
 Future<String> asyncString() async {}
diff --git a/pkg/front_end/testcases/general/async_function.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/async_function.dart.textual_outline_modelled.expect
index c2af55e..2451edd 100644
--- a/pkg/front_end/testcases/general/async_function.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/async_function.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:async';
 
 Future<String> asyncString() async {}
diff --git a/pkg/front_end/testcases/general/async_function.dart.weak.expect b/pkg/front_end/testcases/general/async_function.dart.weak.expect
index 4a640a9..5e81b91 100644
--- a/pkg/front_end/testcases/general/async_function.dart.weak.expect
+++ b/pkg/front_end/testcases/general/async_function.dart.weak.expect
@@ -1,33 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:async" as asy;
 import "dart:core" as core;
 
 import "dart:async";
 
-static field core::List<core::String*>* stringList = <core::String*>["bar"];
-static method asyncString() → asy::Future<core::String*>* async {
+static field core::List<core::String> stringList = <core::String>["bar"];
+static method asyncString() → asy::Future<core::String> async {
   return "foo";
 }
-static method asyncString2() → asy::Future<core::String*>* async {
+static method asyncString2() → asy::Future<core::String> async {
   return self::asyncString();
 }
-static method syncStarString() → core::Iterable<core::String*>* sync* {
+static method syncStarString() → core::Iterable<core::String> sync* {
   yield "foo";
   yield* self::syncStarString2();
   yield* self::stringList;
 }
-static method syncStarString2() → core::Iterable<core::String*>* sync* {
+static method syncStarString2() → core::Iterable<core::String> sync* {
   yield "foo";
 }
-static method asyncStarString() → asy::Stream<core::String*>* async* {
+static method asyncStarString() → asy::Stream<core::String> async* {
   yield "foo";
   yield* self::asyncStarString2();
   yield await self::asyncString();
 }
-static method asyncStarString2() → asy::Stream<core::String*>* async* {
+static method asyncStarString2() → asy::Stream<core::String> async* {
   yield "bar";
 }
 static method main() → dynamic async {
-  core::String* str = await self::asyncString();
+  core::String str = await self::asyncString();
 }
diff --git a/pkg/front_end/testcases/general/async_function.dart.weak.modular.expect b/pkg/front_end/testcases/general/async_function.dart.weak.modular.expect
index 4a640a9..5e81b91 100644
--- a/pkg/front_end/testcases/general/async_function.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/async_function.dart.weak.modular.expect
@@ -1,33 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:async" as asy;
 import "dart:core" as core;
 
 import "dart:async";
 
-static field core::List<core::String*>* stringList = <core::String*>["bar"];
-static method asyncString() → asy::Future<core::String*>* async {
+static field core::List<core::String> stringList = <core::String>["bar"];
+static method asyncString() → asy::Future<core::String> async {
   return "foo";
 }
-static method asyncString2() → asy::Future<core::String*>* async {
+static method asyncString2() → asy::Future<core::String> async {
   return self::asyncString();
 }
-static method syncStarString() → core::Iterable<core::String*>* sync* {
+static method syncStarString() → core::Iterable<core::String> sync* {
   yield "foo";
   yield* self::syncStarString2();
   yield* self::stringList;
 }
-static method syncStarString2() → core::Iterable<core::String*>* sync* {
+static method syncStarString2() → core::Iterable<core::String> sync* {
   yield "foo";
 }
-static method asyncStarString() → asy::Stream<core::String*>* async* {
+static method asyncStarString() → asy::Stream<core::String> async* {
   yield "foo";
   yield* self::asyncStarString2();
   yield await self::asyncString();
 }
-static method asyncStarString2() → asy::Stream<core::String*>* async* {
+static method asyncStarString2() → asy::Stream<core::String> async* {
   yield "bar";
 }
 static method main() → dynamic async {
-  core::String* str = await self::asyncString();
+  core::String str = await self::asyncString();
 }
diff --git a/pkg/front_end/testcases/general/async_function.dart.weak.outline.expect b/pkg/front_end/testcases/general/async_function.dart.weak.outline.expect
index b2b99f7..44980f9 100644
--- a/pkg/front_end/testcases/general/async_function.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/async_function.dart.weak.outline.expect
@@ -1,22 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:async" as asy;
 import "dart:core" as core;
 
 import "dart:async";
 
-static field core::List<core::String*>* stringList;
-static method asyncString() → asy::Future<core::String*>* async 
+static field core::List<core::String> stringList;
+static method asyncString() → asy::Future<core::String> async 
   ;
-static method asyncString2() → asy::Future<core::String*>* async 
+static method asyncString2() → asy::Future<core::String> async 
   ;
-static method syncStarString() → core::Iterable<core::String*>* sync* 
+static method syncStarString() → core::Iterable<core::String> sync* 
   ;
-static method syncStarString2() → core::Iterable<core::String*>* sync* 
+static method syncStarString2() → core::Iterable<core::String> sync* 
   ;
-static method asyncStarString() → asy::Stream<core::String*>* async* 
+static method asyncStarString() → asy::Stream<core::String> async* 
   ;
-static method asyncStarString2() → asy::Stream<core::String*>* async* 
+static method asyncStarString2() → asy::Stream<core::String> async* 
   ;
 static method main() → dynamic async 
   ;
diff --git a/pkg/front_end/testcases/general/async_function.dart.weak.transformed.expect b/pkg/front_end/testcases/general/async_function.dart.weak.transformed.expect
index bba287b..cd8de28 100644
--- a/pkg/front_end/testcases/general/async_function.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/async_function.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,14 +6,14 @@
 
 import "dart:async";
 
-static field core::List<core::String*>* stringList = core::_GrowableList::_literal1<core::String*>("bar");
-static method asyncString() → asy::Future<core::String*>* /* originally async */ {
-  final asy::_Future<core::String*>* :async_future = new asy::_Future::•<core::String*>();
+static field core::List<core::String> stringList = core::_GrowableList::_literal1<core::String>("bar");
+static method asyncString() → asy::Future<core::String> /* originally async */ {
+  final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
   core::bool* :is_sync = false;
   core::String? :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 {
@@ -25,22 +25,22 @@
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method asyncString2() → asy::Future<core::String*>* /* originally async */ {
-  final asy::_Future<core::String*>* :async_future = new asy::_Future::•<core::String*>();
+static method asyncString2() → asy::Future<core::String> /* originally async */ {
+  final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
   core::bool* :is_sync = false;
-  FutureOr<core::String*>* :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  FutureOr<core::String>? :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 {
@@ -52,20 +52,20 @@
       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 syncStarString() → core::Iterable<core::String*>* /* originally sync* */ {
-  function :sync_op_gen() → (core::_SyncIterator<dynamic>*, dynamic, dynamic) →* core::bool* {
-    core::int* :await_jump_var = 0;
+static method syncStarString() → core::Iterable<core::String> /* 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} = "foo";
@@ -84,13 +84,13 @@
     }
     return :sync_op;
   }
-  return new core::_SyncIterable::•<core::String*>(:sync_op_gen);
+  return new core::_SyncIterable::•<core::String>(:sync_op_gen);
 }
-static method syncStarString2() → core::Iterable<core::String*>* /* originally sync* */ {
-  function :sync_op_gen() → (core::_SyncIterator<dynamic>*, dynamic, dynamic) →* core::bool* {
-    core::int* :await_jump_var = 0;
+static method syncStarString2() → core::Iterable<core::String> /* 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} = "foo";
@@ -101,14 +101,14 @@
     }
     return :sync_op;
   }
-  return new core::_SyncIterable::•<core::String*>(:sync_op_gen);
+  return new core::_SyncIterable::•<core::String>(:sync_op_gen);
 }
-static method asyncStarString() → asy::Stream<core::String*>* /* originally async* */ {
-  asy::_AsyncStarStreamController<core::String*>* :controller;
+static method asyncStarString() → asy::Stream<core::String> /* originally async* */ {
+  asy::_AsyncStarStreamController<core::String>? :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;
@@ -117,23 +117,23 @@
       try {
         #L3:
         {
-          if(:controller.{asy::_AsyncStarStreamController::add}("foo"){(core::String*) → core::bool})
+          if(:controller.{asy::_AsyncStarStreamController::add}("foo"){(core::String) → core::bool})
             return null;
           else
             [yield] null;
-          if(:controller.{asy::_AsyncStarStreamController::addStream}(self::asyncStarString2()){(asy::Stream<core::String*>) → core::bool})
+          if(:controller.{asy::_AsyncStarStreamController::addStream}(self::asyncStarString2()){(asy::Stream<core::String>) → core::bool})
             return null;
           else
             [yield] null;
           [yield] let dynamic #t1 = asy::_awaitHelper(self::asyncString(), :async_op_then, :async_op_error) in null;
-          if(:controller.{asy::_AsyncStarStreamController::add}(_in::unsafeCast<core::String*>(:result_or_exception)){(core::String*) → core::bool})
+          if(:controller.{asy::_AsyncStarStreamController::add}(_in::unsafeCast<core::String>(:result_or_exception)){(core::String) → core::bool})
             return null;
           else
             [yield] null;
         }
         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 {
@@ -141,16 +141,16 @@
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :controller = new asy::_AsyncStarStreamController::•<core::String*>(:async_op);
-  :controller_stream = :controller.{asy::_AsyncStarStreamController::stream}{asy::Stream<core::String*>};
+  :controller = new asy::_AsyncStarStreamController::•<core::String>(:async_op);
+  :controller_stream = :controller.{asy::_AsyncStarStreamController::stream}{asy::Stream<core::String>};
   return :controller_stream;
 }
-static method asyncStarString2() → asy::Stream<core::String*>* /* originally async* */ {
-  asy::_AsyncStarStreamController<core::String*>* :controller;
+static method asyncStarString2() → asy::Stream<core::String> /* originally async* */ {
+  asy::_AsyncStarStreamController<core::String>? :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;
@@ -159,14 +159,14 @@
       try {
         #L4:
         {
-          if(:controller.{asy::_AsyncStarStreamController::add}("bar"){(core::String*) → core::bool})
+          if(:controller.{asy::_AsyncStarStreamController::add}("bar"){(core::String) → core::bool})
             return null;
           else
             [yield] null;
         }
         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 {
@@ -174,17 +174,17 @@
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :controller = new asy::_AsyncStarStreamController::•<core::String*>(:async_op);
-  :controller_stream = :controller.{asy::_AsyncStarStreamController::stream}{asy::Stream<core::String*>};
+  :controller = new asy::_AsyncStarStreamController::•<core::String>(:async_op);
+  :controller_stream = :controller.{asy::_AsyncStarStreamController::stream}{asy::Stream<core::String>};
   return :controller_stream;
 }
 static method main() → dynamic /* originally async */ {
-  final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
+  final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   dynamic :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   dynamic :saved_try_context_var0;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
@@ -192,17 +192,17 @@
       #L5:
       {
         [yield] let dynamic #t2 = asy::_awaitHelper(self::asyncString(), :async_op_then, :async_op_error) in null;
-        core::String* str = _in::unsafeCast<core::String*>(:result_or_exception);
+        core::String str = _in::unsafeCast<core::String>(:result_or_exception);
       }
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
diff --git a/pkg/front_end/testcases/general/async_method_with_invalid_type.dart b/pkg/front_end/testcases/general/async_method_with_invalid_type.dart
index 1d6d599..83315cd 100644
--- a/pkg/front_end/testcases/general/async_method_with_invalid_type.dart
+++ b/pkg/front_end/testcases/general/async_method_with_invalid_type.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
-
 foo() async {
   Bar x;
   for (dynamic y in x.z) {}
diff --git a/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.textual_outline.expect b/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.textual_outline.expect
index 675b31e..e475901 100644
--- a/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 foo() async {}
 main() {}
diff --git a/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.textual_outline_modelled.expect
index 675b31e..e475901 100644
--- a/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 foo() async {}
 main() {}
diff --git a/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.expect b/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.expect
index 5472a32..05a55b2 100644
--- a/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.expect
+++ b/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/async_method_with_invalid_type.dart:8:3: Error: 'Bar' isn't a type.
+// pkg/front_end/testcases/general/async_method_with_invalid_type.dart:6:3: Error: 'Bar' isn't a type.
 //   Bar x;
 //   ^^^
 //
diff --git a/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.modular.expect b/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.modular.expect
index 5472a32..05a55b2 100644
--- a/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/async_method_with_invalid_type.dart:8:3: Error: 'Bar' isn't a type.
+// pkg/front_end/testcases/general/async_method_with_invalid_type.dart:6:3: Error: 'Bar' isn't a type.
 //   Bar x;
 //   ^^^
 //
diff --git a/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.outline.expect b/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.outline.expect
index b695053..9c7c616 100644
--- a/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method foo() → dynamic async 
diff --git a/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.transformed.expect b/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.transformed.expect
index ae5f661..5a6c5a5 100644
--- a/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/async_method_with_invalid_type.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/async_method_with_invalid_type.dart:8:3: Error: 'Bar' isn't a type.
+// pkg/front_end/testcases/general/async_method_with_invalid_type.dart:6:3: Error: 'Bar' isn't a type.
 //   Bar x;
 //   ^^^
 //
@@ -11,12 +11,12 @@
 import "dart:core" as core;
 
 static method foo() → 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;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
@@ -27,12 +27,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/general/async_nested.dart b/pkg/front_end/testcases/general/async_nested.dart
index 669f7f4..4369751 100644
--- a/pkg/front_end/testcases/general/async_nested.dart
+++ b/pkg/front_end/testcases/general/async_nested.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
+
 // This has been automatically generated by script
 // "async_nested_test_generator.dart".
 
@@ -32,7 +32,7 @@
 }
 
 class Node {
-  final List<Node> nested;
+  final List<Node>? nested;
   final String name;
 
   Node(this.name, [this.nested]) {}
diff --git a/pkg/front_end/testcases/general/async_nested.dart.textual_outline.expect b/pkg/front_end/testcases/general/async_nested.dart.textual_outline.expect
index 62c9c4d..0e8b16b 100644
--- a/pkg/front_end/testcases/general/async_nested.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/async_nested.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 import 'dart:async';
 
 void main() async {}
 
 class Node {
-  final List<Node> nested;
+  final List<Node>? nested;
   final String name;
   Node(this.name, [this.nested]) {}
   String toString() => '<$name:[${nested?.join(', ')}]>';
diff --git a/pkg/front_end/testcases/general/async_nested.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/async_nested.dart.textual_outline_modelled.expect
index d47e785..e5f9ca1 100644
--- a/pkg/front_end/testcases/general/async_nested.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/async_nested.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 import 'dart:async';
 
 class Node {
   Node(this.name, [this.nested]) {}
   String toString() => '<$name:[${nested?.join(', ')}]>';
-  final List<Node> nested;
+  final List<Node>? nested;
   final String name;
   toSimpleString() {}
 }
diff --git a/pkg/front_end/testcases/general/async_nested.dart.weak.expect b/pkg/front_end/testcases/general/async_nested.dart.weak.expect
index 48269f1..f7a0987 100644
--- a/pkg/front_end/testcases/general/async_nested.dart.weak.expect
+++ b/pkg/front_end/testcases/general/async_nested.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -6,32 +6,23 @@
 import "dart:async";
 
 class Node extends core::Object {
-  final field core::List<self::Node*>* nested;
-  final field core::String* name;
-  constructor •(core::String* name, [core::List<self::Node*>* nested = #C1]) → self::Node*
+  final field core::List<self::Node>? nested;
+  final field core::String name;
+  constructor •(core::String name, [core::List<self::Node>? nested = #C1]) → self::Node
     : self::Node::name = name, self::Node::nested = nested, super core::Object::•() {}
-  method toString() → core::String*
-    return "<${this.{self::Node::name}{core::String*}}:[${let final core::List<self::Node*>* #t1 = this.{self::Node::nested}{core::List<self::Node*>*} in #t1 == null ?{core::String*} null : #t1.{core::Iterable::join}(", "){([core::String*]) →* core::String*}}]>";
+  method toString() → core::String
+    return "<${this.{self::Node::name}{core::String}}:[${let final core::List<self::Node>? #t1 = this.{self::Node::nested}{core::List<self::Node>?} in #t1 == null ?{core::String?} null : #t1{core::List<self::Node>}.{core::Iterable::join}(", "){([core::String]) → core::String}}]>";
   method toSimpleString() → dynamic {
-    core::Iterable<dynamic>* tmp = let final core::List<self::Node*>* #t2 = this.{self::Node::nested}{core::List<self::Node*>*} in #t2 == null ?{core::Iterable<dynamic>*} null : #t2.{core::Iterable::map}<dynamic>((self::Node* child) → dynamic => child.{self::Node::toSimpleString}(){() →* dynamic}){((self::Node*) →* dynamic) →* core::Iterable<dynamic>*};
-    return "${this.{self::Node::name}{core::String*}} ${let final core::Iterable<dynamic>* #t3 = tmp in #t3 == null ?{core::String*} null : #t3.{core::Iterable::join}(" "){([core::String*]) →* core::String*}}".{core::String::trim}(){() →* core::String*};
+    core::Iterable<dynamic>? tmp = let final core::List<self::Node>? #t2 = this.{self::Node::nested}{core::List<self::Node>?} in #t2 == null ?{core::Iterable<dynamic>?} null : #t2{core::List<self::Node>}.{core::Iterable::map}<dynamic>((self::Node child) → dynamic => child.{self::Node::toSimpleString}(){() → dynamic}){((self::Node) → dynamic) → core::Iterable<dynamic>};
+    return "${this.{self::Node::name}{core::String}} ${let final core::Iterable<dynamic>? #t3 = tmp in #t3 == null ?{core::String?} null : #t3{core::Iterable<dynamic>}.{core::Iterable::join}(" "){([core::String]) → core::String}}".{core::String::trim}(){() → core::String};
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → void async {
-  core::String* expected = "1 2 3 4 5 6 7 8 9 10";
-  self::Node* node = new self::Node::•("1", <self::Node*>[new self::Node::•("2", <self::Node*>[]), await asy::Future::value<self::Node*>(new self::Node::•("3", <self::Node*>[await asy::Future::value<self::Node*>(new self::Node::•("4", <self::Node*>[new self::Node::•("5", <self::Node*>[await asy::Future::value<self::Node*>(new self::Node::•("6", <self::Node*>[await asy::Future::value<self::Node*>(new self::Node::•("7", <self::Node*>[]))])), await asy::Future::value<self::Node*>(new self::Node::•("8", <self::Node*>[])), await asy::Future::value<self::Node*>(new self::Node::•("9", <self::Node*>[]))])]))])), await asy::Future::value<self::Node*>(new self::Node::•("10", <self::Node*>[]))]);
-  core::String* actual = node.{self::Node::toSimpleString}(){() →* dynamic} as{TypeError,ForDynamic} core::String*;
+  core::String expected = "1 2 3 4 5 6 7 8 9 10";
+  self::Node node = new self::Node::•("1", <self::Node>[new self::Node::•("2", <self::Node>[]), await asy::Future::value<self::Node>(new self::Node::•("3", <self::Node>[await asy::Future::value<self::Node>(new self::Node::•("4", <self::Node>[new self::Node::•("5", <self::Node>[await asy::Future::value<self::Node>(new self::Node::•("6", <self::Node>[await asy::Future::value<self::Node>(new self::Node::•("7", <self::Node>[]))])), await asy::Future::value<self::Node>(new self::Node::•("8", <self::Node>[])), await asy::Future::value<self::Node>(new self::Node::•("9", <self::Node>[]))])]))])), await asy::Future::value<self::Node>(new self::Node::•("10", <self::Node>[]))]);
+  core::String actual = node.{self::Node::toSimpleString}(){() → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
   core::print(actual);
-  if(!(actual =={core::String::==}{(core::Object*) →* core::bool*} expected)) {
+  if(!(actual =={core::String::==}{(core::Object) → core::bool} expected)) {
     throw "Expected '${expected}' but got '${actual}'";
   }
 }
diff --git a/pkg/front_end/testcases/general/async_nested.dart.weak.modular.expect b/pkg/front_end/testcases/general/async_nested.dart.weak.modular.expect
index 48269f1..f7a0987 100644
--- a/pkg/front_end/testcases/general/async_nested.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/async_nested.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -6,32 +6,23 @@
 import "dart:async";
 
 class Node extends core::Object {
-  final field core::List<self::Node*>* nested;
-  final field core::String* name;
-  constructor •(core::String* name, [core::List<self::Node*>* nested = #C1]) → self::Node*
+  final field core::List<self::Node>? nested;
+  final field core::String name;
+  constructor •(core::String name, [core::List<self::Node>? nested = #C1]) → self::Node
     : self::Node::name = name, self::Node::nested = nested, super core::Object::•() {}
-  method toString() → core::String*
-    return "<${this.{self::Node::name}{core::String*}}:[${let final core::List<self::Node*>* #t1 = this.{self::Node::nested}{core::List<self::Node*>*} in #t1 == null ?{core::String*} null : #t1.{core::Iterable::join}(", "){([core::String*]) →* core::String*}}]>";
+  method toString() → core::String
+    return "<${this.{self::Node::name}{core::String}}:[${let final core::List<self::Node>? #t1 = this.{self::Node::nested}{core::List<self::Node>?} in #t1 == null ?{core::String?} null : #t1{core::List<self::Node>}.{core::Iterable::join}(", "){([core::String]) → core::String}}]>";
   method toSimpleString() → dynamic {
-    core::Iterable<dynamic>* tmp = let final core::List<self::Node*>* #t2 = this.{self::Node::nested}{core::List<self::Node*>*} in #t2 == null ?{core::Iterable<dynamic>*} null : #t2.{core::Iterable::map}<dynamic>((self::Node* child) → dynamic => child.{self::Node::toSimpleString}(){() →* dynamic}){((self::Node*) →* dynamic) →* core::Iterable<dynamic>*};
-    return "${this.{self::Node::name}{core::String*}} ${let final core::Iterable<dynamic>* #t3 = tmp in #t3 == null ?{core::String*} null : #t3.{core::Iterable::join}(" "){([core::String*]) →* core::String*}}".{core::String::trim}(){() →* core::String*};
+    core::Iterable<dynamic>? tmp = let final core::List<self::Node>? #t2 = this.{self::Node::nested}{core::List<self::Node>?} in #t2 == null ?{core::Iterable<dynamic>?} null : #t2{core::List<self::Node>}.{core::Iterable::map}<dynamic>((self::Node child) → dynamic => child.{self::Node::toSimpleString}(){() → dynamic}){((self::Node) → dynamic) → core::Iterable<dynamic>};
+    return "${this.{self::Node::name}{core::String}} ${let final core::Iterable<dynamic>? #t3 = tmp in #t3 == null ?{core::String?} null : #t3{core::Iterable<dynamic>}.{core::Iterable::join}(" "){([core::String]) → core::String}}".{core::String::trim}(){() → core::String};
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → void async {
-  core::String* expected = "1 2 3 4 5 6 7 8 9 10";
-  self::Node* node = new self::Node::•("1", <self::Node*>[new self::Node::•("2", <self::Node*>[]), await asy::Future::value<self::Node*>(new self::Node::•("3", <self::Node*>[await asy::Future::value<self::Node*>(new self::Node::•("4", <self::Node*>[new self::Node::•("5", <self::Node*>[await asy::Future::value<self::Node*>(new self::Node::•("6", <self::Node*>[await asy::Future::value<self::Node*>(new self::Node::•("7", <self::Node*>[]))])), await asy::Future::value<self::Node*>(new self::Node::•("8", <self::Node*>[])), await asy::Future::value<self::Node*>(new self::Node::•("9", <self::Node*>[]))])]))])), await asy::Future::value<self::Node*>(new self::Node::•("10", <self::Node*>[]))]);
-  core::String* actual = node.{self::Node::toSimpleString}(){() →* dynamic} as{TypeError,ForDynamic} core::String*;
+  core::String expected = "1 2 3 4 5 6 7 8 9 10";
+  self::Node node = new self::Node::•("1", <self::Node>[new self::Node::•("2", <self::Node>[]), await asy::Future::value<self::Node>(new self::Node::•("3", <self::Node>[await asy::Future::value<self::Node>(new self::Node::•("4", <self::Node>[new self::Node::•("5", <self::Node>[await asy::Future::value<self::Node>(new self::Node::•("6", <self::Node>[await asy::Future::value<self::Node>(new self::Node::•("7", <self::Node>[]))])), await asy::Future::value<self::Node>(new self::Node::•("8", <self::Node>[])), await asy::Future::value<self::Node>(new self::Node::•("9", <self::Node>[]))])]))])), await asy::Future::value<self::Node>(new self::Node::•("10", <self::Node>[]))]);
+  core::String actual = node.{self::Node::toSimpleString}(){() → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
   core::print(actual);
-  if(!(actual =={core::String::==}{(core::Object*) →* core::bool*} expected)) {
+  if(!(actual =={core::String::==}{(core::Object) → core::bool} expected)) {
     throw "Expected '${expected}' but got '${actual}'";
   }
 }
diff --git a/pkg/front_end/testcases/general/async_nested.dart.weak.outline.expect b/pkg/front_end/testcases/general/async_nested.dart.weak.outline.expect
index f2d2efa..60f8e3e 100644
--- a/pkg/front_end/testcases/general/async_nested.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/async_nested.dart.weak.outline.expect
@@ -1,27 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "dart:async";
 
 class Node extends core::Object {
-  final field core::List<self::Node*>* nested;
-  final field core::String* name;
-  constructor •(core::String* name, [core::List<self::Node*>* nested]) → self::Node*
+  final field core::List<self::Node>? nested;
+  final field core::String name;
+  constructor •(core::String name, [core::List<self::Node>? nested]) → self::Node
     ;
-  method toString() → core::String*
+  method toString() → core::String
     ;
   method toSimpleString() → 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 noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → void async 
   ;
diff --git a/pkg/front_end/testcases/general/async_nested.dart.weak.transformed.expect b/pkg/front_end/testcases/general/async_nested.dart.weak.transformed.expect
index 3a4b166..9082a3a 100644
--- a/pkg/front_end/testcases/general/async_nested.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/async_nested.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -7,70 +7,61 @@
 import "dart:async";
 
 class Node extends core::Object {
-  final field core::List<self::Node*>* nested;
-  final field core::String* name;
-  constructor •(core::String* name, [core::List<self::Node*>* nested = #C1]) → self::Node*
+  final field core::List<self::Node>? nested;
+  final field core::String name;
+  constructor •(core::String name, [core::List<self::Node>? nested = #C1]) → self::Node
     : self::Node::name = name, self::Node::nested = nested, super core::Object::•() {}
-  method toString() → core::String*
-    return "<${this.{self::Node::name}{core::String*}}:[${let final core::List<self::Node*>* #t1 = this.{self::Node::nested}{core::List<self::Node*>*} in #t1 == null ?{core::String*} null : #t1.{core::Iterable::join}(", "){([core::String*]) →* core::String*}}]>";
+  method toString() → core::String
+    return "<${this.{self::Node::name}{core::String}}:[${let final core::List<self::Node>? #t1 = this.{self::Node::nested}{core::List<self::Node>?} in #t1 == null ?{core::String?} null : #t1{core::List<self::Node>}.{core::Iterable::join}(", "){([core::String]) → core::String}}]>";
   method toSimpleString() → dynamic {
-    core::Iterable<dynamic>* tmp = let final core::List<self::Node*>* #t2 = this.{self::Node::nested}{core::List<self::Node*>*} in #t2 == null ?{core::Iterable<dynamic>*} null : #t2.{core::Iterable::map}<dynamic>((self::Node* child) → dynamic => child.{self::Node::toSimpleString}(){() →* dynamic}){((self::Node*) →* dynamic) →* core::Iterable<dynamic>*};
-    return "${this.{self::Node::name}{core::String*}} ${let final core::Iterable<dynamic>* #t3 = tmp in #t3 == null ?{core::String*} null : #t3.{core::Iterable::join}(" "){([core::String*]) →* core::String*}}".{core::String::trim}(){() →* core::String*};
+    core::Iterable<dynamic>? tmp = let final core::List<self::Node>? #t2 = this.{self::Node::nested}{core::List<self::Node>?} in #t2 == null ?{core::Iterable<dynamic>?} null : #t2{core::List<self::Node>}.{core::Iterable::map}<dynamic>((self::Node child) → dynamic => child.{self::Node::toSimpleString}(){() → dynamic}){((self::Node) → dynamic) → core::Iterable<dynamic>};
+    return "${this.{self::Node::name}{core::String}} ${let final core::Iterable<dynamic>? #t3 = tmp in #t3 == null ?{core::String?} null : #t3{core::Iterable<dynamic>}.{core::Iterable::join}(" "){([core::String]) → core::String}}".{core::String::trim}(){() → core::String};
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → void /* 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;
-  self::Node* :async_temporary_0;
-  self::Node* :async_temporary_1;
-  self::Node* :async_temporary_2;
+  self::Node :async_temporary_0;
+  self::Node :async_temporary_1;
+  self::Node :async_temporary_2;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
       #L1:
       {
-        core::String* expected = "1 2 3 4 5 6 7 8 9 10";
-        :async_temporary_2 = new self::Node::•("2", core::_GrowableList::•<self::Node*>(0));
-        [yield] let dynamic #t4 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("7", core::_GrowableList::•<self::Node*>(0))), :async_op_then, :async_op_error) in null;
-        [yield] let dynamic #t5 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("6", core::_GrowableList::_literal1<self::Node*>(_in::unsafeCast<self::Node*>(:result_or_exception)))), :async_op_then, :async_op_error) in null;
-        :async_temporary_1 = _in::unsafeCast<self::Node*>(:result_or_exception);
-        [yield] let dynamic #t6 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("8", core::_GrowableList::•<self::Node*>(0))), :async_op_then, :async_op_error) in null;
-        :async_temporary_0 = _in::unsafeCast<self::Node*>(:result_or_exception);
-        [yield] let dynamic #t7 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("9", core::_GrowableList::•<self::Node*>(0))), :async_op_then, :async_op_error) in null;
-        [yield] let dynamic #t8 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("4", core::_GrowableList::_literal1<self::Node*>(new self::Node::•("5", core::_GrowableList::_literal3<self::Node*>(_in::unsafeCast<self::Node*>(:async_temporary_1), _in::unsafeCast<self::Node*>(:async_temporary_0), _in::unsafeCast<self::Node*>(:result_or_exception)))))), :async_op_then, :async_op_error) in null;
-        [yield] let dynamic #t9 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("3", core::_GrowableList::_literal1<self::Node*>(_in::unsafeCast<self::Node*>(:result_or_exception)))), :async_op_then, :async_op_error) in null;
-        :async_temporary_0 = _in::unsafeCast<self::Node*>(:result_or_exception);
-        [yield] let dynamic #t10 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("10", core::_GrowableList::•<self::Node*>(0))), :async_op_then, :async_op_error) in null;
-        self::Node* node = new self::Node::•("1", core::_GrowableList::_literal3<self::Node*>(_in::unsafeCast<self::Node*>(:async_temporary_2), _in::unsafeCast<self::Node*>(:async_temporary_0), _in::unsafeCast<self::Node*>(:result_or_exception)));
-        core::String* actual = node.{self::Node::toSimpleString}(){() →* dynamic} as{TypeError,ForDynamic} core::String*;
+        core::String expected = "1 2 3 4 5 6 7 8 9 10";
+        :async_temporary_2 = new self::Node::•("2", core::_GrowableList::•<self::Node>(0));
+        [yield] let dynamic #t4 = asy::_awaitHelper(asy::Future::value<self::Node>(new self::Node::•("7", core::_GrowableList::•<self::Node>(0))), :async_op_then, :async_op_error) in null;
+        [yield] let dynamic #t5 = asy::_awaitHelper(asy::Future::value<self::Node>(new self::Node::•("6", core::_GrowableList::_literal1<self::Node>(_in::unsafeCast<self::Node>(:result_or_exception)))), :async_op_then, :async_op_error) in null;
+        :async_temporary_1 = _in::unsafeCast<self::Node>(:result_or_exception);
+        [yield] let dynamic #t6 = asy::_awaitHelper(asy::Future::value<self::Node>(new self::Node::•("8", core::_GrowableList::•<self::Node>(0))), :async_op_then, :async_op_error) in null;
+        :async_temporary_0 = _in::unsafeCast<self::Node>(:result_or_exception);
+        [yield] let dynamic #t7 = asy::_awaitHelper(asy::Future::value<self::Node>(new self::Node::•("9", core::_GrowableList::•<self::Node>(0))), :async_op_then, :async_op_error) in null;
+        [yield] let dynamic #t8 = asy::_awaitHelper(asy::Future::value<self::Node>(new self::Node::•("4", core::_GrowableList::_literal1<self::Node>(new self::Node::•("5", core::_GrowableList::_literal3<self::Node>(_in::unsafeCast<self::Node>(:async_temporary_1), _in::unsafeCast<self::Node>(:async_temporary_0), _in::unsafeCast<self::Node>(:result_or_exception)))))), :async_op_then, :async_op_error) in null;
+        [yield] let dynamic #t9 = asy::_awaitHelper(asy::Future::value<self::Node>(new self::Node::•("3", core::_GrowableList::_literal1<self::Node>(_in::unsafeCast<self::Node>(:result_or_exception)))), :async_op_then, :async_op_error) in null;
+        :async_temporary_0 = _in::unsafeCast<self::Node>(:result_or_exception);
+        [yield] let dynamic #t10 = asy::_awaitHelper(asy::Future::value<self::Node>(new self::Node::•("10", core::_GrowableList::•<self::Node>(0))), :async_op_then, :async_op_error) in null;
+        self::Node node = new self::Node::•("1", core::_GrowableList::_literal3<self::Node>(_in::unsafeCast<self::Node>(:async_temporary_2), _in::unsafeCast<self::Node>(:async_temporary_0), _in::unsafeCast<self::Node>(:result_or_exception)));
+        core::String actual = node.{self::Node::toSimpleString}(){() → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
         core::print(actual);
-        if(!(actual =={core::String::==}{(core::Object*) →* core::bool*} expected)) {
+        if(!(actual =={core::String::==}{(core::Object) → core::bool} expected)) {
           throw "Expected '${expected}' but got '${actual}'";
         }
       }
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
diff --git a/pkg/front_end/testcases/general/await.dart b/pkg/front_end/testcases/general/await.dart
index a34fe00..03f2945 100644
--- a/pkg/front_end/testcases/general/await.dart
+++ b/pkg/front_end/testcases/general/await.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-// @dart=2.9
+
 main() async {
   print(await "Hello, World!");
 }
diff --git a/pkg/front_end/testcases/general/await.dart.textual_outline.expect b/pkg/front_end/testcases/general/await.dart.textual_outline.expect
index ff8d120..386f405 100644
--- a/pkg/front_end/testcases/general/await.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/await.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() async {}
diff --git a/pkg/front_end/testcases/general/await.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/await.dart.textual_outline_modelled.expect
index ff8d120..386f405 100644
--- a/pkg/front_end/testcases/general/await.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/await.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() async {}
diff --git a/pkg/front_end/testcases/general/await.dart.weak.expect b/pkg/front_end/testcases/general/await.dart.weak.expect
index 5b1be33..e1be515 100644
--- a/pkg/front_end/testcases/general/await.dart.weak.expect
+++ b/pkg/front_end/testcases/general/await.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/general/await.dart.weak.modular.expect b/pkg/front_end/testcases/general/await.dart.weak.modular.expect
index 5b1be33..e1be515 100644
--- a/pkg/front_end/testcases/general/await.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/await.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/general/await.dart.weak.outline.expect b/pkg/front_end/testcases/general/await.dart.weak.outline.expect
index b3304ef..074fe5d 100644
--- a/pkg/front_end/testcases/general/await.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/await.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/general/await.dart.weak.transformed.expect b/pkg/front_end/testcases/general/await.dart.weak.transformed.expect
index e7bee2f..245023e 100644
--- a/pkg/front_end/testcases/general/await.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/await.dart.weak.transformed.expect
@@ -1,16 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:async" as asy;
 import "dart:core" as core;
 import "dart:_internal" as _in;
 
 static method main() → dynamic /* originally async */ {
-  final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
+  final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   dynamic :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   dynamic :saved_try_context_var0;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
@@ -18,17 +18,17 @@
       #L1:
       {
         [yield] let dynamic #t1 = asy::_awaitHelper("Hello, World!", :async_op_then, :async_op_error) in null;
-        core::print(_in::unsafeCast<core::String*>(:result_or_exception));
+        core::print(_in::unsafeCast<core::String>(:result_or_exception));
       }
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
diff --git a/pkg/front_end/testcases/general/await_complex.dart b/pkg/front_end/testcases/general/await_complex.dart
index 8046619..0a0fc8e 100644
--- a/pkg/front_end/testcases/general/await_complex.dart
+++ b/pkg/front_end/testcases/general/await_complex.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-// @dart=2.9
+
 // This test was adapted from language_2/await_test
 
 import 'dart:async';
@@ -115,7 +115,7 @@
 }
 
 asserts() async {
-  for (final FutureOr<T> Function<T>(T) func in <Function>[id, future]) {
+  for (final FutureOr<T> Function<T>(T) func in [id, future]) {
     assert(await func(true));
     assert(id(true), await func("message"));
     assert(await func(true), await (func("message")));
@@ -129,7 +129,7 @@
 }
 
 controlFlow() async {
-  for (final FutureOr<T> Function<T>(T) func in <Function>[id, future]) {
+  for (final FutureOr<T> Function<T>(T) func in [id, future]) {
     // For.
     var c = 0;
     for (var i = await (func(0)); await func(i < 5); await func(i++)) {
diff --git a/pkg/front_end/testcases/general/await_complex.dart.textual_outline.expect b/pkg/front_end/testcases/general/await_complex.dart.textual_outline.expect
index 77158ae..16785e4 100644
--- a/pkg/front_end/testcases/general/await_complex.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/await_complex.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:async';
 
 int globalVariable = 1;
diff --git a/pkg/front_end/testcases/general/await_complex.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/await_complex.dart.textual_outline_modelled.expect
index 7ef3245..ddaab5f 100644
--- a/pkg/front_end/testcases/general/await_complex.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/await_complex.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:async';
 
 FutureOr<T> future<T>(T value) async => value;
diff --git a/pkg/front_end/testcases/general/await_complex.dart.weak.expect b/pkg/front_end/testcases/general/await_complex.dart.weak.expect
index 20324c7..280661a 100644
--- a/pkg/front_end/testcases/general/await_complex.dart.weak.expect
+++ b/pkg/front_end/testcases/general/await_complex.dart.weak.expect
@@ -1,175 +1,173 @@
-library;
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/await_complex.dart:120:12: Error: A value of type 'FutureOr<bool>' can't be assigned to a variable of type 'bool'.
+//     assert(id(true), await func("message"));
+//            ^
+//
 import self as self;
 import "dart:core" as core;
+import "dart:_internal" as _in;
 import "dart:async" as asy;
 
 import "dart:async";
 
 class C extends core::Object {
-  static field core::int* staticField = 1;
-  field core::int* field = 1;
-  synthetic constructor •() → self::C*
+  static field core::int staticField = 1;
+  field core::int field = 1;
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  static get staticGetter() → core::int*
+  static get staticGetter() → core::int
     return self::C::staticField;
   static set staticSetter(dynamic val) → void {
-    self::C::staticField = val as{TypeError,ForDynamic} core::int*;
+    self::C::staticField = val as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
   }
-  static method staticFoo(core::int* param) → core::int*
+  static method staticFoo(core::int param) → core::int
     return param;
-  get getter() → core::int*
-    return this.{self::C::field}{core::int*};
+  get getter() → core::int
+    return this.{self::C::field}{core::int};
   set setter(dynamic val) → void {
-    this.{self::C::field} = val as{TypeError,ForDynamic} core::int*;
+    this.{self::C::field} = val as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
   }
-  method foo(core::int* param) → core::int*
+  method foo(core::int param) → core::int
     return param;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::int* globalVariable = 1;
-static final field core::bool* assertStatementsEnabled = (() → core::bool* {
+static field core::int globalVariable = 1;
+static final field core::bool assertStatementsEnabled = (() → core::bool {
   try {
     assert(false);
     return false;
   }
-  on dynamic catch(final dynamic _) {
+  on core::Object catch(final core::Object _) {
     return true;
   }
-})(){() →* core::bool*};
-static method topLevelFoo(core::int* param) → core::int*
+})(){() → core::bool};
+static method topLevelFoo(core::int param) → core::int
   return 1;
-static get topLevelGetter() → core::int*
+static get topLevelGetter() → core::int
   return self::globalVariable;
 static set topLevelSetter(dynamic val) → void {
-  self::globalVariable = val as{TypeError,ForDynamic} core::int*;
+  self::globalVariable = val as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
 }
 static method dummy() → dynamic
   return 1;
 static method staticMembers() → dynamic async {
-  core::num* a = self::C::staticField.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num a = self::C::staticField.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, a);
-  core::num* f = (self::C::staticField = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num f = (self::C::staticField = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, f);
-  core::num* b = self::C::staticGetter.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num b = self::C::staticGetter.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, b);
-  core::num* c = (self::C::staticSetter = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num c = (self::C::staticSetter = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, c);
-  core::num* d = self::C::staticFoo(2).{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num d = self::C::staticFoo(2).{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(3, d);
-  core::num* e = self::C::staticField.{core::num::+}(self::C::staticGetter){(core::num*) →* core::int*}.{core::num::+}(self::C::staticSetter = 1){(core::num*) →* core::int*}.{core::num::+}(self::C::staticFoo(1)){(core::num*) →* core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num e = self::C::staticField.{core::num::+}(self::C::staticGetter){(core::num) → core::int}.{core::num::+}(self::C::staticSetter = 1){(core::num) → core::int}.{core::num::+}(self::C::staticFoo(1)){(core::num) → core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(5, e);
 }
 static method topLevelMembers() → dynamic async {
-  core::num* a = self::globalVariable.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num a = self::globalVariable.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, a);
-  core::num* b = self::topLevelGetter.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num b = self::topLevelGetter.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, b);
-  core::num* c = (self::topLevelSetter = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num c = (self::topLevelSetter = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, c);
-  core::num* d = self::topLevelFoo(1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num d = self::topLevelFoo(1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, d);
-  core::num* e = self::globalVariable.{core::num::+}(self::topLevelGetter){(core::num*) →* core::int*}.{core::num::+}(self::topLevelSetter = 1){(core::num*) →* core::int*}.{core::num::+}(self::topLevelFoo(1)){(core::num*) →* core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num e = self::globalVariable.{core::num::+}(self::topLevelGetter){(core::num) → core::int}.{core::num::+}(self::topLevelSetter = 1){(core::num) → core::int}.{core::num::+}(self::topLevelFoo(1)){(core::num) → core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(5, e);
 }
 static method instanceMembers() → dynamic async {
-  self::C* inst = new self::C::•();
-  core::num* a = inst.{self::C::field}{core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  self::C inst = new self::C::•();
+  core::num a = inst.{self::C::field}{core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, a);
-  core::num* b = inst.{self::C::getter}{core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num b = inst.{self::C::getter}{core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, b);
-  core::num* c = (inst.{self::C::setter} = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num c = (inst.{self::C::setter} = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, c);
-  core::num* d = inst.{self::C::foo}(1){(core::int*) →* core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num d = inst.{self::C::foo}(1){(core::int) → core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, d);
-  core::num* e = inst.{self::C::field}{core::int*}.{core::num::+}(inst.{self::C::getter}{core::int*}){(core::num*) →* core::int*}.{core::num::+}(inst.{self::C::setter} = 1){(core::num*) →* core::int*}.{core::num::+}(inst.{self::C::foo}(1){(core::int*) →* core::int*}){(core::num*) →* core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num e = inst.{self::C::field}{core::int}.{core::num::+}(inst.{self::C::getter}{core::int}){(core::num) → core::int}.{core::num::+}(inst.{self::C::setter} = 1){(core::num) → core::int}.{core::num::+}(inst.{self::C::foo}(1){(core::int) → core::int}){(core::num) → core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(5, e);
 }
 static method others() → dynamic async {
-  core::String* a = "${self::globalVariable} ${await self::dummy()} ".{core::String::+}(await "someString"){(core::String*) →* core::String*};
+  core::String a = "${self::globalVariable} ${await self::dummy()} ".{core::String::+}(await "someString"){(core::String) → core::String};
   self::expect("1 1 someString", a);
-  self::C* c = new self::C::•();
-  core::num* d = c.{self::C::field}{core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
-  core::int* cnt = 2;
-  core::List<core::int*>* b = <core::int*>[1, 2, 3];
-  b.{core::List::[]=}(cnt, await self::dummy() as{TypeError,ForDynamic} core::int*){(core::int*, core::int*) →* void};
-  self::expect(1, b.{core::List::[]}(cnt){(core::int*) →* core::int*});
-  core::num* e = b.{core::List::[]}(0){(core::int*) →* core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  self::C c = new self::C::•();
+  core::num d = c.{self::C::field}{core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
+  core::int cnt = 2;
+  core::List<core::int> b = <core::int>[1, 2, 3];
+  b.{core::List::[]=}(cnt, await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int, core::int) → void};
+  self::expect(1, b.{core::List::[]}(cnt){(core::int) → core::int});
+  core::num e = b.{core::List::[]}(0){(core::int) → core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, e);
 }
 static method conditionals() → dynamic async {
-  core::bool* a = false;
-  core::bool* b = true;
-  core::bool* c = a || b || await self::dummy() as{TypeError,ForDynamic} core::bool*;
+  core::bool a = false;
+  core::bool b = true;
+  core::bool c = a || b || await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool;
   self::expect(true, c);
   dynamic d = a || b ?{dynamic} a : await self::dummy();
   self::expect(false, d);
-  dynamic e = a is core::int* ?{dynamic} await self::dummy() : 2;
+  dynamic e = a is{ForNonNullableByDefault} core::int ?{dynamic} await self::dummy() : 2;
   self::expect(2, e);
   try {
-    dynamic f = a is core::int* ?{dynamic} await self::dummy() : 2;
+    dynamic f = a is{ForNonNullableByDefault} core::int ?{dynamic} await self::dummy() : 2;
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
 }
 static method asserts() → dynamic async {
-  for (final core::Function* #t1 in <core::Function*>[#C1, #C2]) {
-    final <T extends core::Object* = dynamic>(T*) →* FutureOr<T*>* func = #t1 as{TypeError} <T extends core::Object* = dynamic>(T*) →* FutureOr<T*>*;
-    assert(await func<core::bool*>(true){(core::bool*) →* FutureOr<core::bool*>*});
-    assert(self::id<core::bool*>(true) as{TypeError} core::bool*, await func<core::String*>("message"){(core::String*) →* FutureOr<core::String*>*});
-    assert(await func<core::bool*>(true){(core::bool*) →* FutureOr<core::bool*>*}, await func<core::String*>("message"){(core::String*) →* FutureOr<core::String*>*});
+  for (final <T extends core::Object? = dynamic>(T%) → FutureOr<T%>func in <<T extends core::Object? = dynamic>(T%) → FutureOr<T%>>[#C1, #C2]) {
+    assert(await func<core::bool>(true){(core::bool) → FutureOr<core::bool>});
+    assert(invalid-expression "pkg/front_end/testcases/general/await_complex.dart:120:12: Error: A value of type 'FutureOr<bool>' can't be assigned to a variable of type 'bool'.
+    assert(id(true), await func(\"message\"));
+           ^" in self::id<core::bool>(true) as{TypeError,ForNonNullableByDefault} core::bool, await func<core::String>("message"){(core::String) → FutureOr<core::String>});
+    assert(await func<core::bool>(true){(core::bool) → FutureOr<core::bool>}, await func<core::String>("message"){(core::String) → FutureOr<core::String>});
     try {
-      assert(await func<core::bool*>(false){(core::bool*) →* FutureOr<core::bool*>*}, await func<core::String*>("message"){(core::String*) →* FutureOr<core::String*>*});
+      assert(await func<core::bool>(false){(core::bool) → FutureOr<core::bool>}, await func<core::String>("message"){(core::String) → FutureOr<core::String>});
       if(self::assertStatementsEnabled)
         throw "Didn't throw";
     }
-    on core::AssertionError* catch(final core::AssertionError* e) {
-      self::expect("message", e.{core::AssertionError::message}{core::Object*});
+    on core::AssertionError catch(final core::AssertionError e) {
+      self::expect("message", e.{core::AssertionError::message}{core::Object?});
     }
   }
 }
 static method controlFlow() → dynamic async {
-  for (final core::Function* #t2 in <core::Function*>[#C1, #C2]) {
-    final <T extends core::Object* = dynamic>(T*) →* FutureOr<T*>* func = #t2 as{TypeError} <T extends core::Object* = dynamic>(T*) →* FutureOr<T*>*;
-    core::int* c = 0;
-    for (core::int* i = await func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*}; await func<core::bool*>(i.{core::num::<}(5){(core::num*) →* core::bool*}){(core::bool*) →* FutureOr<core::bool*>*}; await func<core::int*>(let final core::int* #t3 = i in let final core::int* #t4 = i = #t3.{core::num::+}(1){(core::num*) →* core::int*} in #t3){(core::int*) →* FutureOr<core::int*>*}) {
-      c = c.{core::num::+}(1){(core::num*) →* core::int*};
+  for (final <T extends core::Object? = dynamic>(T%) → FutureOr<T%>func in <<T extends core::Object? = dynamic>(T%) → FutureOr<T%>>[#C1, #C2]) {
+    core::int c = 0;
+    for (core::int i = await func<core::int>(0){(core::int) → FutureOr<core::int>}; await func<core::bool>(i.{core::num::<}(5){(core::num) → core::bool}){(core::bool) → FutureOr<core::bool>}; await func<core::int>(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) → FutureOr<core::int>}) {
+      c = c.{core::num::+}(1){(core::num) → core::int};
     }
     self::expect(5, c);
     c = 0;
-    while (await func<core::bool*>(c.{core::num::<}(5){(core::num*) →* core::bool*}){(core::bool*) →* FutureOr<core::bool*>*})
-      c = c.{core::num::+}(1){(core::num*) →* core::int*};
+    while (await func<core::bool>(c.{core::num::<}(5){(core::num) → core::bool}){(core::bool) → FutureOr<core::bool>})
+      c = c.{core::num::+}(1){(core::num) → core::int};
     self::expect(5, c);
     c = 0;
     do {
-      c = c.{core::num::+}(1){(core::num*) →* core::int*};
+      c = c.{core::num::+}(1){(core::num) → core::int};
     }
-    while (await func<core::bool*>(c.{core::num::<}(5){(core::num*) →* core::bool*}){(core::bool*) →* FutureOr<core::bool*>*})
+    while (await func<core::bool>(c.{core::num::<}(5){(core::num) → core::bool}){(core::bool) → FutureOr<core::bool>})
     self::expect(5, c);
-    if(await func<core::bool*>(c =={core::num::==}{(core::Object*) →* core::bool*} 5){(core::bool*) →* FutureOr<core::bool*>*}) {
+    if(await func<core::bool>(c =={core::num::==}{(core::Object) → core::bool} 5){(core::bool) → FutureOr<core::bool>}) {
       self::expect(5, c);
     }
     else {
       throw "unreachable";
     }
     try {
-      throw await func<core::String*>("string"){(core::String*) →* FutureOr<core::String*>*};
+      throw await func<core::String>("string"){(core::String) → FutureOr<core::String>};
     }
-    on core::String* catch(no-exception-var) {
+    on core::String catch(no-exception-var) {
     }
     try {
-      await throw "string";
+      let final Never #t3 = await throw "string" in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
     }
-    on core::String* catch(no-exception-var) {
+    on core::String catch(no-exception-var) {
     }
     try
       try {
@@ -177,24 +175,24 @@
           try {
             throw "string";
           }
-          on dynamic catch(final dynamic e) {
+          on core::Object catch(final core::Object e) {
             self::expect("string", e);
-            self::expect(0, await func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*});
+            self::expect(0, await func<core::int>(0){(core::int) → FutureOr<core::int>});
             rethrow;
           }
         finally {
-          self::expect(0, await func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*});
+          self::expect(0, await func<core::int>(0){(core::int) → FutureOr<core::int>});
         }
       }
-      on dynamic catch(final dynamic e) {
-        self::expect(0, await func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*});
+      on core::Object catch(final core::Object e) {
+        self::expect(0, await func<core::int>(0){(core::int) → FutureOr<core::int>});
         self::expect("string", e);
       }
     finally {
-      self::expect(0, await func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*});
+      self::expect(0, await func<core::int>(0){(core::int) → FutureOr<core::int>});
     }
     #L1:
-    switch(await func<core::int*>(2){(core::int*) →* FutureOr<core::int*>*}) {
+    switch(await func<core::int>(2){(core::int) → FutureOr<core::int>}) {
       #L2:
       case #C3:
         {
@@ -206,31 +204,31 @@
           throw "unreachable";
         }
     }
-    self::expect(42, await(() → asy::Future<dynamic>* async {
-      return await func<dynamic>(42){(dynamic) →* FutureOr<dynamic>*};
-    })(){() →* asy::Future<dynamic>*});
-    self::expect(42, await(() → asy::Future<dynamic>* async {
-      return func<dynamic>(42){(dynamic) →* FutureOr<dynamic>*};
-    })(){() →* asy::Future<dynamic>*});
-    function testStream1() → asy::Stream<core::int*>* async* {
-      yield await func<core::int*>(42){(core::int*) →* FutureOr<core::int*>*};
+    self::expect(42, await(() → asy::Future<core::int> async {
+      return await func<core::int>(42){(core::int) → FutureOr<core::int>};
+    })(){() → asy::Future<core::int>});
+    self::expect(42, await(() → asy::Future<core::int> async {
+      return func<core::int>(42){(core::int) → FutureOr<core::int>};
+    })(){() → asy::Future<core::int>});
+    function testStream1() → asy::Stream<core::int> async* {
+      yield await func<core::int>(42){(core::int) → FutureOr<core::int>};
     }
-    self::expectList(<dynamic>[42], await testStream1(){() →* asy::Stream<core::int*>*}.{asy::Stream::toList}(){() →* asy::Future<core::List<core::int*>*>*});
-    function testStream2() → asy::Stream<core::int*>* async* {
-      yield* await func<asy::Stream<core::int*>*>(self::intStream()){(asy::Stream<core::int*>*) →* FutureOr<asy::Stream<core::int*>*>*};
+    self::expectList(<dynamic>[42], await testStream1(){() → asy::Stream<core::int>}.{asy::Stream::toList}(){() → asy::Future<core::List<core::int>>});
+    function testStream2() → asy::Stream<core::int> async* {
+      yield* await func<asy::Stream<core::int>>(self::intStream()){(asy::Stream<core::int>) → FutureOr<asy::Stream<core::int>>};
     }
-    self::expectList(<dynamic>[42], await testStream2(){() →* asy::Stream<core::int*>*}.{asy::Stream::toList}(){() →* asy::Future<core::List<core::int*>*>*});
+    self::expectList(<dynamic>[42], await testStream2(){() → asy::Stream<core::int>}.{asy::Stream::toList}(){() → asy::Future<core::List<core::int>>});
   }
 }
-static method future<T extends core::Object* = dynamic>(self::future::T* value) → FutureOr<self::future::T*>* async 
+static method future<T extends core::Object? = dynamic>(self::future::T% value) → FutureOr<self::future::T%> async 
   return value;
-static method id<T extends core::Object* = dynamic>(self::id::T* value) → FutureOr<self::id::T*>*
+static method id<T extends core::Object? = dynamic>(self::id::T% value) → FutureOr<self::id::T%>
   return value;
-static method intStream() → asy::Stream<core::int*>* async* {
+static method intStream() → asy::Stream<core::int> async* {
   yield 42;
 }
 static method main() → dynamic async {
-  for (core::int* i = 0; i.{core::num::<}(11){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+  for (core::int i = 0; i.{core::num::<}(11){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
     await self::staticMembers();
     await self::topLevelMembers();
     await self::instanceMembers();
@@ -241,15 +239,15 @@
   }
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual))
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
     throw "Expected ${expected}, actual ${actual}";
 }
-static method expectList(core::List<dynamic>* expected, core::List<dynamic>* actual) → dynamic {
-  if(!(expected.{core::List::length}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} actual.{core::List::length}{core::int*})) {
+static method expectList(core::List<dynamic> expected, core::List<dynamic> actual) → dynamic {
+  if(!(expected.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} actual.{core::List::length}{core::int})) {
     throw "Expected ${expected}, actual ${actual}";
   }
-  for (core::int* i = 0; i.{core::num::<}(expected.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    self::expect(expected.{core::List::[]}(i){(core::int*) →* dynamic}, actual.{core::List::[]}(i){(core::int*) →* dynamic});
+  for (core::int i = 0; i.{core::num::<}(expected.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    self::expect(expected.{core::List::[]}(i){(core::int) → dynamic}, actual.{core::List::[]}(i){(core::int) → dynamic});
   }
 }
 
diff --git a/pkg/front_end/testcases/general/await_complex.dart.weak.modular.expect b/pkg/front_end/testcases/general/await_complex.dart.weak.modular.expect
index 20324c7..280661a 100644
--- a/pkg/front_end/testcases/general/await_complex.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/await_complex.dart.weak.modular.expect
@@ -1,175 +1,173 @@
-library;
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/await_complex.dart:120:12: Error: A value of type 'FutureOr<bool>' can't be assigned to a variable of type 'bool'.
+//     assert(id(true), await func("message"));
+//            ^
+//
 import self as self;
 import "dart:core" as core;
+import "dart:_internal" as _in;
 import "dart:async" as asy;
 
 import "dart:async";
 
 class C extends core::Object {
-  static field core::int* staticField = 1;
-  field core::int* field = 1;
-  synthetic constructor •() → self::C*
+  static field core::int staticField = 1;
+  field core::int field = 1;
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  static get staticGetter() → core::int*
+  static get staticGetter() → core::int
     return self::C::staticField;
   static set staticSetter(dynamic val) → void {
-    self::C::staticField = val as{TypeError,ForDynamic} core::int*;
+    self::C::staticField = val as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
   }
-  static method staticFoo(core::int* param) → core::int*
+  static method staticFoo(core::int param) → core::int
     return param;
-  get getter() → core::int*
-    return this.{self::C::field}{core::int*};
+  get getter() → core::int
+    return this.{self::C::field}{core::int};
   set setter(dynamic val) → void {
-    this.{self::C::field} = val as{TypeError,ForDynamic} core::int*;
+    this.{self::C::field} = val as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
   }
-  method foo(core::int* param) → core::int*
+  method foo(core::int param) → core::int
     return param;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::int* globalVariable = 1;
-static final field core::bool* assertStatementsEnabled = (() → core::bool* {
+static field core::int globalVariable = 1;
+static final field core::bool assertStatementsEnabled = (() → core::bool {
   try {
     assert(false);
     return false;
   }
-  on dynamic catch(final dynamic _) {
+  on core::Object catch(final core::Object _) {
     return true;
   }
-})(){() →* core::bool*};
-static method topLevelFoo(core::int* param) → core::int*
+})(){() → core::bool};
+static method topLevelFoo(core::int param) → core::int
   return 1;
-static get topLevelGetter() → core::int*
+static get topLevelGetter() → core::int
   return self::globalVariable;
 static set topLevelSetter(dynamic val) → void {
-  self::globalVariable = val as{TypeError,ForDynamic} core::int*;
+  self::globalVariable = val as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
 }
 static method dummy() → dynamic
   return 1;
 static method staticMembers() → dynamic async {
-  core::num* a = self::C::staticField.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num a = self::C::staticField.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, a);
-  core::num* f = (self::C::staticField = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num f = (self::C::staticField = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, f);
-  core::num* b = self::C::staticGetter.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num b = self::C::staticGetter.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, b);
-  core::num* c = (self::C::staticSetter = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num c = (self::C::staticSetter = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, c);
-  core::num* d = self::C::staticFoo(2).{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num d = self::C::staticFoo(2).{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(3, d);
-  core::num* e = self::C::staticField.{core::num::+}(self::C::staticGetter){(core::num*) →* core::int*}.{core::num::+}(self::C::staticSetter = 1){(core::num*) →* core::int*}.{core::num::+}(self::C::staticFoo(1)){(core::num*) →* core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num e = self::C::staticField.{core::num::+}(self::C::staticGetter){(core::num) → core::int}.{core::num::+}(self::C::staticSetter = 1){(core::num) → core::int}.{core::num::+}(self::C::staticFoo(1)){(core::num) → core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(5, e);
 }
 static method topLevelMembers() → dynamic async {
-  core::num* a = self::globalVariable.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num a = self::globalVariable.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, a);
-  core::num* b = self::topLevelGetter.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num b = self::topLevelGetter.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, b);
-  core::num* c = (self::topLevelSetter = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num c = (self::topLevelSetter = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, c);
-  core::num* d = self::topLevelFoo(1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num d = self::topLevelFoo(1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, d);
-  core::num* e = self::globalVariable.{core::num::+}(self::topLevelGetter){(core::num*) →* core::int*}.{core::num::+}(self::topLevelSetter = 1){(core::num*) →* core::int*}.{core::num::+}(self::topLevelFoo(1)){(core::num*) →* core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num e = self::globalVariable.{core::num::+}(self::topLevelGetter){(core::num) → core::int}.{core::num::+}(self::topLevelSetter = 1){(core::num) → core::int}.{core::num::+}(self::topLevelFoo(1)){(core::num) → core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(5, e);
 }
 static method instanceMembers() → dynamic async {
-  self::C* inst = new self::C::•();
-  core::num* a = inst.{self::C::field}{core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  self::C inst = new self::C::•();
+  core::num a = inst.{self::C::field}{core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, a);
-  core::num* b = inst.{self::C::getter}{core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num b = inst.{self::C::getter}{core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, b);
-  core::num* c = (inst.{self::C::setter} = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num c = (inst.{self::C::setter} = 1).{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, c);
-  core::num* d = inst.{self::C::foo}(1){(core::int*) →* core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num d = inst.{self::C::foo}(1){(core::int) → core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, d);
-  core::num* e = inst.{self::C::field}{core::int*}.{core::num::+}(inst.{self::C::getter}{core::int*}){(core::num*) →* core::int*}.{core::num::+}(inst.{self::C::setter} = 1){(core::num*) →* core::int*}.{core::num::+}(inst.{self::C::foo}(1){(core::int*) →* core::int*}){(core::num*) →* core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  core::num e = inst.{self::C::field}{core::int}.{core::num::+}(inst.{self::C::getter}{core::int}){(core::num) → core::int}.{core::num::+}(inst.{self::C::setter} = 1){(core::num) → core::int}.{core::num::+}(inst.{self::C::foo}(1){(core::int) → core::int}){(core::num) → core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(5, e);
 }
 static method others() → dynamic async {
-  core::String* a = "${self::globalVariable} ${await self::dummy()} ".{core::String::+}(await "someString"){(core::String*) →* core::String*};
+  core::String a = "${self::globalVariable} ${await self::dummy()} ".{core::String::+}(await "someString"){(core::String) → core::String};
   self::expect("1 1 someString", a);
-  self::C* c = new self::C::•();
-  core::num* d = c.{self::C::field}{core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
-  core::int* cnt = 2;
-  core::List<core::int*>* b = <core::int*>[1, 2, 3];
-  b.{core::List::[]=}(cnt, await self::dummy() as{TypeError,ForDynamic} core::int*){(core::int*, core::int*) →* void};
-  self::expect(1, b.{core::List::[]}(cnt){(core::int*) →* core::int*});
-  core::num* e = b.{core::List::[]}(0){(core::int*) →* core::int*}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+  self::C c = new self::C::•();
+  core::num d = c.{self::C::field}{core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
+  core::int cnt = 2;
+  core::List<core::int> b = <core::int>[1, 2, 3];
+  b.{core::List::[]=}(cnt, await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int, core::int) → void};
+  self::expect(1, b.{core::List::[]}(cnt){(core::int) → core::int});
+  core::num e = b.{core::List::[]}(0){(core::int) → core::int}.{core::num::+}(await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
   self::expect(2, e);
 }
 static method conditionals() → dynamic async {
-  core::bool* a = false;
-  core::bool* b = true;
-  core::bool* c = a || b || await self::dummy() as{TypeError,ForDynamic} core::bool*;
+  core::bool a = false;
+  core::bool b = true;
+  core::bool c = a || b || await self::dummy() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool;
   self::expect(true, c);
   dynamic d = a || b ?{dynamic} a : await self::dummy();
   self::expect(false, d);
-  dynamic e = a is core::int* ?{dynamic} await self::dummy() : 2;
+  dynamic e = a is{ForNonNullableByDefault} core::int ?{dynamic} await self::dummy() : 2;
   self::expect(2, e);
   try {
-    dynamic f = a is core::int* ?{dynamic} await self::dummy() : 2;
+    dynamic f = a is{ForNonNullableByDefault} core::int ?{dynamic} await self::dummy() : 2;
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
 }
 static method asserts() → dynamic async {
-  for (final core::Function* #t1 in <core::Function*>[#C1, #C2]) {
-    final <T extends core::Object* = dynamic>(T*) →* FutureOr<T*>* func = #t1 as{TypeError} <T extends core::Object* = dynamic>(T*) →* FutureOr<T*>*;
-    assert(await func<core::bool*>(true){(core::bool*) →* FutureOr<core::bool*>*});
-    assert(self::id<core::bool*>(true) as{TypeError} core::bool*, await func<core::String*>("message"){(core::String*) →* FutureOr<core::String*>*});
-    assert(await func<core::bool*>(true){(core::bool*) →* FutureOr<core::bool*>*}, await func<core::String*>("message"){(core::String*) →* FutureOr<core::String*>*});
+  for (final <T extends core::Object? = dynamic>(T%) → FutureOr<T%>func in <<T extends core::Object? = dynamic>(T%) → FutureOr<T%>>[#C1, #C2]) {
+    assert(await func<core::bool>(true){(core::bool) → FutureOr<core::bool>});
+    assert(invalid-expression "pkg/front_end/testcases/general/await_complex.dart:120:12: Error: A value of type 'FutureOr<bool>' can't be assigned to a variable of type 'bool'.
+    assert(id(true), await func(\"message\"));
+           ^" in self::id<core::bool>(true) as{TypeError,ForNonNullableByDefault} core::bool, await func<core::String>("message"){(core::String) → FutureOr<core::String>});
+    assert(await func<core::bool>(true){(core::bool) → FutureOr<core::bool>}, await func<core::String>("message"){(core::String) → FutureOr<core::String>});
     try {
-      assert(await func<core::bool*>(false){(core::bool*) →* FutureOr<core::bool*>*}, await func<core::String*>("message"){(core::String*) →* FutureOr<core::String*>*});
+      assert(await func<core::bool>(false){(core::bool) → FutureOr<core::bool>}, await func<core::String>("message"){(core::String) → FutureOr<core::String>});
       if(self::assertStatementsEnabled)
         throw "Didn't throw";
     }
-    on core::AssertionError* catch(final core::AssertionError* e) {
-      self::expect("message", e.{core::AssertionError::message}{core::Object*});
+    on core::AssertionError catch(final core::AssertionError e) {
+      self::expect("message", e.{core::AssertionError::message}{core::Object?});
     }
   }
 }
 static method controlFlow() → dynamic async {
-  for (final core::Function* #t2 in <core::Function*>[#C1, #C2]) {
-    final <T extends core::Object* = dynamic>(T*) →* FutureOr<T*>* func = #t2 as{TypeError} <T extends core::Object* = dynamic>(T*) →* FutureOr<T*>*;
-    core::int* c = 0;
-    for (core::int* i = await func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*}; await func<core::bool*>(i.{core::num::<}(5){(core::num*) →* core::bool*}){(core::bool*) →* FutureOr<core::bool*>*}; await func<core::int*>(let final core::int* #t3 = i in let final core::int* #t4 = i = #t3.{core::num::+}(1){(core::num*) →* core::int*} in #t3){(core::int*) →* FutureOr<core::int*>*}) {
-      c = c.{core::num::+}(1){(core::num*) →* core::int*};
+  for (final <T extends core::Object? = dynamic>(T%) → FutureOr<T%>func in <<T extends core::Object? = dynamic>(T%) → FutureOr<T%>>[#C1, #C2]) {
+    core::int c = 0;
+    for (core::int i = await func<core::int>(0){(core::int) → FutureOr<core::int>}; await func<core::bool>(i.{core::num::<}(5){(core::num) → core::bool}){(core::bool) → FutureOr<core::bool>}; await func<core::int>(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) → FutureOr<core::int>}) {
+      c = c.{core::num::+}(1){(core::num) → core::int};
     }
     self::expect(5, c);
     c = 0;
-    while (await func<core::bool*>(c.{core::num::<}(5){(core::num*) →* core::bool*}){(core::bool*) →* FutureOr<core::bool*>*})
-      c = c.{core::num::+}(1){(core::num*) →* core::int*};
+    while (await func<core::bool>(c.{core::num::<}(5){(core::num) → core::bool}){(core::bool) → FutureOr<core::bool>})
+      c = c.{core::num::+}(1){(core::num) → core::int};
     self::expect(5, c);
     c = 0;
     do {
-      c = c.{core::num::+}(1){(core::num*) →* core::int*};
+      c = c.{core::num::+}(1){(core::num) → core::int};
     }
-    while (await func<core::bool*>(c.{core::num::<}(5){(core::num*) →* core::bool*}){(core::bool*) →* FutureOr<core::bool*>*})
+    while (await func<core::bool>(c.{core::num::<}(5){(core::num) → core::bool}){(core::bool) → FutureOr<core::bool>})
     self::expect(5, c);
-    if(await func<core::bool*>(c =={core::num::==}{(core::Object*) →* core::bool*} 5){(core::bool*) →* FutureOr<core::bool*>*}) {
+    if(await func<core::bool>(c =={core::num::==}{(core::Object) → core::bool} 5){(core::bool) → FutureOr<core::bool>}) {
       self::expect(5, c);
     }
     else {
       throw "unreachable";
     }
     try {
-      throw await func<core::String*>("string"){(core::String*) →* FutureOr<core::String*>*};
+      throw await func<core::String>("string"){(core::String) → FutureOr<core::String>};
     }
-    on core::String* catch(no-exception-var) {
+    on core::String catch(no-exception-var) {
     }
     try {
-      await throw "string";
+      let final Never #t3 = await throw "string" in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
     }
-    on core::String* catch(no-exception-var) {
+    on core::String catch(no-exception-var) {
     }
     try
       try {
@@ -177,24 +175,24 @@
           try {
             throw "string";
           }
-          on dynamic catch(final dynamic e) {
+          on core::Object catch(final core::Object e) {
             self::expect("string", e);
-            self::expect(0, await func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*});
+            self::expect(0, await func<core::int>(0){(core::int) → FutureOr<core::int>});
             rethrow;
           }
         finally {
-          self::expect(0, await func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*});
+          self::expect(0, await func<core::int>(0){(core::int) → FutureOr<core::int>});
         }
       }
-      on dynamic catch(final dynamic e) {
-        self::expect(0, await func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*});
+      on core::Object catch(final core::Object e) {
+        self::expect(0, await func<core::int>(0){(core::int) → FutureOr<core::int>});
         self::expect("string", e);
       }
     finally {
-      self::expect(0, await func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*});
+      self::expect(0, await func<core::int>(0){(core::int) → FutureOr<core::int>});
     }
     #L1:
-    switch(await func<core::int*>(2){(core::int*) →* FutureOr<core::int*>*}) {
+    switch(await func<core::int>(2){(core::int) → FutureOr<core::int>}) {
       #L2:
       case #C3:
         {
@@ -206,31 +204,31 @@
           throw "unreachable";
         }
     }
-    self::expect(42, await(() → asy::Future<dynamic>* async {
-      return await func<dynamic>(42){(dynamic) →* FutureOr<dynamic>*};
-    })(){() →* asy::Future<dynamic>*});
-    self::expect(42, await(() → asy::Future<dynamic>* async {
-      return func<dynamic>(42){(dynamic) →* FutureOr<dynamic>*};
-    })(){() →* asy::Future<dynamic>*});
-    function testStream1() → asy::Stream<core::int*>* async* {
-      yield await func<core::int*>(42){(core::int*) →* FutureOr<core::int*>*};
+    self::expect(42, await(() → asy::Future<core::int> async {
+      return await func<core::int>(42){(core::int) → FutureOr<core::int>};
+    })(){() → asy::Future<core::int>});
+    self::expect(42, await(() → asy::Future<core::int> async {
+      return func<core::int>(42){(core::int) → FutureOr<core::int>};
+    })(){() → asy::Future<core::int>});
+    function testStream1() → asy::Stream<core::int> async* {
+      yield await func<core::int>(42){(core::int) → FutureOr<core::int>};
     }
-    self::expectList(<dynamic>[42], await testStream1(){() →* asy::Stream<core::int*>*}.{asy::Stream::toList}(){() →* asy::Future<core::List<core::int*>*>*});
-    function testStream2() → asy::Stream<core::int*>* async* {
-      yield* await func<asy::Stream<core::int*>*>(self::intStream()){(asy::Stream<core::int*>*) →* FutureOr<asy::Stream<core::int*>*>*};
+    self::expectList(<dynamic>[42], await testStream1(){() → asy::Stream<core::int>}.{asy::Stream::toList}(){() → asy::Future<core::List<core::int>>});
+    function testStream2() → asy::Stream<core::int> async* {
+      yield* await func<asy::Stream<core::int>>(self::intStream()){(asy::Stream<core::int>) → FutureOr<asy::Stream<core::int>>};
     }
-    self::expectList(<dynamic>[42], await testStream2(){() →* asy::Stream<core::int*>*}.{asy::Stream::toList}(){() →* asy::Future<core::List<core::int*>*>*});
+    self::expectList(<dynamic>[42], await testStream2(){() → asy::Stream<core::int>}.{asy::Stream::toList}(){() → asy::Future<core::List<core::int>>});
   }
 }
-static method future<T extends core::Object* = dynamic>(self::future::T* value) → FutureOr<self::future::T*>* async 
+static method future<T extends core::Object? = dynamic>(self::future::T% value) → FutureOr<self::future::T%> async 
   return value;
-static method id<T extends core::Object* = dynamic>(self::id::T* value) → FutureOr<self::id::T*>*
+static method id<T extends core::Object? = dynamic>(self::id::T% value) → FutureOr<self::id::T%>
   return value;
-static method intStream() → asy::Stream<core::int*>* async* {
+static method intStream() → asy::Stream<core::int> async* {
   yield 42;
 }
 static method main() → dynamic async {
-  for (core::int* i = 0; i.{core::num::<}(11){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+  for (core::int i = 0; i.{core::num::<}(11){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
     await self::staticMembers();
     await self::topLevelMembers();
     await self::instanceMembers();
@@ -241,15 +239,15 @@
   }
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual))
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
     throw "Expected ${expected}, actual ${actual}";
 }
-static method expectList(core::List<dynamic>* expected, core::List<dynamic>* actual) → dynamic {
-  if(!(expected.{core::List::length}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} actual.{core::List::length}{core::int*})) {
+static method expectList(core::List<dynamic> expected, core::List<dynamic> actual) → dynamic {
+  if(!(expected.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} actual.{core::List::length}{core::int})) {
     throw "Expected ${expected}, actual ${actual}";
   }
-  for (core::int* i = 0; i.{core::num::<}(expected.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    self::expect(expected.{core::List::[]}(i){(core::int*) →* dynamic}, actual.{core::List::[]}(i){(core::int*) →* dynamic});
+  for (core::int i = 0; i.{core::num::<}(expected.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    self::expect(expected.{core::List::[]}(i){(core::int) → dynamic}, actual.{core::List::[]}(i){(core::int) → dynamic});
   }
 }
 
diff --git a/pkg/front_end/testcases/general/await_complex.dart.weak.outline.expect b/pkg/front_end/testcases/general/await_complex.dart.weak.outline.expect
index e421062..db13fdf 100644
--- a/pkg/front_end/testcases/general/await_complex.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/await_complex.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -6,38 +6,28 @@
 import "dart:async";
 
 class C extends core::Object {
-  static field core::int* staticField;
-  field core::int* field;
-  synthetic constructor •() → self::C*
+  static field core::int staticField;
+  field core::int field;
+  synthetic constructor •() → self::C
     ;
-  static get staticGetter() → core::int*
+  static get staticGetter() → core::int
     ;
   static set staticSetter(dynamic val) → void
     ;
-  static method staticFoo(core::int* param) → core::int*
+  static method staticFoo(core::int param) → core::int
     ;
-  get getter() → core::int*
+  get getter() → core::int
     ;
   set setter(dynamic val) → void
     ;
-  method foo(core::int* param) → core::int*
+  method foo(core::int param) → 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 field core::int* globalVariable;
-static final field core::bool* assertStatementsEnabled;
-static method topLevelFoo(core::int* param) → core::int*
+static field core::int globalVariable;
+static final field core::bool assertStatementsEnabled;
+static method topLevelFoo(core::int param) → core::int
   ;
-static get topLevelGetter() → core::int*
+static get topLevelGetter() → core::int
   ;
 static set topLevelSetter(dynamic val) → void
   ;
@@ -57,15 +47,15 @@
   ;
 static method controlFlow() → dynamic async 
   ;
-static method future<T extends core::Object* = dynamic>(self::future::T* value) → FutureOr<self::future::T*>* async 
+static method future<T extends core::Object? = dynamic>(self::future::T% value) → FutureOr<self::future::T%> async 
   ;
-static method id<T extends core::Object* = dynamic>(self::id::T* value) → FutureOr<self::id::T*>*
+static method id<T extends core::Object? = dynamic>(self::id::T% value) → FutureOr<self::id::T%>
   ;
-static method intStream() → asy::Stream<core::int*>* async* 
+static method intStream() → asy::Stream<core::int> async* 
   ;
 static method main() → dynamic async 
   ;
 static method expect(dynamic expected, dynamic actual) → dynamic
   ;
-static method expectList(core::List<dynamic>* expected, core::List<dynamic>* actual) → dynamic
+static method expectList(core::List<dynamic> expected, core::List<dynamic> actual) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/await_complex.dart.weak.transformed.expect b/pkg/front_end/testcases/general/await_complex.dart.weak.transformed.expect
index a29ca5f..e4c6804 100644
--- a/pkg/front_end/testcases/general/await_complex.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/await_complex.dart.weak.transformed.expect
@@ -1,4 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/await_complex.dart:120:12: Error: A value of type 'FutureOr<bool>' can't be assigned to a variable of type 'bool'.
+//     assert(id(true), await func("message"));
+//            ^
+//
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -7,277 +14,267 @@
 import "dart:async";
 
 class C extends core::Object {
-  static field core::int* staticField = 1;
-  field core::int* field = 1;
-  synthetic constructor •() → self::C*
+  static field core::int staticField = 1;
+  field core::int field = 1;
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  static get staticGetter() → core::int*
+  static get staticGetter() → core::int
     return self::C::staticField;
   static set staticSetter(dynamic val) → void {
-    self::C::staticField = val as{TypeError,ForDynamic} core::int*;
+    self::C::staticField = val as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
   }
-  static method staticFoo(core::int* param) → core::int*
+  static method staticFoo(core::int param) → core::int
     return param;
-  get getter() → core::int*
-    return this.{self::C::field}{core::int*};
+  get getter() → core::int
+    return this.{self::C::field}{core::int};
   set setter(dynamic val) → void {
-    this.{self::C::field} = val as{TypeError,ForDynamic} core::int*;
+    this.{self::C::field} = val as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
   }
-  method foo(core::int* param) → core::int*
+  method foo(core::int param) → core::int
     return param;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::int* globalVariable = 1;
-static final field core::bool* assertStatementsEnabled = (() → core::bool* {
+static field core::int globalVariable = 1;
+static final field core::bool assertStatementsEnabled = (() → core::bool {
   try {
     assert(false);
     return false;
   }
-  on dynamic catch(final dynamic _) {
+  on core::Object catch(final core::Object _) {
     return true;
   }
-})(){() →* core::bool*};
-static method topLevelFoo(core::int* param) → core::int*
+})(){() → core::bool};
+static method topLevelFoo(core::int param) → core::int
   return 1;
-static get topLevelGetter() → core::int*
+static get topLevelGetter() → core::int
   return self::globalVariable;
 static set topLevelSetter(dynamic val) → void {
-  self::globalVariable = val as{TypeError,ForDynamic} core::int*;
+  self::globalVariable = val as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
 }
 static method dummy() → dynamic
   return 1;
 static method staticMembers() → 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;
-  core::int* :async_temporary_0;
-  core::int* :async_temporary_1;
-  core::int* :async_temporary_2;
-  core::int* :async_temporary_3;
-  core::int* :async_temporary_4;
-  core::int* :async_temporary_5;
+  core::int :async_temporary_0;
+  core::int :async_temporary_1;
+  core::int :async_temporary_2;
+  core::int :async_temporary_3;
+  core::int :async_temporary_4;
+  core::int :async_temporary_5;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
       #L1:
       {
         :async_temporary_0 = self::C::staticField;
         [yield] let dynamic #t1 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* a = _in::unsafeCast<core::int*>(:async_temporary_0).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num a = _in::unsafeCast<core::int>(:async_temporary_0).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(2, a);
         :async_temporary_1 = self::C::staticField = 1;
         [yield] let dynamic #t2 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* f = _in::unsafeCast<core::int*>(:async_temporary_1).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num f = _in::unsafeCast<core::int>(:async_temporary_1).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(2, f);
         :async_temporary_2 = self::C::staticGetter;
         [yield] let dynamic #t3 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* b = _in::unsafeCast<core::int*>(:async_temporary_2).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num b = _in::unsafeCast<core::int>(:async_temporary_2).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(2, b);
         :async_temporary_3 = self::C::staticSetter = 1;
         [yield] let dynamic #t4 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* c = _in::unsafeCast<core::int*>(:async_temporary_3).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num c = _in::unsafeCast<core::int>(:async_temporary_3).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(2, c);
         :async_temporary_4 = self::C::staticFoo(2);
         [yield] let dynamic #t5 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* d = _in::unsafeCast<core::int*>(:async_temporary_4).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num d = _in::unsafeCast<core::int>(:async_temporary_4).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(3, d);
-        :async_temporary_5 = self::C::staticField.{core::num::+}(self::C::staticGetter){(core::num*) →* core::int*}.{core::num::+}(self::C::staticSetter = 1){(core::num*) →* core::int*}.{core::num::+}(self::C::staticFoo(1)){(core::num*) →* core::int*};
+        :async_temporary_5 = self::C::staticField.{core::num::+}(self::C::staticGetter){(core::num) → core::int}.{core::num::+}(self::C::staticSetter = 1){(core::num) → core::int}.{core::num::+}(self::C::staticFoo(1)){(core::num) → core::int};
         [yield] let dynamic #t6 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* e = _in::unsafeCast<core::int*>(:async_temporary_5).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num e = _in::unsafeCast<core::int>(:async_temporary_5).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(5, e);
       }
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
 static method topLevelMembers() → 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;
-  core::int* :async_temporary_0;
-  core::int* :async_temporary_1;
-  core::int* :async_temporary_2;
-  core::int* :async_temporary_3;
-  core::int* :async_temporary_4;
+  core::int :async_temporary_0;
+  core::int :async_temporary_1;
+  core::int :async_temporary_2;
+  core::int :async_temporary_3;
+  core::int :async_temporary_4;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
       #L2:
       {
         :async_temporary_0 = self::globalVariable;
         [yield] let dynamic #t7 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* a = _in::unsafeCast<core::int*>(:async_temporary_0).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num a = _in::unsafeCast<core::int>(:async_temporary_0).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(2, a);
         :async_temporary_1 = self::topLevelGetter;
         [yield] let dynamic #t8 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* b = _in::unsafeCast<core::int*>(:async_temporary_1).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num b = _in::unsafeCast<core::int>(:async_temporary_1).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(2, b);
         :async_temporary_2 = self::topLevelSetter = 1;
         [yield] let dynamic #t9 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* c = _in::unsafeCast<core::int*>(:async_temporary_2).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num c = _in::unsafeCast<core::int>(:async_temporary_2).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(2, c);
         :async_temporary_3 = self::topLevelFoo(1);
         [yield] let dynamic #t10 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* d = _in::unsafeCast<core::int*>(:async_temporary_3).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num d = _in::unsafeCast<core::int>(:async_temporary_3).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(2, d);
-        :async_temporary_4 = self::globalVariable.{core::num::+}(self::topLevelGetter){(core::num*) →* core::int*}.{core::num::+}(self::topLevelSetter = 1){(core::num*) →* core::int*}.{core::num::+}(self::topLevelFoo(1)){(core::num*) →* core::int*};
+        :async_temporary_4 = self::globalVariable.{core::num::+}(self::topLevelGetter){(core::num) → core::int}.{core::num::+}(self::topLevelSetter = 1){(core::num) → core::int}.{core::num::+}(self::topLevelFoo(1)){(core::num) → core::int};
         [yield] let dynamic #t11 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* e = _in::unsafeCast<core::int*>(:async_temporary_4).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num e = _in::unsafeCast<core::int>(:async_temporary_4).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(5, e);
       }
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
 static method instanceMembers() → 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;
-  core::int* :async_temporary_0;
-  core::int* :async_temporary_1;
-  core::int* :async_temporary_2;
-  core::int* :async_temporary_3;
-  core::int* :async_temporary_4;
+  core::int :async_temporary_0;
+  core::int :async_temporary_1;
+  core::int :async_temporary_2;
+  core::int :async_temporary_3;
+  core::int :async_temporary_4;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
       #L3:
       {
-        self::C* inst = new self::C::•();
-        :async_temporary_0 = inst.{self::C::field}{core::int*};
+        self::C inst = new self::C::•();
+        :async_temporary_0 = inst.{self::C::field}{core::int};
         [yield] let dynamic #t12 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* a = _in::unsafeCast<core::int*>(:async_temporary_0).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num a = _in::unsafeCast<core::int>(:async_temporary_0).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(2, a);
-        :async_temporary_1 = inst.{self::C::getter}{core::int*};
+        :async_temporary_1 = inst.{self::C::getter}{core::int};
         [yield] let dynamic #t13 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* b = _in::unsafeCast<core::int*>(:async_temporary_1).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num b = _in::unsafeCast<core::int>(:async_temporary_1).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(2, b);
         :async_temporary_2 = inst.{self::C::setter} = 1;
         [yield] let dynamic #t14 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* c = _in::unsafeCast<core::int*>(:async_temporary_2).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num c = _in::unsafeCast<core::int>(:async_temporary_2).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(2, c);
-        :async_temporary_3 = inst.{self::C::foo}(1){(core::int*) →* core::int*};
+        :async_temporary_3 = inst.{self::C::foo}(1){(core::int) → core::int};
         [yield] let dynamic #t15 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* d = _in::unsafeCast<core::int*>(:async_temporary_3).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num d = _in::unsafeCast<core::int>(:async_temporary_3).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(2, d);
-        :async_temporary_4 = inst.{self::C::field}{core::int*}.{core::num::+}(inst.{self::C::getter}{core::int*}){(core::num*) →* core::int*}.{core::num::+}(inst.{self::C::setter} = 1){(core::num*) →* core::int*}.{core::num::+}(inst.{self::C::foo}(1){(core::int*) →* core::int*}){(core::num*) →* core::int*};
+        :async_temporary_4 = inst.{self::C::field}{core::int}.{core::num::+}(inst.{self::C::getter}{core::int}){(core::num) → core::int}.{core::num::+}(inst.{self::C::setter} = 1){(core::num) → core::int}.{core::num::+}(inst.{self::C::foo}(1){(core::int) → core::int}){(core::num) → core::int};
         [yield] let dynamic #t16 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* e = _in::unsafeCast<core::int*>(:async_temporary_4).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num e = _in::unsafeCast<core::int>(:async_temporary_4).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(5, e);
       }
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
 static method others() → 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 :async_temporary_0;
-  core::int* :async_temporary_1;
-  core::int* :async_temporary_2;
-  core::List<core::int*>* :async_temporary_3;
-  core::int* :async_temporary_4;
+  core::int :async_temporary_1;
+  core::int :async_temporary_2;
+  core::List<core::int> :async_temporary_3;
+  core::int :async_temporary_4;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
       #L4:
       {
         :async_temporary_0 = self::globalVariable;
         [yield] let dynamic #t17 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        :async_temporary_0 = "${_in::unsafeCast<core::int*>(:async_temporary_0)} ${:result_or_exception} ";
+        :async_temporary_0 = "${_in::unsafeCast<core::int>(:async_temporary_0)} ${:result_or_exception} ";
         [yield] let dynamic #t18 = asy::_awaitHelper("someString", :async_op_then, :async_op_error) in null;
-        core::String* a = _in::unsafeCast<core::String*>(:async_temporary_0).{core::String::+}(_in::unsafeCast<core::String*>(:result_or_exception)){(core::String*) →* core::String*};
+        core::String a = _in::unsafeCast<core::String>(:async_temporary_0).{core::String::+}(_in::unsafeCast<core::String>(:result_or_exception)){(core::String) → core::String};
         self::expect("1 1 someString", a);
-        self::C* c = new self::C::•();
-        :async_temporary_1 = c.{self::C::field}{core::int*};
+        self::C c = new self::C::•();
+        :async_temporary_1 = c.{self::C::field}{core::int};
         [yield] let dynamic #t19 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* d = _in::unsafeCast<core::int*>(:async_temporary_1).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
-        core::int* cnt = 2;
-        core::List<core::int*>* b = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
+        core::num d = _in::unsafeCast<core::int>(:async_temporary_1).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
+        core::int cnt = 2;
+        core::List<core::int> b = core::_GrowableList::_literal3<core::int>(1, 2, 3);
         :async_temporary_3 = b;
         :async_temporary_2 = cnt;
         [yield] let dynamic #t20 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        _in::unsafeCast<core::List<core::int*>*>(:async_temporary_3).{core::List::[]=}(_in::unsafeCast<core::int*>(:async_temporary_2), :result_or_exception as{TypeError,ForDynamic} core::int*){(core::int*, core::int*) →* void};
-        self::expect(1, b.{core::List::[]}(cnt){(core::int*) →* core::int*});
-        :async_temporary_4 = b.{core::List::[]}(0){(core::int*) →* core::int*};
+        _in::unsafeCast<core::List<core::int>>(:async_temporary_3).{core::List::[]=}(_in::unsafeCast<core::int>(:async_temporary_2), :result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int, core::int) → void};
+        self::expect(1, b.{core::List::[]}(cnt){(core::int) → core::int});
+        :async_temporary_4 = b.{core::List::[]}(0){(core::int) → core::int};
         [yield] let dynamic #t21 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-        core::num* e = _in::unsafeCast<core::int*>(:async_temporary_4).{core::num::+}(:result_or_exception as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+        core::num e = _in::unsafeCast<core::int>(:async_temporary_4).{core::num::+}(:result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
         self::expect(2, e);
       }
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
 static method conditionals() → 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;
-  core::bool* :async_temporary_0;
+  core::bool :async_temporary_0;
   dynamic :async_temporary_1;
   dynamic :async_temporary_2;
   dynamic :async_temporary_3;
@@ -285,16 +282,16 @@
     try {
       #L5:
       {
-        core::bool* a = false;
-        core::bool* b = true;
+        core::bool a = false;
+        core::bool b = true;
         :async_temporary_0 = (a || b) =={core::Object::==}{(core::Object) → core::bool} true;
-        if(_in::unsafeCast<core::bool*>(:async_temporary_0))
+        if(_in::unsafeCast<core::bool>(:async_temporary_0))
           ;
         else {
           [yield] let dynamic #t22 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
-          :async_temporary_0 = :result_or_exception as{TypeError,ForDynamic} core::bool* =={core::Object::==}{(core::Object) → core::bool} true;
+          :async_temporary_0 = :result_or_exception as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool =={core::Object::==}{(core::Object) → core::bool} true;
         }
-        core::bool* c = _in::unsafeCast<core::bool*>(:async_temporary_0);
+        core::bool c = _in::unsafeCast<core::bool>(:async_temporary_0);
         self::expect(true, c);
         if(a || b) {
           :async_temporary_1 = a;
@@ -305,7 +302,7 @@
         }
         dynamic d = :async_temporary_1;
         self::expect(false, d);
-        if(a is core::int*) {
+        if(a is{ForNonNullableByDefault} core::int) {
           [yield] let dynamic #t24 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
           :async_temporary_2 = :result_or_exception;
         }
@@ -315,7 +312,7 @@
         dynamic e = :async_temporary_2;
         self::expect(2, e);
         try {
-          if(a is core::int*) {
+          if(a is{ForNonNullableByDefault} core::int) {
             [yield] let dynamic #t25 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error) in null;
             :async_temporary_3 = :result_or_exception;
           }
@@ -324,28 +321,28 @@
           }
           dynamic f = :async_temporary_3;
         }
-        on dynamic catch(final dynamic e) {
+        on core::Object catch(final core::Object e) {
         }
       }
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
 static method asserts() → 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;
@@ -354,47 +351,48 @@
       #L6:
       {
         {
-          core::Iterator<core::Function*>* :sync-for-iterator = core::_GrowableList::_literal2<core::Function*>(#C1, #C2).{core::Iterable::iterator}{core::Iterator<core::Function*>*};
+          core::Iterator<<T extends core::Object? = dynamic>(T%) → FutureOr<T%>> :sync-for-iterator = core::_GrowableList::_literal2<<T extends core::Object? = dynamic>(T%) → FutureOr<T%>>(#C1, #C2).{core::Iterable::iterator}{core::Iterator<<T extends core::Object? = dynamic>(T%) → FutureOr<T%>>};
           for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-            final core::Function* #t26 = :sync-for-iterator.{core::Iterator::current}{core::Function*};
+            final <T extends core::Object? = dynamic>(T%) → FutureOr<T%>func = :sync-for-iterator.{core::Iterator::current}{<T extends core::Object? = dynamic>(T%) → FutureOr<T%>};
             {
-              final <T extends core::Object* = dynamic>(T*) →* FutureOr<T*>* func = #t26 as{TypeError} <T extends core::Object* = dynamic>(T*) →* FutureOr<T*>*;
               assert {
-                [yield] let dynamic #t27 = asy::_awaitHelper(func<core::bool*>(true){(core::bool*) →* FutureOr<core::bool*>*}, :async_op_then, :async_op_error) in null;
-                assert(_in::unsafeCast<core::bool*>(:result_or_exception));
+                [yield] let dynamic #t26 = asy::_awaitHelper(func<core::bool>(true){(core::bool) → FutureOr<core::bool>}, :async_op_then, :async_op_error) in null;
+                assert(_in::unsafeCast<core::bool>(:result_or_exception));
               }
               assert {
-                if(self::id<core::bool*>(true) as{TypeError} core::bool*)
+                if(invalid-expression "pkg/front_end/testcases/general/await_complex.dart:120:12: Error: A value of type 'FutureOr<bool>' can't be assigned to a variable of type 'bool'.
+    assert(id(true), await func(\"message\"));
+           ^" in self::id<core::bool>(true) as{TypeError,ForNonNullableByDefault} core::bool)
                   ;
                 else {
-                  [yield] let dynamic #t28 = asy::_awaitHelper(func<core::String*>("message"){(core::String*) →* FutureOr<core::String*>*}, :async_op_then, :async_op_error) in null;
-                  assert(false, _in::unsafeCast<core::String*>(:result_or_exception));
+                  [yield] let dynamic #t27 = asy::_awaitHelper(func<core::String>("message"){(core::String) → FutureOr<core::String>}, :async_op_then, :async_op_error) in null;
+                  assert(false, _in::unsafeCast<core::String>(:result_or_exception));
                 }
               }
               assert {
-                [yield] let dynamic #t29 = asy::_awaitHelper(func<core::bool*>(true){(core::bool*) →* FutureOr<core::bool*>*}, :async_op_then, :async_op_error) in null;
-                if(_in::unsafeCast<core::bool*>(:result_or_exception))
+                [yield] let dynamic #t28 = asy::_awaitHelper(func<core::bool>(true){(core::bool) → FutureOr<core::bool>}, :async_op_then, :async_op_error) in null;
+                if(_in::unsafeCast<core::bool>(:result_or_exception))
                   ;
                 else {
-                  [yield] let dynamic #t30 = asy::_awaitHelper(func<core::String*>("message"){(core::String*) →* FutureOr<core::String*>*}, :async_op_then, :async_op_error) in null;
-                  assert(false, _in::unsafeCast<core::String*>(:result_or_exception));
+                  [yield] let dynamic #t29 = asy::_awaitHelper(func<core::String>("message"){(core::String) → FutureOr<core::String>}, :async_op_then, :async_op_error) in null;
+                  assert(false, _in::unsafeCast<core::String>(:result_or_exception));
                 }
               }
               try {
                 assert {
-                  [yield] let dynamic #t31 = asy::_awaitHelper(func<core::bool*>(false){(core::bool*) →* FutureOr<core::bool*>*}, :async_op_then, :async_op_error) in null;
-                  if(_in::unsafeCast<core::bool*>(:result_or_exception))
+                  [yield] let dynamic #t30 = asy::_awaitHelper(func<core::bool>(false){(core::bool) → FutureOr<core::bool>}, :async_op_then, :async_op_error) in null;
+                  if(_in::unsafeCast<core::bool>(:result_or_exception))
                     ;
                   else {
-                    [yield] let dynamic #t32 = asy::_awaitHelper(func<core::String*>("message"){(core::String*) →* FutureOr<core::String*>*}, :async_op_then, :async_op_error) in null;
-                    assert(false, _in::unsafeCast<core::String*>(:result_or_exception));
+                    [yield] let dynamic #t31 = asy::_awaitHelper(func<core::String>("message"){(core::String) → FutureOr<core::String>}, :async_op_then, :async_op_error) in null;
+                    assert(false, _in::unsafeCast<core::String>(:result_or_exception));
                   }
                 }
                 if(self::assertStatementsEnabled)
                   throw "Didn't throw";
               }
-              on core::AssertionError* catch(final core::AssertionError* e) {
-                self::expect("message", e.{core::AssertionError::message}{core::Object*});
+              on core::AssertionError catch(final core::AssertionError e) {
+                self::expect("message", e.{core::AssertionError::message}{core::Object?});
               }
             }
           }
@@ -403,22 +401,22 @@
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
 static method controlFlow() → 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;
@@ -426,41 +424,40 @@
   dynamic :saved_try_context_var3;
   dynamic :exception0;
   dynamic :stack_trace0;
-  core::List<dynamic>* :async_temporary_0;
-  core::List<dynamic>* :async_temporary_1;
+  core::List<dynamic> :async_temporary_0;
+  core::List<dynamic> :async_temporary_1;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
       #L7:
       {
         {
-          core::Iterator<core::Function*>* :sync-for-iterator = core::_GrowableList::_literal2<core::Function*>(#C1, #C2).{core::Iterable::iterator}{core::Iterator<core::Function*>*};
+          core::Iterator<<T extends core::Object? = dynamic>(T%) → FutureOr<T%>> :sync-for-iterator = core::_GrowableList::_literal2<<T extends core::Object? = dynamic>(T%) → FutureOr<T%>>(#C1, #C2).{core::Iterable::iterator}{core::Iterator<<T extends core::Object? = dynamic>(T%) → FutureOr<T%>>};
           for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-            final core::Function* #t33 = :sync-for-iterator.{core::Iterator::current}{core::Function*};
+            final <T extends core::Object? = dynamic>(T%) → FutureOr<T%>func = :sync-for-iterator.{core::Iterator::current}{<T extends core::Object? = dynamic>(T%) → FutureOr<T%>};
             {
-              final <T extends core::Object* = dynamic>(T*) →* FutureOr<T*>* func = #t33 as{TypeError} <T extends core::Object* = dynamic>(T*) →* FutureOr<T*>*;
-              core::int* c = 0;
+              core::int c = 0;
               {
-                dynamic #t34 = true;
-                core::int* #t35;
+                dynamic #t32 = true;
+                core::int #t33;
                 #L8:
                 while (true) {
-                  core::int* i;
-                  if(#t34) {
-                    #t34 = false;
-                    [yield] let dynamic #t36 = asy::_awaitHelper(func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*}, :async_op_then, :async_op_error) in null;
-                    i = _in::unsafeCast<core::int*>(:result_or_exception);
+                  core::int i;
+                  if(#t32) {
+                    #t32 = false;
+                    [yield] let dynamic #t34 = asy::_awaitHelper(func<core::int>(0){(core::int) → FutureOr<core::int>}, :async_op_then, :async_op_error) in null;
+                    i = _in::unsafeCast<core::int>(:result_or_exception);
                   }
                   else {
-                    i = #t35;
-                    [yield] let dynamic #t37 = asy::_awaitHelper(func<core::int*>(let final core::int* #t38 = i in let final core::int* #t39 = i = #t38.{core::num::+}(1){(core::num*) →* core::int*} in #t38){(core::int*) →* FutureOr<core::int*>*}, :async_op_then, :async_op_error) in null;
-                    _in::unsafeCast<core::int*>(:result_or_exception);
+                    i = #t33;
+                    [yield] let dynamic #t35 = asy::_awaitHelper(func<core::int>(let final core::int #t36 = i in let final core::int #t37 = i = #t36.{core::num::+}(1){(core::num) → core::int} in #t36){(core::int) → FutureOr<core::int>}, :async_op_then, :async_op_error) in null;
+                    _in::unsafeCast<core::int>(:result_or_exception);
                   }
-                  [yield] let dynamic #t40 = asy::_awaitHelper(func<core::bool*>(i.{core::num::<}(5){(core::num*) →* core::bool*}){(core::bool*) →* FutureOr<core::bool*>*}, :async_op_then, :async_op_error) in null;
-                  if(_in::unsafeCast<core::bool*>(:result_or_exception)) {
+                  [yield] let dynamic #t38 = asy::_awaitHelper(func<core::bool>(i.{core::num::<}(5){(core::num) → core::bool}){(core::bool) → FutureOr<core::bool>}, :async_op_then, :async_op_error) in null;
+                  if(_in::unsafeCast<core::bool>(:result_or_exception)) {
                     {
-                      c = c.{core::num::+}(1){(core::num*) →* core::int*};
+                      c = c.{core::num::+}(1){(core::num) → core::int};
                     }
-                    #t35 = i;
+                    #t33 = i;
                   }
                   else
                     break #L8;
@@ -470,38 +467,38 @@
               c = 0;
               #L9:
               while (true) {
-                [yield] let dynamic #t41 = asy::_awaitHelper(func<core::bool*>(c.{core::num::<}(5){(core::num*) →* core::bool*}){(core::bool*) →* FutureOr<core::bool*>*}, :async_op_then, :async_op_error) in null;
-                if(_in::unsafeCast<core::bool*>(:result_or_exception))
-                  c = c.{core::num::+}(1){(core::num*) →* core::int*};
+                [yield] let dynamic #t39 = asy::_awaitHelper(func<core::bool>(c.{core::num::<}(5){(core::num) → core::bool}){(core::bool) → FutureOr<core::bool>}, :async_op_then, :async_op_error) in null;
+                if(_in::unsafeCast<core::bool>(:result_or_exception))
+                  c = c.{core::num::+}(1){(core::num) → core::int};
                 else
                   break #L9;
               }
               self::expect(5, c);
               c = 0;
               do {
-                c = c.{core::num::+}(1){(core::num*) →* core::int*};
-                [yield] let dynamic #t42 = asy::_awaitHelper(func<core::bool*>(c.{core::num::<}(5){(core::num*) →* core::bool*}){(core::bool*) →* FutureOr<core::bool*>*}, :async_op_then, :async_op_error) in null;
+                c = c.{core::num::+}(1){(core::num) → core::int};
+                [yield] let dynamic #t40 = asy::_awaitHelper(func<core::bool>(c.{core::num::<}(5){(core::num) → core::bool}){(core::bool) → FutureOr<core::bool>}, :async_op_then, :async_op_error) in null;
               }
-              while (_in::unsafeCast<core::bool*>(:result_or_exception))
+              while (_in::unsafeCast<core::bool>(:result_or_exception))
               self::expect(5, c);
-              [yield] let dynamic #t43 = asy::_awaitHelper(func<core::bool*>(c =={core::num::==}{(core::Object*) →* core::bool*} 5){(core::bool*) →* FutureOr<core::bool*>*}, :async_op_then, :async_op_error) in null;
-              if(_in::unsafeCast<core::bool*>(:result_or_exception)) {
+              [yield] let dynamic #t41 = asy::_awaitHelper(func<core::bool>(c =={core::num::==}{(core::Object) → core::bool} 5){(core::bool) → FutureOr<core::bool>}, :async_op_then, :async_op_error) in null;
+              if(_in::unsafeCast<core::bool>(:result_or_exception)) {
                 self::expect(5, c);
               }
               else {
                 throw "unreachable";
               }
               try {
-                [yield] let dynamic #t44 = asy::_awaitHelper(func<core::String*>("string"){(core::String*) →* FutureOr<core::String*>*}, :async_op_then, :async_op_error) in null;
-                throw _in::unsafeCast<core::String*>(:result_or_exception);
+                [yield] let dynamic #t42 = asy::_awaitHelper(func<core::String>("string"){(core::String) → FutureOr<core::String>}, :async_op_then, :async_op_error) in null;
+                throw _in::unsafeCast<core::String>(:result_or_exception);
               }
-              on core::String* catch(no-exception-var) {
+              on core::String catch(no-exception-var) {
               }
               try {
-                [yield] let dynamic #t45 = asy::_awaitHelper(throw "string", :async_op_then, :async_op_error) in null;
-                _in::unsafeCast<Never*>(:result_or_exception);
+                [yield] let dynamic #t43 = asy::_awaitHelper(throw "string", :async_op_then, :async_op_error) in null;
+                let final Never #t44 = _in::unsafeCast<Never>(:result_or_exception) in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
               }
-              on core::String* catch(no-exception-var) {
+              on core::String catch(no-exception-var) {
               }
               try
                 try {
@@ -509,30 +506,30 @@
                     try {
                       throw "string";
                     }
-                    on dynamic catch(final dynamic e) {
+                    on core::Object catch(final core::Object e) {
                       self::expect("string", e);
-                      [yield] let dynamic #t46 = asy::_awaitHelper(func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*}, :async_op_then, :async_op_error) in null;
-                      self::expect(0, _in::unsafeCast<core::int*>(:result_or_exception));
+                      [yield] let dynamic #t45 = asy::_awaitHelper(func<core::int>(0){(core::int) → FutureOr<core::int>}, :async_op_then, :async_op_error) in null;
+                      self::expect(0, _in::unsafeCast<core::int>(:result_or_exception));
                       rethrow;
                     }
                   finally {
-                    [yield] let dynamic #t47 = asy::_awaitHelper(func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*}, :async_op_then, :async_op_error) in null;
-                    self::expect(0, _in::unsafeCast<core::int*>(:result_or_exception));
+                    [yield] let dynamic #t46 = asy::_awaitHelper(func<core::int>(0){(core::int) → FutureOr<core::int>}, :async_op_then, :async_op_error) in null;
+                    self::expect(0, _in::unsafeCast<core::int>(:result_or_exception));
                   }
                 }
-                on dynamic catch(final dynamic e) {
-                  [yield] let dynamic #t48 = asy::_awaitHelper(func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*}, :async_op_then, :async_op_error) in null;
-                  self::expect(0, _in::unsafeCast<core::int*>(:result_or_exception));
+                on core::Object catch(final core::Object e) {
+                  [yield] let dynamic #t47 = asy::_awaitHelper(func<core::int>(0){(core::int) → FutureOr<core::int>}, :async_op_then, :async_op_error) in null;
+                  self::expect(0, _in::unsafeCast<core::int>(:result_or_exception));
                   self::expect("string", e);
                 }
               finally {
-                [yield] let dynamic #t49 = asy::_awaitHelper(func<core::int*>(0){(core::int*) →* FutureOr<core::int*>*}, :async_op_then, :async_op_error) in null;
-                self::expect(0, _in::unsafeCast<core::int*>(:result_or_exception));
+                [yield] let dynamic #t48 = asy::_awaitHelper(func<core::int>(0){(core::int) → FutureOr<core::int>}, :async_op_then, :async_op_error) in null;
+                self::expect(0, _in::unsafeCast<core::int>(:result_or_exception));
               }
               #L10:
               {
-                [yield] let dynamic #t50 = asy::_awaitHelper(func<core::int*>(2){(core::int*) →* FutureOr<core::int*>*}, :async_op_then, :async_op_error) in null;
-                switch(_in::unsafeCast<core::int*>(:result_or_exception)) {
+                [yield] let dynamic #t49 = asy::_awaitHelper(func<core::int>(2){(core::int) → FutureOr<core::int>}, :async_op_then, :async_op_error) in null;
+                switch(_in::unsafeCast<core::int>(:result_or_exception)) {
                   #L11:
                   case #C3:
                     {
@@ -545,70 +542,70 @@
                     }
                 }
               }
-              [yield] let dynamic #t51 = asy::_awaitHelper((() → asy::Future<dynamic>* /* originally async */ {
-                final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
+              [yield] let dynamic #t50 = asy::_awaitHelper((() → asy::Future<core::int> /* originally async */ {
+                final asy::_Future<core::int> :async_future = new asy::_Future::•<core::int>();
                 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;
+                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;
                 dynamic :saved_try_context_var0;
                 function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
                   try {
                     #L13:
                     {
-                      [yield] let dynamic #t52 = asy::_awaitHelper(func<dynamic>(42){(dynamic) →* FutureOr<dynamic>*}, :async_op_then, :async_op_error) in null;
-                      :return_value = :result_or_exception;
+                      [yield] let dynamic #t51 = asy::_awaitHelper(func<core::int>(42){(core::int) → FutureOr<core::int>}, :async_op_then, :async_op_error) in null;
+                      :return_value = _in::unsafeCast<core::int>(:result_or_exception);
                       break #L13;
                     }
-                    asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
+                    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;
-              })(){() →* asy::Future<dynamic>*}, :async_op_then, :async_op_error) in null;
-              self::expect(42, :result_or_exception);
-              [yield] let dynamic #t53 = asy::_awaitHelper((() → asy::Future<dynamic>* /* originally async */ {
-                final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
+              })(){() → asy::Future<core::int>}, :async_op_then, :async_op_error) in null;
+              self::expect(42, _in::unsafeCast<core::int>(:result_or_exception));
+              [yield] let dynamic #t52 = asy::_awaitHelper((() → asy::Future<core::int> /* originally async */ {
+                final asy::_Future<core::int> :async_future = new asy::_Future::•<core::int>();
                 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<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 {
                     #L14:
                     {
-                      :return_value = func<dynamic>(42){(dynamic) →* FutureOr<dynamic>*};
+                      :return_value = func<core::int>(42){(core::int) → FutureOr<core::int>};
                       break #L14;
                     }
                     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;
-              })(){() →* asy::Future<dynamic>*}, :async_op_then, :async_op_error) in null;
-              self::expect(42, :result_or_exception);
-              function testStream1() → asy::Stream<core::int*>* /* originally async* */ {
-                asy::_AsyncStarStreamController<core::int*>* :controller;
+              })(){() → asy::Future<core::int>}, :async_op_then, :async_op_error) in null;
+              self::expect(42, _in::unsafeCast<core::int>(:result_or_exception));
+              function testStream1() → asy::Stream<core::int> /* originally async* */ {
+                asy::_AsyncStarStreamController<core::int>? :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;
@@ -617,15 +614,15 @@
                     try {
                       #L15:
                       {
-                        [yield] let dynamic #t54 = asy::_awaitHelper(func<core::int*>(42){(core::int*) →* FutureOr<core::int*>*}, :async_op_then, :async_op_error) in null;
-                        if(:controller.{asy::_AsyncStarStreamController::add}(_in::unsafeCast<core::int*>(:result_or_exception)){(core::int*) → core::bool})
+                        [yield] let dynamic #t53 = asy::_awaitHelper(func<core::int>(42){(core::int) → FutureOr<core::int>}, :async_op_then, :async_op_error) in null;
+                        if(:controller.{asy::_AsyncStarStreamController::add}(_in::unsafeCast<core::int>(:result_or_exception)){(core::int) → core::bool})
                           return null;
                         else
                           [yield] null;
                       }
                       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 {
@@ -633,19 +630,19 @@
                   }
                 :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
                 :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-                :controller = new asy::_AsyncStarStreamController::•<core::int*>(:async_op);
-                :controller_stream = :controller.{asy::_AsyncStarStreamController::stream}{asy::Stream<core::int*>};
+                :controller = new asy::_AsyncStarStreamController::•<core::int>(:async_op);
+                :controller_stream = :controller.{asy::_AsyncStarStreamController::stream}{asy::Stream<core::int>};
                 return :controller_stream;
               }
               :async_temporary_0 = core::_GrowableList::_literal1<dynamic>(42);
-              [yield] let dynamic #t55 = asy::_awaitHelper(testStream1(){() →* asy::Stream<core::int*>*}.{asy::Stream::toList}(){() →* asy::Future<core::List<core::int*>*>*}, :async_op_then, :async_op_error) in null;
-              self::expectList(_in::unsafeCast<core::List<dynamic>*>(:async_temporary_0), _in::unsafeCast<core::List<core::int*>*>(:result_or_exception));
-              function testStream2() → asy::Stream<core::int*>* /* originally async* */ {
-                asy::_AsyncStarStreamController<core::int*>* :controller;
+              [yield] let dynamic #t54 = asy::_awaitHelper(testStream1(){() → asy::Stream<core::int>}.{asy::Stream::toList}(){() → asy::Future<core::List<core::int>>}, :async_op_then, :async_op_error) in null;
+              self::expectList(_in::unsafeCast<core::List<dynamic>>(:async_temporary_0), _in::unsafeCast<core::List<core::int>>(:result_or_exception));
+              function testStream2() → asy::Stream<core::int> /* originally async* */ {
+                asy::_AsyncStarStreamController<core::int>? :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;
@@ -654,15 +651,15 @@
                     try {
                       #L16:
                       {
-                        [yield] let dynamic #t56 = asy::_awaitHelper(func<asy::Stream<core::int*>*>(self::intStream()){(asy::Stream<core::int*>*) →* FutureOr<asy::Stream<core::int*>*>*}, :async_op_then, :async_op_error) in null;
-                        if(:controller.{asy::_AsyncStarStreamController::addStream}(_in::unsafeCast<asy::Stream<core::int*>*>(:result_or_exception)){(asy::Stream<core::int*>) → core::bool})
+                        [yield] let dynamic #t55 = asy::_awaitHelper(func<asy::Stream<core::int>>(self::intStream()){(asy::Stream<core::int>) → FutureOr<asy::Stream<core::int>>}, :async_op_then, :async_op_error) in null;
+                        if(:controller.{asy::_AsyncStarStreamController::addStream}(_in::unsafeCast<asy::Stream<core::int>>(:result_or_exception)){(asy::Stream<core::int>) → core::bool})
                           return null;
                         else
                           [yield] null;
                       }
                       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 {
@@ -670,13 +667,13 @@
                   }
                 :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
                 :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-                :controller = new asy::_AsyncStarStreamController::•<core::int*>(:async_op);
-                :controller_stream = :controller.{asy::_AsyncStarStreamController::stream}{asy::Stream<core::int*>};
+                :controller = new asy::_AsyncStarStreamController::•<core::int>(:async_op);
+                :controller_stream = :controller.{asy::_AsyncStarStreamController::stream}{asy::Stream<core::int>};
                 return :controller_stream;
               }
               :async_temporary_1 = core::_GrowableList::_literal1<dynamic>(42);
-              [yield] let dynamic #t57 = asy::_awaitHelper(testStream2(){() →* asy::Stream<core::int*>*}.{asy::Stream::toList}(){() →* asy::Future<core::List<core::int*>*>*}, :async_op_then, :async_op_error) in null;
-              self::expectList(_in::unsafeCast<core::List<dynamic>*>(:async_temporary_1), _in::unsafeCast<core::List<core::int*>*>(:result_or_exception));
+              [yield] let dynamic #t56 = asy::_awaitHelper(testStream2(){() → asy::Stream<core::int>}.{asy::Stream::toList}(){() → asy::Future<core::List<core::int>>}, :async_op_then, :async_op_error) in null;
+              self::expectList(_in::unsafeCast<core::List<dynamic>>(:async_temporary_1), _in::unsafeCast<core::List<core::int>>(:result_or_exception));
             }
           }
         }
@@ -684,22 +681,22 @@
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method future<T extends core::Object* = dynamic>(self::future::T* value) → FutureOr<self::future::T*>* /* originally async */ {
-  final asy::_Future<self::future::T*>* :async_future = new asy::_Future::•<self::future::T*>();
+static method future<T extends core::Object? = dynamic>(self::future::T% value) → FutureOr<self::future::T%> /* originally async */ {
+  final asy::_Future<self::future::T%> :async_future = new asy::_Future::•<self::future::T%>();
   core::bool* :is_sync = false;
-  FutureOr<self::future::T*>* :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  FutureOr<self::future::T%>? :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 {
@@ -711,23 +708,23 @@
       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 id<T extends core::Object* = dynamic>(self::id::T* value) → FutureOr<self::id::T*>*
+static method id<T extends core::Object? = dynamic>(self::id::T% value) → FutureOr<self::id::T%>
   return value;
-static method intStream() → asy::Stream<core::int*>* /* originally async* */ {
-  asy::_AsyncStarStreamController<core::int*>* :controller;
+static method intStream() → asy::Stream<core::int> /* originally async* */ {
+  asy::_AsyncStarStreamController<core::int>? :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;
@@ -736,14 +733,14 @@
       try {
         #L18:
         {
-          if(:controller.{asy::_AsyncStarStreamController::add}(42){(core::int*) → core::bool})
+          if(:controller.{asy::_AsyncStarStreamController::add}(42){(core::int) → core::bool})
             return null;
           else
             [yield] null;
         }
         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 {
@@ -751,62 +748,62 @@
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :controller = new asy::_AsyncStarStreamController::•<core::int*>(:async_op);
-  :controller_stream = :controller.{asy::_AsyncStarStreamController::stream}{asy::Stream<core::int*>};
+  :controller = new asy::_AsyncStarStreamController::•<core::int>(:async_op);
+  :controller_stream = :controller.{asy::_AsyncStarStreamController::stream}{asy::Stream<core::int>};
   return :controller_stream;
 }
 static method main() → dynamic /* originally async */ {
-  final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
+  final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   dynamic :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   dynamic :saved_try_context_var0;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
       #L19:
       {
-        for (core::int* i = 0; i.{core::num::<}(11){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-          [yield] let dynamic #t58 = asy::_awaitHelper(self::staticMembers(), :async_op_then, :async_op_error) in null;
+        for (core::int i = 0; i.{core::num::<}(11){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+          [yield] let dynamic #t57 = asy::_awaitHelper(self::staticMembers(), :async_op_then, :async_op_error) in null;
           :result_or_exception;
-          [yield] let dynamic #t59 = asy::_awaitHelper(self::topLevelMembers(), :async_op_then, :async_op_error) in null;
+          [yield] let dynamic #t58 = asy::_awaitHelper(self::topLevelMembers(), :async_op_then, :async_op_error) in null;
           :result_or_exception;
-          [yield] let dynamic #t60 = asy::_awaitHelper(self::instanceMembers(), :async_op_then, :async_op_error) in null;
+          [yield] let dynamic #t59 = asy::_awaitHelper(self::instanceMembers(), :async_op_then, :async_op_error) in null;
           :result_or_exception;
-          [yield] let dynamic #t61 = asy::_awaitHelper(self::conditionals(), :async_op_then, :async_op_error) in null;
+          [yield] let dynamic #t60 = asy::_awaitHelper(self::conditionals(), :async_op_then, :async_op_error) in null;
           :result_or_exception;
-          [yield] let dynamic #t62 = asy::_awaitHelper(self::others(), :async_op_then, :async_op_error) in null;
+          [yield] let dynamic #t61 = asy::_awaitHelper(self::others(), :async_op_then, :async_op_error) in null;
           :result_or_exception;
-          [yield] let dynamic #t63 = asy::_awaitHelper(self::asserts(), :async_op_then, :async_op_error) in null;
+          [yield] let dynamic #t62 = asy::_awaitHelper(self::asserts(), :async_op_then, :async_op_error) in null;
           :result_or_exception;
-          [yield] let dynamic #t64 = asy::_awaitHelper(self::controlFlow(), :async_op_then, :async_op_error) in null;
+          [yield] let dynamic #t63 = asy::_awaitHelper(self::controlFlow(), :async_op_then, :async_op_error) in null;
           :result_or_exception;
         }
       }
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual))
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
     throw "Expected ${expected}, actual ${actual}";
 }
-static method expectList(core::List<dynamic>* expected, core::List<dynamic>* actual) → dynamic {
-  if(!(expected.{core::List::length}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} actual.{core::List::length}{core::int*})) {
+static method expectList(core::List<dynamic> expected, core::List<dynamic> actual) → dynamic {
+  if(!(expected.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} actual.{core::List::length}{core::int})) {
     throw "Expected ${expected}, actual ${actual}";
   }
-  for (core::int* i = 0; i.{core::num::<}(expected.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-    self::expect(expected.{core::List::[]}(i){(core::int*) →* dynamic}, actual.{core::List::[]}(i){(core::int*) →* dynamic});
+  for (core::int i = 0; i.{core::num::<}(expected.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+    self::expect(expected.{core::List::[]}(i){(core::int) → dynamic}, actual.{core::List::[]}(i){(core::int) → dynamic});
   }
 }
 
diff --git a/pkg/front_end/testcases/general/await_in_cascade.dart b/pkg/front_end/testcases/general/await_in_cascade.dart
index c73b599..47cc183 100644
--- a/pkg/front_end/testcases/general/await_in_cascade.dart
+++ b/pkg/front_end/testcases/general/await_in_cascade.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
+
 // This test was adapted from language_2/await_in_cascade_  test
 
 import 'dart:async';
diff --git a/pkg/front_end/testcases/general/await_in_cascade.dart.textual_outline.expect b/pkg/front_end/testcases/general/await_in_cascade.dart.textual_outline.expect
index 136cd51..543028a 100644
--- a/pkg/front_end/testcases/general/await_in_cascade.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/await_in_cascade.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:async';
 
 class C {
diff --git a/pkg/front_end/testcases/general/await_in_cascade.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/await_in_cascade.dart.textual_outline_modelled.expect
index 97ba6b5..305a56e 100644
--- a/pkg/front_end/testcases/general/await_in_cascade.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/await_in_cascade.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:async';
 
 class C {
diff --git a/pkg/front_end/testcases/general/await_in_cascade.dart.weak.expect b/pkg/front_end/testcases/general/await_in_cascade.dart.weak.expect
index 8a57698..b0ffd22 100644
--- a/pkg/front_end/testcases/general/await_in_cascade.dart.weak.expect
+++ b/pkg/front_end/testcases/general/await_in_cascade.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -6,30 +6,20 @@
 import "dart:async";
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  method m() → asy::Future<core::List<core::int*>*>* async 
-    return let final core::List<core::int*>* #t1 = <core::int*>[] in block {
-      #t1.{core::List::add}(await this.{self::C::_m}(){() →* asy::Future<core::int*>*}){(core::int*) →* void};
+  method m() → asy::Future<core::List<core::int>> async 
+    return let final core::List<core::int> #t1 = <core::int>[] in block {
+      #t1.{core::List::add}(await this.{self::C::_m}(){() → asy::Future<core::int>}){(core::int) → void};
     } =>#t1;
-  method _m() → asy::Future<core::int*>* async 
+  method _m() → asy::Future<core::int> async 
     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 async {
-  self::expect(42, (await new self::C::•().{self::C::m}(){() →* asy::Future<core::List<core::int*>*>*}).{core::Iterable::first}{core::int*});
+  self::expect(42, (await new self::C::•().{self::C::m}(){() → asy::Future<core::List<core::int>>}).{core::Iterable::first}{core::int});
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual))
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
     throw "Expected ${expected}, actual ${actual}";
 }
diff --git a/pkg/front_end/testcases/general/await_in_cascade.dart.weak.modular.expect b/pkg/front_end/testcases/general/await_in_cascade.dart.weak.modular.expect
index 8a57698..b0ffd22 100644
--- a/pkg/front_end/testcases/general/await_in_cascade.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/await_in_cascade.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -6,30 +6,20 @@
 import "dart:async";
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  method m() → asy::Future<core::List<core::int*>*>* async 
-    return let final core::List<core::int*>* #t1 = <core::int*>[] in block {
-      #t1.{core::List::add}(await this.{self::C::_m}(){() →* asy::Future<core::int*>*}){(core::int*) →* void};
+  method m() → asy::Future<core::List<core::int>> async 
+    return let final core::List<core::int> #t1 = <core::int>[] in block {
+      #t1.{core::List::add}(await this.{self::C::_m}(){() → asy::Future<core::int>}){(core::int) → void};
     } =>#t1;
-  method _m() → asy::Future<core::int*>* async 
+  method _m() → asy::Future<core::int> async 
     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 async {
-  self::expect(42, (await new self::C::•().{self::C::m}(){() →* asy::Future<core::List<core::int*>*>*}).{core::Iterable::first}{core::int*});
+  self::expect(42, (await new self::C::•().{self::C::m}(){() → asy::Future<core::List<core::int>>}).{core::Iterable::first}{core::int});
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual))
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
     throw "Expected ${expected}, actual ${actual}";
 }
diff --git a/pkg/front_end/testcases/general/await_in_cascade.dart.weak.outline.expect b/pkg/front_end/testcases/general/await_in_cascade.dart.weak.outline.expect
index 753246b..80aeb4b 100644
--- a/pkg/front_end/testcases/general/await_in_cascade.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/await_in_cascade.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -6,22 +6,12 @@
 import "dart:async";
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  method m() → asy::Future<core::List<core::int*>*>* async 
+  method m() → asy::Future<core::List<core::int>> async 
     ;
-  method _m() → asy::Future<core::int*>* async 
+  method _m() → asy::Future<core::int> async 
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  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 async 
   ;
diff --git a/pkg/front_end/testcases/general/await_in_cascade.dart.weak.transformed.expect b/pkg/front_end/testcases/general/await_in_cascade.dart.weak.transformed.expect
index 3587ac9..652b3a2 100644
--- a/pkg/front_end/testcases/general/await_in_cascade.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/await_in_cascade.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -7,47 +7,47 @@
 import "dart:async";
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  method m() → asy::Future<core::List<core::int*>*>* /* originally async */ {
-    final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
+  method m() → asy::Future<core::List<core::int>> /* originally async */ {
+    final asy::_Future<core::List<core::int>> :async_future = new asy::_Future::•<core::List<core::int>>();
     core::bool* :is_sync = false;
-    core::List<core::int*>? :return_value;
-    (dynamic) →* dynamic :async_op_then;
-    (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-    core::int* :await_jump_var = 0;
+    core::List<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;
     dynamic :saved_try_context_var0;
     function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
       try {
         #L1:
         {
-          final core::List<core::int*>* #t1 = core::_GrowableList::•<core::int*>(0);
-          [yield] let dynamic #t2 = asy::_awaitHelper(this.{self::C::_m}(){() →* asy::Future<core::int*>*}, :async_op_then, :async_op_error) in null;
-          #t1.{core::List::add}(_in::unsafeCast<core::int*>(:result_or_exception)){(core::int*) →* void};
+          final core::List<core::int> #t1 = core::_GrowableList::•<core::int>(0);
+          [yield] let dynamic #t2 = asy::_awaitHelper(this.{self::C::_m}(){() → asy::Future<core::int>}, :async_op_then, :async_op_error) in null;
+          #t1.{core::List::add}(_in::unsafeCast<core::int>(:result_or_exception)){(core::int) → void};
           :return_value = block {} =>#t1;
           break #L1;
         }
         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;
   }
-  method _m() → asy::Future<core::int*>* /* originally async */ {
-    final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
+  method _m() → asy::Future<core::int> /* originally async */ {
+    final asy::_Future<core::int> :async_future = new asy::_Future::•<core::int>();
     core::bool* :is_sync = false;
     core::int? :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 {
@@ -59,55 +59,45 @@
         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;
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  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 /* 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 
     try {
       #L3:
       {
-        [yield] let dynamic #t3 = asy::_awaitHelper(new self::C::•().{self::C::m}(){() →* asy::Future<core::List<core::int*>*>*}, :async_op_then, :async_op_error) in null;
-        self::expect(42, _in::unsafeCast<core::List<core::int*>*>(:result_or_exception).{core::Iterable::first}{core::int*});
+        [yield] let dynamic #t3 = asy::_awaitHelper(new self::C::•().{self::C::m}(){() → asy::Future<core::List<core::int>>}, :async_op_then, :async_op_error) in null;
+        self::expect(42, _in::unsafeCast<core::List<core::int>>(:result_or_exception).{core::Iterable::first}{core::int});
       }
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
 static method expect(dynamic expected, dynamic actual) → dynamic {
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual))
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
     throw "Expected ${expected}, actual ${actual}";
 }
diff --git a/pkg/front_end/testcases/general/await_in_non_async.dart b/pkg/front_end/testcases/general/await_in_non_async.dart
index 43361b4..7cbf642 100644
--- a/pkg/front_end/testcases/general/await_in_non_async.dart
+++ b/pkg/front_end/testcases/general/await_in_non_async.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() {
   foo();
 }
diff --git a/pkg/front_end/testcases/general/await_in_non_async.dart.textual_outline.expect b/pkg/front_end/testcases/general/await_in_non_async.dart.textual_outline.expect
index 0097a33..afc9a41 100644
--- a/pkg/front_end/testcases/general/await_in_non_async.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/await_in_non_async.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
 foo() {}
diff --git a/pkg/front_end/testcases/general/await_in_non_async.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/await_in_non_async.dart.textual_outline_modelled.expect
index 822c313..d530fa8 100644
--- a/pkg/front_end/testcases/general/await_in_non_async.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/await_in_non_async.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 foo() {}
 main() {}
diff --git a/pkg/front_end/testcases/general/await_in_non_async.dart.weak.expect b/pkg/front_end/testcases/general/await_in_non_async.dart.weak.expect
index aa3b0e2..90a69de 100644
--- a/pkg/front_end/testcases/general/await_in_non_async.dart.weak.expect
+++ b/pkg/front_end/testcases/general/await_in_non_async.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/general/await_in_non_async.dart.weak.modular.expect b/pkg/front_end/testcases/general/await_in_non_async.dart.weak.modular.expect
index aa3b0e2..90a69de 100644
--- a/pkg/front_end/testcases/general/await_in_non_async.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/await_in_non_async.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/general/await_in_non_async.dart.weak.outline.expect b/pkg/front_end/testcases/general/await_in_non_async.dart.weak.outline.expect
index 4c2eb20..8c1aacc 100644
--- a/pkg/front_end/testcases/general/await_in_non_async.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/await_in_non_async.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/await_in_non_async.dart.weak.transformed.expect b/pkg/front_end/testcases/general/await_in_non_async.dart.weak.transformed.expect
index aa3b0e2..90a69de 100644
--- a/pkg/front_end/testcases/general/await_in_non_async.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/await_in_non_async.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/general/bad_setter_abstract.dart b/pkg/front_end/testcases/general/bad_setter_abstract.dart
index 429614e..fa583b0 100644
--- a/pkg/front_end/testcases/general/bad_setter_abstract.dart
+++ b/pkg/front_end/testcases/general/bad_setter_abstract.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
+
 set b();
 
 set c(x, y);
@@ -17,7 +17,7 @@
 }
 
 main() {
-  bool threw;
+  bool threw = false;
   try {
     threw = true;
     new A().a = null;
diff --git a/pkg/front_end/testcases/general/bad_setter_abstract.dart.textual_outline.expect b/pkg/front_end/testcases/general/bad_setter_abstract.dart.textual_outline.expect
index 3fd780c..679a54a 100644
--- a/pkg/front_end/testcases/general/bad_setter_abstract.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bad_setter_abstract.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 set b();
 set c(x, y);
 class A {
diff --git a/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.expect b/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.expect
index 839e066..bf81db2 100644
--- a/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -44,7 +44,7 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   set a(dynamic #synthetic) → void {
@@ -63,19 +63,9 @@
       ;
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
   set a(dynamic #synthetic) → void {
@@ -94,16 +84,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 set b(dynamic #synthetic) → void {
   invalid-expression "pkg/front_end/testcases/general/bad_setter_abstract.dart:5:6: Error: A setter should have exactly one formal parameter.
@@ -122,13 +102,13 @@
   }
 }
 static method main() → dynamic {
-  core::bool* threw;
+  core::bool threw = false;
   try {
     threw = true;
     new self::A::•().{self::A::a} = null;
     threw = false;
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   if(!threw) {
     throw "Expected an error above.";
@@ -138,7 +118,7 @@
     new self::A::•().{self::A::d} = null;
     threw = false;
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   if(!threw) {
     throw "Expected an error above.";
@@ -148,7 +128,7 @@
     self::b = null;
     threw = false;
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   if(!threw) {
     throw "Expected an error above.";
@@ -161,7 +141,7 @@
     self::c = null;
     threw = false;
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   if(!threw) {
     throw "Expected an error above.";
@@ -171,7 +151,7 @@
     throw new core::AbstractClassInstantiationError::•("B");
     threw = false;
   }
-  on core::AbstractClassInstantiationError* catch(final core::AbstractClassInstantiationError* _) {
+  on core::AbstractClassInstantiationError catch(final core::AbstractClassInstantiationError _) {
   }
   if(!threw) {
     throw "Expected an error above.";
diff --git a/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.modular.expect b/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.modular.expect
index 839e066..bf81db2 100644
--- a/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -44,7 +44,7 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   set a(dynamic #synthetic) → void {
@@ -63,19 +63,9 @@
       ;
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
   set a(dynamic #synthetic) → void {
@@ -94,16 +84,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 set b(dynamic #synthetic) → void {
   invalid-expression "pkg/front_end/testcases/general/bad_setter_abstract.dart:5:6: Error: A setter should have exactly one formal parameter.
@@ -122,13 +102,13 @@
   }
 }
 static method main() → dynamic {
-  core::bool* threw;
+  core::bool threw = false;
   try {
     threw = true;
     new self::A::•().{self::A::a} = null;
     threw = false;
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   if(!threw) {
     throw "Expected an error above.";
@@ -138,7 +118,7 @@
     new self::A::•().{self::A::d} = null;
     threw = false;
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   if(!threw) {
     throw "Expected an error above.";
@@ -148,7 +128,7 @@
     self::b = null;
     threw = false;
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   if(!threw) {
     throw "Expected an error above.";
@@ -161,7 +141,7 @@
     self::c = null;
     threw = false;
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   if(!threw) {
     throw "Expected an error above.";
@@ -171,7 +151,7 @@
     throw new core::AbstractClassInstantiationError::•("B");
     threw = false;
   }
-  on core::AbstractClassInstantiationError* catch(final core::AbstractClassInstantiationError* _) {
+  on core::AbstractClassInstantiationError catch(final core::AbstractClassInstantiationError _) {
   }
   if(!threw) {
     throw "Expected an error above.";
diff --git a/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.outline.expect b/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.outline.expect
index 00001aa..607733b 100644
--- a/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,40 +16,20 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
   set a(dynamic #synthetic) → void
     ;
   set d(dynamic #synthetic) → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
   set a(dynamic #synthetic) → void
     ;
   set d(dynamic #synthetic) → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static set b(dynamic #synthetic) → void
   ;
diff --git a/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.transformed.expect
index 839e066..bf81db2 100644
--- a/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bad_setter_abstract.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -44,7 +44,7 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   set a(dynamic #synthetic) → void {
@@ -63,19 +63,9 @@
       ;
     }
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
   set a(dynamic #synthetic) → void {
@@ -94,16 +84,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 set b(dynamic #synthetic) → void {
   invalid-expression "pkg/front_end/testcases/general/bad_setter_abstract.dart:5:6: Error: A setter should have exactly one formal parameter.
@@ -122,13 +102,13 @@
   }
 }
 static method main() → dynamic {
-  core::bool* threw;
+  core::bool threw = false;
   try {
     threw = true;
     new self::A::•().{self::A::a} = null;
     threw = false;
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   if(!threw) {
     throw "Expected an error above.";
@@ -138,7 +118,7 @@
     new self::A::•().{self::A::d} = null;
     threw = false;
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   if(!threw) {
     throw "Expected an error above.";
@@ -148,7 +128,7 @@
     self::b = null;
     threw = false;
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   if(!threw) {
     throw "Expected an error above.";
@@ -161,7 +141,7 @@
     self::c = null;
     threw = false;
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
   }
   if(!threw) {
     throw "Expected an error above.";
@@ -171,7 +151,7 @@
     throw new core::AbstractClassInstantiationError::•("B");
     threw = false;
   }
-  on core::AbstractClassInstantiationError* catch(final core::AbstractClassInstantiationError* _) {
+  on core::AbstractClassInstantiationError catch(final core::AbstractClassInstantiationError _) {
   }
   if(!threw) {
     throw "Expected an error above.";
diff --git a/pkg/front_end/testcases/general/bad_store.dart b/pkg/front_end/testcases/general/bad_store.dart
index 9e0174a..b1de494 100644
--- a/pkg/front_end/testcases/general/bad_store.dart
+++ b/pkg/front_end/testcases/general/bad_store.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 Foo {
   var field;
 }
diff --git a/pkg/front_end/testcases/general/bad_store.dart.textual_outline.expect b/pkg/front_end/testcases/general/bad_store.dart.textual_outline.expect
index 68aecce..1749c06 100644
--- a/pkg/front_end/testcases/general/bad_store.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bad_store.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Foo {
   var field;
 }
diff --git a/pkg/front_end/testcases/general/bad_store.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bad_store.dart.textual_outline_modelled.expect
index 6ff3adf..1745116 100644
--- a/pkg/front_end/testcases/general/bad_store.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bad_store.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Foo {
   var field;
 }
diff --git a/pkg/front_end/testcases/general/bad_store.dart.weak.expect b/pkg/front_end/testcases/general/bad_store.dart.weak.expect
index f25c04b..6e8b3c0 100644
--- a/pkg/front_end/testcases/general/bad_store.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bad_store.dart.weak.expect
@@ -1,29 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::Object {
   field dynamic field = 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 identity(dynamic x) → dynamic
   return x;
 static method use(dynamic x) → void {}
-static method main(core::List<core::String*>* args) → dynamic {
+static method main(core::List<core::String> args) → dynamic {
   dynamic foo = self::identity(new self::Foo::•());
-  if(args.{core::List::length}{core::int*}.{core::num::>}(1){(core::num*) →* core::bool*}) {
+  if(args.{core::List::length}{core::int}.{core::num::>}(1){(core::num) → core::bool}) {
     foo{dynamic}.field = "string";
     dynamic first = foo{dynamic}.field;
     self::use(first);
diff --git a/pkg/front_end/testcases/general/bad_store.dart.weak.modular.expect b/pkg/front_end/testcases/general/bad_store.dart.weak.modular.expect
index f25c04b..6e8b3c0 100644
--- a/pkg/front_end/testcases/general/bad_store.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bad_store.dart.weak.modular.expect
@@ -1,29 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::Object {
   field dynamic field = 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 identity(dynamic x) → dynamic
   return x;
 static method use(dynamic x) → void {}
-static method main(core::List<core::String*>* args) → dynamic {
+static method main(core::List<core::String> args) → dynamic {
   dynamic foo = self::identity(new self::Foo::•());
-  if(args.{core::List::length}{core::int*}.{core::num::>}(1){(core::num*) →* core::bool*}) {
+  if(args.{core::List::length}{core::int}.{core::num::>}(1){(core::num) → core::bool}) {
     foo{dynamic}.field = "string";
     dynamic first = foo{dynamic}.field;
     self::use(first);
diff --git a/pkg/front_end/testcases/general/bad_store.dart.weak.outline.expect b/pkg/front_end/testcases/general/bad_store.dart.weak.outline.expect
index ec06a08..f7adcea 100644
--- a/pkg/front_end/testcases/general/bad_store.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bad_store.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::Object {
   field dynamic field;
-  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 identity(dynamic x) → dynamic
   ;
 static method use(dynamic x) → void
   ;
-static method main(core::List<core::String*>* args) → dynamic
+static method main(core::List<core::String> args) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/bad_store.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bad_store.dart.weak.transformed.expect
index f25c04b..6e8b3c0 100644
--- a/pkg/front_end/testcases/general/bad_store.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bad_store.dart.weak.transformed.expect
@@ -1,29 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::Object {
   field dynamic field = 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 identity(dynamic x) → dynamic
   return x;
 static method use(dynamic x) → void {}
-static method main(core::List<core::String*>* args) → dynamic {
+static method main(core::List<core::String> args) → dynamic {
   dynamic foo = self::identity(new self::Foo::•());
-  if(args.{core::List::length}{core::int*}.{core::num::>}(1){(core::num*) →* core::bool*}) {
+  if(args.{core::List::length}{core::int}.{core::num::>}(1){(core::num) → core::bool}) {
     foo{dynamic}.field = "string";
     dynamic first = foo{dynamic}.field;
     self::use(first);
diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart
index 1f679a4..44f446d 100644
--- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart
+++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.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
+
 typedef ContravariantUse<T> = Function(T);
 
 typedef InvariantUse<T> = T Function(T);
diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline.expect
index 298a790..c9ae869 100644
--- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 typedef ContravariantUse<T> = Function(T);
 typedef InvariantUse<T> = T Function(T);
 
diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline_modelled.expect
index e2c9c7c..2b6edb9 100644
--- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A<T> {}
 
 class B<T> extends A<Function(T)> {}
diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.expect
index 1e435e2..cf5a68f 100644
--- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -113,521 +113,231 @@
 import self as self;
 import "dart:core" as core;
 
-typedef ContravariantUse<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-typedef InvariantUse<invariant T extends core::Object* = dynamic> = (T*) →* T*;
+typedef ContravariantUse<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+typedef InvariantUse<invariant T extends core::Object? = dynamic> = (T%) → T%;
 class Empty extends core::Object {
-  synthetic constructor •() → self::Empty*
+  synthetic constructor •() → self::Empty
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 {
-  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 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::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Bc<self::Bc::T*>*
+class Bc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Bc<self::Bc::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 Bi<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Bi<self::Bi::T*>*
+class Bi<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Bi<self::Bi::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<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::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Cc<self::Cc::T*>*
+class Cc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Cc<self::Cc::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 Ci<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Ci<self::Ci::T*>*
+class Ci<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Ci<self::Ci::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 synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const synthetic constructor •() → 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
 }
-class Dc<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Dc<self::Dc::T*>*
+class Dc<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Dc<self::Dc::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 Di<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Di<self::Di::T*>*
+class Di<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Di<self::Di::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 E<T extends core::Object* = dynamic> = core::Object with self::Empty {
-  synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> = core::Object with self::Empty {
+  synthetic constructor •() → self::E<self::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 Ec<T extends core::Object* = dynamic> = core::Object with self::Empty {
-  synthetic constructor •() → self::Ec<self::Ec::T*>*
+class Ec<T extends core::Object? = dynamic> = core::Object with self::Empty {
+  synthetic constructor •() → self::Ec<self::Ec::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 Ei<T extends core::Object* = dynamic> = core::Object with self::Empty {
-  synthetic constructor •() → self::Ei<self::Ei::T*>*
+class Ei<T extends core::Object? = dynamic> = core::Object with self::Empty {
+  synthetic constructor •() → self::Ei<self::Ei::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 _F&Object&A<T extends core::Object* = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_F&Object&A<self::_F&Object&A::T*>*
+abstract class _F&Object&A<T extends core::Object? = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_F&Object&A<self::_F&Object&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 F<T extends core::Object* = dynamic> extends self::_F&Object&A<self::F::T*> {
-  synthetic constructor •() → self::F<self::F::T*>*
+class F<T extends core::Object? = dynamic> extends self::_F&Object&A<self::F::T%> {
+  synthetic constructor •() → self::F<self::F::T%>
     : super self::_F&Object&A::•()
     ;
 }
-abstract class _Fc&Object&A<T extends core::Object* = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fc&Object&A<self::_Fc&Object&A::T*>*
+abstract class _Fc&Object&A<T extends core::Object? = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fc&Object&A<self::_Fc&Object&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 Fc<T extends core::Object* = dynamic> extends self::_Fc&Object&A<self::Fc::T*> {
-  synthetic constructor •() → self::Fc<self::Fc::T*>*
+class Fc<T extends core::Object? = dynamic> extends self::_Fc&Object&A<self::Fc::T%> {
+  synthetic constructor •() → self::Fc<self::Fc::T%>
     : super self::_Fc&Object&A::•()
     ;
 }
-abstract class _Fi&Object&A<T extends core::Object* = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fi&Object&A<self::_Fi&Object&A::T*>*
+abstract class _Fi&Object&A<T extends core::Object? = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fi&Object&A<self::_Fi&Object&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 Fi<T extends core::Object* = dynamic> extends self::_Fi&Object&A<self::Fi::T*> {
-  synthetic constructor •() → self::Fi<self::Fi::T*>*
+class Fi<T extends core::Object? = dynamic> extends self::_Fi&Object&A<self::Fi::T%> {
+  synthetic constructor •() → self::Fi<self::Fi::T%>
     : super self::_Fi&Object&A::•()
     ;
 }
-abstract class _G&A&Empty<T extends core::Object* = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_G&A&Empty<self::_G&A&Empty::T*>*
+abstract class _G&A&Empty<T extends core::Object? = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_G&A&Empty<self::_G&A&Empty::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 G<T extends core::Object* = dynamic> extends self::_G&A&Empty<self::G::T*> {
-  synthetic constructor •() → self::G<self::G::T*>*
+class G<T extends core::Object? = dynamic> extends self::_G&A&Empty<self::G::T%> {
+  synthetic constructor •() → self::G<self::G::T%>
     : super self::_G&A&Empty::•()
     ;
 }
-abstract class _Gc&A&Empty<T extends core::Object* = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Gc&A&Empty<self::_Gc&A&Empty::T*>*
+abstract class _Gc&A&Empty<T extends core::Object? = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Gc&A&Empty<self::_Gc&A&Empty::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 Gc<T extends core::Object* = dynamic> extends self::_Gc&A&Empty<self::Gc::T*> {
-  synthetic constructor •() → self::Gc<self::Gc::T*>*
+class Gc<T extends core::Object? = dynamic> extends self::_Gc&A&Empty<self::Gc::T%> {
+  synthetic constructor •() → self::Gc<self::Gc::T%>
     : super self::_Gc&A&Empty::•()
     ;
 }
-abstract class _Gi&A&Empty<T extends core::Object* = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Gi&A&Empty<self::_Gi&A&Empty::T*>*
+abstract class _Gi&A&Empty<T extends core::Object? = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Gi&A&Empty<self::_Gi&A&Empty::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 Gi<T extends core::Object* = dynamic> extends self::_Gi&A&Empty<self::Gi::T*> {
-  synthetic constructor •() → self::Gi<self::Gi::T*>*
+class Gi<T extends core::Object? = dynamic> extends self::_Gi&A&Empty<self::Gi::T%> {
+  synthetic constructor •() → self::Gi<self::Gi::T%>
     : super self::_Gi&A&Empty::•()
     ;
 }
-class Hff<T extends core::Object* = dynamic> extends self::A<((self::Hff::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hff<self::Hff::T*>*
+class Hff<T extends core::Object? = dynamic> extends self::A<((self::Hff::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hff<self::Hff::T%>
     : super self::A::•()
     ;
 }
-class Hfc<T extends core::Object* = dynamic> extends self::A<((self::Hfc::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hfc<self::Hfc::T*>*
+class Hfc<T extends core::Object? = dynamic> extends self::A<((self::Hfc::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hfc<self::Hfc::T%>
     : super self::A::•()
     ;
 }
-class Hcf<T extends core::Object* = dynamic> extends self::A<((self::Hcf::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hcf<self::Hcf::T*>*
+class Hcf<T extends core::Object? = dynamic> extends self::A<((self::Hcf::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hcf<self::Hcf::T%>
     : super self::A::•()
     ;
 }
-class Hcc<T extends core::Object* = dynamic> extends self::A<((self::Hcc::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hcc<self::Hcc::T*>*
+class Hcc<T extends core::Object? = dynamic> extends self::A<((self::Hcc::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hcc<self::Hcc::T%>
     : super self::A::•()
     ;
 }
-class Hii<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Hii<self::Hii::T*>*
+class Hii<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Hii<self::Hii::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 Iafc<T extends core::Object* = dynamic> extends self::A<self::A<((self::Iafc::T*) →* dynamic) →* dynamic>*> {
-  synthetic constructor •() → self::Iafc<self::Iafc::T*>*
+class Iafc<T extends core::Object? = dynamic> extends self::A<self::A<((self::Iafc::T%) → dynamic) → dynamic>> {
+  synthetic constructor •() → self::Iafc<self::Iafc::T%>
     : super self::A::•()
     ;
 }
-class Iacf<T extends core::Object* = dynamic> extends self::A<self::A<((self::Iacf::T*) →* dynamic) →* dynamic>*> {
-  synthetic constructor •() → self::Iacf<self::Iacf::T*>*
+class Iacf<T extends core::Object? = dynamic> extends self::A<self::A<((self::Iacf::T%) → dynamic) → dynamic>> {
+  synthetic constructor •() → self::Iacf<self::Iacf::T%>
     : super self::A::•()
     ;
 }
-class Ifac<T extends core::Object* = dynamic> extends self::A<(self::A<(self::Ifac::T*) →* dynamic>*) →* dynamic> {
-  synthetic constructor •() → self::Ifac<self::Ifac::T*>*
+class Ifac<T extends core::Object? = dynamic> extends self::A<(self::A<(self::Ifac::T%) → dynamic>) → dynamic> {
+  synthetic constructor •() → self::Ifac<self::Ifac::T%>
     : super self::A::•()
     ;
 }
-class Ifca<T extends core::Object* = dynamic> extends self::A<((self::A<self::Ifca::T*>*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Ifca<self::Ifca::T*>*
+class Ifca<T extends core::Object? = dynamic> extends self::A<((self::A<self::Ifca::T%>) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Ifca<self::Ifca::T%>
     : super self::A::•()
     ;
 }
-class Icaf<T extends core::Object* = dynamic> extends self::A<(self::A<(self::Icaf::T*) →* dynamic>*) →* dynamic> {
-  synthetic constructor •() → self::Icaf<self::Icaf::T*>*
+class Icaf<T extends core::Object? = dynamic> extends self::A<(self::A<(self::Icaf::T%) → dynamic>) → dynamic> {
+  synthetic constructor •() → self::Icaf<self::Icaf::T%>
     : super self::A::•()
     ;
 }
-class Icfa<T extends core::Object* = dynamic> extends self::A<((self::A<self::Icfa::T*>*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Icfa<self::Icfa::T*>*
+class Icfa<T extends core::Object? = dynamic> extends self::A<((self::A<self::Icfa::T%>) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Icfa<self::Icfa::T%>
     : super self::A::•()
     ;
 }
-class Jfff<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jfff<self::Jfff::T*>*
+class Jfff<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jfff<self::Jfff::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 Jffc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jffc<self::Jffc::T*>*
+class Jffc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jffc<self::Jffc::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 Jfcf<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jfcf<self::Jfcf::T*>*
+class Jfcf<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jfcf<self::Jfcf::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 Jfcc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jfcc<self::Jfcc::T*>*
+class Jfcc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jfcc<self::Jfcc::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 Jcff<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jcff<self::Jcff::T*>*
+class Jcff<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jcff<self::Jcff::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 Jcfc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jcfc<self::Jcfc::T*>*
+class Jcfc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jcfc<self::Jcfc::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 Jccf<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jccf<self::Jccf::T*>*
+class Jccf<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jccf<self::Jccf::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 Jccc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jccc<self::Jccc::T*>*
+class Jccc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jccc<self::Jccc::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/general/bad_type_variable_uses_in_supertypes.dart.weak.modular.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.modular.expect
index 1e435e2..cf5a68f 100644
--- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -113,521 +113,231 @@
 import self as self;
 import "dart:core" as core;
 
-typedef ContravariantUse<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-typedef InvariantUse<invariant T extends core::Object* = dynamic> = (T*) →* T*;
+typedef ContravariantUse<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+typedef InvariantUse<invariant T extends core::Object? = dynamic> = (T%) → T%;
 class Empty extends core::Object {
-  synthetic constructor •() → self::Empty*
+  synthetic constructor •() → self::Empty
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 {
-  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 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::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Bc<self::Bc::T*>*
+class Bc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Bc<self::Bc::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 Bi<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Bi<self::Bi::T*>*
+class Bi<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Bi<self::Bi::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<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::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Cc<self::Cc::T*>*
+class Cc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Cc<self::Cc::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 Ci<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Ci<self::Ci::T*>*
+class Ci<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Ci<self::Ci::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 synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const synthetic constructor •() → 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
 }
-class Dc<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Dc<self::Dc::T*>*
+class Dc<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Dc<self::Dc::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 Di<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Di<self::Di::T*>*
+class Di<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Di<self::Di::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 E<T extends core::Object* = dynamic> = core::Object with self::Empty {
-  synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> = core::Object with self::Empty {
+  synthetic constructor •() → self::E<self::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 Ec<T extends core::Object* = dynamic> = core::Object with self::Empty {
-  synthetic constructor •() → self::Ec<self::Ec::T*>*
+class Ec<T extends core::Object? = dynamic> = core::Object with self::Empty {
+  synthetic constructor •() → self::Ec<self::Ec::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 Ei<T extends core::Object* = dynamic> = core::Object with self::Empty {
-  synthetic constructor •() → self::Ei<self::Ei::T*>*
+class Ei<T extends core::Object? = dynamic> = core::Object with self::Empty {
+  synthetic constructor •() → self::Ei<self::Ei::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 _F&Object&A<T extends core::Object* = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_F&Object&A<self::_F&Object&A::T*>*
+abstract class _F&Object&A<T extends core::Object? = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_F&Object&A<self::_F&Object&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 F<T extends core::Object* = dynamic> extends self::_F&Object&A<self::F::T*> {
-  synthetic constructor •() → self::F<self::F::T*>*
+class F<T extends core::Object? = dynamic> extends self::_F&Object&A<self::F::T%> {
+  synthetic constructor •() → self::F<self::F::T%>
     : super self::_F&Object&A::•()
     ;
 }
-abstract class _Fc&Object&A<T extends core::Object* = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fc&Object&A<self::_Fc&Object&A::T*>*
+abstract class _Fc&Object&A<T extends core::Object? = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fc&Object&A<self::_Fc&Object&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 Fc<T extends core::Object* = dynamic> extends self::_Fc&Object&A<self::Fc::T*> {
-  synthetic constructor •() → self::Fc<self::Fc::T*>*
+class Fc<T extends core::Object? = dynamic> extends self::_Fc&Object&A<self::Fc::T%> {
+  synthetic constructor •() → self::Fc<self::Fc::T%>
     : super self::_Fc&Object&A::•()
     ;
 }
-abstract class _Fi&Object&A<T extends core::Object* = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fi&Object&A<self::_Fi&Object&A::T*>*
+abstract class _Fi&Object&A<T extends core::Object? = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fi&Object&A<self::_Fi&Object&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 Fi<T extends core::Object* = dynamic> extends self::_Fi&Object&A<self::Fi::T*> {
-  synthetic constructor •() → self::Fi<self::Fi::T*>*
+class Fi<T extends core::Object? = dynamic> extends self::_Fi&Object&A<self::Fi::T%> {
+  synthetic constructor •() → self::Fi<self::Fi::T%>
     : super self::_Fi&Object&A::•()
     ;
 }
-abstract class _G&A&Empty<T extends core::Object* = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_G&A&Empty<self::_G&A&Empty::T*>*
+abstract class _G&A&Empty<T extends core::Object? = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_G&A&Empty<self::_G&A&Empty::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 G<T extends core::Object* = dynamic> extends self::_G&A&Empty<self::G::T*> {
-  synthetic constructor •() → self::G<self::G::T*>*
+class G<T extends core::Object? = dynamic> extends self::_G&A&Empty<self::G::T%> {
+  synthetic constructor •() → self::G<self::G::T%>
     : super self::_G&A&Empty::•()
     ;
 }
-abstract class _Gc&A&Empty<T extends core::Object* = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Gc&A&Empty<self::_Gc&A&Empty::T*>*
+abstract class _Gc&A&Empty<T extends core::Object? = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Gc&A&Empty<self::_Gc&A&Empty::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 Gc<T extends core::Object* = dynamic> extends self::_Gc&A&Empty<self::Gc::T*> {
-  synthetic constructor •() → self::Gc<self::Gc::T*>*
+class Gc<T extends core::Object? = dynamic> extends self::_Gc&A&Empty<self::Gc::T%> {
+  synthetic constructor •() → self::Gc<self::Gc::T%>
     : super self::_Gc&A&Empty::•()
     ;
 }
-abstract class _Gi&A&Empty<T extends core::Object* = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Gi&A&Empty<self::_Gi&A&Empty::T*>*
+abstract class _Gi&A&Empty<T extends core::Object? = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Gi&A&Empty<self::_Gi&A&Empty::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 Gi<T extends core::Object* = dynamic> extends self::_Gi&A&Empty<self::Gi::T*> {
-  synthetic constructor •() → self::Gi<self::Gi::T*>*
+class Gi<T extends core::Object? = dynamic> extends self::_Gi&A&Empty<self::Gi::T%> {
+  synthetic constructor •() → self::Gi<self::Gi::T%>
     : super self::_Gi&A&Empty::•()
     ;
 }
-class Hff<T extends core::Object* = dynamic> extends self::A<((self::Hff::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hff<self::Hff::T*>*
+class Hff<T extends core::Object? = dynamic> extends self::A<((self::Hff::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hff<self::Hff::T%>
     : super self::A::•()
     ;
 }
-class Hfc<T extends core::Object* = dynamic> extends self::A<((self::Hfc::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hfc<self::Hfc::T*>*
+class Hfc<T extends core::Object? = dynamic> extends self::A<((self::Hfc::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hfc<self::Hfc::T%>
     : super self::A::•()
     ;
 }
-class Hcf<T extends core::Object* = dynamic> extends self::A<((self::Hcf::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hcf<self::Hcf::T*>*
+class Hcf<T extends core::Object? = dynamic> extends self::A<((self::Hcf::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hcf<self::Hcf::T%>
     : super self::A::•()
     ;
 }
-class Hcc<T extends core::Object* = dynamic> extends self::A<((self::Hcc::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hcc<self::Hcc::T*>*
+class Hcc<T extends core::Object? = dynamic> extends self::A<((self::Hcc::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hcc<self::Hcc::T%>
     : super self::A::•()
     ;
 }
-class Hii<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Hii<self::Hii::T*>*
+class Hii<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Hii<self::Hii::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 Iafc<T extends core::Object* = dynamic> extends self::A<self::A<((self::Iafc::T*) →* dynamic) →* dynamic>*> {
-  synthetic constructor •() → self::Iafc<self::Iafc::T*>*
+class Iafc<T extends core::Object? = dynamic> extends self::A<self::A<((self::Iafc::T%) → dynamic) → dynamic>> {
+  synthetic constructor •() → self::Iafc<self::Iafc::T%>
     : super self::A::•()
     ;
 }
-class Iacf<T extends core::Object* = dynamic> extends self::A<self::A<((self::Iacf::T*) →* dynamic) →* dynamic>*> {
-  synthetic constructor •() → self::Iacf<self::Iacf::T*>*
+class Iacf<T extends core::Object? = dynamic> extends self::A<self::A<((self::Iacf::T%) → dynamic) → dynamic>> {
+  synthetic constructor •() → self::Iacf<self::Iacf::T%>
     : super self::A::•()
     ;
 }
-class Ifac<T extends core::Object* = dynamic> extends self::A<(self::A<(self::Ifac::T*) →* dynamic>*) →* dynamic> {
-  synthetic constructor •() → self::Ifac<self::Ifac::T*>*
+class Ifac<T extends core::Object? = dynamic> extends self::A<(self::A<(self::Ifac::T%) → dynamic>) → dynamic> {
+  synthetic constructor •() → self::Ifac<self::Ifac::T%>
     : super self::A::•()
     ;
 }
-class Ifca<T extends core::Object* = dynamic> extends self::A<((self::A<self::Ifca::T*>*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Ifca<self::Ifca::T*>*
+class Ifca<T extends core::Object? = dynamic> extends self::A<((self::A<self::Ifca::T%>) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Ifca<self::Ifca::T%>
     : super self::A::•()
     ;
 }
-class Icaf<T extends core::Object* = dynamic> extends self::A<(self::A<(self::Icaf::T*) →* dynamic>*) →* dynamic> {
-  synthetic constructor •() → self::Icaf<self::Icaf::T*>*
+class Icaf<T extends core::Object? = dynamic> extends self::A<(self::A<(self::Icaf::T%) → dynamic>) → dynamic> {
+  synthetic constructor •() → self::Icaf<self::Icaf::T%>
     : super self::A::•()
     ;
 }
-class Icfa<T extends core::Object* = dynamic> extends self::A<((self::A<self::Icfa::T*>*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Icfa<self::Icfa::T*>*
+class Icfa<T extends core::Object? = dynamic> extends self::A<((self::A<self::Icfa::T%>) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Icfa<self::Icfa::T%>
     : super self::A::•()
     ;
 }
-class Jfff<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jfff<self::Jfff::T*>*
+class Jfff<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jfff<self::Jfff::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 Jffc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jffc<self::Jffc::T*>*
+class Jffc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jffc<self::Jffc::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 Jfcf<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jfcf<self::Jfcf::T*>*
+class Jfcf<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jfcf<self::Jfcf::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 Jfcc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jfcc<self::Jfcc::T*>*
+class Jfcc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jfcc<self::Jfcc::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 Jcff<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jcff<self::Jcff::T*>*
+class Jcff<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jcff<self::Jcff::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 Jcfc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jcfc<self::Jcfc::T*>*
+class Jcfc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jcfc<self::Jcfc::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 Jccf<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jccf<self::Jccf::T*>*
+class Jccf<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jccf<self::Jccf::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 Jccc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jccc<self::Jccc::T*>*
+class Jccc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jccc<self::Jccc::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/general/bad_type_variable_uses_in_supertypes.dart.weak.outline.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.outline.expect
index 02aaae8..b00d931 100644
--- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -113,483 +113,193 @@
 import self as self;
 import "dart:core" as core;
 
-typedef ContravariantUse<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-typedef InvariantUse<invariant T extends core::Object* = dynamic> = (T*) →* T*;
+typedef ContravariantUse<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+typedef InvariantUse<invariant T extends core::Object? = dynamic> = (T%) → T%;
 class Empty extends core::Object {
-  synthetic constructor •() → self::Empty*
+  synthetic constructor •() → self::Empty
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 {
-  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 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%>
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Bc<self::Bc::T*>*
+class Bc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Bc<self::Bc::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 Bi<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Bi<self::Bi::T*>*
+class Bi<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Bi<self::Bi::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%>
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Cc<self::Cc::T*>*
+class Cc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Cc<self::Cc::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 Ci<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Ci<self::Ci::T*>*
+class Ci<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Ci<self::Ci::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 synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const synthetic constructor •() → 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
 }
-class Dc<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Dc<self::Dc::T*>*
+class Dc<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Dc<self::Dc::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 Di<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Di<self::Di::T*>*
+class Di<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Di<self::Di::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 E<T extends core::Object* = dynamic> = core::Object with self::Empty {
-  synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> = core::Object with self::Empty {
+  synthetic constructor •() → self::E<self::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 Ec<T extends core::Object* = dynamic> = core::Object with self::Empty {
-  synthetic constructor •() → self::Ec<self::Ec::T*>*
+class Ec<T extends core::Object? = dynamic> = core::Object with self::Empty {
+  synthetic constructor •() → self::Ec<self::Ec::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 Ei<T extends core::Object* = dynamic> = core::Object with self::Empty {
-  synthetic constructor •() → self::Ei<self::Ei::T*>*
+class Ei<T extends core::Object? = dynamic> = core::Object with self::Empty {
+  synthetic constructor •() → self::Ei<self::Ei::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 _F&Object&A<T extends core::Object* = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_F&Object&A<self::_F&Object&A::T*>*
+abstract class _F&Object&A<T extends core::Object? = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_F&Object&A<self::_F&Object&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 F<T extends core::Object* = dynamic> extends self::_F&Object&A<self::F::T*> {
-  synthetic constructor •() → self::F<self::F::T*>*
+class F<T extends core::Object? = dynamic> extends self::_F&Object&A<self::F::T%> {
+  synthetic constructor •() → self::F<self::F::T%>
     ;
 }
-abstract class _Fc&Object&A<T extends core::Object* = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fc&Object&A<self::_Fc&Object&A::T*>*
+abstract class _Fc&Object&A<T extends core::Object? = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fc&Object&A<self::_Fc&Object&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 Fc<T extends core::Object* = dynamic> extends self::_Fc&Object&A<self::Fc::T*> {
-  synthetic constructor •() → self::Fc<self::Fc::T*>*
+class Fc<T extends core::Object? = dynamic> extends self::_Fc&Object&A<self::Fc::T%> {
+  synthetic constructor •() → self::Fc<self::Fc::T%>
     ;
 }
-abstract class _Fi&Object&A<T extends core::Object* = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fi&Object&A<self::_Fi&Object&A::T*>*
+abstract class _Fi&Object&A<T extends core::Object? = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fi&Object&A<self::_Fi&Object&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 Fi<T extends core::Object* = dynamic> extends self::_Fi&Object&A<self::Fi::T*> {
-  synthetic constructor •() → self::Fi<self::Fi::T*>*
+class Fi<T extends core::Object? = dynamic> extends self::_Fi&Object&A<self::Fi::T%> {
+  synthetic constructor •() → self::Fi<self::Fi::T%>
     ;
 }
-abstract class _G&A&Empty<T extends core::Object* = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_G&A&Empty<self::_G&A&Empty::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 G<T extends core::Object* = dynamic> extends self::_G&A&Empty<self::G::T*> {
-  synthetic constructor •() → self::G<self::G::T*>*
+abstract class _G&A&Empty<T extends core::Object? = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_G&A&Empty<self::_G&A&Empty::T%>
     ;
 }
-abstract class _Gc&A&Empty<T extends core::Object* = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Gc&A&Empty<self::_Gc&A&Empty::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 Gc<T extends core::Object* = dynamic> extends self::_Gc&A&Empty<self::Gc::T*> {
-  synthetic constructor •() → self::Gc<self::Gc::T*>*
+class G<T extends core::Object? = dynamic> extends self::_G&A&Empty<self::G::T%> {
+  synthetic constructor •() → self::G<self::G::T%>
     ;
 }
-abstract class _Gi&A&Empty<T extends core::Object* = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Gi&A&Empty<self::_Gi&A&Empty::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 Gi<T extends core::Object* = dynamic> extends self::_Gi&A&Empty<self::Gi::T*> {
-  synthetic constructor •() → self::Gi<self::Gi::T*>*
+abstract class _Gc&A&Empty<T extends core::Object? = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Gc&A&Empty<self::_Gc&A&Empty::T%>
     ;
 }
-class Hff<T extends core::Object* = dynamic> extends self::A<((self::Hff::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hff<self::Hff::T*>*
+class Gc<T extends core::Object? = dynamic> extends self::_Gc&A&Empty<self::Gc::T%> {
+  synthetic constructor •() → self::Gc<self::Gc::T%>
     ;
 }
-class Hfc<T extends core::Object* = dynamic> extends self::A<((self::Hfc::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hfc<self::Hfc::T*>*
+abstract class _Gi&A&Empty<T extends core::Object? = dynamic> = core::Object with self::Empty /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Gi&A&Empty<self::_Gi&A&Empty::T%>
     ;
 }
-class Hcf<T extends core::Object* = dynamic> extends self::A<((self::Hcf::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hcf<self::Hcf::T*>*
+class Gi<T extends core::Object? = dynamic> extends self::_Gi&A&Empty<self::Gi::T%> {
+  synthetic constructor •() → self::Gi<self::Gi::T%>
     ;
 }
-class Hcc<T extends core::Object* = dynamic> extends self::A<((self::Hcc::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hcc<self::Hcc::T*>*
+class Hff<T extends core::Object? = dynamic> extends self::A<((self::Hff::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hff<self::Hff::T%>
     ;
 }
-class Hii<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Hii<self::Hii::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 Iafc<T extends core::Object* = dynamic> extends self::A<self::A<((self::Iafc::T*) →* dynamic) →* dynamic>*> {
-  synthetic constructor •() → self::Iafc<self::Iafc::T*>*
+class Hfc<T extends core::Object? = dynamic> extends self::A<((self::Hfc::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hfc<self::Hfc::T%>
     ;
 }
-class Iacf<T extends core::Object* = dynamic> extends self::A<self::A<((self::Iacf::T*) →* dynamic) →* dynamic>*> {
-  synthetic constructor •() → self::Iacf<self::Iacf::T*>*
+class Hcf<T extends core::Object? = dynamic> extends self::A<((self::Hcf::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hcf<self::Hcf::T%>
     ;
 }
-class Ifac<T extends core::Object* = dynamic> extends self::A<(self::A<(self::Ifac::T*) →* dynamic>*) →* dynamic> {
-  synthetic constructor •() → self::Ifac<self::Ifac::T*>*
+class Hcc<T extends core::Object? = dynamic> extends self::A<((self::Hcc::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hcc<self::Hcc::T%>
     ;
 }
-class Ifca<T extends core::Object* = dynamic> extends self::A<((self::A<self::Ifca::T*>*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Ifca<self::Ifca::T*>*
+class Hii<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Hii<self::Hii::T%>
     ;
 }
-class Icaf<T extends core::Object* = dynamic> extends self::A<(self::A<(self::Icaf::T*) →* dynamic>*) →* dynamic> {
-  synthetic constructor •() → self::Icaf<self::Icaf::T*>*
+class Iafc<T extends core::Object? = dynamic> extends self::A<self::A<((self::Iafc::T%) → dynamic) → dynamic>> {
+  synthetic constructor •() → self::Iafc<self::Iafc::T%>
     ;
 }
-class Icfa<T extends core::Object* = dynamic> extends self::A<((self::A<self::Icfa::T*>*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Icfa<self::Icfa::T*>*
+class Iacf<T extends core::Object? = dynamic> extends self::A<self::A<((self::Iacf::T%) → dynamic) → dynamic>> {
+  synthetic constructor •() → self::Iacf<self::Iacf::T%>
     ;
 }
-class Jfff<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jfff<self::Jfff::T*>*
+class Ifac<T extends core::Object? = dynamic> extends self::A<(self::A<(self::Ifac::T%) → dynamic>) → dynamic> {
+  synthetic constructor •() → self::Ifac<self::Ifac::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 Jffc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jffc<self::Jffc::T*>*
+class Ifca<T extends core::Object? = dynamic> extends self::A<((self::A<self::Ifca::T%>) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Ifca<self::Ifca::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 Jfcf<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jfcf<self::Jfcf::T*>*
+class Icaf<T extends core::Object? = dynamic> extends self::A<(self::A<(self::Icaf::T%) → dynamic>) → dynamic> {
+  synthetic constructor •() → self::Icaf<self::Icaf::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 Jfcc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jfcc<self::Jfcc::T*>*
+class Icfa<T extends core::Object? = dynamic> extends self::A<((self::A<self::Icfa::T%>) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Icfa<self::Icfa::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 Jcff<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jcff<self::Jcff::T*>*
+class Jfff<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jfff<self::Jfff::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 Jcfc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jcfc<self::Jcfc::T*>*
+class Jffc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jffc<self::Jffc::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 Jccf<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jccf<self::Jccf::T*>*
+class Jfcf<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jfcf<self::Jfcf::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 Jccc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jccc<self::Jccc::T*>*
+class Jfcc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jfcc<self::Jfcc::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 Jcff<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jcff<self::Jcff::T%>
+    ;
+}
+class Jcfc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jcfc<self::Jcfc::T%>
+    ;
+}
+class Jccf<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jccf<self::Jccf::T%>
+    ;
+}
+class Jccc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jccc<self::Jccc::T%>
+    ;
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.transformed.expect
index 6ec787e..0bdc8f7 100644
--- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -113,521 +113,231 @@
 import self as self;
 import "dart:core" as core;
 
-typedef ContravariantUse<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-typedef InvariantUse<invariant T extends core::Object* = dynamic> = (T*) →* T*;
+typedef ContravariantUse<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+typedef InvariantUse<invariant T extends core::Object? = dynamic> = (T%) → T%;
 class Empty extends core::Object {
-  synthetic constructor •() → self::Empty*
+  synthetic constructor •() → self::Empty
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 {
-  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 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::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Bc<self::Bc::T*>*
+class Bc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Bc<self::Bc::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 Bi<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Bi<self::Bi::T*>*
+class Bi<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Bi<self::Bi::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<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::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Cc<self::Cc::T*>*
+class Cc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Cc<self::Cc::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 Ci<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Ci<self::Ci::T*>*
+class Ci<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Ci<self::Ci::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 synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const synthetic constructor •() → 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
 }
-class Dc<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Dc<self::Dc::T*>*
+class Dc<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Dc<self::Dc::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 Di<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Di<self::Di::T*>*
+class Di<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Di<self::Di::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 E<T extends core::Object* = dynamic> extends core::Object implements self::Empty /*isEliminatedMixin*/  {
-  synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> extends core::Object implements self::Empty /*isEliminatedMixin*/  {
+  synthetic constructor •() → self::E<self::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 Ec<T extends core::Object* = dynamic> extends core::Object implements self::Empty /*isEliminatedMixin*/  {
-  synthetic constructor •() → self::Ec<self::Ec::T*>*
+class Ec<T extends core::Object? = dynamic> extends core::Object implements self::Empty /*isEliminatedMixin*/  {
+  synthetic constructor •() → self::Ec<self::Ec::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 Ei<T extends core::Object* = dynamic> extends core::Object implements self::Empty /*isEliminatedMixin*/  {
-  synthetic constructor •() → self::Ei<self::Ei::T*>*
+class Ei<T extends core::Object? = dynamic> extends core::Object implements self::Empty /*isEliminatedMixin*/  {
+  synthetic constructor •() → self::Ei<self::Ei::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 _F&Object&A<T extends core::Object* = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_F&Object&A<self::_F&Object&A::T*>*
+abstract class _F&Object&A<T extends core::Object? = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_F&Object&A<self::_F&Object&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 F<T extends core::Object* = dynamic> extends self::_F&Object&A<self::F::T*> {
-  synthetic constructor •() → self::F<self::F::T*>*
+class F<T extends core::Object? = dynamic> extends self::_F&Object&A<self::F::T%> {
+  synthetic constructor •() → self::F<self::F::T%>
     : super self::_F&Object&A::•()
     ;
 }
-abstract class _Fc&Object&A<T extends core::Object* = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fc&Object&A<self::_Fc&Object&A::T*>*
+abstract class _Fc&Object&A<T extends core::Object? = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fc&Object&A<self::_Fc&Object&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 Fc<T extends core::Object* = dynamic> extends self::_Fc&Object&A<self::Fc::T*> {
-  synthetic constructor •() → self::Fc<self::Fc::T*>*
+class Fc<T extends core::Object? = dynamic> extends self::_Fc&Object&A<self::Fc::T%> {
+  synthetic constructor •() → self::Fc<self::Fc::T%>
     : super self::_Fc&Object&A::•()
     ;
 }
-abstract class _Fi&Object&A<T extends core::Object* = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fi&Object&A<self::_Fi&Object&A::T*>*
+abstract class _Fi&Object&A<T extends core::Object? = dynamic> extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fi&Object&A<self::_Fi&Object&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 Fi<T extends core::Object* = dynamic> extends self::_Fi&Object&A<self::Fi::T*> {
-  synthetic constructor •() → self::Fi<self::Fi::T*>*
+class Fi<T extends core::Object? = dynamic> extends self::_Fi&Object&A<self::Fi::T%> {
+  synthetic constructor •() → self::Fi<self::Fi::T%>
     : super self::_Fi&Object&A::•()
     ;
 }
-abstract class _G&A&Empty<T extends core::Object* = dynamic> extends core::Object implements self::Empty /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_G&A&Empty<self::_G&A&Empty::T*>*
+abstract class _G&A&Empty<T extends core::Object? = dynamic> extends core::Object implements self::Empty /*isAnonymousMixin,isEliminatedMixin*/  {
+  synthetic constructor •() → self::_G&A&Empty<self::_G&A&Empty::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 G<T extends core::Object* = dynamic> extends self::_G&A&Empty<self::G::T*> {
-  synthetic constructor •() → self::G<self::G::T*>*
+class G<T extends core::Object? = dynamic> extends self::_G&A&Empty<self::G::T%> {
+  synthetic constructor •() → self::G<self::G::T%>
     : super self::_G&A&Empty::•()
     ;
 }
-abstract class _Gc&A&Empty<T extends core::Object* = dynamic> extends core::Object implements self::Empty /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Gc&A&Empty<self::_Gc&A&Empty::T*>*
+abstract class _Gc&A&Empty<T extends core::Object? = dynamic> extends core::Object implements self::Empty /*isAnonymousMixin,isEliminatedMixin*/  {
+  synthetic constructor •() → self::_Gc&A&Empty<self::_Gc&A&Empty::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 Gc<T extends core::Object* = dynamic> extends self::_Gc&A&Empty<self::Gc::T*> {
-  synthetic constructor •() → self::Gc<self::Gc::T*>*
+class Gc<T extends core::Object? = dynamic> extends self::_Gc&A&Empty<self::Gc::T%> {
+  synthetic constructor •() → self::Gc<self::Gc::T%>
     : super self::_Gc&A&Empty::•()
     ;
 }
-abstract class _Gi&A&Empty<T extends core::Object* = dynamic> extends core::Object implements self::Empty /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Gi&A&Empty<self::_Gi&A&Empty::T*>*
+abstract class _Gi&A&Empty<T extends core::Object? = dynamic> extends core::Object implements self::Empty /*isAnonymousMixin,isEliminatedMixin*/  {
+  synthetic constructor •() → self::_Gi&A&Empty<self::_Gi&A&Empty::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 Gi<T extends core::Object* = dynamic> extends self::_Gi&A&Empty<self::Gi::T*> {
-  synthetic constructor •() → self::Gi<self::Gi::T*>*
+class Gi<T extends core::Object? = dynamic> extends self::_Gi&A&Empty<self::Gi::T%> {
+  synthetic constructor •() → self::Gi<self::Gi::T%>
     : super self::_Gi&A&Empty::•()
     ;
 }
-class Hff<T extends core::Object* = dynamic> extends self::A<((self::Hff::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hff<self::Hff::T*>*
+class Hff<T extends core::Object? = dynamic> extends self::A<((self::Hff::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hff<self::Hff::T%>
     : super self::A::•()
     ;
 }
-class Hfc<T extends core::Object* = dynamic> extends self::A<((self::Hfc::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hfc<self::Hfc::T*>*
+class Hfc<T extends core::Object? = dynamic> extends self::A<((self::Hfc::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hfc<self::Hfc::T%>
     : super self::A::•()
     ;
 }
-class Hcf<T extends core::Object* = dynamic> extends self::A<((self::Hcf::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hcf<self::Hcf::T*>*
+class Hcf<T extends core::Object? = dynamic> extends self::A<((self::Hcf::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hcf<self::Hcf::T%>
     : super self::A::•()
     ;
 }
-class Hcc<T extends core::Object* = dynamic> extends self::A<((self::Hcc::T*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Hcc<self::Hcc::T*>*
+class Hcc<T extends core::Object? = dynamic> extends self::A<((self::Hcc::T%) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Hcc<self::Hcc::T%>
     : super self::A::•()
     ;
 }
-class Hii<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Hii<self::Hii::T*>*
+class Hii<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Hii<self::Hii::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 Iafc<T extends core::Object* = dynamic> extends self::A<self::A<((self::Iafc::T*) →* dynamic) →* dynamic>*> {
-  synthetic constructor •() → self::Iafc<self::Iafc::T*>*
+class Iafc<T extends core::Object? = dynamic> extends self::A<self::A<((self::Iafc::T%) → dynamic) → dynamic>> {
+  synthetic constructor •() → self::Iafc<self::Iafc::T%>
     : super self::A::•()
     ;
 }
-class Iacf<T extends core::Object* = dynamic> extends self::A<self::A<((self::Iacf::T*) →* dynamic) →* dynamic>*> {
-  synthetic constructor •() → self::Iacf<self::Iacf::T*>*
+class Iacf<T extends core::Object? = dynamic> extends self::A<self::A<((self::Iacf::T%) → dynamic) → dynamic>> {
+  synthetic constructor •() → self::Iacf<self::Iacf::T%>
     : super self::A::•()
     ;
 }
-class Ifac<T extends core::Object* = dynamic> extends self::A<(self::A<(self::Ifac::T*) →* dynamic>*) →* dynamic> {
-  synthetic constructor •() → self::Ifac<self::Ifac::T*>*
+class Ifac<T extends core::Object? = dynamic> extends self::A<(self::A<(self::Ifac::T%) → dynamic>) → dynamic> {
+  synthetic constructor •() → self::Ifac<self::Ifac::T%>
     : super self::A::•()
     ;
 }
-class Ifca<T extends core::Object* = dynamic> extends self::A<((self::A<self::Ifca::T*>*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Ifca<self::Ifca::T*>*
+class Ifca<T extends core::Object? = dynamic> extends self::A<((self::A<self::Ifca::T%>) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Ifca<self::Ifca::T%>
     : super self::A::•()
     ;
 }
-class Icaf<T extends core::Object* = dynamic> extends self::A<(self::A<(self::Icaf::T*) →* dynamic>*) →* dynamic> {
-  synthetic constructor •() → self::Icaf<self::Icaf::T*>*
+class Icaf<T extends core::Object? = dynamic> extends self::A<(self::A<(self::Icaf::T%) → dynamic>) → dynamic> {
+  synthetic constructor •() → self::Icaf<self::Icaf::T%>
     : super self::A::•()
     ;
 }
-class Icfa<T extends core::Object* = dynamic> extends self::A<((self::A<self::Icfa::T*>*) →* dynamic) →* dynamic> {
-  synthetic constructor •() → self::Icfa<self::Icfa::T*>*
+class Icfa<T extends core::Object? = dynamic> extends self::A<((self::A<self::Icfa::T%>) → dynamic) → dynamic> {
+  synthetic constructor •() → self::Icfa<self::Icfa::T%>
     : super self::A::•()
     ;
 }
-class Jfff<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jfff<self::Jfff::T*>*
+class Jfff<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jfff<self::Jfff::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 Jffc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jffc<self::Jffc::T*>*
+class Jffc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jffc<self::Jffc::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 Jfcf<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jfcf<self::Jfcf::T*>*
+class Jfcf<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jfcf<self::Jfcf::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 Jfcc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jfcc<self::Jfcc::T*>*
+class Jfcc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jfcc<self::Jfcc::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 Jcff<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jcff<self::Jcff::T*>*
+class Jcff<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jcff<self::Jcff::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 Jcfc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jcfc<self::Jcfc::T*>*
+class Jcfc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jcfc<self::Jcfc::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 Jccf<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jccf<self::Jccf::T*>*
+class Jccf<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jccf<self::Jccf::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 Jccc<T extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Jccc<self::Jccc::T*>*
+class Jccc<T extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Jccc<self::Jccc::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/general/bounds_check_depends_on_inference.dart b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart
index 4d668a5..be77632 100644
--- a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart
+++ b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart
@@ -1,17 +1,17 @@
 // 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
+
 // This testcase checks an implementation detail in the bounds checking
 // mechanism.  Here String passed into bar should be checked against the bound
 // that depends on the result of type inference for expression `B.foo()`.
 
 class A<X> {
-  bar<Y extends X>() => null;
+  bar<Y extends X>() => throw '';
 }
 
 class B {
-  static A<Y> foo<Y extends Object>() => null;
+  static A<Y> foo<Y extends Object>() => throw '';
 }
 
 baz() {
diff --git a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.textual_outline.expect b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.textual_outline.expect
index bfd899b..ecfb359 100644
--- a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
 class A<X> {
-  bar<Y extends X>() => null;
+  bar<Y extends X>() => throw '';
 }
 
 class B {
-  static A<Y> foo<Y extends Object>() => null;
+  static A<Y> foo<Y extends Object>() => throw '';
 }
 
 baz() {}
diff --git a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.textual_outline_modelled.expect
index 2568052..21e8979 100644
--- a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.textual_outline_modelled.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
 baz() {}
 
 class A<X> {
-  bar<Y extends X>() => null;
+  bar<Y extends X>() => throw '';
 }
 
 class B {
-  static A<Y> foo<Y extends Object>() => null;
+  static A<Y> foo<Y extends Object>() => throw '';
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.expect b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.expect
index 228018a..719bc6c7 100644
--- a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.expect
@@ -1,42 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<X extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::X%>
     : super core::Object::•()
     ;
-  method bar<covariant-by-class Y extends self::A::X*>() → 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
+  method bar<covariant-by-class Y extends self::A::X%>() → dynamic
+    return throw "";
 }
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  static method foo<Y extends core::Object*>() → self::A<self::B::foo::Y*>*
-    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 foo<Y extends core::Object>() → self::A<self::B::foo::Y>
+    return throw "";
 }
 static method baz() → dynamic {
-  self::B::foo<core::Object*>().{self::A::bar}<core::String*>(){() →* dynamic};
+  self::B::foo<core::Object>().{self::A::bar}<core::String>(){() → dynamic};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.modular.expect b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.modular.expect
index 228018a..719bc6c7 100644
--- a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.modular.expect
@@ -1,42 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<X extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::X%>
     : super core::Object::•()
     ;
-  method bar<covariant-by-class Y extends self::A::X*>() → 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
+  method bar<covariant-by-class Y extends self::A::X%>() → dynamic
+    return throw "";
 }
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  static method foo<Y extends core::Object*>() → self::A<self::B::foo::Y*>*
-    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 foo<Y extends core::Object>() → self::A<self::B::foo::Y>
+    return throw "";
 }
 static method baz() → dynamic {
-  self::B::foo<core::Object*>().{self::A::bar}<core::String*>(){() →* dynamic};
+  self::B::foo<core::Object>().{self::A::bar}<core::String>(){() → dynamic};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.outline.expect b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.outline.expect
index 12e78d8..9c24993 100644
--- a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.outline.expect
@@ -1,38 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<X extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::X%>
     ;
-  method bar<covariant-by-class Y extends self::A::X*>() → dynamic
+  method bar<covariant-by-class Y extends self::A::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
 }
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  static method foo<Y extends core::Object*>() → self::A<self::B::foo::Y*>*
+  static method foo<Y extends core::Object>() → self::A<self::B::foo::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 baz() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.transformed.expect
index 228018a..719bc6c7 100644
--- a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.transformed.expect
@@ -1,42 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<X extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::X%>
     : super core::Object::•()
     ;
-  method bar<covariant-by-class Y extends self::A::X*>() → 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
+  method bar<covariant-by-class Y extends self::A::X%>() → dynamic
+    return throw "";
 }
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  static method foo<Y extends core::Object*>() → self::A<self::B::foo::Y*>*
-    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 foo<Y extends core::Object>() → self::A<self::B::foo::Y>
+    return throw "";
 }
 static method baz() → dynamic {
-  self::B::foo<core::Object*>().{self::A::bar}<core::String*>(){() →* dynamic};
+  self::B::foo<core::Object>().{self::A::bar}<core::String>(){() → dynamic};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart
index a0d29c8..955eb3d 100644
--- a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart
+++ b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights 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<X extends String> {}
 
 typedef F = Function<Z extends A<Y>>() Function<Y extends num>();
diff --git a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.textual_outline.expect b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.textual_outline.expect
index 5b7ac34a..0005089 100644
--- a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A<X extends String> {}
 
 typedef F = Function<Z extends A<Y>>() Function<Y extends num>();
diff --git a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.textual_outline_modelled.expect
index 14c6c33..66a369f 100644
--- a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A<X extends String> {}
 
 main() {}
diff --git a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.expect b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.expect
index 01f1570..3cebc8b 100644
--- a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -21,21 +21,11 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F = <Y extends core::num* = dynamic>() →* <Z extends self::A<Y*>* = dynamic>() →* dynamic;
-typedef G = <Y extends core::num* = dynamic>(<Z extends self::A<Y*>* = dynamic>() →* dynamic) →* void;
-class A<X extends core::String*> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+typedef F = <Y extends core::num = dynamic>() → <Z extends self::A<Y> = dynamic>() → dynamic;
+typedef G = <Y extends core::num = dynamic>(<Z extends self::A<Y> = dynamic>() → dynamic) → void;
+class A<X extends core::String> extends core::Object {
+  synthetic constructor •() → self::A<self::A::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 {}
diff --git a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.modular.expect b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.modular.expect
index 01f1570..3cebc8b 100644
--- a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -21,21 +21,11 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F = <Y extends core::num* = dynamic>() →* <Z extends self::A<Y*>* = dynamic>() →* dynamic;
-typedef G = <Y extends core::num* = dynamic>(<Z extends self::A<Y*>* = dynamic>() →* dynamic) →* void;
-class A<X extends core::String*> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+typedef F = <Y extends core::num = dynamic>() → <Z extends self::A<Y> = dynamic>() → dynamic;
+typedef G = <Y extends core::num = dynamic>(<Z extends self::A<Y> = dynamic>() → dynamic) → void;
+class A<X extends core::String> extends core::Object {
+  synthetic constructor •() → self::A<self::A::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 {}
diff --git a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.outline.expect b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.outline.expect
index ffcf750..d778825 100644
--- a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -21,21 +21,11 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F = <Y extends core::num* = dynamic>() →* <Z extends self::A<Y*>* = dynamic>() →* dynamic;
-typedef G = <Y extends core::num* = dynamic>(<Z extends self::A<Y*>* = dynamic>() →* dynamic) →* void;
-class A<X extends core::String*> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+typedef F = <Y extends core::num = dynamic>() → <Z extends self::A<Y> = dynamic>() → dynamic;
+typedef G = <Y extends core::num = dynamic>(<Z extends self::A<Y> = dynamic>() → dynamic) → void;
+class A<X extends core::String> extends core::Object {
+  synthetic constructor •() → self::A<self::A::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/general/bounds_check_in_typedef.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.transformed.expect
index 01f1570..3cebc8b 100644
--- a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -21,21 +21,11 @@
 import self as self;
 import "dart:core" as core;
 
-typedef F = <Y extends core::num* = dynamic>() →* <Z extends self::A<Y*>* = dynamic>() →* dynamic;
-typedef G = <Y extends core::num* = dynamic>(<Z extends self::A<Y*>* = dynamic>() →* dynamic) →* void;
-class A<X extends core::String*> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+typedef F = <Y extends core::num = dynamic>() → <Z extends self::A<Y> = dynamic>() → dynamic;
+typedef G = <Y extends core::num = dynamic>(<Z extends self::A<Y> = dynamic>() → dynamic) → void;
+class A<X extends core::String> extends core::Object {
+  synthetic constructor •() → self::A<self::A::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 {}
diff --git a/pkg/front_end/testcases/general/bug21938.dart b/pkg/front_end/testcases/general/bug21938.dart
index 9783d24..1b68c6d6 100644
--- a/pkg/front_end/testcases/general/bug21938.dart
+++ b/pkg/front_end/testcases/general/bug21938.dart
@@ -1,10 +1,8 @@
 // Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-// @dart=2.9
-test() {
-  Object x;
-  Function f;
+
+test(Object x, Function f) {
   x();
   x(3);
   f(5, 2);
diff --git a/pkg/front_end/testcases/general/bug21938.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug21938.dart.textual_outline.expect
index 001308b..b2e6e6d 100644
--- a/pkg/front_end/testcases/general/bug21938.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bug21938.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
-test() {}
+test(Object x, Function f) {}
 main() {}
diff --git a/pkg/front_end/testcases/general/bug21938.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bug21938.dart.textual_outline_modelled.expect
index 38df08d..f7e381f 100644
--- a/pkg/front_end/testcases/general/bug21938.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bug21938.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
-test() {}
+test(Object x, Function f) {}
diff --git a/pkg/front_end/testcases/general/bug21938.dart.weak.expect b/pkg/front_end/testcases/general/bug21938.dart.weak.expect
index d46ee72..f5c0832 100644
--- a/pkg/front_end/testcases/general/bug21938.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug21938.dart.weak.expect
@@ -1,20 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/bug21938.dart:8:4: Error: The method 'call' isn't defined for the class 'Object'.
+// pkg/front_end/testcases/general/bug21938.dart:6:4: Error: The method 'call' isn't defined for the class 'Object'.
 //  - 'Object' is from 'dart:core'.
 // Try correcting the name to the name of an existing method, or defining a method named 'call'.
 //   x();
 //    ^
 //
-// pkg/front_end/testcases/general/bug21938.dart:9:4: Error: The method 'call' isn't defined for the class 'Object'.
+// pkg/front_end/testcases/general/bug21938.dart:7:4: Error: The method 'call' isn't defined for the class 'Object'.
 //  - 'Object' is from 'dart:core'.
 // Try correcting the name to the name of an existing method, or defining a method named 'call'.
 //   x(3);
 //    ^
 //
-// pkg/front_end/testcases/general/bug21938.dart:11:5: Error: The method 'call' isn't defined for the class 'Object'.
+// pkg/front_end/testcases/general/bug21938.dart:9:5: Error: The method 'call' isn't defined for the class 'Object'.
 //  - 'Object' is from 'dart:core'.
 // Try correcting the name to the name of an existing method, or defining a method named 'call'.
 //   x.call();
@@ -23,21 +23,19 @@
 import self as self;
 import "dart:core" as core;
 
-static method test() → dynamic {
-  core::Object* x;
-  core::Function* f;
-  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:8:4: Error: The method 'call' isn't defined for the class 'Object'.
+static method test(core::Object x, core::Function f) → dynamic {
+  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:6:4: Error: The method 'call' isn't defined for the class 'Object'.
  - 'Object' is from 'dart:core'.
 Try correcting the name to the name of an existing method, or defining a method named 'call'.
   x();
    ^" in x{<unresolved>}.call();
-  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:9:4: Error: The method 'call' isn't defined for the class 'Object'.
+  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:7:4: Error: The method 'call' isn't defined for the class 'Object'.
  - 'Object' is from 'dart:core'.
 Try correcting the name to the name of an existing method, or defining a method named 'call'.
   x(3);
    ^" in x{<unresolved>}.call(3);
   f(5, 2);
-  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:11:5: Error: The method 'call' isn't defined for the class 'Object'.
+  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:9:5: Error: The method 'call' isn't defined for the class 'Object'.
  - 'Object' is from 'dart:core'.
 Try correcting the name to the name of an existing method, or defining a method named 'call'.
   x.call();
diff --git a/pkg/front_end/testcases/general/bug21938.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug21938.dart.weak.modular.expect
index d46ee72..f5c0832 100644
--- a/pkg/front_end/testcases/general/bug21938.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bug21938.dart.weak.modular.expect
@@ -1,20 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/bug21938.dart:8:4: Error: The method 'call' isn't defined for the class 'Object'.
+// pkg/front_end/testcases/general/bug21938.dart:6:4: Error: The method 'call' isn't defined for the class 'Object'.
 //  - 'Object' is from 'dart:core'.
 // Try correcting the name to the name of an existing method, or defining a method named 'call'.
 //   x();
 //    ^
 //
-// pkg/front_end/testcases/general/bug21938.dart:9:4: Error: The method 'call' isn't defined for the class 'Object'.
+// pkg/front_end/testcases/general/bug21938.dart:7:4: Error: The method 'call' isn't defined for the class 'Object'.
 //  - 'Object' is from 'dart:core'.
 // Try correcting the name to the name of an existing method, or defining a method named 'call'.
 //   x(3);
 //    ^
 //
-// pkg/front_end/testcases/general/bug21938.dart:11:5: Error: The method 'call' isn't defined for the class 'Object'.
+// pkg/front_end/testcases/general/bug21938.dart:9:5: Error: The method 'call' isn't defined for the class 'Object'.
 //  - 'Object' is from 'dart:core'.
 // Try correcting the name to the name of an existing method, or defining a method named 'call'.
 //   x.call();
@@ -23,21 +23,19 @@
 import self as self;
 import "dart:core" as core;
 
-static method test() → dynamic {
-  core::Object* x;
-  core::Function* f;
-  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:8:4: Error: The method 'call' isn't defined for the class 'Object'.
+static method test(core::Object x, core::Function f) → dynamic {
+  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:6:4: Error: The method 'call' isn't defined for the class 'Object'.
  - 'Object' is from 'dart:core'.
 Try correcting the name to the name of an existing method, or defining a method named 'call'.
   x();
    ^" in x{<unresolved>}.call();
-  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:9:4: Error: The method 'call' isn't defined for the class 'Object'.
+  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:7:4: Error: The method 'call' isn't defined for the class 'Object'.
  - 'Object' is from 'dart:core'.
 Try correcting the name to the name of an existing method, or defining a method named 'call'.
   x(3);
    ^" in x{<unresolved>}.call(3);
   f(5, 2);
-  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:11:5: Error: The method 'call' isn't defined for the class 'Object'.
+  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:9:5: Error: The method 'call' isn't defined for the class 'Object'.
  - 'Object' is from 'dart:core'.
 Try correcting the name to the name of an existing method, or defining a method named 'call'.
   x.call();
diff --git a/pkg/front_end/testcases/general/bug21938.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug21938.dart.weak.outline.expect
index a29647d..47da295 100644
--- a/pkg/front_end/testcases/general/bug21938.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug21938.dart.weak.outline.expect
@@ -1,7 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
+import "dart:core" as core;
 
-static method test() → dynamic
+static method test(core::Object x, core::Function f) → dynamic
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/bug21938.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug21938.dart.weak.transformed.expect
index d46ee72..f5c0832 100644
--- a/pkg/front_end/testcases/general/bug21938.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug21938.dart.weak.transformed.expect
@@ -1,20 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/bug21938.dart:8:4: Error: The method 'call' isn't defined for the class 'Object'.
+// pkg/front_end/testcases/general/bug21938.dart:6:4: Error: The method 'call' isn't defined for the class 'Object'.
 //  - 'Object' is from 'dart:core'.
 // Try correcting the name to the name of an existing method, or defining a method named 'call'.
 //   x();
 //    ^
 //
-// pkg/front_end/testcases/general/bug21938.dart:9:4: Error: The method 'call' isn't defined for the class 'Object'.
+// pkg/front_end/testcases/general/bug21938.dart:7:4: Error: The method 'call' isn't defined for the class 'Object'.
 //  - 'Object' is from 'dart:core'.
 // Try correcting the name to the name of an existing method, or defining a method named 'call'.
 //   x(3);
 //    ^
 //
-// pkg/front_end/testcases/general/bug21938.dart:11:5: Error: The method 'call' isn't defined for the class 'Object'.
+// pkg/front_end/testcases/general/bug21938.dart:9:5: Error: The method 'call' isn't defined for the class 'Object'.
 //  - 'Object' is from 'dart:core'.
 // Try correcting the name to the name of an existing method, or defining a method named 'call'.
 //   x.call();
@@ -23,21 +23,19 @@
 import self as self;
 import "dart:core" as core;
 
-static method test() → dynamic {
-  core::Object* x;
-  core::Function* f;
-  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:8:4: Error: The method 'call' isn't defined for the class 'Object'.
+static method test(core::Object x, core::Function f) → dynamic {
+  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:6:4: Error: The method 'call' isn't defined for the class 'Object'.
  - 'Object' is from 'dart:core'.
 Try correcting the name to the name of an existing method, or defining a method named 'call'.
   x();
    ^" in x{<unresolved>}.call();
-  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:9:4: Error: The method 'call' isn't defined for the class 'Object'.
+  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:7:4: Error: The method 'call' isn't defined for the class 'Object'.
  - 'Object' is from 'dart:core'.
 Try correcting the name to the name of an existing method, or defining a method named 'call'.
   x(3);
    ^" in x{<unresolved>}.call(3);
   f(5, 2);
-  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:11:5: Error: The method 'call' isn't defined for the class 'Object'.
+  invalid-expression "pkg/front_end/testcases/general/bug21938.dart:9:5: Error: The method 'call' isn't defined for the class 'Object'.
  - 'Object' is from 'dart:core'.
 Try correcting the name to the name of an existing method, or defining a method named 'call'.
   x.call();
diff --git a/pkg/front_end/testcases/general/bug30695.dart b/pkg/front_end/testcases/general/bug30695.dart
index 278372a..078fdb1 100644
--- a/pkg/front_end/testcases/general/bug30695.dart
+++ b/pkg/front_end/testcases/general/bug30695.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-// @dart=2.9
+
 class A {
   var foo = 42;
 }
diff --git a/pkg/front_end/testcases/general/bug30695.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug30695.dart.textual_outline.expect
index 06d774d..8f35078 100644
--- a/pkg/front_end/testcases/general/bug30695.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bug30695.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   var foo = 42;
 }
diff --git a/pkg/front_end/testcases/general/bug30695.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bug30695.dart.textual_outline_modelled.expect
index 06d774d..8f35078 100644
--- a/pkg/front_end/testcases/general/bug30695.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bug30695.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   var foo = 42;
 }
diff --git a/pkg/front_end/testcases/general/bug30695.dart.weak.expect b/pkg/front_end/testcases/general/bug30695.dart.weak.expect
index 87f32bd..c0a0d0b 100644
--- a/pkg/front_end/testcases/general/bug30695.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug30695.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,23 +13,13 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* foo = 42;
-  synthetic constructor •() → self::A*
+  field core::int foo = 42;
+  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 foo() → dynamic
diff --git a/pkg/front_end/testcases/general/bug30695.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug30695.dart.weak.modular.expect
index 87f32bd..c0a0d0b 100644
--- a/pkg/front_end/testcases/general/bug30695.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bug30695.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,23 +13,13 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* foo = 42;
-  synthetic constructor •() → self::A*
+  field core::int foo = 42;
+  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 foo() → dynamic
diff --git a/pkg/front_end/testcases/general/bug30695.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug30695.dart.weak.outline.expect
index bd5f95d..356a0af 100644
--- a/pkg/front_end/testcases/general/bug30695.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug30695.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,22 +13,12 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* foo;
-  synthetic constructor •() → self::A*
+  field core::int foo;
+  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 foo() → dynamic
     ;
diff --git a/pkg/front_end/testcases/general/bug31124.dart b/pkg/front_end/testcases/general/bug31124.dart
index be63d7d..6920fe1 100644
--- a/pkg/front_end/testcases/general/bug31124.dart
+++ b/pkg/front_end/testcases/general/bug31124.dart
@@ -1,2 +1 @@
-// @dart=2.9
 var a = () => 'b';a();
diff --git a/pkg/front_end/testcases/general/bug31124.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug31124.dart.textual_outline.expect
index 0a7830f..331dc8b 100644
--- a/pkg/front_end/testcases/general/bug31124.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bug31124.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 var a = () => 'b';
 a();
diff --git a/pkg/front_end/testcases/general/bug31124.dart.weak.expect b/pkg/front_end/testcases/general/bug31124.dart.weak.expect
index 05d5b71..ffdb401 100644
--- a/pkg/front_end/testcases/general/bug31124.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug31124.dart.weak.expect
@@ -1,20 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/bug31124.dart:2:22: Error: Expected a function body or '=>'.
+// pkg/front_end/testcases/general/bug31124.dart:1:22: Error: Expected a function body or '=>'.
 // Try adding {}.
 // var a = () => 'b';a();
 //                      ^
 //
-// pkg/front_end/testcases/general/bug31124.dart:2:19: Error: 'a' is already declared in this scope.
+// pkg/front_end/testcases/general/bug31124.dart:1:19: Error: 'a' is already declared in this scope.
 // var a = () => 'b';a();
 //                   ^
-// pkg/front_end/testcases/general/bug31124.dart:2:5: Context: Previous declaration of 'a'.
+// pkg/front_end/testcases/general/bug31124.dart:1:5: Context: Previous declaration of 'a'.
 // var a = () => 'b';a();
 //     ^
 //
 import self as self;
 import "dart:core" as core;
 
-static field () →* core::String* a;
+static field () → core::String a;
diff --git a/pkg/front_end/testcases/general/bug31124.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug31124.dart.weak.modular.expect
index 05d5b71..ffdb401 100644
--- a/pkg/front_end/testcases/general/bug31124.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bug31124.dart.weak.modular.expect
@@ -1,20 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/bug31124.dart:2:22: Error: Expected a function body or '=>'.
+// pkg/front_end/testcases/general/bug31124.dart:1:22: Error: Expected a function body or '=>'.
 // Try adding {}.
 // var a = () => 'b';a();
 //                      ^
 //
-// pkg/front_end/testcases/general/bug31124.dart:2:19: Error: 'a' is already declared in this scope.
+// pkg/front_end/testcases/general/bug31124.dart:1:19: Error: 'a' is already declared in this scope.
 // var a = () => 'b';a();
 //                   ^
-// pkg/front_end/testcases/general/bug31124.dart:2:5: Context: Previous declaration of 'a'.
+// pkg/front_end/testcases/general/bug31124.dart:1:5: Context: Previous declaration of 'a'.
 // var a = () => 'b';a();
 //     ^
 //
 import self as self;
 import "dart:core" as core;
 
-static field () →* core::String* a;
+static field () → core::String a;
diff --git a/pkg/front_end/testcases/general/bug31124.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug31124.dart.weak.outline.expect
index 05d5b71..ffdb401 100644
--- a/pkg/front_end/testcases/general/bug31124.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug31124.dart.weak.outline.expect
@@ -1,20 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/bug31124.dart:2:22: Error: Expected a function body or '=>'.
+// pkg/front_end/testcases/general/bug31124.dart:1:22: Error: Expected a function body or '=>'.
 // Try adding {}.
 // var a = () => 'b';a();
 //                      ^
 //
-// pkg/front_end/testcases/general/bug31124.dart:2:19: Error: 'a' is already declared in this scope.
+// pkg/front_end/testcases/general/bug31124.dart:1:19: Error: 'a' is already declared in this scope.
 // var a = () => 'b';a();
 //                   ^
-// pkg/front_end/testcases/general/bug31124.dart:2:5: Context: Previous declaration of 'a'.
+// pkg/front_end/testcases/general/bug31124.dart:1:5: Context: Previous declaration of 'a'.
 // var a = () => 'b';a();
 //     ^
 //
 import self as self;
 import "dart:core" as core;
 
-static field () →* core::String* a;
+static field () → core::String a;
diff --git a/pkg/front_end/testcases/general/bug31124.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug31124.dart.weak.transformed.expect
index 05d5b71..ffdb401 100644
--- a/pkg/front_end/testcases/general/bug31124.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug31124.dart.weak.transformed.expect
@@ -1,20 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/bug31124.dart:2:22: Error: Expected a function body or '=>'.
+// pkg/front_end/testcases/general/bug31124.dart:1:22: Error: Expected a function body or '=>'.
 // Try adding {}.
 // var a = () => 'b';a();
 //                      ^
 //
-// pkg/front_end/testcases/general/bug31124.dart:2:19: Error: 'a' is already declared in this scope.
+// pkg/front_end/testcases/general/bug31124.dart:1:19: Error: 'a' is already declared in this scope.
 // var a = () => 'b';a();
 //                   ^
-// pkg/front_end/testcases/general/bug31124.dart:2:5: Context: Previous declaration of 'a'.
+// pkg/front_end/testcases/general/bug31124.dart:1:5: Context: Previous declaration of 'a'.
 // var a = () => 'b';a();
 //     ^
 //
 import self as self;
 import "dart:core" as core;
 
-static field () →* core::String* a;
+static field () → core::String a;
diff --git a/pkg/front_end/testcases/general/bug32414a.dart b/pkg/front_end/testcases/general/bug32414a.dart
index 5f453b0..88a9e4b 100644
--- a/pkg/front_end/testcases/general/bug32414a.dart
+++ b/pkg/front_end/testcases/general/bug32414a.dart
@@ -1,12 +1,12 @@
 // 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=inference*/
 
 void test() {
   dynamic a = 5;
-  var /*@ type=String* */ b = a. /*@target=Object.toString*/ toString();
+  var /*@type=String*/ b = a. /*@target=Object.toString*/ toString();
   b = 42;
 }
 
diff --git a/pkg/front_end/testcases/general/bug32414a.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug32414a.dart.textual_outline.expect
index c5aabb4..41786bb 100644
--- a/pkg/front_end/testcases/general/bug32414a.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bug32414a.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 void test() {}
 void main() {}
diff --git a/pkg/front_end/testcases/general/bug32414a.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bug32414a.dart.textual_outline_modelled.expect
index d4e1593..0e0980f 100644
--- a/pkg/front_end/testcases/general/bug32414a.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bug32414a.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 void main() {}
 void test() {}
diff --git a/pkg/front_end/testcases/general/bug32414a.dart.weak.expect b/pkg/front_end/testcases/general/bug32414a.dart.weak.expect
index 8f4896c..74de6ae 100644
--- a/pkg/front_end/testcases/general/bug32414a.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug32414a.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,9 +11,9 @@
 
 static method test() → void {
   dynamic a = 5;
-  core::String* b = a.{core::Object::toString}(){() →* core::String*};
+  core::String b = a.{core::Object::toString}(){() → core::String};
   b = invalid-expression "pkg/front_end/testcases/general/bug32414a.dart:10:7: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   b = 42;
-      ^" in 42 as{TypeError} core::String*;
+      ^" in 42 as{TypeError,ForNonNullableByDefault} core::String;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/general/bug32414a.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug32414a.dart.weak.modular.expect
index 8f4896c..74de6ae 100644
--- a/pkg/front_end/testcases/general/bug32414a.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bug32414a.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,9 +11,9 @@
 
 static method test() → void {
   dynamic a = 5;
-  core::String* b = a.{core::Object::toString}(){() →* core::String*};
+  core::String b = a.{core::Object::toString}(){() → core::String};
   b = invalid-expression "pkg/front_end/testcases/general/bug32414a.dart:10:7: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   b = 42;
-      ^" in 42 as{TypeError} core::String*;
+      ^" in 42 as{TypeError,ForNonNullableByDefault} core::String;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/general/bug32414a.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug32414a.dart.weak.outline.expect
index a440da0..b6809aa 100644
--- a/pkg/front_end/testcases/general/bug32414a.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug32414a.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method test() → void
diff --git a/pkg/front_end/testcases/general/bug32414a.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug32414a.dart.weak.transformed.expect
index 8f4896c..74de6ae 100644
--- a/pkg/front_end/testcases/general/bug32414a.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug32414a.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -11,9 +11,9 @@
 
 static method test() → void {
   dynamic a = 5;
-  core::String* b = a.{core::Object::toString}(){() →* core::String*};
+  core::String b = a.{core::Object::toString}(){() → core::String};
   b = invalid-expression "pkg/front_end/testcases/general/bug32414a.dart:10:7: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   b = 42;
-      ^" in 42 as{TypeError} core::String*;
+      ^" in 42 as{TypeError,ForNonNullableByDefault} core::String;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/general/bug32414b.dart b/pkg/front_end/testcases/general/bug32414b.dart
index e1be246..81325e2 100644
--- a/pkg/front_end/testcases/general/bug32414b.dart
+++ b/pkg/front_end/testcases/general/bug32414b.dart
@@ -1,14 +1,14 @@
 // 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=inference*/
 
 void test() {
   List<dynamic> l = /*@ typeArgs=dynamic */ [1, "hello"];
   List<String> l2 = l
-      . /*@target=Iterable.map*/ /*@ typeArgs=String* */ map(
-          /*@ returnType=String* */ (dynamic element) =>
+      . /*@target=Iterable.map*/ /*@typeArgs=String*/ map(
+          /*@returnType=String*/ (dynamic element) =>
               element. /*@target=Object.toString*/ toString())
       . /*@target=Iterable.toList*/ toList();
 }
diff --git a/pkg/front_end/testcases/general/bug32414b.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug32414b.dart.textual_outline.expect
index c5aabb4..41786bb 100644
--- a/pkg/front_end/testcases/general/bug32414b.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bug32414b.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 void test() {}
 void main() {}
diff --git a/pkg/front_end/testcases/general/bug32414b.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bug32414b.dart.textual_outline_modelled.expect
index d4e1593..0e0980f 100644
--- a/pkg/front_end/testcases/general/bug32414b.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bug32414b.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 void main() {}
 void test() {}
diff --git a/pkg/front_end/testcases/general/bug32414b.dart.weak.expect b/pkg/front_end/testcases/general/bug32414b.dart.weak.expect
index f09b3fe..bf03166 100644
--- a/pkg/front_end/testcases/general/bug32414b.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug32414b.dart.weak.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method test() → void {
-  core::List<dynamic>* l = <dynamic>[1, "hello"];
-  core::List<core::String*>* l2 = l.{core::Iterable::map}<core::String*>((dynamic element) → core::String* => element.{core::Object::toString}(){() →* core::String*}){((dynamic) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
+  core::List<dynamic> l = <dynamic>[1, "hello"];
+  core::List<core::String> l2 = l.{core::Iterable::map}<core::String>((dynamic element) → core::String => element.{core::Object::toString}(){() → core::String}){((dynamic) → core::String) → core::Iterable<core::String>}.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::String>};
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/general/bug32414b.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug32414b.dart.weak.modular.expect
index f09b3fe..bf03166 100644
--- a/pkg/front_end/testcases/general/bug32414b.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bug32414b.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method test() → void {
-  core::List<dynamic>* l = <dynamic>[1, "hello"];
-  core::List<core::String*>* l2 = l.{core::Iterable::map}<core::String*>((dynamic element) → core::String* => element.{core::Object::toString}(){() →* core::String*}){((dynamic) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
+  core::List<dynamic> l = <dynamic>[1, "hello"];
+  core::List<core::String> l2 = l.{core::Iterable::map}<core::String>((dynamic element) → core::String => element.{core::Object::toString}(){() → core::String}){((dynamic) → core::String) → core::Iterable<core::String>}.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::String>};
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/general/bug32414b.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug32414b.dart.weak.outline.expect
index a440da0..b6809aa 100644
--- a/pkg/front_end/testcases/general/bug32414b.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug32414b.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method test() → void
diff --git a/pkg/front_end/testcases/general/bug32414b.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug32414b.dart.weak.transformed.expect
index 474232b..8e60b39 100644
--- a/pkg/front_end/testcases/general/bug32414b.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug32414b.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method test() → void {
-  core::List<dynamic>* l = core::_GrowableList::_literal2<dynamic>(1, "hello");
-  core::List<core::String*>* l2 = l.{core::Iterable::map}<core::String*>((dynamic element) → core::String* => element.{core::Object::toString}(){() →* core::String*}){((dynamic) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
+  core::List<dynamic> l = core::_GrowableList::_literal2<dynamic>(1, "hello");
+  core::List<core::String> l2 = l.{core::Iterable::map}<core::String>((dynamic element) → core::String => element.{core::Object::toString}(){() → core::String}){((dynamic) → core::String) → core::Iterable<core::String>}.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::String>};
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/general/bug32426.dart b/pkg/front_end/testcases/general/bug32426.dart
index 8a5658a..5947c3a 100644
--- a/pkg/front_end/testcases/general/bug32426.dart
+++ b/pkg/front_end/testcases/general/bug32426.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
+
 abstract class I {
   void call();
 }
diff --git a/pkg/front_end/testcases/general/bug32629.dart b/pkg/front_end/testcases/general/bug32629.dart
index fc54cf1..95bb9e2 100644
--- a/pkg/front_end/testcases/general/bug32629.dart
+++ b/pkg/front_end/testcases/general/bug32629.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 {
   dynamic call(dynamic a, dynamic b) {
     return a;
diff --git a/pkg/front_end/testcases/general/bug32629.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug32629.dart.textual_outline.expect
index a3c767a..79a8b78 100644
--- a/pkg/front_end/testcases/general/bug32629.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bug32629.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   dynamic call(dynamic a, dynamic b) {}
 }
diff --git a/pkg/front_end/testcases/general/bug32629.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bug32629.dart.textual_outline_modelled.expect
index 1a9eaba..499e1c6 100644
--- a/pkg/front_end/testcases/general/bug32629.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bug32629.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   dynamic call(dynamic a, dynamic b) {}
 }
diff --git a/pkg/front_end/testcases/general/bug32629.dart.weak.expect b/pkg/front_end/testcases/general/bug32629.dart.weak.expect
index 48c5ec01a..8049563 100644
--- a/pkg/front_end/testcases/general/bug32629.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug32629.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,29 +9,19 @@
 import self as self;
 import "dart:core" as core;
 
-typedef Reducer<invariant S extends core::Object* = dynamic> = (S*, dynamic) →* S*;
+typedef Reducer<invariant S extends core::Object? = dynamic> = (S%, dynamic) → S%;
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   method call(dynamic a, dynamic b) → dynamic {
     return 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 foo<S extends core::Object* = dynamic>((self::foo::S*, dynamic) →* self::foo::S* v) → void {}
+static method foo<S extends core::Object? = dynamic>((self::foo::S%, dynamic) → self::foo::S% v) → void {}
 static method test() → void {
-  self::foo<core::String*>(invalid-expression "pkg/front_end/testcases/general/bug32629.dart:16:19: Error: The argument type 'dynamic Function(dynamic, dynamic)' can't be assigned to the parameter type 'String Function(String, dynamic)'.
+  self::foo<core::String>(invalid-expression "pkg/front_end/testcases/general/bug32629.dart:16:19: Error: The argument type 'dynamic Function(dynamic, dynamic)' can't be assigned to the parameter type 'String Function(String, dynamic)'.
   foo<String>(new A());
-                  ^" in (let final self::A* #t1 = new self::A::•() in #t1 == null ?{(dynamic, dynamic) →* dynamic} null : #t1.{self::A::call}{(dynamic, dynamic) →* dynamic}) as{TypeError} (core::String*, dynamic) →* core::String*);
+                  ^" in (let final self::A #t1 = new self::A::•() in #t1 == null ?{(dynamic, dynamic) → dynamic} null : #t1.{self::A::call}{(dynamic, dynamic) → dynamic}) as{TypeError,ForNonNullableByDefault} (core::String, dynamic) → core::String);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/bug32629.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug32629.dart.weak.modular.expect
index 48c5ec01a..8049563 100644
--- a/pkg/front_end/testcases/general/bug32629.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bug32629.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,29 +9,19 @@
 import self as self;
 import "dart:core" as core;
 
-typedef Reducer<invariant S extends core::Object* = dynamic> = (S*, dynamic) →* S*;
+typedef Reducer<invariant S extends core::Object? = dynamic> = (S%, dynamic) → S%;
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   method call(dynamic a, dynamic b) → dynamic {
     return 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 foo<S extends core::Object* = dynamic>((self::foo::S*, dynamic) →* self::foo::S* v) → void {}
+static method foo<S extends core::Object? = dynamic>((self::foo::S%, dynamic) → self::foo::S% v) → void {}
 static method test() → void {
-  self::foo<core::String*>(invalid-expression "pkg/front_end/testcases/general/bug32629.dart:16:19: Error: The argument type 'dynamic Function(dynamic, dynamic)' can't be assigned to the parameter type 'String Function(String, dynamic)'.
+  self::foo<core::String>(invalid-expression "pkg/front_end/testcases/general/bug32629.dart:16:19: Error: The argument type 'dynamic Function(dynamic, dynamic)' can't be assigned to the parameter type 'String Function(String, dynamic)'.
   foo<String>(new A());
-                  ^" in (let final self::A* #t1 = new self::A::•() in #t1 == null ?{(dynamic, dynamic) →* dynamic} null : #t1.{self::A::call}{(dynamic, dynamic) →* dynamic}) as{TypeError} (core::String*, dynamic) →* core::String*);
+                  ^" in (let final self::A #t1 = new self::A::•() in #t1 == null ?{(dynamic, dynamic) → dynamic} null : #t1.{self::A::call}{(dynamic, dynamic) → dynamic}) as{TypeError,ForNonNullableByDefault} (core::String, dynamic) → core::String);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/bug32629.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug32629.dart.weak.outline.expect
index c0d8165..8738dda 100644
--- a/pkg/front_end/testcases/general/bug32629.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug32629.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-typedef Reducer<invariant S extends core::Object* = dynamic> = (S*, dynamic) →* S*;
+typedef Reducer<invariant S extends core::Object? = dynamic> = (S%, dynamic) → S%;
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
   method call(dynamic a, dynamic b) → dynamic
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  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<S extends core::Object* = dynamic>((self::foo::S*, dynamic) →* self::foo::S* v) → void
+static method foo<S extends core::Object? = dynamic>((self::foo::S%, dynamic) → self::foo::S% v) → void
   ;
 static method test() → void
   ;
diff --git a/pkg/front_end/testcases/general/bug32629.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug32629.dart.weak.transformed.expect
index 48c5ec01a..8049563 100644
--- a/pkg/front_end/testcases/general/bug32629.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug32629.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,29 +9,19 @@
 import self as self;
 import "dart:core" as core;
 
-typedef Reducer<invariant S extends core::Object* = dynamic> = (S*, dynamic) →* S*;
+typedef Reducer<invariant S extends core::Object? = dynamic> = (S%, dynamic) → S%;
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
   method call(dynamic a, dynamic b) → dynamic {
     return 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 foo<S extends core::Object* = dynamic>((self::foo::S*, dynamic) →* self::foo::S* v) → void {}
+static method foo<S extends core::Object? = dynamic>((self::foo::S%, dynamic) → self::foo::S% v) → void {}
 static method test() → void {
-  self::foo<core::String*>(invalid-expression "pkg/front_end/testcases/general/bug32629.dart:16:19: Error: The argument type 'dynamic Function(dynamic, dynamic)' can't be assigned to the parameter type 'String Function(String, dynamic)'.
+  self::foo<core::String>(invalid-expression "pkg/front_end/testcases/general/bug32629.dart:16:19: Error: The argument type 'dynamic Function(dynamic, dynamic)' can't be assigned to the parameter type 'String Function(String, dynamic)'.
   foo<String>(new A());
-                  ^" in (let final self::A* #t1 = new self::A::•() in #t1 == null ?{(dynamic, dynamic) →* dynamic} null : #t1.{self::A::call}{(dynamic, dynamic) →* dynamic}) as{TypeError} (core::String*, dynamic) →* core::String*);
+                  ^" in (let final self::A #t1 = new self::A::•() in #t1 == null ?{(dynamic, dynamic) → dynamic} null : #t1.{self::A::call}{(dynamic, dynamic) → dynamic}) as{TypeError,ForNonNullableByDefault} (core::String, dynamic) → core::String);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/bug32866.dart b/pkg/front_end/testcases/general/bug32866.dart
index 8c1bb4c..4c97c86 100644
--- a/pkg/front_end/testcases/general/bug32866.dart
+++ b/pkg/front_end/testcases/general/bug32866.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
+
 // Regression test that top-level inference correctly handles dependencies from
 // top-level field -> initializing formal -> field that overrides a getter.
 
diff --git a/pkg/front_end/testcases/general/bug32866.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug32866.dart.textual_outline.expect
index 7d02dab..8207658 100644
--- a/pkg/front_end/testcases/general/bug32866.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bug32866.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class B {
   String get f;
 }
diff --git a/pkg/front_end/testcases/general/bug32866.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bug32866.dart.textual_outline_modelled.expect
index 165ed26..9acbfae 100644
--- a/pkg/front_end/testcases/general/bug32866.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bug32866.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class B {
   String get f;
 }
diff --git a/pkg/front_end/testcases/general/bug32866.dart.weak.expect b/pkg/front_end/testcases/general/bug32866.dart.weak.expect
index 25924d8..f40e346 100644
--- a/pkg/front_end/testcases/general/bug32866.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug32866.dart.weak.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract get f() → core::String*;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  abstract get f() → core::String;
 }
 class A extends core::Object implements self::B {
-  final field core::String* f;
-  constructor •(core::String* f) → self::A*
+  final field core::String f;
+  constructor •(core::String f) → self::A
     : self::A::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 field self::A* a = new self::A::•("foo");
+static field self::A a = new self::A::•("foo");
 static method main() → dynamic
   return core::print(self::a);
diff --git a/pkg/front_end/testcases/general/bug32866.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug32866.dart.weak.modular.expect
index 25924d8..f40e346 100644
--- a/pkg/front_end/testcases/general/bug32866.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bug32866.dart.weak.modular.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract get f() → core::String*;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  abstract get f() → core::String;
 }
 class A extends core::Object implements self::B {
-  final field core::String* f;
-  constructor •(core::String* f) → self::A*
+  final field core::String f;
+  constructor •(core::String f) → self::A
     : self::A::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 field self::A* a = new self::A::•("foo");
+static field self::A a = new self::A::•("foo");
 static method main() → dynamic
   return core::print(self::a);
diff --git a/pkg/front_end/testcases/general/bug32866.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug32866.dart.weak.outline.expect
index 83f4eb2..11eb6d7 100644
--- a/pkg/front_end/testcases/general/bug32866.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug32866.dart.weak.outline.expect
@@ -1,37 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  abstract get f() → core::String*;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  abstract get f() → core::String;
 }
 class A extends core::Object implements self::B {
-  final field core::String* f;
-  constructor •(core::String* f) → self::A*
+  final field core::String f;
+  constructor •(core::String f) → self::A
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field self::A* a;
+static field self::A a;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/bug32866.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug32866.dart.weak.transformed.expect
index 25924d8..f40e346 100644
--- a/pkg/front_end/testcases/general/bug32866.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug32866.dart.weak.transformed.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract get f() → core::String*;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  abstract get f() → core::String;
 }
 class A extends core::Object implements self::B {
-  final field core::String* f;
-  constructor •(core::String* f) → self::A*
+  final field core::String f;
+  constructor •(core::String f) → self::A
     : self::A::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 field self::A* a = new self::A::•("foo");
+static field self::A a = new self::A::•("foo");
 static method main() → dynamic
   return core::print(self::a);
diff --git a/pkg/front_end/testcases/general/bug33099.dart b/pkg/front_end/testcases/general/bug33099.dart
index a93ee35..25fd24e 100644
--- a/pkg/front_end/testcases/general/bug33099.dart
+++ b/pkg/front_end/testcases/general/bug33099.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 'dart:mirrors';
 
 const _FailingTest failingTest = const _FailingTest();
diff --git a/pkg/front_end/testcases/general/bug33099.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug33099.dart.textual_outline.expect
index cb1228a..dfdc73b 100644
--- a/pkg/front_end/testcases/general/bug33099.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bug33099.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:mirrors';
 
 const _FailingTest failingTest = const _FailingTest();
diff --git a/pkg/front_end/testcases/general/bug33099.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bug33099.dart.textual_outline_modelled.expect
index ebfba93..4aa3b4d 100644
--- a/pkg/front_end/testcases/general/bug33099.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bug33099.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:mirrors';
 
 bool _hasAnnotationInstance(DeclarationMirror declaration, instance) =>
diff --git a/pkg/front_end/testcases/general/bug33099.dart.weak.expect b/pkg/front_end/testcases/general/bug33099.dart.weak.expect
index 68aa1c4..8f57112 100644
--- a/pkg/front_end/testcases/general/bug33099.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug33099.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:mirrors" as mir;
@@ -6,79 +6,49 @@
 import "dart:mirrors";
 
 class _FailingTest extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::_FailingTest*
+  const constructor •() → self::_FailingTest
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class MyTest extends core::Object {
-  synthetic constructor •() → self::MyTest*
+  synthetic constructor •() → self::MyTest
     : super core::Object::•()
     ;
   @#C1
   method foo() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 _MyTest2&Object&MyTest = core::Object with self::MyTest /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MyTest2&Object&MyTest*
+  const synthetic constructor •() → self::_MyTest2&Object&MyTest
     : super core::Object::•()
     ;
   mixin-super-stub method foo() → void
     return super.{self::MyTest::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 MyTest2 extends self::_MyTest2&Object&MyTest {
-  synthetic constructor •() → self::MyTest2*
+  synthetic constructor •() → self::MyTest2
     : super self::_MyTest2&Object&MyTest::•()
     ;
 }
-static const field self::_FailingTest* failingTest = #C1;
+static const field self::_FailingTest failingTest = #C1;
 static method main() → dynamic {
-  mir::ClassMirror* classMirror = mir::reflectClass(#C2);
-  classMirror.{mir::ClassMirror::instanceMembers}{core::Map<core::Symbol*, mir::MethodMirror*>*}.{core::Map::forEach}((core::Symbol* symbol, mir::MethodMirror* memberMirror) → Null {
-    if(memberMirror.{mir::DeclarationMirror::simpleName}{core::Symbol*} =={core::Symbol::==}{(core::Object*) →* core::bool*} #C3) {
+  mir::ClassMirror classMirror = mir::reflectClass(#C2);
+  classMirror.{mir::ClassMirror::instanceMembers}{core::Map<core::Symbol, mir::MethodMirror>}.{core::Map::forEach}((core::Symbol symbol, mir::MethodMirror memberMirror) → void {
+    if(memberMirror.{mir::DeclarationMirror::simpleName}{core::Symbol} =={core::Symbol::==}{(core::Object) → core::bool} #C3) {
       core::print(memberMirror);
       core::print(self::_hasFailingTestAnnotation(memberMirror));
     }
-  }){((core::Symbol*, mir::MethodMirror*) →* void) →* void};
+  }){((core::Symbol, mir::MethodMirror) → void) → void};
 }
-static method _hasFailingTestAnnotation(mir::MethodMirror* method) → core::bool* {
-  core::bool* r = self::_hasAnnotationInstance(method, #C1);
+static method _hasFailingTestAnnotation(mir::MethodMirror method) → core::bool {
+  core::bool r = self::_hasAnnotationInstance(method, #C1);
   core::print("[_hasFailingTestAnnotation] ${method} ${r}");
   return r;
 }
-static method _hasAnnotationInstance(mir::DeclarationMirror* declaration, dynamic instance) → core::bool*
-  return declaration.{mir::DeclarationMirror::metadata}{core::List<mir::InstanceMirror*>*}.{core::Iterable::any}((mir::InstanceMirror* annotation) → core::bool* {
+static method _hasAnnotationInstance(mir::DeclarationMirror declaration, dynamic instance) → core::bool
+  return declaration.{mir::DeclarationMirror::metadata}{core::List<mir::InstanceMirror>}.{core::Iterable::any}((mir::InstanceMirror annotation) → core::bool {
     core::print("annotation: ${annotation.{mir::InstanceMirror::reflectee}{dynamic}}");
     return core::identical(annotation.{mir::InstanceMirror::reflectee}{dynamic}, instance);
-  }){((mir::InstanceMirror*) →* core::bool*) →* core::bool*};
+  }){((mir::InstanceMirror) → core::bool) → core::bool};
 
 constants  {
   #C1 = self::_FailingTest {}
diff --git a/pkg/front_end/testcases/general/bug33099.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug33099.dart.weak.modular.expect
index 68aa1c4..8f57112 100644
--- a/pkg/front_end/testcases/general/bug33099.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bug33099.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:mirrors" as mir;
@@ -6,79 +6,49 @@
 import "dart:mirrors";
 
 class _FailingTest extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::_FailingTest*
+  const constructor •() → self::_FailingTest
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class MyTest extends core::Object {
-  synthetic constructor •() → self::MyTest*
+  synthetic constructor •() → self::MyTest
     : super core::Object::•()
     ;
   @#C1
   method foo() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 _MyTest2&Object&MyTest = core::Object with self::MyTest /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MyTest2&Object&MyTest*
+  const synthetic constructor •() → self::_MyTest2&Object&MyTest
     : super core::Object::•()
     ;
   mixin-super-stub method foo() → void
     return super.{self::MyTest::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 MyTest2 extends self::_MyTest2&Object&MyTest {
-  synthetic constructor •() → self::MyTest2*
+  synthetic constructor •() → self::MyTest2
     : super self::_MyTest2&Object&MyTest::•()
     ;
 }
-static const field self::_FailingTest* failingTest = #C1;
+static const field self::_FailingTest failingTest = #C1;
 static method main() → dynamic {
-  mir::ClassMirror* classMirror = mir::reflectClass(#C2);
-  classMirror.{mir::ClassMirror::instanceMembers}{core::Map<core::Symbol*, mir::MethodMirror*>*}.{core::Map::forEach}((core::Symbol* symbol, mir::MethodMirror* memberMirror) → Null {
-    if(memberMirror.{mir::DeclarationMirror::simpleName}{core::Symbol*} =={core::Symbol::==}{(core::Object*) →* core::bool*} #C3) {
+  mir::ClassMirror classMirror = mir::reflectClass(#C2);
+  classMirror.{mir::ClassMirror::instanceMembers}{core::Map<core::Symbol, mir::MethodMirror>}.{core::Map::forEach}((core::Symbol symbol, mir::MethodMirror memberMirror) → void {
+    if(memberMirror.{mir::DeclarationMirror::simpleName}{core::Symbol} =={core::Symbol::==}{(core::Object) → core::bool} #C3) {
       core::print(memberMirror);
       core::print(self::_hasFailingTestAnnotation(memberMirror));
     }
-  }){((core::Symbol*, mir::MethodMirror*) →* void) →* void};
+  }){((core::Symbol, mir::MethodMirror) → void) → void};
 }
-static method _hasFailingTestAnnotation(mir::MethodMirror* method) → core::bool* {
-  core::bool* r = self::_hasAnnotationInstance(method, #C1);
+static method _hasFailingTestAnnotation(mir::MethodMirror method) → core::bool {
+  core::bool r = self::_hasAnnotationInstance(method, #C1);
   core::print("[_hasFailingTestAnnotation] ${method} ${r}");
   return r;
 }
-static method _hasAnnotationInstance(mir::DeclarationMirror* declaration, dynamic instance) → core::bool*
-  return declaration.{mir::DeclarationMirror::metadata}{core::List<mir::InstanceMirror*>*}.{core::Iterable::any}((mir::InstanceMirror* annotation) → core::bool* {
+static method _hasAnnotationInstance(mir::DeclarationMirror declaration, dynamic instance) → core::bool
+  return declaration.{mir::DeclarationMirror::metadata}{core::List<mir::InstanceMirror>}.{core::Iterable::any}((mir::InstanceMirror annotation) → core::bool {
     core::print("annotation: ${annotation.{mir::InstanceMirror::reflectee}{dynamic}}");
     return core::identical(annotation.{mir::InstanceMirror::reflectee}{dynamic}, instance);
-  }){((mir::InstanceMirror*) →* core::bool*) →* core::bool*};
+  }){((mir::InstanceMirror) → core::bool) → core::bool};
 
 constants  {
   #C1 = self::_FailingTest {}
diff --git a/pkg/front_end/testcases/general/bug33099.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug33099.dart.weak.outline.expect
index 1b77963..af6b3f6 100644
--- a/pkg/front_end/testcases/general/bug33099.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug33099.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:mirrors" as mir;
@@ -6,64 +6,34 @@
 import "dart:mirrors";
 
 class _FailingTest extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::_FailingTest*
+  const constructor •() → self::_FailingTest
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class MyTest extends core::Object {
-  synthetic constructor •() → self::MyTest*
+  synthetic constructor •() → self::MyTest
     ;
   @self::failingTest
   method foo() → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 _MyTest2&Object&MyTest = core::Object with self::MyTest /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MyTest2&Object&MyTest*
+  const synthetic constructor •() → self::_MyTest2&Object&MyTest
     : super core::Object::•()
     ;
   mixin-super-stub method foo() → void
     return super.{self::MyTest::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 MyTest2 extends self::_MyTest2&Object&MyTest {
-  synthetic constructor •() → self::MyTest2*
+  synthetic constructor •() → self::MyTest2
     ;
 }
-static const field self::_FailingTest* failingTest = const self::_FailingTest::•();
+static const field self::_FailingTest failingTest = const self::_FailingTest::•();
 static method main() → dynamic
   ;
-static method _hasFailingTestAnnotation(mir::MethodMirror* method) → core::bool*
+static method _hasFailingTestAnnotation(mir::MethodMirror method) → core::bool
   ;
-static method _hasAnnotationInstance(mir::DeclarationMirror* declaration, dynamic instance) → core::bool*
+static method _hasAnnotationInstance(mir::DeclarationMirror declaration, dynamic instance) → core::bool
   ;
 
 
diff --git a/pkg/front_end/testcases/general/bug33099.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug33099.dart.weak.transformed.expect
index 183cc55..854eca8 100644
--- a/pkg/front_end/testcases/general/bug33099.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug33099.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:mirrors" as mir;
@@ -6,79 +6,49 @@
 import "dart:mirrors";
 
 class _FailingTest extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::_FailingTest*
+  const constructor •() → self::_FailingTest
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class MyTest extends core::Object {
-  synthetic constructor •() → self::MyTest*
+  synthetic constructor •() → self::MyTest
     : super core::Object::•()
     ;
   @#C1
   method foo() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 _MyTest2&Object&MyTest extends core::Object implements self::MyTest /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MyTest2&Object&MyTest*
+  const synthetic constructor •() → self::_MyTest2&Object&MyTest
     : super core::Object::•()
     ;
   @#C1
   method foo() → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class MyTest2 extends self::_MyTest2&Object&MyTest {
-  synthetic constructor •() → self::MyTest2*
+  synthetic constructor •() → self::MyTest2
     : super self::_MyTest2&Object&MyTest::•()
     ;
 }
-static const field self::_FailingTest* failingTest = #C1;
+static const field self::_FailingTest failingTest = #C1;
 static method main() → dynamic {
-  mir::ClassMirror* classMirror = mir::reflectClass(#C2);
-  classMirror.{mir::ClassMirror::instanceMembers}{core::Map<core::Symbol*, mir::MethodMirror*>*}.{core::Map::forEach}((core::Symbol* symbol, mir::MethodMirror* memberMirror) → Null {
-    if(memberMirror.{mir::DeclarationMirror::simpleName}{core::Symbol*} =={core::Symbol::==}{(core::Object*) →* core::bool*} #C3) {
+  mir::ClassMirror classMirror = mir::reflectClass(#C2);
+  classMirror.{mir::ClassMirror::instanceMembers}{core::Map<core::Symbol, mir::MethodMirror>}.{core::Map::forEach}((core::Symbol symbol, mir::MethodMirror memberMirror) → void {
+    if(memberMirror.{mir::DeclarationMirror::simpleName}{core::Symbol} =={core::Symbol::==}{(core::Object) → core::bool} #C3) {
       core::print(memberMirror);
       core::print(self::_hasFailingTestAnnotation(memberMirror));
     }
-  }){((core::Symbol*, mir::MethodMirror*) →* void) →* void};
+  }){((core::Symbol, mir::MethodMirror) → void) → void};
 }
-static method _hasFailingTestAnnotation(mir::MethodMirror* method) → core::bool* {
-  core::bool* r = self::_hasAnnotationInstance(method, #C1);
+static method _hasFailingTestAnnotation(mir::MethodMirror method) → core::bool {
+  core::bool r = self::_hasAnnotationInstance(method, #C1);
   core::print("[_hasFailingTestAnnotation] ${method} ${r}");
   return r;
 }
-static method _hasAnnotationInstance(mir::DeclarationMirror* declaration, dynamic instance) → core::bool*
-  return declaration.{mir::DeclarationMirror::metadata}{core::List<mir::InstanceMirror*>*}.{core::Iterable::any}((mir::InstanceMirror* annotation) → core::bool* {
+static method _hasAnnotationInstance(mir::DeclarationMirror declaration, dynamic instance) → core::bool
+  return declaration.{mir::DeclarationMirror::metadata}{core::List<mir::InstanceMirror>}.{core::Iterable::any}((mir::InstanceMirror annotation) → core::bool {
     core::print("annotation: ${annotation.{mir::InstanceMirror::reflectee}{dynamic}}");
     return core::identical(annotation.{mir::InstanceMirror::reflectee}{dynamic}, instance);
-  }){((mir::InstanceMirror*) →* core::bool*) →* core::bool*};
+  }){((mir::InstanceMirror) → core::bool) → core::bool};
 
 constants  {
   #C1 = self::_FailingTest {}
diff --git a/pkg/front_end/testcases/general/bug33196.dart b/pkg/front_end/testcases/general/bug33196.dart
index bdd0891..e2f01f1 100644
--- a/pkg/front_end/testcases/general/bug33196.dart
+++ b/pkg/front_end/testcases/general/bug33196.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 'dart:async';
 
 main() {
diff --git a/pkg/front_end/testcases/general/bug33196.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug33196.dart.textual_outline.expect
index 971ae6d..527244a 100644
--- a/pkg/front_end/testcases/general/bug33196.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bug33196.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:async';
 
 main() {}
diff --git a/pkg/front_end/testcases/general/bug33196.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bug33196.dart.textual_outline_modelled.expect
index 19764fd..66d5579 100644
--- a/pkg/front_end/testcases/general/bug33196.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bug33196.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:async';
 
 FutureOr<String> returnsString() async {}
diff --git a/pkg/front_end/testcases/general/bug33196.dart.weak.expect b/pkg/front_end/testcases/general/bug33196.dart.weak.expect
index 306df2a..d94db31 100644
--- a/pkg/front_end/testcases/general/bug33196.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug33196.dart.weak.expect
@@ -1,13 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "dart:async";
 
 static method main() → dynamic {
-  FutureOr<core::String*>* result = self::returnsString();
-  core::print(result.{core::Object::runtimeType}{core::Type*});
+  FutureOr<core::String>result = self::returnsString();
+  core::print(result.{core::Object::runtimeType}{core::Type});
 }
-static method returnsString() → FutureOr<core::String*>* async {
+static method returnsString() → FutureOr<core::String> async {
   return "oh no";
 }
diff --git a/pkg/front_end/testcases/general/bug33196.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug33196.dart.weak.modular.expect
index 306df2a..d94db31 100644
--- a/pkg/front_end/testcases/general/bug33196.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bug33196.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "dart:async";
 
 static method main() → dynamic {
-  FutureOr<core::String*>* result = self::returnsString();
-  core::print(result.{core::Object::runtimeType}{core::Type*});
+  FutureOr<core::String>result = self::returnsString();
+  core::print(result.{core::Object::runtimeType}{core::Type});
 }
-static method returnsString() → FutureOr<core::String*>* async {
+static method returnsString() → FutureOr<core::String> async {
   return "oh no";
 }
diff --git a/pkg/front_end/testcases/general/bug33196.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug33196.dart.weak.outline.expect
index b187102..c3476e0 100644
--- a/pkg/front_end/testcases/general/bug33196.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug33196.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -6,5 +6,5 @@
 
 static method main() → dynamic
   ;
-static method returnsString() → FutureOr<core::String*>* async 
+static method returnsString() → FutureOr<core::String> async 
   ;
diff --git a/pkg/front_end/testcases/general/bug33196.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug33196.dart.weak.transformed.expect
index a10da8b..b7ed807 100644
--- a/pkg/front_end/testcases/general/bug33196.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug33196.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -6,16 +6,16 @@
 import "dart:async";
 
 static method main() → dynamic {
-  FutureOr<core::String*>* result = self::returnsString();
-  core::print(result.{core::Object::runtimeType}{core::Type*});
+  FutureOr<core::String>result = self::returnsString();
+  core::print(result.{core::Object::runtimeType}{core::Type});
 }
-static method returnsString() → FutureOr<core::String*>* /* originally async */ {
-  final asy::_Future<core::String*>* :async_future = new asy::_Future::•<core::String*>();
+static method returnsString() → FutureOr<core::String> /* originally async */ {
+  final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
   core::bool* :is_sync = false;
   core::String? :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 {
@@ -27,12 +27,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/general/bug33206.dart b/pkg/front_end/testcases/general/bug33206.dart
index d5ca7d7..79892c5 100644
--- a/pkg/front_end/testcases/general/bug33206.dart
+++ b/pkg/front_end/testcases/general/bug33206.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 'dart:async';
 
 class X {
diff --git a/pkg/front_end/testcases/general/bug33206.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug33206.dart.textual_outline.expect
index 26f532e..1d7feb68 100644
--- a/pkg/front_end/testcases/general/bug33206.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bug33206.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:async';
 
 class X {
diff --git a/pkg/front_end/testcases/general/bug33206.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bug33206.dart.textual_outline_modelled.expect
index f3605aa..d229418 100644
--- a/pkg/front_end/testcases/general/bug33206.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bug33206.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:async';
 
 Future<List<Object>> f1() async {}
diff --git a/pkg/front_end/testcases/general/bug33206.dart.weak.expect b/pkg/front_end/testcases/general/bug33206.dart.weak.expect
index b73a7ce..3ea6567 100644
--- a/pkg/front_end/testcases/general/bug33206.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug33206.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -8,51 +8,32 @@
 class X extends core::Object {
   final field dynamic x;
   final field dynamic y;
-  constructor •(dynamic x, dynamic y) → self::X*
+  constructor •(dynamic x, dynamic y) → self::X
     : self::X::x = x, self::X::y = y, super core::Object::•()
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "X(${this.{self::X::x}{dynamic}}, ${this.{self::X::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 noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Y extends core::Object {
-  synthetic constructor •() → self::Y*
+  synthetic constructor •() → self::Y
     : super core::Object::•()
     ;
   method f(dynamic _) → dynamic {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static method f1() → asy::Future<core::List<core::Object*>*>* async {
-  return <core::Object*>[1];
+static method f1() → asy::Future<core::List<core::Object>> async {
+  return <core::Object>[1];
 }
-static method f2() → core::List<core::Object*>*
-  return <core::Object*>[2];
-static method f3() → asy::Future<core::Object*>* async {
+static method f2() → core::List<core::Object>
+  return <core::Object>[2];
+static method f3() → asy::Future<core::Object> async {
   return 3;
 }
-static method foo() → asy::Future<self::X*>* async {
-  return new self::X::•(let final self::Y* #t1 = new self::Y::•() in block {
-    #t1.{self::Y::f}(await self::f1()){(dynamic) →* dynamic};
-    #t1.{self::Y::f}(self::f2()){(dynamic) →* dynamic};
+static method foo() → asy::Future<self::X> async {
+  return new self::X::•(let final self::Y #t1 = new self::Y::•() in block {
+    #t1.{self::Y::f}(await self::f1()){(dynamic) → dynamic};
+    #t1.{self::Y::f}(self::f2()){(dynamic) → dynamic};
   } =>#t1, await self::f3());
 }
-static method main() → asy::Future<void>* async {
+static method main() → asy::Future<void> async {
   core::print(await self::foo());
 }
diff --git a/pkg/front_end/testcases/general/bug33206.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug33206.dart.weak.modular.expect
index b73a7ce..3ea6567 100644
--- a/pkg/front_end/testcases/general/bug33206.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bug33206.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -8,51 +8,32 @@
 class X extends core::Object {
   final field dynamic x;
   final field dynamic y;
-  constructor •(dynamic x, dynamic y) → self::X*
+  constructor •(dynamic x, dynamic y) → self::X
     : self::X::x = x, self::X::y = y, super core::Object::•()
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "X(${this.{self::X::x}{dynamic}}, ${this.{self::X::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 noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Y extends core::Object {
-  synthetic constructor •() → self::Y*
+  synthetic constructor •() → self::Y
     : super core::Object::•()
     ;
   method f(dynamic _) → dynamic {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static method f1() → asy::Future<core::List<core::Object*>*>* async {
-  return <core::Object*>[1];
+static method f1() → asy::Future<core::List<core::Object>> async {
+  return <core::Object>[1];
 }
-static method f2() → core::List<core::Object*>*
-  return <core::Object*>[2];
-static method f3() → asy::Future<core::Object*>* async {
+static method f2() → core::List<core::Object>
+  return <core::Object>[2];
+static method f3() → asy::Future<core::Object> async {
   return 3;
 }
-static method foo() → asy::Future<self::X*>* async {
-  return new self::X::•(let final self::Y* #t1 = new self::Y::•() in block {
-    #t1.{self::Y::f}(await self::f1()){(dynamic) →* dynamic};
-    #t1.{self::Y::f}(self::f2()){(dynamic) →* dynamic};
+static method foo() → asy::Future<self::X> async {
+  return new self::X::•(let final self::Y #t1 = new self::Y::•() in block {
+    #t1.{self::Y::f}(await self::f1()){(dynamic) → dynamic};
+    #t1.{self::Y::f}(self::f2()){(dynamic) → dynamic};
   } =>#t1, await self::f3());
 }
-static method main() → asy::Future<void>* async {
+static method main() → asy::Future<void> async {
   core::print(await self::foo());
 }
diff --git a/pkg/front_end/testcases/general/bug33206.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug33206.dart.weak.outline.expect
index 12a29c0..a405942 100644
--- a/pkg/front_end/testcases/general/bug33206.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug33206.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -8,43 +8,24 @@
 class X extends core::Object {
   final field dynamic x;
   final field dynamic y;
-  constructor •(dynamic x, dynamic y) → self::X*
+  constructor •(dynamic x, dynamic y) → self::X
     ;
-  method toString() → core::String*
+  method toString() → core::String
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Y extends core::Object {
-  synthetic constructor •() → self::Y*
+  synthetic constructor •() → self::Y
     ;
   method f(dynamic _) → dynamic
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static method f1() → asy::Future<core::List<core::Object*>*>* async 
+static method f1() → asy::Future<core::List<core::Object>> async 
   ;
-static method f2() → core::List<core::Object*>*
+static method f2() → core::List<core::Object>
   ;
-static method f3() → asy::Future<core::Object*>* async 
+static method f3() → asy::Future<core::Object> async 
   ;
-static method foo() → asy::Future<self::X*>* async 
+static method foo() → asy::Future<self::X> async 
   ;
-static method main() → asy::Future<void>* async 
+static method main() → asy::Future<void> async 
   ;
diff --git a/pkg/front_end/testcases/general/bug33206.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug33206.dart.weak.transformed.expect
index 1ea3b37..ee3e7d7 100644
--- a/pkg/front_end/testcases/general/bug33206.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug33206.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:async" as asy;
@@ -9,73 +9,54 @@
 class X extends core::Object {
   final field dynamic x;
   final field dynamic y;
-  constructor •(dynamic x, dynamic y) → self::X*
+  constructor •(dynamic x, dynamic y) → self::X
     : self::X::x = x, self::X::y = y, super core::Object::•()
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "X(${this.{self::X::x}{dynamic}}, ${this.{self::X::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 noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Y extends core::Object {
-  synthetic constructor •() → self::Y*
+  synthetic constructor •() → self::Y
     : super core::Object::•()
     ;
   method f(dynamic _) → dynamic {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static method f1() → asy::Future<core::List<core::Object*>*>* /* originally async */ {
-  final asy::_Future<core::List<core::Object*>*>* :async_future = new asy::_Future::•<core::List<core::Object*>*>();
+static method f1() → asy::Future<core::List<core::Object>> /* originally async */ {
+  final asy::_Future<core::List<core::Object>> :async_future = new asy::_Future::•<core::List<core::Object>>();
   core::bool* :is_sync = false;
-  core::List<core::Object*>? :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  core::List<core::Object>? :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 {
       #L1:
       {
-        :return_value = core::_GrowableList::_literal1<core::Object*>(1);
+        :return_value = core::_GrowableList::_literal1<core::Object>(1);
         break #L1;
       }
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method f2() → core::List<core::Object*>*
-  return core::_GrowableList::_literal1<core::Object*>(2);
-static method f3() → asy::Future<core::Object*>* /* originally async */ {
-  final asy::_Future<core::Object*>* :async_future = new asy::_Future::•<core::Object*>();
+static method f2() → core::List<core::Object>
+  return core::_GrowableList::_literal1<core::Object>(2);
+static method f3() → asy::Future<core::Object> /* originally async */ {
+  final asy::_Future<core::Object> :async_future = new asy::_Future::•<core::Object>();
   core::bool* :is_sync = false;
   core::Object? :return_value;
-  (dynamic) →* dynamic :async_op_then;
-  (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
-  core::int* :await_jump_var = 0;
+  (dynamic) → dynamic :async_op_then;
+  (core::Object, core::StackTrace) → dynamic :async_op_error;
+  core::int :await_jump_var = 0;
   dynamic :await_ctx_var;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
@@ -87,58 +68,58 @@
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method foo() → asy::Future<self::X*>* /* originally async */ {
-  final asy::_Future<self::X*>* :async_future = new asy::_Future::•<self::X*>();
+static method foo() → asy::Future<self::X> /* originally async */ {
+  final asy::_Future<self::X> :async_future = new asy::_Future::•<self::X>();
   core::bool* :is_sync = false;
   self::X? :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;
-  self::Y* :async_temporary_0;
+  self::Y :async_temporary_0;
   function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
     try {
       #L3:
       {
-        final self::Y* #t1 = new self::Y::•();
+        final self::Y #t1 = new self::Y::•();
         [yield] let dynamic #t2 = asy::_awaitHelper(self::f1(), :async_op_then, :async_op_error) in null;
-        #t1.{self::Y::f}(_in::unsafeCast<core::List<core::Object*>*>(:result_or_exception)){(dynamic) →* dynamic};
+        #t1.{self::Y::f}(_in::unsafeCast<core::List<core::Object>>(:result_or_exception)){(dynamic) → dynamic};
         :async_temporary_0 = block {
-          #t1.{self::Y::f}(self::f2()){(dynamic) →* dynamic};
+          #t1.{self::Y::f}(self::f2()){(dynamic) → dynamic};
         } =>#t1;
         [yield] let dynamic #t3 = asy::_awaitHelper(self::f3(), :async_op_then, :async_op_error) in null;
-        :return_value = new self::X::•(_in::unsafeCast<self::Y*>(:async_temporary_0), _in::unsafeCast<core::Object*>(:result_or_exception));
+        :return_value = new self::X::•(_in::unsafeCast<self::Y>(:async_temporary_0), _in::unsafeCast<core::Object>(:result_or_exception));
         break #L3;
       }
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
-static method main() → asy::Future<void>* /* originally async */ {
-  final asy::_Future<void>* :async_future = new asy::_Future::•<void>();
+static method main() → asy::Future<void> /* originally async */ {
+  final asy::_Future<void> :async_future = new asy::_Future::•<void>();
   core::bool* :is_sync = false;
   void :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 
@@ -146,17 +127,17 @@
       #L4:
       {
         [yield] let dynamic #t4 = asy::_awaitHelper(self::foo(), :async_op_then, :async_op_error) in null;
-        core::print(_in::unsafeCast<self::X*>(:result_or_exception));
+        core::print(_in::unsafeCast<self::X>(:result_or_exception));
       }
       asy::_completeWithNoFutureOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
     }
-    on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
+    on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
-  :async_op(null, null){() →* dynamic};
+  :async_op(null, null){() → dynamic};
   :is_sync = true;
   return :async_future;
 }
diff --git a/pkg/front_end/testcases/general/bug33298.dart b/pkg/front_end/testcases/general/bug33298.dart
index 971339f..7230db9 100644
--- a/pkg/front_end/testcases/general/bug33298.dart
+++ b/pkg/front_end/testcases/general/bug33298.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
+
 class A {
   String call(String s) => '$s$s';
 }
diff --git a/pkg/front_end/testcases/general/bug33298.dart.weak.expect b/pkg/front_end/testcases/general/bug33298.dart.weak.expect
index d656910..8dcbcd1 100644
--- a/pkg/front_end/testcases/general/bug33298.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug33298.dart.weak.expect
@@ -2,7 +2,7 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/bug33298.dart:28:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
+// pkg/front_end/testcases/general/bug33298.dart:30:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
 //   List<String> list6 = ['a', 'b', 'c'].map(c).toList();
 //                                            ^
 //
@@ -69,7 +69,7 @@
   core::List<core::String*>* list4 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(let final self::B<core::String*>* #t2 = b in #t2 == null ?{(core::String*) →* core::String*} null : #t2.{self::B::call}{(core::String*) →* core::String*}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
   self::C* c = new self::C::•();
   core::List<core::String*>* list5 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(c.{self::C::call}{<T extends core::Object* = dynamic>(T*) →* T*}<core::String*>){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
-  core::List<core::String*>* list6 = <core::String*>["a", "b", "c"].{core::Iterable::map}<dynamic>(invalid-expression "pkg/front_end/testcases/general/bug33298.dart:28:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
+  core::List<core::String*>* list6 = <core::String*>["a", "b", "c"].{core::Iterable::map}<dynamic>(invalid-expression "pkg/front_end/testcases/general/bug33298.dart:30:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
   List<String> list6 = ['a', 'b', 'c'].map(c).toList();
                                            ^" in (let final self::C* #t3 = c in #t3 == null ?{<T extends core::Object* = dynamic>(T*) →* T*} null : #t3.{self::C::call}{<T extends core::Object* = dynamic>(T*) →* T*}) as{TypeError} (core::String*) →* dynamic){((core::String*) →* dynamic) →* core::Iterable<dynamic>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<dynamic>*} as{TypeError} core::List<core::String*>*;
 }
diff --git a/pkg/front_end/testcases/general/bug33298.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug33298.dart.weak.modular.expect
index d656910..8dcbcd1 100644
--- a/pkg/front_end/testcases/general/bug33298.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bug33298.dart.weak.modular.expect
@@ -2,7 +2,7 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/bug33298.dart:28:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
+// pkg/front_end/testcases/general/bug33298.dart:30:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
 //   List<String> list6 = ['a', 'b', 'c'].map(c).toList();
 //                                            ^
 //
@@ -69,7 +69,7 @@
   core::List<core::String*>* list4 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(let final self::B<core::String*>* #t2 = b in #t2 == null ?{(core::String*) →* core::String*} null : #t2.{self::B::call}{(core::String*) →* core::String*}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
   self::C* c = new self::C::•();
   core::List<core::String*>* list5 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(c.{self::C::call}{<T extends core::Object* = dynamic>(T*) →* T*}<core::String*>){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
-  core::List<core::String*>* list6 = <core::String*>["a", "b", "c"].{core::Iterable::map}<dynamic>(invalid-expression "pkg/front_end/testcases/general/bug33298.dart:28:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
+  core::List<core::String*>* list6 = <core::String*>["a", "b", "c"].{core::Iterable::map}<dynamic>(invalid-expression "pkg/front_end/testcases/general/bug33298.dart:30:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
   List<String> list6 = ['a', 'b', 'c'].map(c).toList();
                                            ^" in (let final self::C* #t3 = c in #t3 == null ?{<T extends core::Object* = dynamic>(T*) →* T*} null : #t3.{self::C::call}{<T extends core::Object* = dynamic>(T*) →* T*}) as{TypeError} (core::String*) →* dynamic){((core::String*) →* dynamic) →* core::Iterable<dynamic>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<dynamic>*} as{TypeError} core::List<core::String*>*;
 }
diff --git a/pkg/front_end/testcases/general/bug33298.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug33298.dart.weak.transformed.expect
index 476cd01..ec86ff0 100644
--- a/pkg/front_end/testcases/general/bug33298.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug33298.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/bug33298.dart:28:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
+// pkg/front_end/testcases/general/bug33298.dart:30:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
 //   List<String> list6 = ['a', 'b', 'c'].map(c).toList();
 //                                            ^
 //
@@ -69,7 +69,7 @@
   core::List<core::String*>* list4 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(let final self::B<core::String*>* #t2 = b in #t2 == null ?{(core::String*) →* core::String*} null : #t2.{self::B::call}{(core::String*) →* core::String*}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
   self::C* c = new self::C::•();
   core::List<core::String*>* list5 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(c.{self::C::call}{<T extends core::Object* = dynamic>(T*) →* T*}<core::String*>){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
-  core::List<core::String*>* list6 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<dynamic>(invalid-expression "pkg/front_end/testcases/general/bug33298.dart:28:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
+  core::List<core::String*>* list6 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<dynamic>(invalid-expression "pkg/front_end/testcases/general/bug33298.dart:30:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
   List<String> list6 = ['a', 'b', 'c'].map(c).toList();
                                            ^" in (let final self::C* #t3 = c in #t3 == null ?{<T extends core::Object* = dynamic>(T*) →* T*} null : #t3.{self::C::call}{<T extends core::Object* = dynamic>(T*) →* T*}) as{TypeError} (core::String*) →* dynamic){((core::String*) →* dynamic) →* core::Iterable<dynamic>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<dynamic>*} as{TypeError} core::List<core::String*>*;
 }
diff --git a/pkg/front_end/testcases/general/bug34511.dart b/pkg/front_end/testcases/general/bug34511.dart
index c231ec0..d8ad848 100644
--- a/pkg/front_end/testcases/general/bug34511.dart
+++ b/pkg/front_end/testcases/general/bug34511.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
+
 // See http://dartbug.com/34511 for details.
 
 class A<X> {}
diff --git a/pkg/front_end/testcases/general/bug34511.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug34511.dart.textual_outline.expect
index b65d36d..d85c73d 100644
--- a/pkg/front_end/testcases/general/bug34511.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bug34511.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A<X> {}
 
 class B<Z> extends Object with A<Z Function()> {}
diff --git a/pkg/front_end/testcases/general/bug34511.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bug34511.dart.textual_outline_modelled.expect
index b65d36d..d85c73d 100644
--- a/pkg/front_end/testcases/general/bug34511.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bug34511.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A<X> {}
 
 class B<Z> extends Object with A<Z Function()> {}
diff --git a/pkg/front_end/testcases/general/bug34511.dart.weak.expect b/pkg/front_end/testcases/general/bug34511.dart.weak.expect
index 5cda82c..9df9f29 100644
--- a/pkg/front_end/testcases/general/bug34511.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug34511.dart.weak.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<X extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::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
 }
-abstract class _B&Object&A<Z extends core::Object* = dynamic> = core::Object with self::A<() →* self::_B&Object&A::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_B&Object&A<self::_B&Object&A::Z*>*
+abstract class _B&Object&A<Z extends core::Object? = dynamic> = core::Object with self::A<() → self::_B&Object&A::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_B&Object&A<self::_B&Object&A::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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<Z extends core::Object* = dynamic> extends self::_B&Object&A<self::B::Z*> {
-  synthetic constructor •() → self::B<self::B::Z*>*
+class B<Z extends core::Object? = dynamic> extends self::_B&Object&A<self::B::Z%> {
+  synthetic constructor •() → self::B<self::B::Z%>
     : super self::_B&Object&A::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/bug34511.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug34511.dart.weak.modular.expect
index 5cda82c..9df9f29 100644
--- a/pkg/front_end/testcases/general/bug34511.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bug34511.dart.weak.modular.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<X extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::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
 }
-abstract class _B&Object&A<Z extends core::Object* = dynamic> = core::Object with self::A<() →* self::_B&Object&A::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_B&Object&A<self::_B&Object&A::Z*>*
+abstract class _B&Object&A<Z extends core::Object? = dynamic> = core::Object with self::A<() → self::_B&Object&A::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_B&Object&A<self::_B&Object&A::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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<Z extends core::Object* = dynamic> extends self::_B&Object&A<self::B::Z*> {
-  synthetic constructor •() → self::B<self::B::Z*>*
+class B<Z extends core::Object? = dynamic> extends self::_B&Object&A<self::B::Z%> {
+  synthetic constructor •() → self::B<self::B::Z%>
     : super self::_B&Object&A::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/bug34511.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug34511.dart.weak.outline.expect
index 315401d..82c2289 100644
--- a/pkg/front_end/testcases/general/bug34511.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug34511.dart.weak.outline.expect
@@ -1,38 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<X extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::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
 }
-abstract class _B&Object&A<Z extends core::Object* = dynamic> = core::Object with self::A<() →* self::_B&Object&A::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_B&Object&A<self::_B&Object&A::Z*>*
+abstract class _B&Object&A<Z extends core::Object? = dynamic> = core::Object with self::A<() → self::_B&Object&A::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_B&Object&A<self::_B&Object&A::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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<Z extends core::Object* = dynamic> extends self::_B&Object&A<self::B::Z*> {
-  synthetic constructor •() → self::B<self::B::Z*>*
+class B<Z extends core::Object? = dynamic> extends self::_B&Object&A<self::B::Z%> {
+  synthetic constructor •() → self::B<self::B::Z%>
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/bug34511.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug34511.dart.weak.transformed.expect
index 16931e7..69cfc2a 100644
--- a/pkg/front_end/testcases/general/bug34511.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug34511.dart.weak.transformed.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<X extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::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
 }
-abstract class _B&Object&A<Z extends core::Object* = dynamic> extends core::Object implements self::A<() →* self::_B&Object&A::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_B&Object&A<self::_B&Object&A::Z*>*
+abstract class _B&Object&A<Z extends core::Object? = dynamic> extends core::Object implements self::A<() → self::_B&Object&A::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_B&Object&A<self::_B&Object&A::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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<Z extends core::Object* = dynamic> extends self::_B&Object&A<self::B::Z*> {
-  synthetic constructor •() → self::B<self::B::Z*>*
+class B<Z extends core::Object? = dynamic> extends self::_B&Object&A<self::B::Z%> {
+  synthetic constructor •() → self::B<self::B::Z%>
     : super self::_B&Object&A::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/bug35470.dart b/pkg/front_end/testcases/general/bug35470.dart
index ac370a6..9d8d9d9 100644
--- a/pkg/front_end/testcases/general/bug35470.dart
+++ b/pkg/front_end/testcases/general/bug35470.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<X> {
   foo<Y extends X>() {}
 }
diff --git a/pkg/front_end/testcases/general/bug35470.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug35470.dart.textual_outline.expect
index 199687c..880e7ff 100644
--- a/pkg/front_end/testcases/general/bug35470.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bug35470.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A<X> {
   foo<Y extends X>() {}
 }
diff --git a/pkg/front_end/testcases/general/bug35470.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bug35470.dart.textual_outline_modelled.expect
index 41faf2e..ee614fb 100644
--- a/pkg/front_end/testcases/general/bug35470.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bug35470.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 bar(B b) {}
 
 class A<X> {
diff --git a/pkg/front_end/testcases/general/bug35470.dart.weak.expect b/pkg/front_end/testcases/general/bug35470.dart.weak.expect
index bc15f31..c8d7257 100644
--- a/pkg/front_end/testcases/general/bug35470.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug35470.dart.weak.expect
@@ -1,29 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<X extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::X%>
     : super core::Object::•()
     ;
-  method foo<covariant-by-class Y extends self::A::X*>() → dynamic {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  method foo<covariant-by-class Y extends self::A::X%>() → dynamic {}
 }
 class B extends self::A<dynamic> {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
 }
-static method bar(self::B* b) → dynamic {
-  b.{self::A::foo}<dynamic>(){() →* dynamic};
+static method bar(self::B b) → dynamic {
+  b.{self::A::foo}<dynamic>(){() → dynamic};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/bug35470.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug35470.dart.weak.modular.expect
index bc15f31..c8d7257 100644
--- a/pkg/front_end/testcases/general/bug35470.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bug35470.dart.weak.modular.expect
@@ -1,29 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<X extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::X%>
     : super core::Object::•()
     ;
-  method foo<covariant-by-class Y extends self::A::X*>() → dynamic {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  method foo<covariant-by-class Y extends self::A::X%>() → dynamic {}
 }
 class B extends self::A<dynamic> {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
 }
-static method bar(self::B* b) → dynamic {
-  b.{self::A::foo}<dynamic>(){() →* dynamic};
+static method bar(self::B b) → dynamic {
+  b.{self::A::foo}<dynamic>(){() → dynamic};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/bug35470.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug35470.dart.weak.outline.expect
index 1169300..05347c3 100644
--- a/pkg/front_end/testcases/general/bug35470.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug35470.dart.weak.outline.expect
@@ -1,28 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<X extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::X%>
     ;
-  method foo<covariant-by-class Y extends self::A::X*>() → dynamic
+  method foo<covariant-by-class Y extends self::A::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
 }
 class B extends self::A<dynamic> {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
 }
-static method bar(self::B* b) → dynamic
+static method bar(self::B b) → dynamic
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/bug35470.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug35470.dart.weak.transformed.expect
index bc15f31..c8d7257 100644
--- a/pkg/front_end/testcases/general/bug35470.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug35470.dart.weak.transformed.expect
@@ -1,29 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<X extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::X%>
     : super core::Object::•()
     ;
-  method foo<covariant-by-class Y extends self::A::X*>() → dynamic {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  method foo<covariant-by-class Y extends self::A::X%>() → dynamic {}
 }
 class B extends self::A<dynamic> {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
 }
-static method bar(self::B* b) → dynamic {
-  b.{self::A::foo}<dynamic>(){() →* dynamic};
+static method bar(self::B b) → dynamic {
+  b.{self::A::foo}<dynamic>(){() → dynamic};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/bug37476.dart b/pkg/front_end/testcases/general/bug37476.dart
index 76686a5..0fcd45f 100644
--- a/pkg/front_end/testcases/general/bug37476.dart
+++ b/pkg/front_end/testcases/general/bug37476.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
+
 /*@testedFeatures=checks*/
 
 class A<T extends num> {
@@ -23,13 +23,13 @@
 
 main() {
   try {
-    a.foo /*@ checkReturn=<S extends num* = dynamic>(S*) ->* void */ ();
+    a.foo /*@checkReturn=<S extends num = dynamic>(S) -> void*/ ();
     throw 'Expected TypeError';
   } on TypeError catch (e) {
     print(e);
   }
   try {
-    b.foo /*@ checkReturn=(num*) ->* void */ ();
+    b.foo /*@checkReturn=(num) -> void*/ ();
     throw 'Expected TypeError';
   } on TypeError catch (e) {
     print(e);
diff --git a/pkg/front_end/testcases/general/bug37476.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug37476.dart.textual_outline.expect
index d50f30c..5f90d7d 100644
--- a/pkg/front_end/testcases/general/bug37476.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/bug37476.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A<T extends num> {
   void Function<S extends T>(S x) foo() {}
 }
diff --git a/pkg/front_end/testcases/general/bug37476.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bug37476.dart.textual_outline_modelled.expect
index 5503dfb..8cbb59f 100644
--- a/pkg/front_end/testcases/general/bug37476.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/bug37476.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 A<num> a = new A<int>();
 B<num> b = new B<int>();
 
diff --git a/pkg/front_end/testcases/general/bug37476.dart.weak.expect b/pkg/front_end/testcases/general/bug37476.dart.weak.expect
index 6cc98ca..1cf0adf 100644
--- a/pkg/front_end/testcases/general/bug37476.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug37476.dart.weak.expect
@@ -1,60 +1,40 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<T extends core::num*> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T>
     : super core::Object::•()
     ;
-  method foo() → <S extends self::A::T* = dynamic>(S*) →* void {
-    core::print("foo: T = ${self::A::T*}");
-    return <S extends self::A::T*>(S* a) → Null {};
+  method foo() → <S extends self::A::T = dynamic>(S) → void {
+    core::print("foo: T = ${self::A::T}");
+    return <S extends self::A::T>(S a) → void {};
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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::num*> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::num> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T>
     : super core::Object::•()
     ;
-  method foo() → (self::B::T*) →* void {
-    core::print("foo: T = ${self::B::T*}");
-    return (self::B::T* a) → Null {};
+  method foo() → (self::B::T) → void {
+    core::print("foo: T = ${self::B::T}");
+    return (self::B::T a) → void {};
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 self::A<core::num*>* a = new self::A::•<core::int*>();
-static field self::B<core::num*>* b = new self::B::•<core::int*>();
+static field self::A<core::num> a = new self::A::•<core::int>();
+static field self::B<core::num> b = new self::B::•<core::int>();
 static method main() → dynamic {
   try {
-    self::a.{self::A::foo}(){() →* <S extends core::num* = dynamic>(S*) →* void} as{TypeError,CovarianceCheck} <S extends core::num* = dynamic>(S*) →* void;
+    self::a.{self::A::foo}(){() → <S extends core::num = dynamic>(S) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} <S extends core::num = dynamic>(S) → void;
     throw "Expected TypeError";
   }
-  on core::TypeError* catch(final core::TypeError* e) {
+  on core::TypeError catch(final core::TypeError e) {
     core::print(e);
   }
   try {
-    self::b.{self::B::foo}(){() →* (core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+    self::b.{self::B::foo}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
     throw "Expected TypeError";
   }
-  on core::TypeError* catch(final core::TypeError* e) {
+  on core::TypeError catch(final core::TypeError e) {
     core::print(e);
   }
 }
diff --git a/pkg/front_end/testcases/general/bug37476.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug37476.dart.weak.modular.expect
index 6cc98ca..1cf0adf 100644
--- a/pkg/front_end/testcases/general/bug37476.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/bug37476.dart.weak.modular.expect
@@ -1,60 +1,40 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<T extends core::num*> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T>
     : super core::Object::•()
     ;
-  method foo() → <S extends self::A::T* = dynamic>(S*) →* void {
-    core::print("foo: T = ${self::A::T*}");
-    return <S extends self::A::T*>(S* a) → Null {};
+  method foo() → <S extends self::A::T = dynamic>(S) → void {
+    core::print("foo: T = ${self::A::T}");
+    return <S extends self::A::T>(S a) → void {};
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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::num*> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::num> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T>
     : super core::Object::•()
     ;
-  method foo() → (self::B::T*) →* void {
-    core::print("foo: T = ${self::B::T*}");
-    return (self::B::T* a) → Null {};
+  method foo() → (self::B::T) → void {
+    core::print("foo: T = ${self::B::T}");
+    return (self::B::T a) → void {};
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 self::A<core::num*>* a = new self::A::•<core::int*>();
-static field self::B<core::num*>* b = new self::B::•<core::int*>();
+static field self::A<core::num> a = new self::A::•<core::int>();
+static field self::B<core::num> b = new self::B::•<core::int>();
 static method main() → dynamic {
   try {
-    self::a.{self::A::foo}(){() →* <S extends core::num* = dynamic>(S*) →* void} as{TypeError,CovarianceCheck} <S extends core::num* = dynamic>(S*) →* void;
+    self::a.{self::A::foo}(){() → <S extends core::num = dynamic>(S) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} <S extends core::num = dynamic>(S) → void;
     throw "Expected TypeError";
   }
-  on core::TypeError* catch(final core::TypeError* e) {
+  on core::TypeError catch(final core::TypeError e) {
     core::print(e);
   }
   try {
-    self::b.{self::B::foo}(){() →* (core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+    self::b.{self::B::foo}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
     throw "Expected TypeError";
   }
-  on core::TypeError* catch(final core::TypeError* e) {
+  on core::TypeError catch(final core::TypeError e) {
     core::print(e);
   }
 }
diff --git a/pkg/front_end/testcases/general/bug37476.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug37476.dart.weak.outline.expect
index 112f56d..2537282 100644
--- a/pkg/front_end/testcases/general/bug37476.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug37476.dart.weak.outline.expect
@@ -1,40 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<T extends core::num*> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T>
     ;
-  method foo() → <S extends self::A::T* = dynamic>(S*) →* void
+  method foo() → <S extends self::A::T = dynamic>(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
 }
-class B<T extends core::num*> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::num> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T>
     ;
-  method foo() → (self::B::T*) →* void
+  method foo() → (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
 }
-static field self::A<core::num*>* a;
-static field self::B<core::num*>* b;
+static field self::A<core::num> a;
+static field self::B<core::num> b;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/bug37476.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug37476.dart.weak.transformed.expect
index 6cc98ca..1cf0adf 100644
--- a/pkg/front_end/testcases/general/bug37476.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug37476.dart.weak.transformed.expect
@@ -1,60 +1,40 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<T extends core::num*> extends core::Object {
-  synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T>
     : super core::Object::•()
     ;
-  method foo() → <S extends self::A::T* = dynamic>(S*) →* void {
-    core::print("foo: T = ${self::A::T*}");
-    return <S extends self::A::T*>(S* a) → Null {};
+  method foo() → <S extends self::A::T = dynamic>(S) → void {
+    core::print("foo: T = ${self::A::T}");
+    return <S extends self::A::T>(S a) → void {};
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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::num*> extends core::Object {
-  synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::num> extends core::Object {
+  synthetic constructor •() → self::B<self::B::T>
     : super core::Object::•()
     ;
-  method foo() → (self::B::T*) →* void {
-    core::print("foo: T = ${self::B::T*}");
-    return (self::B::T* a) → Null {};
+  method foo() → (self::B::T) → void {
+    core::print("foo: T = ${self::B::T}");
+    return (self::B::T a) → void {};
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 self::A<core::num*>* a = new self::A::•<core::int*>();
-static field self::B<core::num*>* b = new self::B::•<core::int*>();
+static field self::A<core::num> a = new self::A::•<core::int>();
+static field self::B<core::num> b = new self::B::•<core::int>();
 static method main() → dynamic {
   try {
-    self::a.{self::A::foo}(){() →* <S extends core::num* = dynamic>(S*) →* void} as{TypeError,CovarianceCheck} <S extends core::num* = dynamic>(S*) →* void;
+    self::a.{self::A::foo}(){() → <S extends core::num = dynamic>(S) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} <S extends core::num = dynamic>(S) → void;
     throw "Expected TypeError";
   }
-  on core::TypeError* catch(final core::TypeError* e) {
+  on core::TypeError catch(final core::TypeError e) {
     core::print(e);
   }
   try {
-    self::b.{self::B::foo}(){() →* (core::num*) →* void} as{TypeError,CovarianceCheck} (core::num*) →* void;
+    self::b.{self::B::foo}(){() → (core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void;
     throw "Expected TypeError";
   }
-  on core::TypeError* catch(final core::TypeError* e) {
+  on core::TypeError catch(final core::TypeError e) {
     core::print(e);
   }
 }
diff --git a/pkg/front_end/testcases/general/build_issue_2688.dart b/pkg/front_end/testcases/general/build_issue_2688.dart
index 45272cb..016f457 100644
--- a/pkg/front_end/testcases/general/build_issue_2688.dart
+++ b/pkg/front_end/testcases/general/build_issue_2688.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
+
 // Regression test for https://github.com/dart-lang/build/issues/2688
 
 mixin M0 {
diff --git a/pkg/front_end/testcases/general/build_issue_2688.dart.textual_outline.expect b/pkg/front_end/testcases/general/build_issue_2688.dart.textual_outline.expect
index e5d14fd..ed52349 100644
--- a/pkg/front_end/testcases/general/build_issue_2688.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/build_issue_2688.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 mixin M0 {
   int get property;
 }
diff --git a/pkg/front_end/testcases/general/build_issue_2688.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/build_issue_2688.dart.textual_outline_modelled.expect
index b6bd96c..d2ec562 100644
--- a/pkg/front_end/testcases/general/build_issue_2688.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/build_issue_2688.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class Super {
   int get property;
 }
diff --git a/pkg/front_end/testcases/general/build_issue_2688.dart.weak.expect b/pkg/front_end/testcases/general/build_issue_2688.dart.weak.expect
index 226f3df..2ae4ce3 100644
--- a/pkg/front_end/testcases/general/build_issue_2688.dart.weak.expect
+++ b/pkg/front_end/testcases/general/build_issue_2688.dart.weak.expect
@@ -1,560 +1,270 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class M0 extends core::Object /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M1 extends core::Object implements self::M0 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M2 extends core::Object implements self::M1 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M3 extends core::Object implements self::M2 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M4 extends core::Object implements self::M3 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M5 extends core::Object implements self::M4 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M6 extends core::Object implements self::M5 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M7 extends core::Object implements self::M6 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M8 extends core::Object implements self::M7 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M9 extends core::Object implements self::M8 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M10 extends core::Object implements self::M9 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M11 extends core::Object implements self::M10 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M12 extends core::Object implements self::M11 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M13 extends core::Object implements self::M12 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M14 extends core::Object implements self::M13 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M15 extends core::Object implements self::M14 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M16 extends core::Object implements self::M15 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M17 extends core::Object implements self::M16 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M18 extends core::Object implements self::M17 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M19 extends core::Object implements self::M18 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M20 extends core::Object implements self::M19 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M21 extends core::Object implements self::M20 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M22 extends core::Object implements self::M21 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M23 extends core::Object implements self::M22 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M24 extends core::Object implements self::M23 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M25 extends core::Object implements self::M24 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M26 extends core::Object implements self::M25 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M27 extends core::Object implements self::M26 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class Super extends core::Object {
-  synthetic constructor •() → self::Super*
+  synthetic constructor •() → self::Super
     : super core::Object::•()
     ;
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class _Class&Super&M0 = self::Super with self::M0 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0*
+  synthetic constructor •() → self::_Class&Super&M0
     : super self::Super::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M0::property
+  abstract mixin-stub get property() → core::int; -> self::M0::property
 }
 abstract class _Class&Super&M0&M1 = self::_Class&Super&M0 with self::M1 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1*
+  synthetic constructor •() → self::_Class&Super&M0&M1
     : super self::_Class&Super&M0::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M1::property
+  abstract mixin-stub get property() → core::int; -> self::M1::property
 }
 abstract class _Class&Super&M0&M1&M2 = self::_Class&Super&M0&M1 with self::M2 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2
     : super self::_Class&Super&M0&M1::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M2::property
+  abstract mixin-stub get property() → core::int; -> self::M2::property
 }
 abstract class _Class&Super&M0&M1&M2&M3 = self::_Class&Super&M0&M1&M2 with self::M3 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3
     : super self::_Class&Super&M0&M1&M2::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M3::property
+  abstract mixin-stub get property() → core::int; -> self::M3::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4 = self::_Class&Super&M0&M1&M2&M3 with self::M4 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4
     : super self::_Class&Super&M0&M1&M2&M3::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M4::property
+  abstract mixin-stub get property() → core::int; -> self::M4::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5 = self::_Class&Super&M0&M1&M2&M3&M4 with self::M5 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5
     : super self::_Class&Super&M0&M1&M2&M3&M4::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M5::property
+  abstract mixin-stub get property() → core::int; -> self::M5::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6 = self::_Class&Super&M0&M1&M2&M3&M4&M5 with self::M6 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M6::property
+  abstract mixin-stub get property() → core::int; -> self::M6::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6 with self::M7 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M7::property
+  abstract mixin-stub get property() → core::int; -> self::M7::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7 with self::M8 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M8::property
+  abstract mixin-stub get property() → core::int; -> self::M8::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8 with self::M9 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M9::property
+  abstract mixin-stub get property() → core::int; -> self::M9::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9 with self::M10 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M10::property
+  abstract mixin-stub get property() → core::int; -> self::M10::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10 with self::M11 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M11::property
+  abstract mixin-stub get property() → core::int; -> self::M11::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11 with self::M12 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M12::property
+  abstract mixin-stub get property() → core::int; -> self::M12::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12 with self::M13 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M13::property
+  abstract mixin-stub get property() → core::int; -> self::M13::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13 with self::M14 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M14::property
+  abstract mixin-stub get property() → core::int; -> self::M14::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14 with self::M15 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M15::property
+  abstract mixin-stub get property() → core::int; -> self::M15::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15 with self::M16 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M16::property
+  abstract mixin-stub get property() → core::int; -> self::M16::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16 with self::M17 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M17::property
+  abstract mixin-stub get property() → core::int; -> self::M17::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17 with self::M18 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M18::property
+  abstract mixin-stub get property() → core::int; -> self::M18::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18 with self::M19 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M19::property
+  abstract mixin-stub get property() → core::int; -> self::M19::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19 with self::M20 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M20::property
+  abstract mixin-stub get property() → core::int; -> self::M20::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20 with self::M21 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M21::property
+  abstract mixin-stub get property() → core::int; -> self::M21::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21 with self::M22 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M22::property
+  abstract mixin-stub get property() → core::int; -> self::M22::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22 with self::M23 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M23::property
+  abstract mixin-stub get property() → core::int; -> self::M23::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23 with self::M24 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M24::property
+  abstract mixin-stub get property() → core::int; -> self::M24::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24 with self::M25 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M25::property
+  abstract mixin-stub get property() → core::int; -> self::M25::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25 with self::M26 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M26::property
+  abstract mixin-stub get property() → core::int; -> self::M26::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26 with self::M27 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M27::property
+  abstract mixin-stub get property() → core::int; -> self::M27::property
 }
 class Class extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27 {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27::•()
     ;
-  get property() → core::int*
+  get property() → core::int
     return 0;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/build_issue_2688.dart.weak.modular.expect b/pkg/front_end/testcases/general/build_issue_2688.dart.weak.modular.expect
index 226f3df..2ae4ce3 100644
--- a/pkg/front_end/testcases/general/build_issue_2688.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/build_issue_2688.dart.weak.modular.expect
@@ -1,560 +1,270 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class M0 extends core::Object /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M1 extends core::Object implements self::M0 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M2 extends core::Object implements self::M1 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M3 extends core::Object implements self::M2 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M4 extends core::Object implements self::M3 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M5 extends core::Object implements self::M4 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M6 extends core::Object implements self::M5 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M7 extends core::Object implements self::M6 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M8 extends core::Object implements self::M7 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M9 extends core::Object implements self::M8 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M10 extends core::Object implements self::M9 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M11 extends core::Object implements self::M10 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M12 extends core::Object implements self::M11 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M13 extends core::Object implements self::M12 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M14 extends core::Object implements self::M13 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M15 extends core::Object implements self::M14 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M16 extends core::Object implements self::M15 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M17 extends core::Object implements self::M16 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M18 extends core::Object implements self::M17 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M19 extends core::Object implements self::M18 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M20 extends core::Object implements self::M19 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M21 extends core::Object implements self::M20 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M22 extends core::Object implements self::M21 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M23 extends core::Object implements self::M22 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M24 extends core::Object implements self::M23 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M25 extends core::Object implements self::M24 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M26 extends core::Object implements self::M25 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M27 extends core::Object implements self::M26 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class Super extends core::Object {
-  synthetic constructor •() → self::Super*
+  synthetic constructor •() → self::Super
     : super core::Object::•()
     ;
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class _Class&Super&M0 = self::Super with self::M0 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0*
+  synthetic constructor •() → self::_Class&Super&M0
     : super self::Super::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M0::property
+  abstract mixin-stub get property() → core::int; -> self::M0::property
 }
 abstract class _Class&Super&M0&M1 = self::_Class&Super&M0 with self::M1 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1*
+  synthetic constructor •() → self::_Class&Super&M0&M1
     : super self::_Class&Super&M0::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M1::property
+  abstract mixin-stub get property() → core::int; -> self::M1::property
 }
 abstract class _Class&Super&M0&M1&M2 = self::_Class&Super&M0&M1 with self::M2 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2
     : super self::_Class&Super&M0&M1::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M2::property
+  abstract mixin-stub get property() → core::int; -> self::M2::property
 }
 abstract class _Class&Super&M0&M1&M2&M3 = self::_Class&Super&M0&M1&M2 with self::M3 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3
     : super self::_Class&Super&M0&M1&M2::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M3::property
+  abstract mixin-stub get property() → core::int; -> self::M3::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4 = self::_Class&Super&M0&M1&M2&M3 with self::M4 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4
     : super self::_Class&Super&M0&M1&M2&M3::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M4::property
+  abstract mixin-stub get property() → core::int; -> self::M4::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5 = self::_Class&Super&M0&M1&M2&M3&M4 with self::M5 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5
     : super self::_Class&Super&M0&M1&M2&M3&M4::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M5::property
+  abstract mixin-stub get property() → core::int; -> self::M5::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6 = self::_Class&Super&M0&M1&M2&M3&M4&M5 with self::M6 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M6::property
+  abstract mixin-stub get property() → core::int; -> self::M6::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6 with self::M7 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M7::property
+  abstract mixin-stub get property() → core::int; -> self::M7::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7 with self::M8 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M8::property
+  abstract mixin-stub get property() → core::int; -> self::M8::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8 with self::M9 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M9::property
+  abstract mixin-stub get property() → core::int; -> self::M9::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9 with self::M10 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M10::property
+  abstract mixin-stub get property() → core::int; -> self::M10::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10 with self::M11 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M11::property
+  abstract mixin-stub get property() → core::int; -> self::M11::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11 with self::M12 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M12::property
+  abstract mixin-stub get property() → core::int; -> self::M12::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12 with self::M13 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M13::property
+  abstract mixin-stub get property() → core::int; -> self::M13::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13 with self::M14 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M14::property
+  abstract mixin-stub get property() → core::int; -> self::M14::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14 with self::M15 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M15::property
+  abstract mixin-stub get property() → core::int; -> self::M15::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15 with self::M16 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M16::property
+  abstract mixin-stub get property() → core::int; -> self::M16::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16 with self::M17 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M17::property
+  abstract mixin-stub get property() → core::int; -> self::M17::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17 with self::M18 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M18::property
+  abstract mixin-stub get property() → core::int; -> self::M18::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18 with self::M19 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M19::property
+  abstract mixin-stub get property() → core::int; -> self::M19::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19 with self::M20 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M20::property
+  abstract mixin-stub get property() → core::int; -> self::M20::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20 with self::M21 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M21::property
+  abstract mixin-stub get property() → core::int; -> self::M21::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21 with self::M22 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M22::property
+  abstract mixin-stub get property() → core::int; -> self::M22::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22 with self::M23 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M23::property
+  abstract mixin-stub get property() → core::int; -> self::M23::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23 with self::M24 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M24::property
+  abstract mixin-stub get property() → core::int; -> self::M24::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24 with self::M25 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M25::property
+  abstract mixin-stub get property() → core::int; -> self::M25::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25 with self::M26 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M26::property
+  abstract mixin-stub get property() → core::int; -> self::M26::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26 with self::M27 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M27::property
+  abstract mixin-stub get property() → core::int; -> self::M27::property
 }
 class Class extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27 {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27::•()
     ;
-  get property() → core::int*
+  get property() → core::int
     return 0;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/build_issue_2688.dart.weak.outline.expect b/pkg/front_end/testcases/general/build_issue_2688.dart.weak.outline.expect
index 63c6cb2..f0666bf 100644
--- a/pkg/front_end/testcases/general/build_issue_2688.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/build_issue_2688.dart.weak.outline.expect
@@ -1,558 +1,268 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class M0 extends core::Object /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M1 extends core::Object implements self::M0 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M2 extends core::Object implements self::M1 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M3 extends core::Object implements self::M2 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M4 extends core::Object implements self::M3 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M5 extends core::Object implements self::M4 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M6 extends core::Object implements self::M5 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M7 extends core::Object implements self::M6 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M8 extends core::Object implements self::M7 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M9 extends core::Object implements self::M8 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M10 extends core::Object implements self::M9 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M11 extends core::Object implements self::M10 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M12 extends core::Object implements self::M11 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M13 extends core::Object implements self::M12 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M14 extends core::Object implements self::M13 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M15 extends core::Object implements self::M14 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M16 extends core::Object implements self::M15 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M17 extends core::Object implements self::M16 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M18 extends core::Object implements self::M17 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M19 extends core::Object implements self::M18 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M20 extends core::Object implements self::M19 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M21 extends core::Object implements self::M20 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M22 extends core::Object implements self::M21 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M23 extends core::Object implements self::M22 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M24 extends core::Object implements self::M23 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M25 extends core::Object implements self::M24 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M26 extends core::Object implements self::M25 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M27 extends core::Object implements self::M26 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class Super extends core::Object {
-  synthetic constructor •() → self::Super*
+  synthetic constructor •() → self::Super
     ;
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class _Class&Super&M0 = self::Super with self::M0 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0*
+  synthetic constructor •() → self::_Class&Super&M0
     : super self::Super::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M0::property
+  abstract mixin-stub get property() → core::int; -> self::M0::property
 }
 abstract class _Class&Super&M0&M1 = self::_Class&Super&M0 with self::M1 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1*
+  synthetic constructor •() → self::_Class&Super&M0&M1
     : super self::_Class&Super&M0::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M1::property
+  abstract mixin-stub get property() → core::int; -> self::M1::property
 }
 abstract class _Class&Super&M0&M1&M2 = self::_Class&Super&M0&M1 with self::M2 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2
     : super self::_Class&Super&M0&M1::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M2::property
+  abstract mixin-stub get property() → core::int; -> self::M2::property
 }
 abstract class _Class&Super&M0&M1&M2&M3 = self::_Class&Super&M0&M1&M2 with self::M3 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3
     : super self::_Class&Super&M0&M1&M2::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M3::property
+  abstract mixin-stub get property() → core::int; -> self::M3::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4 = self::_Class&Super&M0&M1&M2&M3 with self::M4 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4
     : super self::_Class&Super&M0&M1&M2&M3::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M4::property
+  abstract mixin-stub get property() → core::int; -> self::M4::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5 = self::_Class&Super&M0&M1&M2&M3&M4 with self::M5 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5
     : super self::_Class&Super&M0&M1&M2&M3&M4::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M5::property
+  abstract mixin-stub get property() → core::int; -> self::M5::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6 = self::_Class&Super&M0&M1&M2&M3&M4&M5 with self::M6 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M6::property
+  abstract mixin-stub get property() → core::int; -> self::M6::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6 with self::M7 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M7::property
+  abstract mixin-stub get property() → core::int; -> self::M7::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7 with self::M8 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M8::property
+  abstract mixin-stub get property() → core::int; -> self::M8::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8 with self::M9 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M9::property
+  abstract mixin-stub get property() → core::int; -> self::M9::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9 with self::M10 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M10::property
+  abstract mixin-stub get property() → core::int; -> self::M10::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10 with self::M11 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M11::property
+  abstract mixin-stub get property() → core::int; -> self::M11::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11 with self::M12 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M12::property
+  abstract mixin-stub get property() → core::int; -> self::M12::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12 with self::M13 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M13::property
+  abstract mixin-stub get property() → core::int; -> self::M13::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13 with self::M14 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M14::property
+  abstract mixin-stub get property() → core::int; -> self::M14::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14 with self::M15 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M15::property
+  abstract mixin-stub get property() → core::int; -> self::M15::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15 with self::M16 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M16::property
+  abstract mixin-stub get property() → core::int; -> self::M16::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16 with self::M17 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M17::property
+  abstract mixin-stub get property() → core::int; -> self::M17::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17 with self::M18 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M18::property
+  abstract mixin-stub get property() → core::int; -> self::M18::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18 with self::M19 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M19::property
+  abstract mixin-stub get property() → core::int; -> self::M19::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19 with self::M20 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M20::property
+  abstract mixin-stub get property() → core::int; -> self::M20::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20 with self::M21 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M21::property
+  abstract mixin-stub get property() → core::int; -> self::M21::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21 with self::M22 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M22::property
+  abstract mixin-stub get property() → core::int; -> self::M22::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22 with self::M23 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M23::property
+  abstract mixin-stub get property() → core::int; -> self::M23::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23 with self::M24 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M24::property
+  abstract mixin-stub get property() → core::int; -> self::M24::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24 with self::M25 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M25::property
+  abstract mixin-stub get property() → core::int; -> self::M25::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25 with self::M26 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M26::property
+  abstract mixin-stub get property() → core::int; -> self::M26::property
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27 = self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26 with self::M27 /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26::•()
     ;
-  abstract mixin-stub get property() → core::int*; -> self::M27::property
+  abstract mixin-stub get property() → core::int; -> self::M27::property
 }
 class Class extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27 {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     ;
-  get property() → core::int*
+  get property() → core::int
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/build_issue_2688.dart.weak.transformed.expect b/pkg/front_end/testcases/general/build_issue_2688.dart.weak.transformed.expect
index 6093f3e..a9961fa 100644
--- a/pkg/front_end/testcases/general/build_issue_2688.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/build_issue_2688.dart.weak.transformed.expect
@@ -1,560 +1,270 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 abstract class M0 extends core::Object /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M1 extends core::Object implements self::M0 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M2 extends core::Object implements self::M1 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M3 extends core::Object implements self::M2 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M4 extends core::Object implements self::M3 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M5 extends core::Object implements self::M4 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M6 extends core::Object implements self::M5 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M7 extends core::Object implements self::M6 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M8 extends core::Object implements self::M7 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M9 extends core::Object implements self::M8 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M10 extends core::Object implements self::M9 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M11 extends core::Object implements self::M10 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M12 extends core::Object implements self::M11 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M13 extends core::Object implements self::M12 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M14 extends core::Object implements self::M13 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M15 extends core::Object implements self::M14 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M16 extends core::Object implements self::M15 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M17 extends core::Object implements self::M16 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M18 extends core::Object implements self::M17 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M19 extends core::Object implements self::M18 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M20 extends core::Object implements self::M19 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M21 extends core::Object implements self::M20 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M22 extends core::Object implements self::M21 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M23 extends core::Object implements self::M22 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M24 extends core::Object implements self::M23 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M25 extends core::Object implements self::M24 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M26 extends core::Object implements self::M25 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class M27 extends core::Object implements self::M26 /*isMixinDeclaration*/  {
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class Super extends core::Object {
-  synthetic constructor •() → self::Super*
+  synthetic constructor •() → self::Super
     : super core::Object::•()
     ;
-  abstract get property() → 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 get property() → core::int;
 }
 abstract class _Class&Super&M0 extends self::Super implements self::M0 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0*
+  synthetic constructor •() → self::_Class&Super&M0
     : super self::Super::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1 extends self::_Class&Super&M0 implements self::M1 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1*
+  synthetic constructor •() → self::_Class&Super&M0&M1
     : super self::_Class&Super&M0::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2 extends self::_Class&Super&M0&M1 implements self::M2 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2
     : super self::_Class&Super&M0&M1::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3 extends self::_Class&Super&M0&M1&M2 implements self::M3 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3
     : super self::_Class&Super&M0&M1&M2::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4 extends self::_Class&Super&M0&M1&M2&M3 implements self::M4 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4
     : super self::_Class&Super&M0&M1&M2&M3::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5 extends self::_Class&Super&M0&M1&M2&M3&M4 implements self::M5 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5
     : super self::_Class&Super&M0&M1&M2&M3&M4::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6 extends self::_Class&Super&M0&M1&M2&M3&M4&M5 implements self::M6 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6 implements self::M7 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7 implements self::M8 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8 implements self::M9 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9 implements self::M10 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10 implements self::M11 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11 implements self::M12 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12 implements self::M13 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13 implements self::M14 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14 implements self::M15 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15 implements self::M16 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16 implements self::M17 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17 implements self::M18 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18 implements self::M19 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19 implements self::M20 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20 implements self::M21 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21 implements self::M22 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22 implements self::M23 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23 implements self::M24 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24 implements self::M25 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25 implements self::M26 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 abstract class _Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27 extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26 implements self::M27 /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27*
+  synthetic constructor •() → self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26::•()
     ;
-  abstract get property() → core::int*;
+  abstract get property() → core::int;
 }
 class Class extends self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27 {
-  synthetic constructor •() → self::Class*
+  synthetic constructor •() → self::Class
     : super self::_Class&Super&M0&M1&M2&M3&M4&M5&M6&M7&M8&M9&M10&M11&M12&M13&M14&M15&M16&M17&M18&M19&M20&M21&M22&M23&M24&M25&M26&M27::•()
     ;
-  get property() → core::int*
+  get property() → core::int
     return 0;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/call.dart b/pkg/front_end/testcases/general/call.dart
index 57128a3..4152cd8 100644
--- a/pkg/front_end/testcases/general/call.dart
+++ b/pkg/front_end/testcases/general/call.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 Callable {
   call(x) {
     return "string";
diff --git a/pkg/front_end/testcases/general/call.dart.textual_outline.expect b/pkg/front_end/testcases/general/call.dart.textual_outline.expect
index 04861fa..f9a3aa0 100644
--- a/pkg/front_end/testcases/general/call.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/call.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Callable {
   call(x) {}
 }
diff --git a/pkg/front_end/testcases/general/call.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/call.dart.textual_outline_modelled.expect
index ae92de7..2eca437 100644
--- a/pkg/front_end/testcases/general/call.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/call.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Callable {
   call(x) {}
 }
diff --git a/pkg/front_end/testcases/general/call.dart.weak.expect b/pkg/front_end/testcases/general/call.dart.weak.expect
index f9559169..c860d67 100644
--- a/pkg/front_end/testcases/general/call.dart.weak.expect
+++ b/pkg/front_end/testcases/general/call.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -94,57 +94,37 @@
 import "dart:core" as core;
 
 class Callable extends core::Object {
-  synthetic constructor •() → self::Callable*
+  synthetic constructor •() → self::Callable
     : super core::Object::•()
     ;
   method call(dynamic x) → dynamic {
     return "string";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class CallableGetter extends core::Object {
-  synthetic constructor •() → self::CallableGetter*
+  synthetic constructor •() → self::CallableGetter
     : super core::Object::•()
     ;
   get call() → dynamic
     return new self::Callable::•();
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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) →* dynamic closure = (dynamic x) → dynamic => x;
-static field dynamic int1 = self::closure(1){(dynamic) →* dynamic};
-static field dynamic int2 = self::closure(1){(dynamic) →* dynamic};
-static field dynamic int3 = self::closure.call(1){(dynamic) →* dynamic};
-static field dynamic int4 = self::closure.call.call(1){(dynamic) →* dynamic};
-static field self::Callable* callable = new self::Callable::•();
-static field dynamic string1 = self::callable.{self::Callable::call}(1){(dynamic) →* dynamic};
-static field dynamic string2 = self::callable.{self::Callable::call}(1){(dynamic) →* dynamic};
-static field dynamic string3 = self::callable.{self::Callable::call}{(dynamic) →* dynamic}(1){(dynamic) →* dynamic};
-static field dynamic string4 = self::callable.{self::Callable::call}{(dynamic) →* dynamic}.call(1){(dynamic) →* dynamic};
-static field self::CallableGetter* callableGetter = new self::CallableGetter::•();
+static field (dynamic) → dynamic closure = (dynamic x) → dynamic => x;
+static field dynamic int1 = self::closure(1){(dynamic) → dynamic};
+static field dynamic int2 = self::closure(1){(dynamic) → dynamic};
+static field dynamic int3 = self::closure.call(1){(dynamic) → dynamic};
+static field dynamic int4 = self::closure.call.call(1){(dynamic) → dynamic};
+static field self::Callable callable = new self::Callable::•();
+static field dynamic string1 = self::callable.{self::Callable::call}(1){(dynamic) → dynamic};
+static field dynamic string2 = self::callable.{self::Callable::call}(1){(dynamic) → dynamic};
+static field dynamic string3 = self::callable.{self::Callable::call}{(dynamic) → dynamic}(1){(dynamic) → dynamic};
+static field dynamic string4 = self::callable.{self::Callable::call}{(dynamic) → dynamic}.call(1){(dynamic) → dynamic};
+static field self::CallableGetter callableGetter = new self::CallableGetter::•();
 static field invalid-type string5 = invalid-expression "pkg/front_end/testcases/general/call.dart:63:29: Error: Cannot invoke an instance of 'CallableGetter' because it declares 'call' to be something other than a method.
  - 'CallableGetter' is from 'pkg/front_end/testcases/general/call.dart'.
 Try changing 'call' to a method or explicitly invoke 'call'.
 var string5 = callableGetter(1);
                             ^";
-static field dynamic string6 = let final self::CallableGetter* #t1 = self::callableGetter in let final core::int* #t2 = 1 in #t1.{self::CallableGetter::call}{dynamic}{dynamic}.call(#t2);
+static field dynamic string6 = let final self::CallableGetter #t1 = self::callableGetter in let final core::int #t2 = 1 in #t1.{self::CallableGetter::call}{dynamic}{dynamic}.call(#t2);
 static field dynamic string7 = self::callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call(1);
 static field dynamic string8 = self::callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call{dynamic}.call(1);
 static field dynamic nothing1 = invalid-expression "pkg/front_end/testcases/general/call.dart:68:23: Error: Too few positional arguments: 1 required, 0 given.
@@ -161,16 +141,16 @@
                                      ^" in self::closure.call.call{<inapplicable>}.();
 static field dynamic nothing5 = invalid-expression "pkg/front_end/testcases/general/call.dart:73:24: Error: Too few positional arguments: 1 required, 0 given.
 var nothing5 = callable();
-                       ^" in self::callable.{self::Callable::call}{<inapplicable>}.(){() →* invalid-type};
+                       ^" in self::callable.{self::Callable::call}{<inapplicable>}.(){() → invalid-type};
 static field dynamic nothing6 = invalid-expression "pkg/front_end/testcases/general/call.dart:74:29: Error: Too few positional arguments: 1 required, 0 given.
 var nothing6 = callable.call();
-                            ^" in self::callable.{self::Callable::call}{<inapplicable>}.(){() →* invalid-type};
+                            ^" in self::callable.{self::Callable::call}{<inapplicable>}.(){() → invalid-type};
 static field dynamic nothing7 = invalid-expression "pkg/front_end/testcases/general/call.dart:75:34: Error: Too few positional arguments: 1 required, 0 given.
 var nothing7 = callable.call.call();
-                                 ^" in self::callable.{self::Callable::call}{(dynamic) →* dynamic}{<inapplicable>}.();
+                                 ^" in self::callable.{self::Callable::call}{(dynamic) → dynamic}{<inapplicable>}.();
 static field dynamic nothing8 = invalid-expression "pkg/front_end/testcases/general/call.dart:76:39: Error: Too few positional arguments: 1 required, 0 given.
 var nothing8 = callable.call.call.call();
-                                      ^" in self::callable.{self::Callable::call}{(dynamic) →* dynamic}.call{<inapplicable>}.();
+                                      ^" in self::callable.{self::Callable::call}{(dynamic) → dynamic}.call{<inapplicable>}.();
 static field invalid-type nothing9 = invalid-expression "pkg/front_end/testcases/general/call.dart:78:30: Error: Cannot invoke an instance of 'CallableGetter' because it declares 'call' to be something other than a method.
  - 'CallableGetter' is from 'pkg/front_end/testcases/general/call.dart'.
 Try changing 'call' to a method or explicitly invoke 'call'.
@@ -180,23 +160,23 @@
 static field dynamic nothing11 = self::callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call();
 static field dynamic nothing12 = self::callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call{dynamic}.call();
 static method main() → dynamic {
-  (dynamic) →* dynamic closure = (dynamic x) → dynamic => x;
-  dynamic int1 = closure(1){(dynamic) →* dynamic};
-  dynamic int2 = closure(1){(dynamic) →* dynamic};
-  dynamic int3 = closure.call(1){(dynamic) →* dynamic};
-  dynamic int4 = closure.call.call(1){(dynamic) →* dynamic};
-  self::Callable* callable = new self::Callable::•();
-  dynamic string1 = callable.{self::Callable::call}(1){(dynamic) →* dynamic};
-  dynamic string2 = callable.{self::Callable::call}(1){(dynamic) →* dynamic};
-  dynamic string3 = callable.{self::Callable::call}{(dynamic) →* dynamic}(1){(dynamic) →* dynamic};
-  dynamic string4 = callable.{self::Callable::call}{(dynamic) →* dynamic}.call(1){(dynamic) →* dynamic};
-  self::CallableGetter* callableGetter = new self::CallableGetter::•();
+  (dynamic) → dynamic closure = (dynamic x) → dynamic => x;
+  dynamic int1 = closure(1){(dynamic) → dynamic};
+  dynamic int2 = closure(1){(dynamic) → dynamic};
+  dynamic int3 = closure.call(1){(dynamic) → dynamic};
+  dynamic int4 = closure.call.call(1){(dynamic) → dynamic};
+  self::Callable callable = new self::Callable::•();
+  dynamic string1 = callable.{self::Callable::call}(1){(dynamic) → dynamic};
+  dynamic string2 = callable.{self::Callable::call}(1){(dynamic) → dynamic};
+  dynamic string3 = callable.{self::Callable::call}{(dynamic) → dynamic}(1){(dynamic) → dynamic};
+  dynamic string4 = callable.{self::Callable::call}{(dynamic) → dynamic}.call(1){(dynamic) → dynamic};
+  self::CallableGetter callableGetter = new self::CallableGetter::•();
   invalid-type string5 = invalid-expression "pkg/front_end/testcases/general/call.dart:29:31: Error: Cannot invoke an instance of 'CallableGetter' because it declares 'call' to be something other than a method.
  - 'CallableGetter' is from 'pkg/front_end/testcases/general/call.dart'.
 Try changing 'call' to a method or explicitly invoke 'call'.
   var string5 = callableGetter(1);
                               ^";
-  dynamic string6 = let final self::CallableGetter* #t3 = callableGetter in let final core::int* #t4 = 1 in #t3.{self::CallableGetter::call}{dynamic}{dynamic}.call(#t4);
+  dynamic string6 = let final self::CallableGetter #t3 = callableGetter in let final core::int #t4 = 1 in #t3.{self::CallableGetter::call}{dynamic}{dynamic}.call(#t4);
   dynamic string7 = callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call(1);
   dynamic string8 = callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call{dynamic}.call(1);
   invalid-type nothing1 = invalid-expression "pkg/front_end/testcases/general/call.dart:34:25: Error: Too few positional arguments: 1 required, 0 given.
@@ -213,16 +193,16 @@
                                        ^" in closure.call.call{<inapplicable>}.();
   invalid-type nothing5 = invalid-expression "pkg/front_end/testcases/general/call.dart:39:26: Error: Too few positional arguments: 1 required, 0 given.
   var nothing5 = callable();
-                         ^" in callable.{self::Callable::call}{<inapplicable>}.(){() →* invalid-type};
+                         ^" in callable.{self::Callable::call}{<inapplicable>}.(){() → invalid-type};
   invalid-type nothing6 = invalid-expression "pkg/front_end/testcases/general/call.dart:40:31: Error: Too few positional arguments: 1 required, 0 given.
   var nothing6 = callable.call();
-                              ^" in callable.{self::Callable::call}{<inapplicable>}.(){() →* invalid-type};
+                              ^" in callable.{self::Callable::call}{<inapplicable>}.(){() → invalid-type};
   invalid-type nothing7 = invalid-expression "pkg/front_end/testcases/general/call.dart:41:36: Error: Too few positional arguments: 1 required, 0 given.
   var nothing7 = callable.call.call();
-                                   ^" in callable.{self::Callable::call}{(dynamic) →* dynamic}{<inapplicable>}.();
+                                   ^" in callable.{self::Callable::call}{(dynamic) → dynamic}{<inapplicable>}.();
   invalid-type nothing8 = invalid-expression "pkg/front_end/testcases/general/call.dart:42:41: Error: Too few positional arguments: 1 required, 0 given.
   var nothing8 = callable.call.call.call();
-                                        ^" in callable.{self::Callable::call}{(dynamic) →* dynamic}.call{<inapplicable>}.();
+                                        ^" in callable.{self::Callable::call}{(dynamic) → dynamic}.call{<inapplicable>}.();
   invalid-type nothing9 = invalid-expression "pkg/front_end/testcases/general/call.dart:44:32: Error: Cannot invoke an instance of 'CallableGetter' because it declares 'call' to be something other than a method.
  - 'CallableGetter' is from 'pkg/front_end/testcases/general/call.dart'.
 Try changing 'call' to a method or explicitly invoke 'call'.
diff --git a/pkg/front_end/testcases/general/call.dart.weak.modular.expect b/pkg/front_end/testcases/general/call.dart.weak.modular.expect
index f9559169..c860d67 100644
--- a/pkg/front_end/testcases/general/call.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/call.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -94,57 +94,37 @@
 import "dart:core" as core;
 
 class Callable extends core::Object {
-  synthetic constructor •() → self::Callable*
+  synthetic constructor •() → self::Callable
     : super core::Object::•()
     ;
   method call(dynamic x) → dynamic {
     return "string";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class CallableGetter extends core::Object {
-  synthetic constructor •() → self::CallableGetter*
+  synthetic constructor •() → self::CallableGetter
     : super core::Object::•()
     ;
   get call() → dynamic
     return new self::Callable::•();
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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) →* dynamic closure = (dynamic x) → dynamic => x;
-static field dynamic int1 = self::closure(1){(dynamic) →* dynamic};
-static field dynamic int2 = self::closure(1){(dynamic) →* dynamic};
-static field dynamic int3 = self::closure.call(1){(dynamic) →* dynamic};
-static field dynamic int4 = self::closure.call.call(1){(dynamic) →* dynamic};
-static field self::Callable* callable = new self::Callable::•();
-static field dynamic string1 = self::callable.{self::Callable::call}(1){(dynamic) →* dynamic};
-static field dynamic string2 = self::callable.{self::Callable::call}(1){(dynamic) →* dynamic};
-static field dynamic string3 = self::callable.{self::Callable::call}{(dynamic) →* dynamic}(1){(dynamic) →* dynamic};
-static field dynamic string4 = self::callable.{self::Callable::call}{(dynamic) →* dynamic}.call(1){(dynamic) →* dynamic};
-static field self::CallableGetter* callableGetter = new self::CallableGetter::•();
+static field (dynamic) → dynamic closure = (dynamic x) → dynamic => x;
+static field dynamic int1 = self::closure(1){(dynamic) → dynamic};
+static field dynamic int2 = self::closure(1){(dynamic) → dynamic};
+static field dynamic int3 = self::closure.call(1){(dynamic) → dynamic};
+static field dynamic int4 = self::closure.call.call(1){(dynamic) → dynamic};
+static field self::Callable callable = new self::Callable::•();
+static field dynamic string1 = self::callable.{self::Callable::call}(1){(dynamic) → dynamic};
+static field dynamic string2 = self::callable.{self::Callable::call}(1){(dynamic) → dynamic};
+static field dynamic string3 = self::callable.{self::Callable::call}{(dynamic) → dynamic}(1){(dynamic) → dynamic};
+static field dynamic string4 = self::callable.{self::Callable::call}{(dynamic) → dynamic}.call(1){(dynamic) → dynamic};
+static field self::CallableGetter callableGetter = new self::CallableGetter::•();
 static field invalid-type string5 = invalid-expression "pkg/front_end/testcases/general/call.dart:63:29: Error: Cannot invoke an instance of 'CallableGetter' because it declares 'call' to be something other than a method.
  - 'CallableGetter' is from 'pkg/front_end/testcases/general/call.dart'.
 Try changing 'call' to a method or explicitly invoke 'call'.
 var string5 = callableGetter(1);
                             ^";
-static field dynamic string6 = let final self::CallableGetter* #t1 = self::callableGetter in let final core::int* #t2 = 1 in #t1.{self::CallableGetter::call}{dynamic}{dynamic}.call(#t2);
+static field dynamic string6 = let final self::CallableGetter #t1 = self::callableGetter in let final core::int #t2 = 1 in #t1.{self::CallableGetter::call}{dynamic}{dynamic}.call(#t2);
 static field dynamic string7 = self::callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call(1);
 static field dynamic string8 = self::callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call{dynamic}.call(1);
 static field dynamic nothing1 = invalid-expression "pkg/front_end/testcases/general/call.dart:68:23: Error: Too few positional arguments: 1 required, 0 given.
@@ -161,16 +141,16 @@
                                      ^" in self::closure.call.call{<inapplicable>}.();
 static field dynamic nothing5 = invalid-expression "pkg/front_end/testcases/general/call.dart:73:24: Error: Too few positional arguments: 1 required, 0 given.
 var nothing5 = callable();
-                       ^" in self::callable.{self::Callable::call}{<inapplicable>}.(){() →* invalid-type};
+                       ^" in self::callable.{self::Callable::call}{<inapplicable>}.(){() → invalid-type};
 static field dynamic nothing6 = invalid-expression "pkg/front_end/testcases/general/call.dart:74:29: Error: Too few positional arguments: 1 required, 0 given.
 var nothing6 = callable.call();
-                            ^" in self::callable.{self::Callable::call}{<inapplicable>}.(){() →* invalid-type};
+                            ^" in self::callable.{self::Callable::call}{<inapplicable>}.(){() → invalid-type};
 static field dynamic nothing7 = invalid-expression "pkg/front_end/testcases/general/call.dart:75:34: Error: Too few positional arguments: 1 required, 0 given.
 var nothing7 = callable.call.call();
-                                 ^" in self::callable.{self::Callable::call}{(dynamic) →* dynamic}{<inapplicable>}.();
+                                 ^" in self::callable.{self::Callable::call}{(dynamic) → dynamic}{<inapplicable>}.();
 static field dynamic nothing8 = invalid-expression "pkg/front_end/testcases/general/call.dart:76:39: Error: Too few positional arguments: 1 required, 0 given.
 var nothing8 = callable.call.call.call();
-                                      ^" in self::callable.{self::Callable::call}{(dynamic) →* dynamic}.call{<inapplicable>}.();
+                                      ^" in self::callable.{self::Callable::call}{(dynamic) → dynamic}.call{<inapplicable>}.();
 static field invalid-type nothing9 = invalid-expression "pkg/front_end/testcases/general/call.dart:78:30: Error: Cannot invoke an instance of 'CallableGetter' because it declares 'call' to be something other than a method.
  - 'CallableGetter' is from 'pkg/front_end/testcases/general/call.dart'.
 Try changing 'call' to a method or explicitly invoke 'call'.
@@ -180,23 +160,23 @@
 static field dynamic nothing11 = self::callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call();
 static field dynamic nothing12 = self::callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call{dynamic}.call();
 static method main() → dynamic {
-  (dynamic) →* dynamic closure = (dynamic x) → dynamic => x;
-  dynamic int1 = closure(1){(dynamic) →* dynamic};
-  dynamic int2 = closure(1){(dynamic) →* dynamic};
-  dynamic int3 = closure.call(1){(dynamic) →* dynamic};
-  dynamic int4 = closure.call.call(1){(dynamic) →* dynamic};
-  self::Callable* callable = new self::Callable::•();
-  dynamic string1 = callable.{self::Callable::call}(1){(dynamic) →* dynamic};
-  dynamic string2 = callable.{self::Callable::call}(1){(dynamic) →* dynamic};
-  dynamic string3 = callable.{self::Callable::call}{(dynamic) →* dynamic}(1){(dynamic) →* dynamic};
-  dynamic string4 = callable.{self::Callable::call}{(dynamic) →* dynamic}.call(1){(dynamic) →* dynamic};
-  self::CallableGetter* callableGetter = new self::CallableGetter::•();
+  (dynamic) → dynamic closure = (dynamic x) → dynamic => x;
+  dynamic int1 = closure(1){(dynamic) → dynamic};
+  dynamic int2 = closure(1){(dynamic) → dynamic};
+  dynamic int3 = closure.call(1){(dynamic) → dynamic};
+  dynamic int4 = closure.call.call(1){(dynamic) → dynamic};
+  self::Callable callable = new self::Callable::•();
+  dynamic string1 = callable.{self::Callable::call}(1){(dynamic) → dynamic};
+  dynamic string2 = callable.{self::Callable::call}(1){(dynamic) → dynamic};
+  dynamic string3 = callable.{self::Callable::call}{(dynamic) → dynamic}(1){(dynamic) → dynamic};
+  dynamic string4 = callable.{self::Callable::call}{(dynamic) → dynamic}.call(1){(dynamic) → dynamic};
+  self::CallableGetter callableGetter = new self::CallableGetter::•();
   invalid-type string5 = invalid-expression "pkg/front_end/testcases/general/call.dart:29:31: Error: Cannot invoke an instance of 'CallableGetter' because it declares 'call' to be something other than a method.
  - 'CallableGetter' is from 'pkg/front_end/testcases/general/call.dart'.
 Try changing 'call' to a method or explicitly invoke 'call'.
   var string5 = callableGetter(1);
                               ^";
-  dynamic string6 = let final self::CallableGetter* #t3 = callableGetter in let final core::int* #t4 = 1 in #t3.{self::CallableGetter::call}{dynamic}{dynamic}.call(#t4);
+  dynamic string6 = let final self::CallableGetter #t3 = callableGetter in let final core::int #t4 = 1 in #t3.{self::CallableGetter::call}{dynamic}{dynamic}.call(#t4);
   dynamic string7 = callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call(1);
   dynamic string8 = callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call{dynamic}.call(1);
   invalid-type nothing1 = invalid-expression "pkg/front_end/testcases/general/call.dart:34:25: Error: Too few positional arguments: 1 required, 0 given.
@@ -213,16 +193,16 @@
                                        ^" in closure.call.call{<inapplicable>}.();
   invalid-type nothing5 = invalid-expression "pkg/front_end/testcases/general/call.dart:39:26: Error: Too few positional arguments: 1 required, 0 given.
   var nothing5 = callable();
-                         ^" in callable.{self::Callable::call}{<inapplicable>}.(){() →* invalid-type};
+                         ^" in callable.{self::Callable::call}{<inapplicable>}.(){() → invalid-type};
   invalid-type nothing6 = invalid-expression "pkg/front_end/testcases/general/call.dart:40:31: Error: Too few positional arguments: 1 required, 0 given.
   var nothing6 = callable.call();
-                              ^" in callable.{self::Callable::call}{<inapplicable>}.(){() →* invalid-type};
+                              ^" in callable.{self::Callable::call}{<inapplicable>}.(){() → invalid-type};
   invalid-type nothing7 = invalid-expression "pkg/front_end/testcases/general/call.dart:41:36: Error: Too few positional arguments: 1 required, 0 given.
   var nothing7 = callable.call.call();
-                                   ^" in callable.{self::Callable::call}{(dynamic) →* dynamic}{<inapplicable>}.();
+                                   ^" in callable.{self::Callable::call}{(dynamic) → dynamic}{<inapplicable>}.();
   invalid-type nothing8 = invalid-expression "pkg/front_end/testcases/general/call.dart:42:41: Error: Too few positional arguments: 1 required, 0 given.
   var nothing8 = callable.call.call.call();
-                                        ^" in callable.{self::Callable::call}{(dynamic) →* dynamic}.call{<inapplicable>}.();
+                                        ^" in callable.{self::Callable::call}{(dynamic) → dynamic}.call{<inapplicable>}.();
   invalid-type nothing9 = invalid-expression "pkg/front_end/testcases/general/call.dart:44:32: Error: Cannot invoke an instance of 'CallableGetter' because it declares 'call' to be something other than a method.
  - 'CallableGetter' is from 'pkg/front_end/testcases/general/call.dart'.
 Try changing 'call' to a method or explicitly invoke 'call'.
diff --git a/pkg/front_end/testcases/general/call.dart.weak.outline.expect b/pkg/front_end/testcases/general/call.dart.weak.outline.expect
index 9d8c931..e8dafdc 100644
--- a/pkg/front_end/testcases/general/call.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/call.dart.weak.outline.expect
@@ -1,50 +1,30 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Callable extends core::Object {
-  synthetic constructor •() → self::Callable*
+  synthetic constructor •() → self::Callable
     ;
   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
 }
 class CallableGetter extends core::Object {
-  synthetic constructor •() → self::CallableGetter*
+  synthetic constructor •() → self::CallableGetter
     ;
   get call() → 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 field (dynamic) →* dynamic closure;
+static field (dynamic) → dynamic closure;
 static field dynamic int1;
 static field dynamic int2;
 static field dynamic int3;
 static field dynamic int4;
-static field self::Callable* callable;
+static field self::Callable callable;
 static field dynamic string1;
 static field dynamic string2;
 static field dynamic string3;
 static field dynamic string4;
-static field self::CallableGetter* callableGetter;
+static field self::CallableGetter callableGetter;
 static field invalid-type string5;
 static field dynamic string6;
 static field dynamic string7;
diff --git a/pkg/front_end/testcases/general/call.dart.weak.transformed.expect b/pkg/front_end/testcases/general/call.dart.weak.transformed.expect
index ccac183..9ffb62f 100644
--- a/pkg/front_end/testcases/general/call.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/call.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -94,57 +94,37 @@
 import "dart:core" as core;
 
 class Callable extends core::Object {
-  synthetic constructor •() → self::Callable*
+  synthetic constructor •() → self::Callable
     : super core::Object::•()
     ;
   method call(dynamic x) → dynamic {
     return "string";
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class CallableGetter extends core::Object {
-  synthetic constructor •() → self::CallableGetter*
+  synthetic constructor •() → self::CallableGetter
     : super core::Object::•()
     ;
   get call() → dynamic
     return new self::Callable::•();
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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) →* dynamic closure = (dynamic x) → dynamic => x;
-static field dynamic int1 = self::closure(1){(dynamic) →* dynamic};
-static field dynamic int2 = self::closure(1){(dynamic) →* dynamic};
-static field dynamic int3 = self::closure.call(1){(dynamic) →* dynamic};
-static field dynamic int4 = self::closure.call.call(1){(dynamic) →* dynamic};
-static field self::Callable* callable = new self::Callable::•();
-static field dynamic string1 = self::callable.{self::Callable::call}(1){(dynamic) →* dynamic};
-static field dynamic string2 = self::callable.{self::Callable::call}(1){(dynamic) →* dynamic};
-static field dynamic string3 = self::callable.{self::Callable::call}{(dynamic) →* dynamic}(1){(dynamic) →* dynamic};
-static field dynamic string4 = self::callable.{self::Callable::call}{(dynamic) →* dynamic}.call(1){(dynamic) →* dynamic};
-static field self::CallableGetter* callableGetter = new self::CallableGetter::•();
+static field (dynamic) → dynamic closure = (dynamic x) → dynamic => x;
+static field dynamic int1 = self::closure(1){(dynamic) → dynamic};
+static field dynamic int2 = self::closure(1){(dynamic) → dynamic};
+static field dynamic int3 = self::closure.call(1){(dynamic) → dynamic};
+static field dynamic int4 = self::closure.call.call(1){(dynamic) → dynamic};
+static field self::Callable callable = new self::Callable::•();
+static field dynamic string1 = self::callable.{self::Callable::call}(1){(dynamic) → dynamic};
+static field dynamic string2 = self::callable.{self::Callable::call}(1){(dynamic) → dynamic};
+static field dynamic string3 = self::callable.{self::Callable::call}{(dynamic) → dynamic}(1){(dynamic) → dynamic};
+static field dynamic string4 = self::callable.{self::Callable::call}{(dynamic) → dynamic}.call(1){(dynamic) → dynamic};
+static field self::CallableGetter callableGetter = new self::CallableGetter::•();
 static field invalid-type string5 = invalid-expression "pkg/front_end/testcases/general/call.dart:63:29: Error: Cannot invoke an instance of 'CallableGetter' because it declares 'call' to be something other than a method.
  - 'CallableGetter' is from 'pkg/front_end/testcases/general/call.dart'.
 Try changing 'call' to a method or explicitly invoke 'call'.
 var string5 = callableGetter(1);
                             ^";
-static field dynamic string6 = let final self::CallableGetter* #t1 = self::callableGetter in let final core::int* #t2 = 1 in #t1.{self::CallableGetter::call}{dynamic}{dynamic}.call(#t2);
+static field dynamic string6 = let final self::CallableGetter #t1 = self::callableGetter in let final core::int #t2 = 1 in #t1.{self::CallableGetter::call}{dynamic}{dynamic}.call(#t2);
 static field dynamic string7 = self::callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call(1);
 static field dynamic string8 = self::callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call{dynamic}.call(1);
 static field dynamic nothing1 = invalid-expression "pkg/front_end/testcases/general/call.dart:68:23: Error: Too few positional arguments: 1 required, 0 given.
@@ -161,16 +141,16 @@
                                      ^" in self::closure.call.call{<inapplicable>}.();
 static field dynamic nothing5 = invalid-expression "pkg/front_end/testcases/general/call.dart:73:24: Error: Too few positional arguments: 1 required, 0 given.
 var nothing5 = callable();
-                       ^" in self::callable.{self::Callable::call}{<inapplicable>}.(){() →* invalid-type};
+                       ^" in self::callable.{self::Callable::call}{<inapplicable>}.(){() → invalid-type};
 static field dynamic nothing6 = invalid-expression "pkg/front_end/testcases/general/call.dart:74:29: Error: Too few positional arguments: 1 required, 0 given.
 var nothing6 = callable.call();
-                            ^" in self::callable.{self::Callable::call}{<inapplicable>}.(){() →* invalid-type};
+                            ^" in self::callable.{self::Callable::call}{<inapplicable>}.(){() → invalid-type};
 static field dynamic nothing7 = invalid-expression "pkg/front_end/testcases/general/call.dart:75:34: Error: Too few positional arguments: 1 required, 0 given.
 var nothing7 = callable.call.call();
-                                 ^" in self::callable.{self::Callable::call}{(dynamic) →* dynamic}{<inapplicable>}.();
+                                 ^" in self::callable.{self::Callable::call}{(dynamic) → dynamic}{<inapplicable>}.();
 static field dynamic nothing8 = invalid-expression "pkg/front_end/testcases/general/call.dart:76:39: Error: Too few positional arguments: 1 required, 0 given.
 var nothing8 = callable.call.call.call();
-                                      ^" in self::callable.{self::Callable::call}{(dynamic) →* dynamic}.call{<inapplicable>}.();
+                                      ^" in self::callable.{self::Callable::call}{(dynamic) → dynamic}.call{<inapplicable>}.();
 static field invalid-type nothing9 = invalid-expression "pkg/front_end/testcases/general/call.dart:78:30: Error: Cannot invoke an instance of 'CallableGetter' because it declares 'call' to be something other than a method.
  - 'CallableGetter' is from 'pkg/front_end/testcases/general/call.dart'.
 Try changing 'call' to a method or explicitly invoke 'call'.
@@ -180,23 +160,23 @@
 static field dynamic nothing11 = self::callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call();
 static field dynamic nothing12 = self::callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call{dynamic}.call();
 static method main() → dynamic {
-  (dynamic) →* dynamic closure = (dynamic x) → dynamic => x;
-  dynamic int1 = closure(1){(dynamic) →* dynamic};
-  dynamic int2 = closure(1){(dynamic) →* dynamic};
-  dynamic int3 = closure.call(1){(dynamic) →* dynamic};
-  dynamic int4 = closure.call.call(1){(dynamic) →* dynamic};
-  self::Callable* callable = new self::Callable::•();
-  dynamic string1 = callable.{self::Callable::call}(1){(dynamic) →* dynamic};
-  dynamic string2 = callable.{self::Callable::call}(1){(dynamic) →* dynamic};
-  dynamic string3 = callable.{self::Callable::call}{(dynamic) →* dynamic}(1){(dynamic) →* dynamic};
-  dynamic string4 = callable.{self::Callable::call}{(dynamic) →* dynamic}.call(1){(dynamic) →* dynamic};
-  self::CallableGetter* callableGetter = new self::CallableGetter::•();
+  (dynamic) → dynamic closure = (dynamic x) → dynamic => x;
+  dynamic int1 = closure(1){(dynamic) → dynamic};
+  dynamic int2 = closure(1){(dynamic) → dynamic};
+  dynamic int3 = closure.call(1){(dynamic) → dynamic};
+  dynamic int4 = closure.call.call(1){(dynamic) → dynamic};
+  self::Callable callable = new self::Callable::•();
+  dynamic string1 = callable.{self::Callable::call}(1){(dynamic) → dynamic};
+  dynamic string2 = callable.{self::Callable::call}(1){(dynamic) → dynamic};
+  dynamic string3 = callable.{self::Callable::call}{(dynamic) → dynamic}(1){(dynamic) → dynamic};
+  dynamic string4 = callable.{self::Callable::call}{(dynamic) → dynamic}.call(1){(dynamic) → dynamic};
+  self::CallableGetter callableGetter = new self::CallableGetter::•();
   invalid-type string5 = invalid-expression "pkg/front_end/testcases/general/call.dart:29:31: Error: Cannot invoke an instance of 'CallableGetter' because it declares 'call' to be something other than a method.
  - 'CallableGetter' is from 'pkg/front_end/testcases/general/call.dart'.
 Try changing 'call' to a method or explicitly invoke 'call'.
   var string5 = callableGetter(1);
                               ^";
-  dynamic string6 = let final self::CallableGetter* #t3 = callableGetter in let final core::int* #t4 = 1 in #t3.{self::CallableGetter::call}{dynamic}{dynamic}.call(#t4);
+  dynamic string6 = let final self::CallableGetter #t3 = callableGetter in let final core::int #t4 = 1 in #t3.{self::CallableGetter::call}{dynamic}{dynamic}.call(#t4);
   dynamic string7 = callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call(1);
   dynamic string8 = callableGetter.{self::CallableGetter::call}{dynamic}{dynamic}.call{dynamic}.call(1);
   invalid-type nothing1 = invalid-expression "pkg/front_end/testcases/general/call.dart:34:25: Error: Too few positional arguments: 1 required, 0 given.
@@ -213,16 +193,16 @@
                                        ^" in closure.call.call{<inapplicable>}.();
   invalid-type nothing5 = invalid-expression "pkg/front_end/testcases/general/call.dart:39:26: Error: Too few positional arguments: 1 required, 0 given.
   var nothing5 = callable();
-                         ^" in callable.{self::Callable::call}{<inapplicable>}.(){() →* invalid-type};
+                         ^" in callable.{self::Callable::call}{<inapplicable>}.(){() → invalid-type};
   invalid-type nothing6 = invalid-expression "pkg/front_end/testcases/general/call.dart:40:31: Error: Too few positional arguments: 1 required, 0 given.
   var nothing6 = callable.call();
-                              ^" in callable.{self::Callable::call}{<inapplicable>}.(){() →* invalid-type};
+                              ^" in callable.{self::Callable::call}{<inapplicable>}.(){() → invalid-type};
   invalid-type nothing7 = invalid-expression "pkg/front_end/testcases/general/call.dart:41:36: Error: Too few positional arguments: 1 required, 0 given.
   var nothing7 = callable.call.call();
-                                   ^" in callable.{self::Callable::call}{(dynamic) →* dynamic}{<inapplicable>}.();
+                                   ^" in callable.{self::Callable::call}{(dynamic) → dynamic}{<inapplicable>}.();
   invalid-type nothing8 = invalid-expression "pkg/front_end/testcases/general/call.dart:42:41: Error: Too few positional arguments: 1 required, 0 given.
   var nothing8 = callable.call.call.call();
-                                        ^" in callable.{self::Callable::call}{(dynamic) →* dynamic}.call{<inapplicable>}.();
+                                        ^" in callable.{self::Callable::call}{(dynamic) → dynamic}.call{<inapplicable>}.();
   invalid-type nothing9 = invalid-expression "pkg/front_end/testcases/general/call.dart:44:32: Error: Cannot invoke an instance of 'CallableGetter' because it declares 'call' to be something other than a method.
  - 'CallableGetter' is from 'pkg/front_end/testcases/general/call.dart'.
 Try changing 'call' to a method or explicitly invoke 'call'.
diff --git a/pkg/front_end/testcases/general/callable_type_variable.dart b/pkg/front_end/testcases/general/callable_type_variable.dart
index 85ef462..3fda2e4 100644
--- a/pkg/front_end/testcases/general/callable_type_variable.dart
+++ b/pkg/front_end/testcases/general/callable_type_variable.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 Class1<T extends Function> {
   T field;
 
diff --git a/pkg/front_end/testcases/general/callable_type_variable.dart.textual_outline.expect b/pkg/front_end/testcases/general/callable_type_variable.dart.textual_outline.expect
index 774edf2..d54964e 100644
--- a/pkg/front_end/testcases/general/callable_type_variable.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/callable_type_variable.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Class1<T extends Function> {
   T field;
   Class1(this.field);
diff --git a/pkg/front_end/testcases/general/callable_type_variable.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/callable_type_variable.dart.textual_outline_modelled.expect
index a8cdd5e..8eb5879 100644
--- a/pkg/front_end/testcases/general/callable_type_variable.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/callable_type_variable.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Class1<T extends Function> {
   Class1(this.field);
   T field;
diff --git a/pkg/front_end/testcases/general/callable_type_variable.dart.weak.expect b/pkg/front_end/testcases/general/callable_type_variable.dart.weak.expect
index 82b2ca3..1eff7da 100644
--- a/pkg/front_end/testcases/general/callable_type_variable.dart.weak.expect
+++ b/pkg/front_end/testcases/general/callable_type_variable.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,54 +13,34 @@
 import self as self;
 import "dart:core" as core;
 
-class Class1<T extends core::Function*> extends core::Object {
-  covariant-by-class field self::Class1::T* field;
-  constructor •(self::Class1::T* field) → self::Class1<self::Class1::T*>*
+class Class1<T extends core::Function> extends core::Object {
+  covariant-by-class field self::Class1::T field;
+  constructor •(self::Class1::T field) → self::Class1<self::Class1::T>
     : self::Class1::field = field, super core::Object::•()
     ;
   method method() → dynamic {
-    dynamic v1 = this.{self::Class1::field}{self::Class1::T*}();
-    dynamic v2 = let final core::int* #t1 = 0 in this.{self::Class1::field}{self::Class1::T*}(#t1);
-    self::Class1::T* v3 = this.{self::Class1::field}{self::Class1::T*}.call;
-    dynamic v4 = this.{self::Class1::field}{self::Class1::T*}();
-    dynamic v5 = this.{self::Class1::field}{self::Class1::T*}(0);
+    dynamic v1 = this.{self::Class1::field}{self::Class1::T}();
+    dynamic v2 = let final core::int #t1 = 0 in this.{self::Class1::field}{self::Class1::T}(#t1);
+    self::Class1::T v3 = this.{self::Class1::field}{self::Class1::T}.call;
+    dynamic v4 = this.{self::Class1::field}{self::Class1::T}();
+    dynamic v5 = this.{self::Class1::field}{self::Class1::T}(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
 }
-class Class2<T extends (core::int*) →* core::String*> extends core::Object {
-  covariant-by-class field self::Class2::T* field;
-  constructor •(self::Class2::T* field) → self::Class2<self::Class2::T*>*
+class Class2<T extends (core::int) → core::String> extends core::Object {
+  covariant-by-class field self::Class2::T field;
+  constructor •(self::Class2::T field) → self::Class2<self::Class2::T>
     : self::Class2::field = field, super core::Object::•()
     ;
   method method() → dynamic {
     invalid-type v1 = invalid-expression "pkg/front_end/testcases/general/callable_type_variable.dart:25:19: Error: Too few positional arguments: 1 required, 0 given.
     var v1 = field(); // error
-                  ^" in this.{self::Class2::field}{self::Class2::T*}{<inapplicable>}.();
-    core::String* v2 = let final core::int* #t2 = 0 in this.{self::Class2::field}{self::Class2::T*}(#t2){(core::int*) →* core::String*};
-    self::Class2::T* v3 = this.{self::Class2::field}{self::Class2::T*}.call;
+                  ^" in this.{self::Class2::field}{self::Class2::T}{<inapplicable>}.();
+    core::String v2 = let final core::int #t2 = 0 in this.{self::Class2::field}{self::Class2::T}(#t2){(core::int) → core::String};
+    self::Class2::T v3 = this.{self::Class2::field}{self::Class2::T}.call;
     invalid-type v4 = invalid-expression "pkg/front_end/testcases/general/callable_type_variable.dart:28:24: Error: Too few positional arguments: 1 required, 0 given.
     var v4 = field.call(); // error
-                       ^" in this.{self::Class2::field}{self::Class2::T*}{<inapplicable>}.();
-    core::String* v5 = this.{self::Class2::field}{self::Class2::T*}(0){(core::int*) →* core::String*};
+                       ^" in this.{self::Class2::field}{self::Class2::T}{<inapplicable>}.();
+    core::String v5 = this.{self::Class2::field}{self::Class2::T}(0){(core::int) → core::String};
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/callable_type_variable.dart.weak.modular.expect b/pkg/front_end/testcases/general/callable_type_variable.dart.weak.modular.expect
index 82b2ca3..1eff7da 100644
--- a/pkg/front_end/testcases/general/callable_type_variable.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/callable_type_variable.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,54 +13,34 @@
 import self as self;
 import "dart:core" as core;
 
-class Class1<T extends core::Function*> extends core::Object {
-  covariant-by-class field self::Class1::T* field;
-  constructor •(self::Class1::T* field) → self::Class1<self::Class1::T*>*
+class Class1<T extends core::Function> extends core::Object {
+  covariant-by-class field self::Class1::T field;
+  constructor •(self::Class1::T field) → self::Class1<self::Class1::T>
     : self::Class1::field = field, super core::Object::•()
     ;
   method method() → dynamic {
-    dynamic v1 = this.{self::Class1::field}{self::Class1::T*}();
-    dynamic v2 = let final core::int* #t1 = 0 in this.{self::Class1::field}{self::Class1::T*}(#t1);
-    self::Class1::T* v3 = this.{self::Class1::field}{self::Class1::T*}.call;
-    dynamic v4 = this.{self::Class1::field}{self::Class1::T*}();
-    dynamic v5 = this.{self::Class1::field}{self::Class1::T*}(0);
+    dynamic v1 = this.{self::Class1::field}{self::Class1::T}();
+    dynamic v2 = let final core::int #t1 = 0 in this.{self::Class1::field}{self::Class1::T}(#t1);
+    self::Class1::T v3 = this.{self::Class1::field}{self::Class1::T}.call;
+    dynamic v4 = this.{self::Class1::field}{self::Class1::T}();
+    dynamic v5 = this.{self::Class1::field}{self::Class1::T}(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
 }
-class Class2<T extends (core::int*) →* core::String*> extends core::Object {
-  covariant-by-class field self::Class2::T* field;
-  constructor •(self::Class2::T* field) → self::Class2<self::Class2::T*>*
+class Class2<T extends (core::int) → core::String> extends core::Object {
+  covariant-by-class field self::Class2::T field;
+  constructor •(self::Class2::T field) → self::Class2<self::Class2::T>
     : self::Class2::field = field, super core::Object::•()
     ;
   method method() → dynamic {
     invalid-type v1 = invalid-expression "pkg/front_end/testcases/general/callable_type_variable.dart:25:19: Error: Too few positional arguments: 1 required, 0 given.
     var v1 = field(); // error
-                  ^" in this.{self::Class2::field}{self::Class2::T*}{<inapplicable>}.();
-    core::String* v2 = let final core::int* #t2 = 0 in this.{self::Class2::field}{self::Class2::T*}(#t2){(core::int*) →* core::String*};
-    self::Class2::T* v3 = this.{self::Class2::field}{self::Class2::T*}.call;
+                  ^" in this.{self::Class2::field}{self::Class2::T}{<inapplicable>}.();
+    core::String v2 = let final core::int #t2 = 0 in this.{self::Class2::field}{self::Class2::T}(#t2){(core::int) → core::String};
+    self::Class2::T v3 = this.{self::Class2::field}{self::Class2::T}.call;
     invalid-type v4 = invalid-expression "pkg/front_end/testcases/general/callable_type_variable.dart:28:24: Error: Too few positional arguments: 1 required, 0 given.
     var v4 = field.call(); // error
-                       ^" in this.{self::Class2::field}{self::Class2::T*}{<inapplicable>}.();
-    core::String* v5 = this.{self::Class2::field}{self::Class2::T*}(0){(core::int*) →* core::String*};
+                       ^" in this.{self::Class2::field}{self::Class2::T}{<inapplicable>}.();
+    core::String v5 = this.{self::Class2::field}{self::Class2::T}(0){(core::int) → core::String};
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/callable_type_variable.dart.weak.outline.expect b/pkg/front_end/testcases/general/callable_type_variable.dart.weak.outline.expect
index cc8857f2..33b4a76 100644
--- a/pkg/front_end/testcases/general/callable_type_variable.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/callable_type_variable.dart.weak.outline.expect
@@ -1,40 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class Class1<T extends core::Function*> extends core::Object {
-  covariant-by-class field self::Class1::T* field;
-  constructor •(self::Class1::T* field) → self::Class1<self::Class1::T*>*
+class Class1<T extends core::Function> extends core::Object {
+  covariant-by-class field self::Class1::T field;
+  constructor •(self::Class1::T field) → self::Class1<self::Class1::T>
     ;
   method method() → dynamic
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Class2<T extends (core::int*) →* core::String*> extends core::Object {
-  covariant-by-class field self::Class2::T* field;
-  constructor •(self::Class2::T* field) → self::Class2<self::Class2::T*>*
+class Class2<T extends (core::int) → core::String> extends core::Object {
+  covariant-by-class field self::Class2::T field;
+  constructor •(self::Class2::T field) → self::Class2<self::Class2::T>
     ;
   method method() → dynamic
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/callable_type_variable.dart.weak.transformed.expect b/pkg/front_end/testcases/general/callable_type_variable.dart.weak.transformed.expect
index 38bd48c..3357392 100644
--- a/pkg/front_end/testcases/general/callable_type_variable.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/callable_type_variable.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,55 +13,35 @@
 import self as self;
 import "dart:core" as core;
 
-class Class1<T extends core::Function*> extends core::Object {
-  covariant-by-class field self::Class1::T* field;
-  constructor •(self::Class1::T* field) → self::Class1<self::Class1::T*>*
+class Class1<T extends core::Function> extends core::Object {
+  covariant-by-class field self::Class1::T field;
+  constructor •(self::Class1::T field) → self::Class1<self::Class1::T>
     : self::Class1::field = field, super core::Object::•()
     ;
   method method() → dynamic {
-    dynamic v1 = this.{self::Class1::field}{self::Class1::T*}();
-    dynamic v2 = let final core::int* #t1 = 0 in this.{self::Class1::field}{self::Class1::T*}(#t1);
-    self::Class1::T* v3 = this.{self::Class1::field}{self::Class1::T*}.call;
-    dynamic v4 = this.{self::Class1::field}{self::Class1::T*}();
-    dynamic v5 = this.{self::Class1::field}{self::Class1::T*}(0);
+    dynamic v1 = this.{self::Class1::field}{self::Class1::T}();
+    dynamic v2 = let final core::int #t1 = 0 in this.{self::Class1::field}{self::Class1::T}(#t1);
+    self::Class1::T v3 = this.{self::Class1::field}{self::Class1::T}.call;
+    dynamic v4 = this.{self::Class1::field}{self::Class1::T}();
+    dynamic v5 = this.{self::Class1::field}{self::Class1::T}(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
 }
-class Class2<T extends (core::int*) →* core::String*> extends core::Object {
-  covariant-by-class field self::Class2::T* field;
-  constructor •(self::Class2::T* field) → self::Class2<self::Class2::T*>*
+class Class2<T extends (core::int) → core::String> extends core::Object {
+  covariant-by-class field self::Class2::T field;
+  constructor •(self::Class2::T field) → self::Class2<self::Class2::T>
     : self::Class2::field = field, super core::Object::•()
     ;
   method method() → dynamic {
     invalid-type v1 = invalid-expression "pkg/front_end/testcases/general/callable_type_variable.dart:25:19: Error: Too few positional arguments: 1 required, 0 given.
     var v1 = field(); // error
-                  ^" in this.{self::Class2::field}{self::Class2::T*}{<inapplicable>}.();
-    core::String* v2 = let final core::int* #t2 = 0 in this.{self::Class2::field}{self::Class2::T*}(#t2){(core::int*) →* core::String*};
-    self::Class2::T* v3 = this.{self::Class2::field}{self::Class2::T*}.call;
+                  ^" in this.{self::Class2::field}{self::Class2::T}{<inapplicable>}.();
+    core::String v2 = let final core::int #t2 = 0 in this.{self::Class2::field}{self::Class2::T}(#t2){(core::int) → core::String};
+    self::Class2::T v3 = this.{self::Class2::field}{self::Class2::T}.call;
     invalid-type v4 = invalid-expression "pkg/front_end/testcases/general/callable_type_variable.dart:28:24: Error: Too few positional arguments: 1 required, 0 given.
     var v4 = field.call(); // error
-                       ^" in this.{self::Class2::field}{self::Class2::T*}{<inapplicable>}.();
-    core::String* v5 = this.{self::Class2::field}{self::Class2::T*}(0){(core::int*) →* core::String*};
+                       ^" in this.{self::Class2::field}{self::Class2::T}{<inapplicable>}.();
+    core::String v5 = this.{self::Class2::field}{self::Class2::T}(0){(core::int) → core::String};
   }
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/general/candidate_found.dart b/pkg/front_end/testcases/general/candidate_found.dart
index 8c5531f..6b4c624 100644
--- a/pkg/front_end/testcases/general/candidate_found.dart
+++ b/pkg/front_end/testcases/general/candidate_found.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 Fisk {
   Fisk(int x) {}
 
diff --git a/pkg/front_end/testcases/general/candidate_found.dart.textual_outline.expect b/pkg/front_end/testcases/general/candidate_found.dart.textual_outline.expect
index 3878c51..59e6dfd 100644
--- a/pkg/front_end/testcases/general/candidate_found.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/candidate_found.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Fisk {
   Fisk(int x) {}
   Fisk.named(int x) {}
diff --git a/pkg/front_end/testcases/general/candidate_found.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/candidate_found.dart.textual_outline_modelled.expect
index 0ef7f2c8..49525b6 100644
--- a/pkg/front_end/testcases/general/candidate_found.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/candidate_found.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Fisk {
   Fisk(int x) {}
   Fisk.named(int x) {}
diff --git a/pkg/front_end/testcases/general/candidate_found.dart.weak.expect b/pkg/front_end/testcases/general/candidate_found.dart.weak.expect
index a8817a7..d14cba6 100644
--- a/pkg/front_end/testcases/general/candidate_found.dart.weak.expect
+++ b/pkg/front_end/testcases/general/candidate_found.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -45,22 +45,12 @@
 import "dart:core" as core;
 
 class Fisk extends core::Object {
-  constructor •(core::int* x) → self::Fisk*
+  constructor •(core::int x) → self::Fisk
     : super core::Object::•() {}
-  constructor named(core::int* x) → self::Fisk*
+  constructor named(core::int x) → self::Fisk
     : super core::Object::•() {}
-  method method(core::int* x) → void {}
-  static method staticMethod(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 method(core::int x) → void {}
+  static method staticMethod(core::int x) → void {}
 }
 static method test() → dynamic {
   invalid-expression "pkg/front_end/testcases/general/candidate_found.dart:16:11: Error: Too few positional arguments: 1 required, 0 given.
@@ -80,6 +70,6 @@
                    ^";
   invalid-expression "pkg/front_end/testcases/general/candidate_found.dart:21:24: Error: Too few positional arguments: 1 required, 0 given.
   (null as Fisk).method();
-                       ^" in (null as self::Fisk*).{self::Fisk::method}{<inapplicable>}.(){() →* invalid-type};
+                       ^" in (null as{ForNonNullableByDefault} self::Fisk).{self::Fisk::method}{<inapplicable>}.(){() → invalid-type};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/candidate_found.dart.weak.modular.expect b/pkg/front_end/testcases/general/candidate_found.dart.weak.modular.expect
index a8817a7..d14cba6 100644
--- a/pkg/front_end/testcases/general/candidate_found.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/candidate_found.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -45,22 +45,12 @@
 import "dart:core" as core;
 
 class Fisk extends core::Object {
-  constructor •(core::int* x) → self::Fisk*
+  constructor •(core::int x) → self::Fisk
     : super core::Object::•() {}
-  constructor named(core::int* x) → self::Fisk*
+  constructor named(core::int x) → self::Fisk
     : super core::Object::•() {}
-  method method(core::int* x) → void {}
-  static method staticMethod(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 method(core::int x) → void {}
+  static method staticMethod(core::int x) → void {}
 }
 static method test() → dynamic {
   invalid-expression "pkg/front_end/testcases/general/candidate_found.dart:16:11: Error: Too few positional arguments: 1 required, 0 given.
@@ -80,6 +70,6 @@
                    ^";
   invalid-expression "pkg/front_end/testcases/general/candidate_found.dart:21:24: Error: Too few positional arguments: 1 required, 0 given.
   (null as Fisk).method();
-                       ^" in (null as self::Fisk*).{self::Fisk::method}{<inapplicable>}.(){() →* invalid-type};
+                       ^" in (null as{ForNonNullableByDefault} self::Fisk).{self::Fisk::method}{<inapplicable>}.(){() → invalid-type};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/candidate_found.dart.weak.outline.expect b/pkg/front_end/testcases/general/candidate_found.dart.weak.outline.expect
index 643d69c..fb27332 100644
--- a/pkg/front_end/testcases/general/candidate_found.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/candidate_found.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Fisk extends core::Object {
-  constructor •(core::int* x) → self::Fisk*
+  constructor •(core::int x) → self::Fisk
     ;
-  constructor named(core::int* x) → self::Fisk*
+  constructor named(core::int x) → self::Fisk
     ;
-  method method(core::int* x) → void
+  method method(core::int x) → void
     ;
-  static method staticMethod(core::int* x) → void
+  static method staticMethod(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
 }
 static method test() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/candidate_found.dart.weak.transformed.expect b/pkg/front_end/testcases/general/candidate_found.dart.weak.transformed.expect
index 66c13e5..0297ea7 100644
--- a/pkg/front_end/testcases/general/candidate_found.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/candidate_found.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -45,22 +45,12 @@
 import "dart:core" as core;
 
 class Fisk extends core::Object {
-  constructor •(core::int* x) → self::Fisk*
+  constructor •(core::int x) → self::Fisk
     : super core::Object::•() {}
-  constructor named(core::int* x) → self::Fisk*
+  constructor named(core::int x) → self::Fisk
     : super core::Object::•() {}
-  method method(core::int* x) → void {}
-  static method staticMethod(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 method(core::int x) → void {}
+  static method staticMethod(core::int x) → void {}
 }
 static method test() → dynamic {
   invalid-expression "pkg/front_end/testcases/general/candidate_found.dart:16:11: Error: Too few positional arguments: 1 required, 0 given.
@@ -80,6 +70,6 @@
                    ^";
   invalid-expression "pkg/front_end/testcases/general/candidate_found.dart:21:24: Error: Too few positional arguments: 1 required, 0 given.
   (null as Fisk).method();
-                       ^" in null.{self::Fisk::method}{<inapplicable>}.(){() →* invalid-type};
+                       ^" in null.{self::Fisk::method}{<inapplicable>}.(){() → invalid-type};
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/cascade.dart b/pkg/front_end/testcases/general/cascade.dart
index ca4653a..97a3402 100644
--- a/pkg/front_end/testcases/general/cascade.dart
+++ b/pkg/front_end/testcases/general/cascade.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-// @dart=2.9
+
 main() {
   var list = [1]
     ..add(2)
diff --git a/pkg/front_end/testcases/general/cascade.dart.textual_outline.expect b/pkg/front_end/testcases/general/cascade.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/cascade.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/cascade.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/cascade.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/cascade.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/cascade.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/cascade.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/cascade.dart.weak.expect b/pkg/front_end/testcases/general/cascade.dart.weak.expect
index 3d4d8ca..4637d59 100644
--- a/pkg/front_end/testcases/general/cascade.dart.weak.expect
+++ b/pkg/front_end/testcases/general/cascade.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -26,40 +26,40 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::List<core::int*>* list = let final core::List<core::int*>* #t1 = <core::int*>[1] in block {
-    #t1.{core::List::add}(2){(core::int*) →* void};
-    #t1.{core::List::add}(3){(core::int*) →* void};
-    #t1.{core::List::addAll}(<core::int*>[4, 5]){(core::Iterable<core::int*>*) →* void};
+  core::List<core::int> list = let final core::List<core::int> #t1 = <core::int>[1] in block {
+    #t1.{core::List::add}(2){(core::int) → void};
+    #t1.{core::List::add}(3){(core::int) → void};
+    #t1.{core::List::addAll}(<core::int>[4, 5]){(core::Iterable<core::int>) → void};
   } =>#t1;
   core::print(list);
-  let final core::List<core::int*>* #t2 = list in block {
-    #t2.{core::List::add}(2){(core::int*) →* void};
-    #t2.{core::List::length}{core::int*};
+  let final core::List<core::int> #t2 = list in block {
+    #t2.{core::List::add}(2){(core::int) → void};
+    #t2.{core::List::length}{core::int};
     #t2.{core::List::length} = 0;
   } =>#t2;
   core::print(list);
-  let final core::List<core::int*>* #t3 = list in block {
-    #t3.{core::List::add}(2){(core::int*) →* void};
-    #t3.{core::List::[]}(0){(core::int*) →* core::int*};
-    #t3.{core::List::[]=}(0, 87){(core::int*, core::int*) →* void};
+  let final core::List<core::int> #t3 = list in block {
+    #t3.{core::List::add}(2){(core::int) → void};
+    #t3.{core::List::[]}(0){(core::int) → core::int};
+    #t3.{core::List::[]=}(0, 87){(core::int, core::int) → void};
   } =>#t3;
   core::print(list);
-  list = let final core::List<core::int*>* #t4 = <core::int*>[invalid-expression "pkg/front_end/testcases/general/cascade.dart:26:5: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
+  list = let final core::List<core::int> #t4 = <core::int>[invalid-expression "pkg/front_end/testcases/general/cascade.dart:26:5: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
  - 'List' is from 'dart:core'.
     [1]
-    ^" in <core::int*>[1] as{TypeError} core::int*] in block {
+    ^" in <core::int>[1] as{TypeError,ForNonNullableByDefault} core::int] in block {
     invalid-expression "pkg/front_end/testcases/general/cascade.dart:28:13: Error: The getter 'last' isn't defined for the class 'int'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'last'.
     ..first.last.toString()
-            ^^^^" in #t4.{core::Iterable::first}{core::int*}{<unresolved>}.last.{core::Object::toString}(){() →* core::String*};
+            ^^^^" in #t4.{core::Iterable::first}{core::int}{<unresolved>}.last.{core::Object::toString}(){() → core::String};
     invalid-expression "pkg/front_end/testcases/general/cascade.dart:29:12: Error: The operator '[]' isn't defined for the class 'int'.
 Try correcting the operator to an existing operator, or defining a '[]' operator.
     ..first[0].toString()
-           ^" in #t4.{core::Iterable::first}{core::int*}{<unresolved>}.[](0).{core::Object::toString}(){() →* core::String*};
+           ^" in #t4.{core::Iterable::first}{core::int}{<unresolved>}.[](0).{core::Object::toString}(){() → core::String};
     invalid-expression "pkg/front_end/testcases/general/cascade.dart:30:11: Error: The getter 'last' isn't defined for the class 'int'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'last'.
     ..[0].last.toString();
-          ^^^^" in #t4.{core::List::[]}(0){(core::int*) →* core::int*}{<unresolved>}.last.{core::Object::toString}(){() →* core::String*};
+          ^^^^" in #t4.{core::List::[]}(0){(core::int) → core::int}{<unresolved>}.last.{core::Object::toString}(){() → core::String};
   } =>#t4;
   core::print(list);
 }
diff --git a/pkg/front_end/testcases/general/cascade.dart.weak.modular.expect b/pkg/front_end/testcases/general/cascade.dart.weak.modular.expect
index 3d4d8ca..4637d59 100644
--- a/pkg/front_end/testcases/general/cascade.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/cascade.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -26,40 +26,40 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::List<core::int*>* list = let final core::List<core::int*>* #t1 = <core::int*>[1] in block {
-    #t1.{core::List::add}(2){(core::int*) →* void};
-    #t1.{core::List::add}(3){(core::int*) →* void};
-    #t1.{core::List::addAll}(<core::int*>[4, 5]){(core::Iterable<core::int*>*) →* void};
+  core::List<core::int> list = let final core::List<core::int> #t1 = <core::int>[1] in block {
+    #t1.{core::List::add}(2){(core::int) → void};
+    #t1.{core::List::add}(3){(core::int) → void};
+    #t1.{core::List::addAll}(<core::int>[4, 5]){(core::Iterable<core::int>) → void};
   } =>#t1;
   core::print(list);
-  let final core::List<core::int*>* #t2 = list in block {
-    #t2.{core::List::add}(2){(core::int*) →* void};
-    #t2.{core::List::length}{core::int*};
+  let final core::List<core::int> #t2 = list in block {
+    #t2.{core::List::add}(2){(core::int) → void};
+    #t2.{core::List::length}{core::int};
     #t2.{core::List::length} = 0;
   } =>#t2;
   core::print(list);
-  let final core::List<core::int*>* #t3 = list in block {
-    #t3.{core::List::add}(2){(core::int*) →* void};
-    #t3.{core::List::[]}(0){(core::int*) →* core::int*};
-    #t3.{core::List::[]=}(0, 87){(core::int*, core::int*) →* void};
+  let final core::List<core::int> #t3 = list in block {
+    #t3.{core::List::add}(2){(core::int) → void};
+    #t3.{core::List::[]}(0){(core::int) → core::int};
+    #t3.{core::List::[]=}(0, 87){(core::int, core::int) → void};
   } =>#t3;
   core::print(list);
-  list = let final core::List<core::int*>* #t4 = <core::int*>[invalid-expression "pkg/front_end/testcases/general/cascade.dart:26:5: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
+  list = let final core::List<core::int> #t4 = <core::int>[invalid-expression "pkg/front_end/testcases/general/cascade.dart:26:5: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
  - 'List' is from 'dart:core'.
     [1]
-    ^" in <core::int*>[1] as{TypeError} core::int*] in block {
+    ^" in <core::int>[1] as{TypeError,ForNonNullableByDefault} core::int] in block {
     invalid-expression "pkg/front_end/testcases/general/cascade.dart:28:13: Error: The getter 'last' isn't defined for the class 'int'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'last'.
     ..first.last.toString()
-            ^^^^" in #t4.{core::Iterable::first}{core::int*}{<unresolved>}.last.{core::Object::toString}(){() →* core::String*};
+            ^^^^" in #t4.{core::Iterable::first}{core::int}{<unresolved>}.last.{core::Object::toString}(){() → core::String};
     invalid-expression "pkg/front_end/testcases/general/cascade.dart:29:12: Error: The operator '[]' isn't defined for the class 'int'.
 Try correcting the operator to an existing operator, or defining a '[]' operator.
     ..first[0].toString()
-           ^" in #t4.{core::Iterable::first}{core::int*}{<unresolved>}.[](0).{core::Object::toString}(){() →* core::String*};
+           ^" in #t4.{core::Iterable::first}{core::int}{<unresolved>}.[](0).{core::Object::toString}(){() → core::String};
     invalid-expression "pkg/front_end/testcases/general/cascade.dart:30:11: Error: The getter 'last' isn't defined for the class 'int'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'last'.
     ..[0].last.toString();
-          ^^^^" in #t4.{core::List::[]}(0){(core::int*) →* core::int*}{<unresolved>}.last.{core::Object::toString}(){() →* core::String*};
+          ^^^^" in #t4.{core::List::[]}(0){(core::int) → core::int}{<unresolved>}.last.{core::Object::toString}(){() → core::String};
   } =>#t4;
   core::print(list);
 }
diff --git a/pkg/front_end/testcases/general/cascade.dart.weak.outline.expect b/pkg/front_end/testcases/general/cascade.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/general/cascade.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/cascade.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/cascade.dart.weak.transformed.expect b/pkg/front_end/testcases/general/cascade.dart.weak.transformed.expect
index b2dbc37..8199e40 100644
--- a/pkg/front_end/testcases/general/cascade.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/cascade.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -26,40 +26,40 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::List<core::int*>* list = let final core::List<core::int*>* #t1 = core::_GrowableList::_literal1<core::int*>(1) in block {
-    #t1.{core::List::add}(2){(core::int*) →* void};
-    #t1.{core::List::add}(3){(core::int*) →* void};
-    #t1.{core::List::addAll}(core::_GrowableList::_literal2<core::int*>(4, 5)){(core::Iterable<core::int*>*) →* void};
+  core::List<core::int> list = let final core::List<core::int> #t1 = core::_GrowableList::_literal1<core::int>(1) in block {
+    #t1.{core::List::add}(2){(core::int) → void};
+    #t1.{core::List::add}(3){(core::int) → void};
+    #t1.{core::List::addAll}(core::_GrowableList::_literal2<core::int>(4, 5)){(core::Iterable<core::int>) → void};
   } =>#t1;
   core::print(list);
-  let final core::List<core::int*>* #t2 = list in block {
-    #t2.{core::List::add}(2){(core::int*) →* void};
-    #t2.{core::List::length}{core::int*};
+  let final core::List<core::int> #t2 = list in block {
+    #t2.{core::List::add}(2){(core::int) → void};
+    #t2.{core::List::length}{core::int};
     #t2.{core::List::length} = 0;
   } =>#t2;
   core::print(list);
-  let final core::List<core::int*>* #t3 = list in block {
-    #t3.{core::List::add}(2){(core::int*) →* void};
-    #t3.{core::List::[]}(0){(core::int*) →* core::int*};
-    #t3.{core::List::[]=}(0, 87){(core::int*, core::int*) →* void};
+  let final core::List<core::int> #t3 = list in block {
+    #t3.{core::List::add}(2){(core::int) → void};
+    #t3.{core::List::[]}(0){(core::int) → core::int};
+    #t3.{core::List::[]=}(0, 87){(core::int, core::int) → void};
   } =>#t3;
   core::print(list);
-  list = let final core::List<core::int*>* #t4 = core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/general/cascade.dart:26:5: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
+  list = let final core::List<core::int> #t4 = core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/general/cascade.dart:26:5: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
  - 'List' is from 'dart:core'.
     [1]
-    ^" in core::_GrowableList::_literal1<core::int*>(1) as{TypeError} core::int*) in block {
+    ^" in core::_GrowableList::_literal1<core::int>(1) as{TypeError,ForNonNullableByDefault} core::int) in block {
     invalid-expression "pkg/front_end/testcases/general/cascade.dart:28:13: Error: The getter 'last' isn't defined for the class 'int'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'last'.
     ..first.last.toString()
-            ^^^^" in #t4.{core::Iterable::first}{core::int*}{<unresolved>}.last.{core::Object::toString}(){() →* core::String*};
+            ^^^^" in #t4.{core::Iterable::first}{core::int}{<unresolved>}.last.{core::Object::toString}(){() → core::String};
     invalid-expression "pkg/front_end/testcases/general/cascade.dart:29:12: Error: The operator '[]' isn't defined for the class 'int'.
 Try correcting the operator to an existing operator, or defining a '[]' operator.
     ..first[0].toString()
-           ^" in #t4.{core::Iterable::first}{core::int*}{<unresolved>}.[](0).{core::Object::toString}(){() →* core::String*};
+           ^" in #t4.{core::Iterable::first}{core::int}{<unresolved>}.[](0).{core::Object::toString}(){() → core::String};
     invalid-expression "pkg/front_end/testcases/general/cascade.dart:30:11: Error: The getter 'last' isn't defined for the class 'int'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'last'.
     ..[0].last.toString();
-          ^^^^" in #t4.{core::List::[]}(0){(core::int*) →* core::int*}{<unresolved>}.last.{core::Object::toString}(){() →* core::String*};
+          ^^^^" in #t4.{core::List::[]}(0){(core::int) → core::int}{<unresolved>}.last.{core::Object::toString}(){() → core::String};
   } =>#t4;
   core::print(list);
 }
diff --git a/pkg/front_end/testcases/general/cascade_context.dart b/pkg/front_end/testcases/general/cascade_context.dart
index 01cb795..936ffa1 100644
--- a/pkg/front_end/testcases/general/cascade_context.dart
+++ b/pkg/front_end/testcases/general/cascade_context.dart
@@ -1,8 +1,8 @@
 // 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
-T f<T>() => null;
+
+T f<T>() => throw '';
 
 test() {
   int v1 = f();
diff --git a/pkg/front_end/testcases/general/cascade_context.dart.textual_outline.expect b/pkg/front_end/testcases/general/cascade_context.dart.textual_outline.expect
index d47fc4f..0bb878f 100644
--- a/pkg/front_end/testcases/general/cascade_context.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/cascade_context.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
-T f<T>() => null;
+T f<T>() => throw '';
 test() {}
 main() {}
diff --git a/pkg/front_end/testcases/general/cascade_context.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/cascade_context.dart.textual_outline_modelled.expect
index fd47409..85cb1f6 100644
--- a/pkg/front_end/testcases/general/cascade_context.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/cascade_context.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
-T f<T>() => null;
+T f<T>() => throw '';
 main() {}
 test() {}
diff --git a/pkg/front_end/testcases/general/cascade_context.dart.weak.expect b/pkg/front_end/testcases/general/cascade_context.dart.weak.expect
index 11f2c0b..601c843 100644
--- a/pkg/front_end/testcases/general/cascade_context.dart.weak.expect
+++ b/pkg/front_end/testcases/general/cascade_context.dart.weak.expect
@@ -1,17 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method f<T extends core::Object* = dynamic>() → self::f::T*
-  return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+  return throw "";
 static method test() → dynamic {
-  core::int* v1 = self::f<core::int*>();
-  core::int* v2 = let final core::int* #t1 = self::f<core::int*>() in block {
-    #t1.{core::int::isEven}{core::bool*};
+  core::int v1 = self::f<core::int>();
+  core::int v2 = let final core::int #t1 = self::f<core::int>() in block {
+    #t1.{core::int::isEven}{core::bool};
   } =>#t1;
-  core::int* v3 = let final core::int* #t2 = self::f<core::int*>() in block {
-    #t2.{core::int::isEven}{core::bool*};
-    #t2.{core::int::isEven}{core::bool*};
+  core::int v3 = let final core::int #t2 = self::f<core::int>() in block {
+    #t2.{core::int::isEven}{core::bool};
+    #t2.{core::int::isEven}{core::bool};
   } =>#t2;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/cascade_context.dart.weak.modular.expect b/pkg/front_end/testcases/general/cascade_context.dart.weak.modular.expect
index 11f2c0b..601c843 100644
--- a/pkg/front_end/testcases/general/cascade_context.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/cascade_context.dart.weak.modular.expect
@@ -1,17 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method f<T extends core::Object* = dynamic>() → self::f::T*
-  return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+  return throw "";
 static method test() → dynamic {
-  core::int* v1 = self::f<core::int*>();
-  core::int* v2 = let final core::int* #t1 = self::f<core::int*>() in block {
-    #t1.{core::int::isEven}{core::bool*};
+  core::int v1 = self::f<core::int>();
+  core::int v2 = let final core::int #t1 = self::f<core::int>() in block {
+    #t1.{core::int::isEven}{core::bool};
   } =>#t1;
-  core::int* v3 = let final core::int* #t2 = self::f<core::int*>() in block {
-    #t2.{core::int::isEven}{core::bool*};
-    #t2.{core::int::isEven}{core::bool*};
+  core::int v3 = let final core::int #t2 = self::f<core::int>() in block {
+    #t2.{core::int::isEven}{core::bool};
+    #t2.{core::int::isEven}{core::bool};
   } =>#t2;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/cascade_context.dart.weak.outline.expect b/pkg/front_end/testcases/general/cascade_context.dart.weak.outline.expect
index 10a6773..353d0d8 100644
--- a/pkg/front_end/testcases/general/cascade_context.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/cascade_context.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
   ;
 static method test() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/cascade_context.dart.weak.transformed.expect b/pkg/front_end/testcases/general/cascade_context.dart.weak.transformed.expect
index 11f2c0b..601c843 100644
--- a/pkg/front_end/testcases/general/cascade_context.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/cascade_context.dart.weak.transformed.expect
@@ -1,17 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method f<T extends core::Object* = dynamic>() → self::f::T*
-  return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+  return throw "";
 static method test() → dynamic {
-  core::int* v1 = self::f<core::int*>();
-  core::int* v2 = let final core::int* #t1 = self::f<core::int*>() in block {
-    #t1.{core::int::isEven}{core::bool*};
+  core::int v1 = self::f<core::int>();
+  core::int v2 = let final core::int #t1 = self::f<core::int>() in block {
+    #t1.{core::int::isEven}{core::bool};
   } =>#t1;
-  core::int* v3 = let final core::int* #t2 = self::f<core::int*>() in block {
-    #t2.{core::int::isEven}{core::bool*};
-    #t2.{core::int::isEven}{core::bool*};
+  core::int v3 = let final core::int #t2 = self::f<core::int>() in block {
+    #t2.{core::int::isEven}{core::bool};
+    #t2.{core::int::isEven}{core::bool};
   } =>#t2;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/casts.dart b/pkg/front_end/testcases/general/casts.dart
index 0c375c4..2c7a621 100644
--- a/pkg/front_end/testcases/general/casts.dart
+++ b/pkg/front_end/testcases/general/casts.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-// @dart=2.9
+
 main() {
   print("" as String);
   print(1 as int);
diff --git a/pkg/front_end/testcases/general/casts.dart.textual_outline.expect b/pkg/front_end/testcases/general/casts.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/casts.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/casts.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/casts.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/casts.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/casts.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/casts.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/casts.dart.weak.expect b/pkg/front_end/testcases/general/casts.dart.weak.expect
index bfac5fe..19a0291 100644
--- a/pkg/front_end/testcases/general/casts.dart.weak.expect
+++ b/pkg/front_end/testcases/general/casts.dart.weak.expect
@@ -1,18 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::print("" as core::String*);
-  core::print(1 as core::int*);
-  core::print(1.0 as core::double*);
-  core::print("" is core::String*);
-  core::print("" is core::int*);
-  core::print("" is core::double*);
-  core::print(1 is core::String*);
-  core::print(1 is core::int*);
-  core::print(1 is core::double*);
-  core::print(1.0 is core::String*);
-  core::print(1.0 is core::int*);
-  core::print(1.0 is core::double*);
+  core::print("" as{ForNonNullableByDefault} core::String);
+  core::print(1 as{ForNonNullableByDefault} core::int);
+  core::print(1.0 as{ForNonNullableByDefault} core::double);
+  core::print("" is{ForNonNullableByDefault} core::String);
+  core::print("" is{ForNonNullableByDefault} core::int);
+  core::print("" is{ForNonNullableByDefault} core::double);
+  core::print(1 is{ForNonNullableByDefault} core::String);
+  core::print(1 is{ForNonNullableByDefault} core::int);
+  core::print(1 is{ForNonNullableByDefault} core::double);
+  core::print(1.0 is{ForNonNullableByDefault} core::String);
+  core::print(1.0 is{ForNonNullableByDefault} core::int);
+  core::print(1.0 is{ForNonNullableByDefault} core::double);
 }
diff --git a/pkg/front_end/testcases/general/casts.dart.weak.modular.expect b/pkg/front_end/testcases/general/casts.dart.weak.modular.expect
index bfac5fe..19a0291 100644
--- a/pkg/front_end/testcases/general/casts.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/casts.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::print("" as core::String*);
-  core::print(1 as core::int*);
-  core::print(1.0 as core::double*);
-  core::print("" is core::String*);
-  core::print("" is core::int*);
-  core::print("" is core::double*);
-  core::print(1 is core::String*);
-  core::print(1 is core::int*);
-  core::print(1 is core::double*);
-  core::print(1.0 is core::String*);
-  core::print(1.0 is core::int*);
-  core::print(1.0 is core::double*);
+  core::print("" as{ForNonNullableByDefault} core::String);
+  core::print(1 as{ForNonNullableByDefault} core::int);
+  core::print(1.0 as{ForNonNullableByDefault} core::double);
+  core::print("" is{ForNonNullableByDefault} core::String);
+  core::print("" is{ForNonNullableByDefault} core::int);
+  core::print("" is{ForNonNullableByDefault} core::double);
+  core::print(1 is{ForNonNullableByDefault} core::String);
+  core::print(1 is{ForNonNullableByDefault} core::int);
+  core::print(1 is{ForNonNullableByDefault} core::double);
+  core::print(1.0 is{ForNonNullableByDefault} core::String);
+  core::print(1.0 is{ForNonNullableByDefault} core::int);
+  core::print(1.0 is{ForNonNullableByDefault} core::double);
 }
diff --git a/pkg/front_end/testcases/general/casts.dart.weak.outline.expect b/pkg/front_end/testcases/general/casts.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/general/casts.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/casts.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/casts.dart.weak.transformed.expect b/pkg/front_end/testcases/general/casts.dart.weak.transformed.expect
index 59f300e..a8b1c78 100644
--- a/pkg/front_end/testcases/general/casts.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/casts.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -6,15 +6,15 @@
   core::print("");
   core::print(1);
   core::print(1.0);
-  core::print("" is core::String*);
-  core::print("" is core::int*);
-  core::print("" is core::double*);
-  core::print(1 is core::String*);
-  core::print(1 is core::int*);
-  core::print(1 is core::double*);
-  core::print(1.0 is core::String*);
-  core::print(1.0 is core::int*);
-  core::print(1.0 is core::double*);
+  core::print("" is{ForNonNullableByDefault} core::String);
+  core::print("" is{ForNonNullableByDefault} core::int);
+  core::print("" is{ForNonNullableByDefault} core::double);
+  core::print(1 is{ForNonNullableByDefault} core::String);
+  core::print(1 is{ForNonNullableByDefault} core::int);
+  core::print(1 is{ForNonNullableByDefault} core::double);
+  core::print(1.0 is{ForNonNullableByDefault} core::String);
+  core::print(1.0 is{ForNonNullableByDefault} core::int);
+  core::print(1.0 is{ForNonNullableByDefault} core::double);
 }
 
 
diff --git a/pkg/front_end/testcases/general/check_deferred_allocation.dart b/pkg/front_end/testcases/general/check_deferred_allocation.dart
index 696e392..3bf29bf 100644
--- a/pkg/front_end/testcases/general/check_deferred_allocation.dart
+++ b/pkg/front_end/testcases/general/check_deferred_allocation.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.md file.
-// @dart=2.9
+
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/general/check_deferred_allocation.dart.textual_outline.expect b/pkg/front_end/testcases/general/check_deferred_allocation.dart.textual_outline.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/general/check_deferred_allocation.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_allocation.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/general/check_deferred_allocation.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/check_deferred_allocation.dart.textual_outline_modelled.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/general/check_deferred_allocation.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/check_deferred_allocation.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/general/check_deferred_allocation.dart.weak.expect b/pkg/front_end/testcases/general/check_deferred_allocation.dart.weak.expect
index ee44558..ef6c90a 100644
--- a/pkg/front_end/testcases/general/check_deferred_allocation.dart.weak.expect
+++ b/pkg/front_end/testcases/general/check_deferred_allocation.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "deferred_lib.dart" as def;
@@ -10,28 +10,18 @@
   core::print(let final dynamic #t1 = CheckLibraryIsLoaded(lib) in new def::C::•());
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_allocation.dart.weak.modular.expect b/pkg/front_end/testcases/general/check_deferred_allocation.dart.weak.modular.expect
index ee44558..ef6c90a 100644
--- a/pkg/front_end/testcases/general/check_deferred_allocation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/check_deferred_allocation.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "deferred_lib.dart" as def;
@@ -10,28 +10,18 @@
   core::print(let final dynamic #t1 = CheckLibraryIsLoaded(lib) in new def::C::•());
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_allocation.dart.weak.outline.expect b/pkg/front_end/testcases/general/check_deferred_allocation.dart.weak.outline.expect
index 5a345b6..f6365f4 100644
--- a/pkg/front_end/testcases/general/check_deferred_allocation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_allocation.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,27 +8,17 @@
 static method test() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y;
-  synthetic constructor •() → self2::C*
+  static field core::int y;
+  synthetic constructor •() → self2::C
     ;
-  static method m() → core::int*
+  static 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
 }
-static field core::int* x;
+static field core::int x;
 static method m(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/check_deferred_allocation.dart.weak.transformed.expect b/pkg/front_end/testcases/general/check_deferred_allocation.dart.weak.transformed.expect
index 57b9c6d..1cc3bca 100644
--- a/pkg/front_end/testcases/general/check_deferred_allocation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/check_deferred_allocation.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,28 +10,18 @@
   core::print(let final core::Object* #t1 = CheckLibraryIsLoaded(lib) in new def::C::•());
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_as_check.dart b/pkg/front_end/testcases/general/check_deferred_as_check.dart
index 07e9aa0..e9d17ff 100644
--- a/pkg/front_end/testcases/general/check_deferred_as_check.dart
+++ b/pkg/front_end/testcases/general/check_deferred_as_check.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.md file.
-// @dart=2.9
+
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/general/check_deferred_as_check.dart.textual_outline.expect b/pkg/front_end/testcases/general/check_deferred_as_check.dart.textual_outline.expect
index 0ef0840..9a994a0 100644
--- a/pkg/front_end/testcases/general/check_deferred_as_check.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_as_check.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/general/check_deferred_as_check.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/check_deferred_as_check.dart.textual_outline_modelled.expect
index 0ef0840..9a994a0 100644
--- a/pkg/front_end/testcases/general/check_deferred_as_check.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/check_deferred_as_check.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/general/check_deferred_as_check.dart.weak.expect b/pkg/front_end/testcases/general/check_deferred_as_check.dart.weak.expect
index 3ed13e8..a56fed60 100644
--- a/pkg/front_end/testcases/general/check_deferred_as_check.dart.weak.expect
+++ b/pkg/front_end/testcases/general/check_deferred_as_check.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,31 +14,21 @@
 
 static method main() → dynamic {}
 static method test(dynamic x) → dynamic {
-  x as invalid-type;
+  x as{ForNonNullableByDefault} invalid-type;
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → self2::C*
+  static field core::int y = 1;
+  synthetic constructor •() → self2::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_as_check.dart.weak.modular.expect b/pkg/front_end/testcases/general/check_deferred_as_check.dart.weak.modular.expect
index 3ed13e8..a56fed60 100644
--- a/pkg/front_end/testcases/general/check_deferred_as_check.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/check_deferred_as_check.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,31 +14,21 @@
 
 static method main() → dynamic {}
 static method test(dynamic x) → dynamic {
-  x as invalid-type;
+  x as{ForNonNullableByDefault} invalid-type;
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → self2::C*
+  static field core::int y = 1;
+  synthetic constructor •() → self2::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_as_check.dart.weak.outline.expect b/pkg/front_end/testcases/general/check_deferred_as_check.dart.weak.outline.expect
index 2235d55..8aef89e 100644
--- a/pkg/front_end/testcases/general/check_deferred_as_check.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_as_check.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,27 +8,17 @@
 static method test(dynamic x) → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y;
-  synthetic constructor •() → self2::C*
+  static field core::int y;
+  synthetic constructor •() → self2::C
     ;
-  static method m() → core::int*
+  static 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
 }
-static field core::int* x;
+static field core::int x;
 static method m(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/check_deferred_as_check.dart.weak.transformed.expect b/pkg/front_end/testcases/general/check_deferred_as_check.dart.weak.transformed.expect
index 3ed13e8..a56fed60 100644
--- a/pkg/front_end/testcases/general/check_deferred_as_check.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/check_deferred_as_check.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,31 +14,21 @@
 
 static method main() → dynamic {}
 static method test(dynamic x) → dynamic {
-  x as invalid-type;
+  x as{ForNonNullableByDefault} invalid-type;
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → self2::C*
+  static field core::int y = 1;
+  synthetic constructor •() → self2::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_args.dart b/pkg/front_end/testcases/general/check_deferred_before_args.dart
index e09f45f..cd12c6d 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args.dart
+++ b/pkg/front_end/testcases/general/check_deferred_before_args.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.md file.
-// @dart=2.9
+
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/general/check_deferred_before_args.dart.textual_outline.expect b/pkg/front_end/testcases/general/check_deferred_before_args.dart.textual_outline.expect
index 2a96740..4ddbfed 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_args.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/general/check_deferred_before_args.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/check_deferred_before_args.dart.textual_outline_modelled.expect
index 3e448d7..2e73aad 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_args.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'deferred_lib.dart' deferred as lib;
 
 m2() => 1;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_args.dart.weak.expect b/pkg/front_end/testcases/general/check_deferred_before_args.dart.weak.expect
index a15d266..1151c13 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args.dart.weak.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_args.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "deferred_lib.dart" as def;
 import "dart:core" as core;
@@ -7,34 +7,24 @@
 
 static method main() → dynamic {}
 static method test() → dynamic {
-  let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::x = self::m2() as{TypeError,ForDynamic} core::int*;
+  let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::x = self::m2() as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
   let final dynamic #t2 = CheckLibraryIsLoaded(lib) in def::m(self::m2());
 }
 static method m2() → dynamic
   return 1;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_args.dart.weak.modular.expect b/pkg/front_end/testcases/general/check_deferred_before_args.dart.weak.modular.expect
index a15d266..1151c13 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_args.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "deferred_lib.dart" as def;
 import "dart:core" as core;
@@ -7,34 +7,24 @@
 
 static method main() → dynamic {}
 static method test() → dynamic {
-  let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::x = self::m2() as{TypeError,ForDynamic} core::int*;
+  let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::x = self::m2() as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
   let final dynamic #t2 = CheckLibraryIsLoaded(lib) in def::m(self::m2());
 }
 static method m2() → dynamic
   return 1;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_args.dart.weak.outline.expect b/pkg/front_end/testcases/general/check_deferred_before_args.dart.weak.outline.expect
index fcde1e9..3ec4fce 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_args.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;
@@ -10,27 +10,17 @@
 static method m2() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y;
-  synthetic constructor •() → self2::C*
+  static field core::int y;
+  synthetic constructor •() → self2::C
     ;
-  static method m() → core::int*
+  static 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
 }
-static field core::int* x;
+static field core::int x;
 static method m(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_args.dart.weak.transformed.expect b/pkg/front_end/testcases/general/check_deferred_before_args.dart.weak.transformed.expect
index 4226f91..723aa95 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_args.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;
@@ -7,34 +7,24 @@
 
 static method main() → dynamic {}
 static method test() → dynamic {
-  let final core::Object* #t1 = CheckLibraryIsLoaded(lib) in def::x = self::m2() as{TypeError,ForDynamic} core::int*;
+  let final core::Object* #t1 = CheckLibraryIsLoaded(lib) in def::x = self::m2() as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
   let final core::Object* #t2 = CheckLibraryIsLoaded(lib) in def::m(self::m2());
 }
 static method m2() → dynamic
   return 1;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_args2.dart b/pkg/front_end/testcases/general/check_deferred_before_args2.dart
index 0792650..ddfdf12 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args2.dart
+++ b/pkg/front_end/testcases/general/check_deferred_before_args2.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.md file.
-// @dart=2.9
+
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/general/check_deferred_before_args2.dart.textual_outline.expect b/pkg/front_end/testcases/general/check_deferred_before_args2.dart.textual_outline.expect
index 97359bb..72746c9 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_args2.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/general/check_deferred_before_args2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/check_deferred_before_args2.dart.textual_outline_modelled.expect
index 97359bb..72746c9 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_args2.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/general/check_deferred_before_args2.dart.weak.expect b/pkg/front_end/testcases/general/check_deferred_before_args2.dart.weak.expect
index 12e71e3..562a536 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args2.dart.weak.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_args2.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "deferred_lib.dart" as def;
 
@@ -9,28 +9,18 @@
   let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::m(await LoadLibrary(lib));
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_args2.dart.weak.modular.expect b/pkg/front_end/testcases/general/check_deferred_before_args2.dart.weak.modular.expect
index 12e71e3..562a536 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_args2.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "deferred_lib.dart" as def;
 
@@ -9,28 +9,18 @@
   let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::m(await LoadLibrary(lib));
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_args2.dart.weak.outline.expect b/pkg/front_end/testcases/general/check_deferred_before_args2.dart.weak.outline.expect
index 21267fc..d43e0b7 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_args2.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,27 +8,17 @@
 static method test() → dynamic async 
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y;
-  synthetic constructor •() → self2::C*
+  static field core::int y;
+  synthetic constructor •() → self2::C
     ;
-  static method m() → core::int*
+  static 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
 }
-static field core::int* x;
+static field core::int x;
 static method m(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_args2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/check_deferred_before_args2.dart.weak.transformed.expect
index 7779f8c..55724af 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_args2.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;
@@ -8,12 +8,12 @@
 
 static method main() → dynamic {}
 static method test() → 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 
@@ -27,38 +27,28 @@
       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;
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_call.dart b/pkg/front_end/testcases/general/check_deferred_before_call.dart
index 2b7aeea..aa6ad85 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_call.dart
+++ b/pkg/front_end/testcases/general/check_deferred_before_call.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.md file.
-// @dart=2.9
+
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/general/check_deferred_before_call.dart.textual_outline.expect b/pkg/front_end/testcases/general/check_deferred_before_call.dart.textual_outline.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_call.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_call.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/general/check_deferred_before_call.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/check_deferred_before_call.dart.textual_outline_modelled.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_call.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_call.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/general/check_deferred_before_call.dart.weak.expect b/pkg/front_end/testcases/general/check_deferred_before_call.dart.weak.expect
index 1d2d900..5922200 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_call.dart.weak.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_call.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "deferred_lib.dart" as def;
 
@@ -9,28 +9,18 @@
   let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::m(3);
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_call.dart.weak.modular.expect b/pkg/front_end/testcases/general/check_deferred_before_call.dart.weak.modular.expect
index 1d2d900..5922200 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_call.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_call.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "deferred_lib.dart" as def;
 
@@ -9,28 +9,18 @@
   let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::m(3);
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_call.dart.weak.outline.expect b/pkg/front_end/testcases/general/check_deferred_before_call.dart.weak.outline.expect
index 5a345b6..f6365f4 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_call.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_call.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,27 +8,17 @@
 static method test() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y;
-  synthetic constructor •() → self2::C*
+  static field core::int y;
+  synthetic constructor •() → self2::C
     ;
-  static method m() → core::int*
+  static 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
 }
-static field core::int* x;
+static field core::int x;
 static method m(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_call.dart.weak.transformed.expect b/pkg/front_end/testcases/general/check_deferred_before_call.dart.weak.transformed.expect
index 5786537..b826654 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_call.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_call.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,28 +10,18 @@
   let final core::Object* #t1 = CheckLibraryIsLoaded(lib) in def::m(3);
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_write.dart b/pkg/front_end/testcases/general/check_deferred_before_write.dart
index 4d57d7a..5a8f96c 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_write.dart
+++ b/pkg/front_end/testcases/general/check_deferred_before_write.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.md file.
-// @dart=2.9
+
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/general/check_deferred_before_write.dart.textual_outline.expect b/pkg/front_end/testcases/general/check_deferred_before_write.dart.textual_outline.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_write.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_write.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/general/check_deferred_before_write.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/check_deferred_before_write.dart.textual_outline_modelled.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_write.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_write.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/general/check_deferred_before_write.dart.weak.expect b/pkg/front_end/testcases/general/check_deferred_before_write.dart.weak.expect
index 549e5e0..3586395 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_write.dart.weak.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_write.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "deferred_lib.dart" as def;
 
@@ -9,28 +9,18 @@
   let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::x = 2;
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_write.dart.weak.modular.expect b/pkg/front_end/testcases/general/check_deferred_before_write.dart.weak.modular.expect
index 549e5e0..3586395 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_write.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_write.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "deferred_lib.dart" as def;
 
@@ -9,28 +9,18 @@
   let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::x = 2;
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_write.dart.weak.outline.expect b/pkg/front_end/testcases/general/check_deferred_before_write.dart.weak.outline.expect
index 5a345b6..f6365f4 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_write.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_write.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,27 +8,17 @@
 static method test() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y;
-  synthetic constructor •() → self2::C*
+  static field core::int y;
+  synthetic constructor •() → self2::C
     ;
-  static method m() → core::int*
+  static 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
 }
-static field core::int* x;
+static field core::int x;
 static method m(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_write.dart.weak.transformed.expect b/pkg/front_end/testcases/general/check_deferred_before_write.dart.weak.transformed.expect
index 9426037..99632dd 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_write.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_write.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,28 +10,18 @@
   let final core::Object* #t1 = CheckLibraryIsLoaded(lib) in def::x = 2;
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_is_check.dart b/pkg/front_end/testcases/general/check_deferred_is_check.dart
index f433222..7069d9a 100644
--- a/pkg/front_end/testcases/general/check_deferred_is_check.dart
+++ b/pkg/front_end/testcases/general/check_deferred_is_check.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.md file.
-// @dart=2.9
+
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/general/check_deferred_is_check.dart.textual_outline.expect b/pkg/front_end/testcases/general/check_deferred_is_check.dart.textual_outline.expect
index 0ef0840..9a994a0 100644
--- a/pkg/front_end/testcases/general/check_deferred_is_check.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_is_check.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/general/check_deferred_is_check.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/check_deferred_is_check.dart.textual_outline_modelled.expect
index 0ef0840..9a994a0 100644
--- a/pkg/front_end/testcases/general/check_deferred_is_check.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/check_deferred_is_check.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/general/check_deferred_is_check.dart.weak.expect b/pkg/front_end/testcases/general/check_deferred_is_check.dart.weak.expect
index 08b44c2..4fdb6a6 100644
--- a/pkg/front_end/testcases/general/check_deferred_is_check.dart.weak.expect
+++ b/pkg/front_end/testcases/general/check_deferred_is_check.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,31 +15,21 @@
 
 static method main() → dynamic {}
 static method test(dynamic x) → dynamic {
-  core::print(x is invalid-type);
+  core::print(x is{ForNonNullableByDefault} invalid-type);
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → self2::C*
+  static field core::int y = 1;
+  synthetic constructor •() → self2::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_is_check.dart.weak.modular.expect b/pkg/front_end/testcases/general/check_deferred_is_check.dart.weak.modular.expect
index 08b44c2..4fdb6a6 100644
--- a/pkg/front_end/testcases/general/check_deferred_is_check.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/check_deferred_is_check.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,31 +15,21 @@
 
 static method main() → dynamic {}
 static method test(dynamic x) → dynamic {
-  core::print(x is invalid-type);
+  core::print(x is{ForNonNullableByDefault} invalid-type);
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → self2::C*
+  static field core::int y = 1;
+  synthetic constructor •() → self2::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_is_check.dart.weak.outline.expect b/pkg/front_end/testcases/general/check_deferred_is_check.dart.weak.outline.expect
index 2235d55..8aef89e 100644
--- a/pkg/front_end/testcases/general/check_deferred_is_check.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_is_check.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,27 +8,17 @@
 static method test(dynamic x) → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y;
-  synthetic constructor •() → self2::C*
+  static field core::int y;
+  synthetic constructor •() → self2::C
     ;
-  static method m() → core::int*
+  static 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
 }
-static field core::int* x;
+static field core::int x;
 static method m(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/check_deferred_is_check.dart.weak.transformed.expect b/pkg/front_end/testcases/general/check_deferred_is_check.dart.weak.transformed.expect
index 08b44c2..4fdb6a6 100644
--- a/pkg/front_end/testcases/general/check_deferred_is_check.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/check_deferred_is_check.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -15,31 +15,21 @@
 
 static method main() → dynamic {}
 static method test(dynamic x) → dynamic {
-  core::print(x is invalid-type);
+  core::print(x is{ForNonNullableByDefault} invalid-type);
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → self2::C*
+  static field core::int y = 1;
+  synthetic constructor •() → self2::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_read.dart b/pkg/front_end/testcases/general/check_deferred_read.dart
index bcecacf..0cebef0 100644
--- a/pkg/front_end/testcases/general/check_deferred_read.dart
+++ b/pkg/front_end/testcases/general/check_deferred_read.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.md file.
-// @dart=2.9
+
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/general/check_deferred_read.dart.textual_outline.expect b/pkg/front_end/testcases/general/check_deferred_read.dart.textual_outline.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/general/check_deferred_read.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read.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/general/check_deferred_read.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/check_deferred_read.dart.textual_outline_modelled.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/general/check_deferred_read.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read.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/general/check_deferred_read.dart.weak.expect b/pkg/front_end/testcases/general/check_deferred_read.dart.weak.expect
index d298cb9..5aaa126 100644
--- a/pkg/front_end/testcases/general/check_deferred_read.dart.weak.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "deferred_lib.dart" as def;
@@ -7,31 +7,21 @@
 
 static method main() → dynamic {}
 static method test() → dynamic {
-  core::print((let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::x).{core::num::+}(1){(core::num*) →* core::int*});
+  core::print((let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::x).{core::num::+}(1){(core::num) → core::int});
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_read.dart.weak.modular.expect b/pkg/front_end/testcases/general/check_deferred_read.dart.weak.modular.expect
index d298cb9..5aaa126 100644
--- a/pkg/front_end/testcases/general/check_deferred_read.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "deferred_lib.dart" as def;
@@ -7,31 +7,21 @@
 
 static method main() → dynamic {}
 static method test() → dynamic {
-  core::print((let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::x).{core::num::+}(1){(core::num*) →* core::int*});
+  core::print((let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::x).{core::num::+}(1){(core::num) → core::int});
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_read.dart.weak.outline.expect b/pkg/front_end/testcases/general/check_deferred_read.dart.weak.outline.expect
index 5a345b6..f6365f4 100644
--- a/pkg/front_end/testcases/general/check_deferred_read.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read.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,27 +8,17 @@
 static method test() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y;
-  synthetic constructor •() → self2::C*
+  static field core::int y;
+  synthetic constructor •() → self2::C
     ;
-  static method m() → core::int*
+  static 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
 }
-static field core::int* x;
+static field core::int x;
 static method m(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/check_deferred_read.dart.weak.transformed.expect b/pkg/front_end/testcases/general/check_deferred_read.dart.weak.transformed.expect
index 6962eb7..c05e5ef 100644
--- a/pkg/front_end/testcases/general/check_deferred_read.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read.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;
@@ -7,31 +7,21 @@
 
 static method main() → dynamic {}
 static method test() → dynamic {
-  core::print((let final core::Object* #t1 = CheckLibraryIsLoaded(lib) in def::x).{core::num::+}(1){(core::num*) →* core::int*});
+  core::print((let final core::Object* #t1 = CheckLibraryIsLoaded(lib) in def::x).{core::num::+}(1){(core::num) → core::int});
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_read_static_field.dart b/pkg/front_end/testcases/general/check_deferred_read_static_field.dart
index 47ba0f5..0a446f7 100644
--- a/pkg/front_end/testcases/general/check_deferred_read_static_field.dart
+++ b/pkg/front_end/testcases/general/check_deferred_read_static_field.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.md file.
-// @dart=2.9
+
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.textual_outline.expect b/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.textual_outline.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read_static_field.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/general/check_deferred_read_static_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.textual_outline_modelled.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read_static_field.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/general/check_deferred_read_static_field.dart.weak.expect b/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.weak.expect
index 7ebd7ea..0ee8d1d 100644
--- a/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.weak.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "deferred_lib.dart" as def;
@@ -10,28 +10,18 @@
   core::print(let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::C::y);
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.weak.modular.expect b/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.weak.modular.expect
index 7ebd7ea..0ee8d1d 100644
--- a/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "deferred_lib.dart" as def;
@@ -10,28 +10,18 @@
   core::print(let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::C::y);
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.weak.outline.expect b/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.weak.outline.expect
index 5a345b6..f6365f4 100644
--- a/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read_static_field.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,27 +8,17 @@
 static method test() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y;
-  synthetic constructor •() → self2::C*
+  static field core::int y;
+  synthetic constructor •() → self2::C
     ;
-  static method m() → core::int*
+  static 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
 }
-static field core::int* x;
+static field core::int x;
 static method m(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.weak.transformed.expect b/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.weak.transformed.expect
index a347b0a..b9fcf29 100644
--- a/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read_static_field.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,28 +10,18 @@
   core::print(let final core::Object* #t1 = CheckLibraryIsLoaded(lib) in def::C::y);
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_read_type.dart b/pkg/front_end/testcases/general/check_deferred_read_type.dart
index 52b7600..be64b65 100644
--- a/pkg/front_end/testcases/general/check_deferred_read_type.dart
+++ b/pkg/front_end/testcases/general/check_deferred_read_type.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE.md file.
-// @dart=2.9
+
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/general/check_deferred_read_type.dart.textual_outline.expect b/pkg/front_end/testcases/general/check_deferred_read_type.dart.textual_outline.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/general/check_deferred_read_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read_type.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/general/check_deferred_read_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/check_deferred_read_type.dart.textual_outline_modelled.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/general/check_deferred_read_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read_type.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/general/check_deferred_read_type.dart.weak.expect b/pkg/front_end/testcases/general/check_deferred_read_type.dart.weak.expect
index efb9d56..f7ddaf5 100644
--- a/pkg/front_end/testcases/general/check_deferred_read_type.dart.weak.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read_type.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -9,29 +9,19 @@
   core::print(let final dynamic #t1 = CheckLibraryIsLoaded(lib) in #C1);
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → self2::C*
+  static field core::int y = 1;
+  synthetic constructor •() → self2::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
 
diff --git a/pkg/front_end/testcases/general/check_deferred_read_type.dart.weak.modular.expect b/pkg/front_end/testcases/general/check_deferred_read_type.dart.weak.modular.expect
index efb9d56..f7ddaf5 100644
--- a/pkg/front_end/testcases/general/check_deferred_read_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read_type.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -9,29 +9,19 @@
   core::print(let final dynamic #t1 = CheckLibraryIsLoaded(lib) in #C1);
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → self2::C*
+  static field core::int y = 1;
+  synthetic constructor •() → self2::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
 
diff --git a/pkg/front_end/testcases/general/check_deferred_read_type.dart.weak.outline.expect b/pkg/front_end/testcases/general/check_deferred_read_type.dart.weak.outline.expect
index 5a345b6..f6365f4 100644
--- a/pkg/front_end/testcases/general/check_deferred_read_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read_type.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,27 +8,17 @@
 static method test() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y;
-  synthetic constructor •() → self2::C*
+  static field core::int y;
+  synthetic constructor •() → self2::C
     ;
-  static method m() → core::int*
+  static 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
 }
-static field core::int* x;
+static field core::int x;
 static method m(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/check_deferred_read_type.dart.weak.transformed.expect b/pkg/front_end/testcases/general/check_deferred_read_type.dart.weak.transformed.expect
index 2813c9c5..38b8100 100644
--- a/pkg/front_end/testcases/general/check_deferred_read_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/check_deferred_read_type.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
@@ -9,29 +9,19 @@
   core::print(let final core::Object* #t1 = CheckLibraryIsLoaded(lib) in #C1);
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → self2::C*
+  static field core::int y = 1;
+  synthetic constructor •() → self2::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
 
diff --git a/pkg/front_end/testcases/general/check_deferred_static_method_call.dart b/pkg/front_end/testcases/general/check_deferred_static_method_call.dart
index 195df66..63008c6 100644
--- a/pkg/front_end/testcases/general/check_deferred_static_method_call.dart
+++ b/pkg/front_end/testcases/general/check_deferred_static_method_call.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.md file.
-// @dart=2.9
+
 import 'deferred_lib.dart' deferred as lib;
 
 main() {}
diff --git a/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.textual_outline.expect b/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.textual_outline.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_static_method_call.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/general/check_deferred_static_method_call.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.textual_outline_modelled.expect
index 87d2faf..05d29b6 100644
--- a/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/check_deferred_static_method_call.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/general/check_deferred_static_method_call.dart.weak.expect b/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.weak.expect
index 2fb6711..65b5df4 100644
--- a/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.weak.expect
+++ b/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "deferred_lib.dart" as def;
@@ -10,28 +10,18 @@
   core::print(let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::C::m());
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.weak.modular.expect b/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.weak.modular.expect
index 2fb6711..65b5df4 100644
--- a/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "deferred_lib.dart" as def;
@@ -10,28 +10,18 @@
   core::print(let final dynamic #t1 = CheckLibraryIsLoaded(lib) in def::C::m());
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.weak.outline.expect b/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.weak.outline.expect
index 5a345b6..f6365f4 100644
--- a/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_static_method_call.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,27 +8,17 @@
 static method test() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y;
-  synthetic constructor •() → self2::C*
+  static field core::int y;
+  synthetic constructor •() → self2::C
     ;
-  static method m() → core::int*
+  static 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
 }
-static field core::int* x;
+static field core::int x;
 static method m(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.weak.transformed.expect b/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.weak.transformed.expect
index 5674209..f3932c8 100644
--- a/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/check_deferred_static_method_call.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,28 +10,18 @@
   core::print(let final core::Object* #t1 = CheckLibraryIsLoaded(lib) in def::C::m());
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart b/pkg/front_end/testcases/general/check_deferred_type_declaration.dart
index 8844264..f3cc305 100644
--- a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart
+++ b/pkg/front_end/testcases/general/check_deferred_type_declaration.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.md file.
-// @dart=2.9
+
 import 'deferred_lib.dart' deferred as lib;
 
 main() => test();
diff --git a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.textual_outline.expect
index 2e15ba2..b8fbde2 100644
--- a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'deferred_lib.dart' deferred as lib;
 
 main() => test();
diff --git a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.textual_outline_modelled.expect
index 2e15ba2..b8fbde2 100644
--- a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'deferred_lib.dart' deferred as lib;
 
 main() => test();
diff --git a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.expect b/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.expect
index 1189c30..a82addd 100644
--- a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.expect
+++ b/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,28 +18,18 @@
   invalid-type x = null;
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → self2::C*
+  static field core::int y = 1;
+  synthetic constructor •() → self2::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.modular.expect
index 1189c30..a82addd 100644
--- a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,28 +18,18 @@
   invalid-type x = null;
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → self2::C*
+  static field core::int y = 1;
+  synthetic constructor •() → self2::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.outline.expect
index 5a345b6..f6365f4 100644
--- a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/check_deferred_type_declaration.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,27 +8,17 @@
 static method test() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y;
-  synthetic constructor •() → self2::C*
+  static field core::int y;
+  synthetic constructor •() → self2::C
     ;
-  static method m() → core::int*
+  static 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
 }
-static field core::int* x;
+static field core::int x;
 static method m(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.transformed.expect
index 1189c30..a82addd 100644
--- a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,28 +18,18 @@
   invalid-type x = null;
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → self2::C*
+  static field core::int y = 1;
+  synthetic constructor •() → self2::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart b/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart
index 0c607b4..a5d3a57 100644
--- a/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart
+++ b/pkg/front_end/testcases/general/circularity-via-initializing-formal.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
+
 // This test is intended to trigger a circular top-level type-inference
 // dependency involving an initializing formal where the circularity is detected
 // when inferring the type of the constructor.
diff --git a/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.expect b/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.expect
index 80172a1..5c0080d 100644
--- a/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.expect
+++ b/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.expect
@@ -2,7 +2,7 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/circularity-via-initializing-formal.dart:15:3: Error: Can't infer the type of 'C._circular': circularity found during type inference.
+// pkg/front_end/testcases/general/circularity-via-initializing-formal.dart:17:3: Error: Can't infer the type of 'C._circular': circularity found during type inference.
 // Specify the type explicitly.
 //   C._circular(this.f);
 //   ^^^^^^^^^^^
diff --git a/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.modular.expect b/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.modular.expect
index 80172a1..5c0080d 100644
--- a/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.modular.expect
@@ -2,7 +2,7 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/circularity-via-initializing-formal.dart:15:3: Error: Can't infer the type of 'C._circular': circularity found during type inference.
+// pkg/front_end/testcases/general/circularity-via-initializing-formal.dart:17:3: Error: Can't infer the type of 'C._circular': circularity found during type inference.
 // Specify the type explicitly.
 //   C._circular(this.f);
 //   ^^^^^^^^^^^
diff --git a/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.outline.expect b/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.outline.expect
index 676b3ff..3d18a5c 100644
--- a/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.outline.expect
@@ -2,7 +2,7 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/circularity-via-initializing-formal.dart:15:3: Error: Can't infer the type of 'C._circular': circularity found during type inference.
+// pkg/front_end/testcases/general/circularity-via-initializing-formal.dart:17:3: Error: Can't infer the type of 'C._circular': circularity found during type inference.
 // Specify the type explicitly.
 //   C._circular(this.f);
 //   ^^^^^^^^^^^
diff --git a/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.transformed.expect b/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.transformed.expect
index 80172a1..5c0080d 100644
--- a/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/circularity-via-initializing-formal.dart:15:3: Error: Can't infer the type of 'C._circular': circularity found during type inference.
+// pkg/front_end/testcases/general/circularity-via-initializing-formal.dart:17:3: Error: Can't infer the type of 'C._circular': circularity found during type inference.
 // Specify the type explicitly.
 //   C._circular(this.f);
 //   ^^^^^^^^^^^
diff --git a/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart b/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart
new file mode 100644
index 0000000..abd1615
--- /dev/null
+++ b/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart
@@ -0,0 +1,18 @@
+// 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.
+
+// This test is intended to trigger a circular top-level type-inference
+// dependency involving an initializing formal where the circularity is detected
+// when inferring the type of the constructor.
+//
+// The compiler should generate an error message and it should be properly
+// formatted including offset and length of the constructor.
+var x = new C._circular(null);
+
+class C {
+  var f = new C._circular(null);
+  C._circular(this.f);
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.textual_outline.expect b/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.textual_outline.expect
new file mode 100644
index 0000000..9252577
--- /dev/null
+++ b/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.textual_outline.expect
@@ -0,0 +1,8 @@
+var x = new C._circular(null);
+
+class C {
+  var f = new C._circular(null);
+  C._circular(this.f);
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..9e8e7de
--- /dev/null
+++ b/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.textual_outline_modelled.expect
@@ -0,0 +1,7 @@
+class C {
+  C._circular(this.f);
+  var f = new C._circular(null);
+}
+
+main() {}
+var x = new C._circular(null);
diff --git a/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.weak.expect b/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.weak.expect
new file mode 100644
index 0000000..05caab1
--- /dev/null
+++ b/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.weak.expect
@@ -0,0 +1,36 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:15:3: Error: Can't infer the type of 'C._circular': circularity found during type inference.
+// Specify the type explicitly.
+//   C._circular(this.f);
+//   ^^^^^^^^^^^
+//
+// pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:11:25: Error: The value 'null' can't be assigned to the parameter type 'C' because 'C' is not nullable.
+//  - 'C' is from 'pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart'.
+// var x = new C._circular(null);
+//                         ^
+//
+// pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:14:27: Error: The value 'null' can't be assigned to the parameter type 'C' because 'C' is not nullable.
+//  - 'C' is from 'pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart'.
+//   var f = new C._circular(null);
+//                           ^
+//
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+  field self::C f = new self::C::_circular(invalid-expression "pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:14:27: Error: The value 'null' can't be assigned to the parameter type 'C' because 'C' is not nullable.
+ - 'C' is from 'pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart'.
+  var f = new C._circular(null);
+                          ^" in null as{TypeError,ForNonNullableByDefault} self::C);
+  constructor _circular(self::C f) → self::C
+    : self::C::f = f, super core::Object::•()
+    ;
+}
+static field self::C x = new self::C::_circular(invalid-expression "pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:11:25: Error: The value 'null' can't be assigned to the parameter type 'C' because 'C' is not nullable.
+ - 'C' is from 'pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart'.
+var x = new C._circular(null);
+                        ^" in null as{TypeError,ForNonNullableByDefault} self::C);
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.weak.modular.expect b/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.weak.modular.expect
new file mode 100644
index 0000000..05caab1
--- /dev/null
+++ b/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.weak.modular.expect
@@ -0,0 +1,36 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:15:3: Error: Can't infer the type of 'C._circular': circularity found during type inference.
+// Specify the type explicitly.
+//   C._circular(this.f);
+//   ^^^^^^^^^^^
+//
+// pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:11:25: Error: The value 'null' can't be assigned to the parameter type 'C' because 'C' is not nullable.
+//  - 'C' is from 'pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart'.
+// var x = new C._circular(null);
+//                         ^
+//
+// pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:14:27: Error: The value 'null' can't be assigned to the parameter type 'C' because 'C' is not nullable.
+//  - 'C' is from 'pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart'.
+//   var f = new C._circular(null);
+//                           ^
+//
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+  field self::C f = new self::C::_circular(invalid-expression "pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:14:27: Error: The value 'null' can't be assigned to the parameter type 'C' because 'C' is not nullable.
+ - 'C' is from 'pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart'.
+  var f = new C._circular(null);
+                          ^" in null as{TypeError,ForNonNullableByDefault} self::C);
+  constructor _circular(self::C f) → self::C
+    : self::C::f = f, super core::Object::•()
+    ;
+}
+static field self::C x = new self::C::_circular(invalid-expression "pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:11:25: Error: The value 'null' can't be assigned to the parameter type 'C' because 'C' is not nullable.
+ - 'C' is from 'pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart'.
+var x = new C._circular(null);
+                        ^" in null as{TypeError,ForNonNullableByDefault} self::C);
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.weak.outline.expect b/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.weak.outline.expect
new file mode 100644
index 0000000..987eea8
--- /dev/null
+++ b/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.weak.outline.expect
@@ -0,0 +1,20 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:15:3: Error: Can't infer the type of 'C._circular': circularity found during type inference.
+// Specify the type explicitly.
+//   C._circular(this.f);
+//   ^^^^^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+  field self::C f;
+  constructor _circular(self::C f) → self::C
+    ;
+}
+static field self::C x;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.weak.transformed.expect
new file mode 100644
index 0000000..dbb419c
--- /dev/null
+++ b/pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart.weak.transformed.expect
@@ -0,0 +1,36 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:15:3: Error: Can't infer the type of 'C._circular': circularity found during type inference.
+// Specify the type explicitly.
+//   C._circular(this.f);
+//   ^^^^^^^^^^^
+//
+// pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:11:25: Error: The value 'null' can't be assigned to the parameter type 'C' because 'C' is not nullable.
+//  - 'C' is from 'pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart'.
+// var x = new C._circular(null);
+//                         ^
+//
+// pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:14:27: Error: The value 'null' can't be assigned to the parameter type 'C' because 'C' is not nullable.
+//  - 'C' is from 'pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart'.
+//   var f = new C._circular(null);
+//                           ^
+//
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+  field self::C f = new self::C::_circular(invalid-expression "pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:14:27: Error: The value 'null' can't be assigned to the parameter type 'C' because 'C' is not nullable.
+ - 'C' is from 'pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart'.
+  var f = new C._circular(null);
+                          ^" in null);
+  constructor _circular(self::C f) → self::C
+    : self::C::f = f, super core::Object::•()
+    ;
+}
+static field self::C x = new self::C::_circular(invalid-expression "pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:11:25: Error: The value 'null' can't be assigned to the parameter type 'C' because 'C' is not nullable.
+ - 'C' is from 'pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart'.
+var x = new C._circular(null);
+                        ^" in null);
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/classes.dart b/pkg/front_end/testcases/general/classes.dart
index a313cd6..1536904 100644
--- a/pkg/front_end/testcases/general/classes.dart
+++ b/pkg/front_end/testcases/general/classes.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 {
   final int x;
   final int y;
diff --git a/pkg/front_end/testcases/general/classes.dart.textual_outline.expect b/pkg/front_end/testcases/general/classes.dart.textual_outline.expect
index ab6ce24..db9b2ee 100644
--- a/pkg/front_end/testcases/general/classes.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/classes.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   final int x;
   final int y;
diff --git a/pkg/front_end/testcases/general/classes.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/classes.dart.textual_outline_modelled.expect
index 385bce7..6b4696f 100644
--- a/pkg/front_end/testcases/general/classes.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/classes.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A(this.y) : x = 42;
   final int x;
diff --git a/pkg/front_end/testcases/general/classes.dart.weak.expect b/pkg/front_end/testcases/general/classes.dart.weak.expect
index 288e237..1ce50ca 100644
--- a/pkg/front_end/testcases/general/classes.dart.weak.expect
+++ b/pkg/front_end/testcases/general/classes.dart.weak.expect
@@ -1,41 +1,31 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  final field core::int* x;
-  final field core::int* y;
-  constructor •(core::int* y) → self::A*
+  final field core::int x;
+  final field core::int y;
+  constructor •(core::int y) → self::A
     : self::A::y = y, self::A::x = 42, super core::Object::•()
     ;
   method method() → dynamic {
-    core::print("A.method x: ${this.{self::A::x}{core::int*}} y: ${this.{self::A::y}{core::int*}}");
+    core::print("A.method x: ${this.{self::A::x}{core::int}} y: ${this.{self::A::y}{core::int}}");
     core::print(this);
-    core::print(this.{self::A::runtimeType}{core::Type*});
+    core::print(this.{core::Object::runtimeType}{core::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 {
-  constructor •(dynamic x) → self::B*
-    : super self::A::•(x as{TypeError,ForDynamic} core::int*)
+  constructor •(dynamic x) → self::B
+    : super self::A::•(x as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
     ;
   method method() → dynamic {
-    core::print("B.method x: ${this.{self::A::x}{core::int*}} y: ${this.{self::A::y}{core::int*}}");
+    core::print("B.method x: ${this.{self::A::x}{core::int}} y: ${this.{self::A::y}{core::int}}");
     super.{self::A::method}();
   }
 }
 static method main() → dynamic {
-  self::A* a = new self::A::•(87);
-  self::B* b = new self::B::•(117);
-  a.{self::A::method}(){() →* dynamic};
-  b.{self::B::method}(){() →* dynamic};
+  self::A a = new self::A::•(87);
+  self::B b = new self::B::•(117);
+  a.{self::A::method}(){() → dynamic};
+  b.{self::B::method}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/general/classes.dart.weak.modular.expect b/pkg/front_end/testcases/general/classes.dart.weak.modular.expect
index 288e237..1ce50ca 100644
--- a/pkg/front_end/testcases/general/classes.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/classes.dart.weak.modular.expect
@@ -1,41 +1,31 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  final field core::int* x;
-  final field core::int* y;
-  constructor •(core::int* y) → self::A*
+  final field core::int x;
+  final field core::int y;
+  constructor •(core::int y) → self::A
     : self::A::y = y, self::A::x = 42, super core::Object::•()
     ;
   method method() → dynamic {
-    core::print("A.method x: ${this.{self::A::x}{core::int*}} y: ${this.{self::A::y}{core::int*}}");
+    core::print("A.method x: ${this.{self::A::x}{core::int}} y: ${this.{self::A::y}{core::int}}");
     core::print(this);
-    core::print(this.{self::A::runtimeType}{core::Type*});
+    core::print(this.{core::Object::runtimeType}{core::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 {
-  constructor •(dynamic x) → self::B*
-    : super self::A::•(x as{TypeError,ForDynamic} core::int*)
+  constructor •(dynamic x) → self::B
+    : super self::A::•(x as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
     ;
   method method() → dynamic {
-    core::print("B.method x: ${this.{self::A::x}{core::int*}} y: ${this.{self::A::y}{core::int*}}");
+    core::print("B.method x: ${this.{self::A::x}{core::int}} y: ${this.{self::A::y}{core::int}}");
     super.{self::A::method}();
   }
 }
 static method main() → dynamic {
-  self::A* a = new self::A::•(87);
-  self::B* b = new self::B::•(117);
-  a.{self::A::method}(){() →* dynamic};
-  b.{self::B::method}(){() →* dynamic};
+  self::A a = new self::A::•(87);
+  self::B b = new self::B::•(117);
+  a.{self::A::method}(){() → dynamic};
+  b.{self::B::method}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/general/classes.dart.weak.outline.expect b/pkg/front_end/testcases/general/classes.dart.weak.outline.expect
index 6973fa9..c431efd 100644
--- a/pkg/front_end/testcases/general/classes.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/classes.dart.weak.outline.expect
@@ -1,27 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  final field core::int* x;
-  final field core::int* y;
-  constructor •(core::int* y) → self::A*
+  final field core::int x;
+  final field core::int y;
+  constructor •(core::int y) → self::A
     ;
   method method() → dynamic
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends self::A {
-  constructor •(dynamic x) → self::B*
+  constructor •(dynamic x) → self::B
     ;
   method method() → dynamic
     ;
diff --git a/pkg/front_end/testcases/general/classes.dart.weak.transformed.expect b/pkg/front_end/testcases/general/classes.dart.weak.transformed.expect
index 288e237..1ce50ca 100644
--- a/pkg/front_end/testcases/general/classes.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/classes.dart.weak.transformed.expect
@@ -1,41 +1,31 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  final field core::int* x;
-  final field core::int* y;
-  constructor •(core::int* y) → self::A*
+  final field core::int x;
+  final field core::int y;
+  constructor •(core::int y) → self::A
     : self::A::y = y, self::A::x = 42, super core::Object::•()
     ;
   method method() → dynamic {
-    core::print("A.method x: ${this.{self::A::x}{core::int*}} y: ${this.{self::A::y}{core::int*}}");
+    core::print("A.method x: ${this.{self::A::x}{core::int}} y: ${this.{self::A::y}{core::int}}");
     core::print(this);
-    core::print(this.{self::A::runtimeType}{core::Type*});
+    core::print(this.{core::Object::runtimeType}{core::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 {
-  constructor •(dynamic x) → self::B*
-    : super self::A::•(x as{TypeError,ForDynamic} core::int*)
+  constructor •(dynamic x) → self::B
+    : super self::A::•(x as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
     ;
   method method() → dynamic {
-    core::print("B.method x: ${this.{self::A::x}{core::int*}} y: ${this.{self::A::y}{core::int*}}");
+    core::print("B.method x: ${this.{self::A::x}{core::int}} y: ${this.{self::A::y}{core::int}}");
     super.{self::A::method}();
   }
 }
 static method main() → dynamic {
-  self::A* a = new self::A::•(87);
-  self::B* b = new self::B::•(117);
-  a.{self::A::method}(){() →* dynamic};
-  b.{self::B::method}(){() →* dynamic};
+  self::A a = new self::A::•(87);
+  self::B b = new self::B::•(117);
+  a.{self::A::method}(){() → dynamic};
+  b.{self::B::method}(){() → dynamic};
 }
diff --git a/pkg/front_end/testcases/general/clone_function_type.dart b/pkg/front_end/testcases/general/clone_function_type.dart
index e8b603f..e96b111 100644
--- a/pkg/front_end/testcases/general/clone_function_type.dart
+++ b/pkg/front_end/testcases/general/clone_function_type.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-// @dart=2.9
+
 // In the classes below the function type is cloned when the anonymous mixin
 // application is desugared into a named mixin application, in order to re-bind
 // the type builders for its subterms.
@@ -171,88 +171,88 @@
 // its factories, including the bounds that are type builders.
 
 class Af1<X extends Function(int)> {
-  factory Af1.foo() => null;
+  factory Af1.foo() => throw '';
 }
 
 class Bf1<X extends Function(int x)> {
-  factory Bf1.foo() => null;
+  factory Bf1.foo() => throw '';
 }
 
 class Cf1<X extends int Function()> {
-  factory Cf1.foo() => null;
+  factory Cf1.foo() => throw '';
 }
 
 class Df1<X extends Function()> {
-  factory Df1.foo() => null;
+  factory Df1.foo() => throw '';
 }
 
 // Compile-time error: Named parameters should have names.
 class Ef1<X extends Function({int})> {
-  factory Ef1.foo() => null;
+  factory Ef1.foo() => throw '';
 }
 
 class Ff1<X extends Function({int x})> {
-  factory Ff1.foo() => null;
+  factory Ff1.foo() => throw '';
 }
 
 class Gf1<X extends Function([int])> {
-  factory Gf1.foo() => null;
+  factory Gf1.foo() => throw '';
 }
 
 class Hf1<X extends Function([int x])> {
-  factory Hf1.foo() => null;
+  factory Hf1.foo() => throw '';
 }
 
 class If1<X extends Function> {
-  factory If1.foo() => null;
+  factory If1.foo() => throw '';
 }
 
 class Jf1<X extends Function(Function Function)> {
-  factory Jf1.foo() => null;
+  factory Jf1.foo() => throw '';
 }
 
 class Kf1<X extends Function(Function Function() Function) Function()> {
-  factory Kf1.foo() => null;
+  factory Kf1.foo() => throw '';
 }
 
 class Bf2<X extends TdB> {
-  factory Bf2.foo() => null;
+  factory Bf2.foo() => throw '';
 }
 
 class Cf2<X extends TdC> {
-  factory Cf2.foo() => null;
+  factory Cf2.foo() => throw '';
 }
 
 class Df2<X extends TdD> {
-  factory Df2.foo() => null;
+  factory Df2.foo() => throw '';
 }
 
 class Ef2<X extends TdE> {
-  factory Ef2.foo() => null;
+  factory Ef2.foo() => throw '';
 }
 
 class Ff2<X extends TdF> {
-  factory Ff2.foo() => null;
+  factory Ff2.foo() => throw '';
 }
 
 class Gf2<X extends TdG> {
-  factory Gf2.foo() => null;
+  factory Gf2.foo() => throw '';
 }
 
 class Hf2<X extends TdH> {
-  factory Hf2.foo() => null;
+  factory Hf2.foo() => throw '';
 }
 
 class If2<X extends TdI> {
-  factory If2.foo() => null;
+  factory If2.foo() => throw '';
 }
 
 class Jf2<X extends TdJ> {
-  factory Jf2.foo() => null;
+  factory Jf2.foo() => throw '';
 }
 
 class Kf2<X extends TdK> {
-  factory Kf2.foo() => null;
+  factory Kf2.foo() => throw '';
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.textual_outline.expect b/pkg/front_end/testcases/general/clone_function_type.dart.textual_outline.expect
index 84a2a60..dd4222c 100644
--- a/pkg/front_end/testcases/general/clone_function_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/clone_function_type.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Am1<X, Y> {}
 class Bm1<Z> extends Object with Am1<Function(int), Z> {}
 class Cm1<Z> extends Object with Am1<Function(int x), Z> {}
@@ -67,66 +66,66 @@
 class Jm3<Z> extends Object with Am3<TdJ, Z> {}
 class Km3<Z> extends Object with Am3<TdK, Z> {}
 class Af1<X extends Function(int)> {
-  factory Af1.foo() => null;
+  factory Af1.foo() => throw '';
 }
 class Bf1<X extends Function(int x)> {
-  factory Bf1.foo() => null;
+  factory Bf1.foo() => throw '';
 }
 class Cf1<X extends int Function()> {
-  factory Cf1.foo() => null;
+  factory Cf1.foo() => throw '';
 }
 class Df1<X extends Function()> {
-  factory Df1.foo() => null;
+  factory Df1.foo() => throw '';
 }
 class Ef1<X extends Function({int})> {
-  factory Ef1.foo() => null;
+  factory Ef1.foo() => throw '';
 }
 class Ff1<X extends Function({int x})> {
-  factory Ff1.foo() => null;
+  factory Ff1.foo() => throw '';
 }
 class Gf1<X extends Function([int])> {
-  factory Gf1.foo() => null;
+  factory Gf1.foo() => throw '';
 }
 class Hf1<X extends Function([int x])> {
-  factory Hf1.foo() => null;
+  factory Hf1.foo() => throw '';
 }
 class If1<X extends Function> {
-  factory If1.foo() => null;
+  factory If1.foo() => throw '';
 }
 class Jf1<X extends Function(Function Function)> {
-  factory Jf1.foo() => null;
+  factory Jf1.foo() => throw '';
 }
 class Kf1<X extends Function(Function Function() Function) Function()> {
-  factory Kf1.foo() => null;
+  factory Kf1.foo() => throw '';
 }
 class Bf2<X extends TdB> {
-  factory Bf2.foo() => null;
+  factory Bf2.foo() => throw '';
 }
 class Cf2<X extends TdC> {
-  factory Cf2.foo() => null;
+  factory Cf2.foo() => throw '';
 }
 class Df2<X extends TdD> {
-  factory Df2.foo() => null;
+  factory Df2.foo() => throw '';
 }
 class Ef2<X extends TdE> {
-  factory Ef2.foo() => null;
+  factory Ef2.foo() => throw '';
 }
 class Ff2<X extends TdF> {
-  factory Ff2.foo() => null;
+  factory Ff2.foo() => throw '';
 }
 class Gf2<X extends TdG> {
-  factory Gf2.foo() => null;
+  factory Gf2.foo() => throw '';
 }
 class Hf2<X extends TdH> {
-  factory Hf2.foo() => null;
+  factory Hf2.foo() => throw '';
 }
 class If2<X extends TdI> {
-  factory If2.foo() => null;
+  factory If2.foo() => throw '';
 }
 class Jf2<X extends TdJ> {
-  factory Jf2.foo() => null;
+  factory Jf2.foo() => throw '';
 }
 class Kf2<X extends TdK> {
-  factory Kf2.foo() => null;
+  factory Kf2.foo() => throw '';
 }
 main() {}
diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.weak.expect b/pkg/front_end/testcases/general/clone_function_type.dart.weak.expect
index 7453dc4..17fbc7c 100644
--- a/pkg/front_end/testcases/general/clone_function_type.dart.weak.expect
+++ b/pkg/front_end/testcases/general/clone_function_type.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -103,1323 +103,543 @@
 import self as self;
 import "dart:core" as core;
 
-typedef TdB = (core::int*) →* dynamic;
-typedef TdC = (core::int*) →* dynamic;
-typedef TdD = () →* core::int*;
-typedef TdE = () →* dynamic;
-typedef TdF = () →* dynamic;
-typedef TdG = ({x: core::int*}) →* dynamic;
-typedef TdH = ([core::int*]) →* dynamic;
-typedef TdI = ([core::int*]) →* dynamic;
-typedef TdJ = (core::Function*) →* dynamic;
-typedef TdK = () →* (() →* core::Function*) →* dynamic;
-class Am1<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Am1<self::Am1::X*, self::Am1::Y*>*
+typedef TdB = (core::int) → dynamic;
+typedef TdC = (core::int) → dynamic;
+typedef TdD = () → core::int;
+typedef TdE = () → dynamic;
+typedef TdF = () → dynamic;
+typedef TdG = ({x: core::int}) → dynamic;
+typedef TdH = ([core::int]) → dynamic;
+typedef TdI = ([core::int]) → dynamic;
+typedef TdJ = (core::Function) → dynamic;
+typedef TdK = () → (() → core::Function) → dynamic;
+class Am1<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Am1<self::Am1::X%, self::Am1::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
 }
-abstract class _Bm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::int*) →* dynamic, self::_Bm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Bm1&Object&Am1<self::_Bm1&Object&Am1::Z*>*
+abstract class _Bm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::_Bm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Bm1&Object&Am1<self::_Bm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bm1<Z extends core::Object* = dynamic> extends self::_Bm1&Object&Am1<self::Bm1::Z*> {
-  synthetic constructor •() → self::Bm1<self::Bm1::Z*>*
+class Bm1<Z extends core::Object? = dynamic> extends self::_Bm1&Object&Am1<self::Bm1::Z%> {
+  synthetic constructor •() → self::Bm1<self::Bm1::Z%>
     : super self::_Bm1&Object&Am1::•()
     ;
 }
-abstract class _Cm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::int*) →* dynamic, self::_Cm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Cm1&Object&Am1<self::_Cm1&Object&Am1::Z*>*
+abstract class _Cm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::_Cm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Cm1&Object&Am1<self::_Cm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cm1<Z extends core::Object* = dynamic> extends self::_Cm1&Object&Am1<self::Cm1::Z*> {
-  synthetic constructor •() → self::Cm1<self::Cm1::Z*>*
+class Cm1<Z extends core::Object? = dynamic> extends self::_Cm1&Object&Am1<self::Cm1::Z%> {
+  synthetic constructor •() → self::Cm1<self::Cm1::Z%>
     : super self::_Cm1&Object&Am1::•()
     ;
 }
-abstract class _Dm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* core::int*, self::_Dm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Dm1&Object&Am1<self::_Dm1&Object&Am1::Z*>*
+abstract class _Dm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → core::int, self::_Dm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Dm1&Object&Am1<self::_Dm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Dm1<Z extends core::Object* = dynamic> extends self::_Dm1&Object&Am1<self::Dm1::Z*> {
-  synthetic constructor •() → self::Dm1<self::Dm1::Z*>*
+class Dm1<Z extends core::Object? = dynamic> extends self::_Dm1&Object&Am1<self::Dm1::Z%> {
+  synthetic constructor •() → self::Dm1<self::Dm1::Z%>
     : super self::_Dm1&Object&Am1::•()
     ;
 }
-abstract class _Em1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* dynamic, self::_Em1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Em1&Object&Am1<self::_Em1&Object&Am1::Z*>*
+abstract class _Em1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → dynamic, self::_Em1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Em1&Object&Am1<self::_Em1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Em1<Z extends core::Object* = dynamic> extends self::_Em1&Object&Am1<self::Em1::Z*> {
-  synthetic constructor •() → self::Em1<self::Em1::Z*>*
+class Em1<Z extends core::Object? = dynamic> extends self::_Em1&Object&Am1<self::Em1::Z%> {
+  synthetic constructor •() → self::Em1<self::Em1::Z%>
     : super self::_Em1&Object&Am1::•()
     ;
 }
-abstract class _Fm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* dynamic, self::_Fm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fm1&Object&Am1<self::_Fm1&Object&Am1::Z*>*
+abstract class _Fm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → dynamic, self::_Fm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fm1&Object&Am1<self::_Fm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Fm1<Z extends core::Object* = dynamic> extends self::_Fm1&Object&Am1<self::Fm1::Z*> {
-  synthetic constructor •() → self::Fm1<self::Fm1::Z*>*
+class Fm1<Z extends core::Object? = dynamic> extends self::_Fm1&Object&Am1<self::Fm1::Z%> {
+  synthetic constructor •() → self::Fm1<self::Fm1::Z%>
     : super self::_Fm1&Object&Am1::•()
     ;
 }
-abstract class _Gm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<({x: core::int*}) →* dynamic, self::_Gm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Gm1&Object&Am1<self::_Gm1&Object&Am1::Z*>*
+abstract class _Gm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<({x: core::int}) → dynamic, self::_Gm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Gm1&Object&Am1<self::_Gm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Gm1<Z extends core::Object* = dynamic> extends self::_Gm1&Object&Am1<self::Gm1::Z*> {
-  synthetic constructor •() → self::Gm1<self::Gm1::Z*>*
+class Gm1<Z extends core::Object? = dynamic> extends self::_Gm1&Object&Am1<self::Gm1::Z%> {
+  synthetic constructor •() → self::Gm1<self::Gm1::Z%>
     : super self::_Gm1&Object&Am1::•()
     ;
 }
-abstract class _Hm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<([core::int*]) →* dynamic, self::_Hm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Hm1&Object&Am1<self::_Hm1&Object&Am1::Z*>*
+abstract class _Hm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::_Hm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Hm1&Object&Am1<self::_Hm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Hm1<Z extends core::Object* = dynamic> extends self::_Hm1&Object&Am1<self::Hm1::Z*> {
-  synthetic constructor •() → self::Hm1<self::Hm1::Z*>*
+class Hm1<Z extends core::Object? = dynamic> extends self::_Hm1&Object&Am1<self::Hm1::Z%> {
+  synthetic constructor •() → self::Hm1<self::Hm1::Z%>
     : super self::_Hm1&Object&Am1::•()
     ;
 }
-abstract class _Im1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<([core::int*]) →* dynamic, self::_Im1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Im1&Object&Am1<self::_Im1&Object&Am1::Z*>*
+abstract class _Im1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::_Im1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Im1&Object&Am1<self::_Im1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Im1<Z extends core::Object* = dynamic> extends self::_Im1&Object&Am1<self::Im1::Z*> {
-  synthetic constructor •() → self::Im1<self::Im1::Z*>*
+class Im1<Z extends core::Object? = dynamic> extends self::_Im1&Object&Am1<self::Im1::Z%> {
+  synthetic constructor •() → self::Im1<self::Im1::Z%>
     : super self::_Im1&Object&Am1::•()
     ;
 }
-abstract class _Jm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<core::Function*, self::_Jm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Jm1&Object&Am1<self::_Jm1&Object&Am1::Z*>*
+abstract class _Jm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<core::Function, self::_Jm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Jm1&Object&Am1<self::_Jm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Jm1<Z extends core::Object* = dynamic> extends self::_Jm1&Object&Am1<self::Jm1::Z*> {
-  synthetic constructor •() → self::Jm1<self::Jm1::Z*>*
+class Jm1<Z extends core::Object? = dynamic> extends self::_Jm1&Object&Am1<self::Jm1::Z%> {
+  synthetic constructor •() → self::Jm1<self::Jm1::Z%>
     : super self::_Jm1&Object&Am1::•()
     ;
 }
-abstract class _Km1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::Function*) →* dynamic, self::_Km1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Km1&Object&Am1<self::_Km1&Object&Am1::Z*>*
+abstract class _Km1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::Function) → dynamic, self::_Km1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Km1&Object&Am1<self::_Km1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Km1<Z extends core::Object* = dynamic> extends self::_Km1&Object&Am1<self::Km1::Z*> {
-  synthetic constructor •() → self::Km1<self::Km1::Z*>*
+class Km1<Z extends core::Object? = dynamic> extends self::_Km1&Object&Am1<self::Km1::Z%> {
+  synthetic constructor •() → self::Km1<self::Km1::Z%>
     : super self::_Km1&Object&Am1::•()
     ;
 }
-abstract class _Lm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* (() →* core::Function*) →* dynamic, self::_Lm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Lm1&Object&Am1<self::_Lm1&Object&Am1::Z*>*
+abstract class _Lm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → (() → core::Function) → dynamic, self::_Lm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Lm1&Object&Am1<self::_Lm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Lm1<Z extends core::Object* = dynamic> extends self::_Lm1&Object&Am1<self::Lm1::Z*> {
-  synthetic constructor •() → self::Lm1<self::Lm1::Z*>*
+class Lm1<Z extends core::Object? = dynamic> extends self::_Lm1&Object&Am1<self::Lm1::Z%> {
+  synthetic constructor •() → self::Lm1<self::Lm1::Z%>
     : super self::_Lm1&Object&Am1::•()
     ;
 }
-class Mm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::int*) →* dynamic, self::Mm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Mm1<self::Mm1::Z*>*
+class Mm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::Mm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Mm1<self::Mm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Nm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::int*) →* dynamic, self::Nm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Nm1<self::Nm1::Z*>*
+class Nm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::Nm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Nm1<self::Nm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Om1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* core::int*, self::Om1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Om1<self::Om1::Z*>*
+class Om1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → core::int, self::Om1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Om1<self::Om1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Pm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* dynamic, self::Pm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Pm1<self::Pm1::Z*>*
+class Pm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → dynamic, self::Pm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Pm1<self::Pm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Qm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* dynamic, self::Qm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Qm1<self::Qm1::Z*>*
+class Qm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → dynamic, self::Qm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Qm1<self::Qm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Rm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<({x: core::int*}) →* dynamic, self::Rm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Rm1<self::Rm1::Z*>*
+class Rm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<({x: core::int}) → dynamic, self::Rm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Rm1<self::Rm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Sm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<([core::int*]) →* dynamic, self::Sm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Sm1<self::Sm1::Z*>*
+class Sm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::Sm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Sm1<self::Sm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Tm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<([core::int*]) →* dynamic, self::Tm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Tm1<self::Tm1::Z*>*
+class Tm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::Tm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Tm1<self::Tm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Um1<Z extends core::Object* = dynamic> = core::Object with self::Am1<core::Function*, self::Um1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Um1<self::Um1::Z*>*
+class Um1<Z extends core::Object? = dynamic> = core::Object with self::Am1<core::Function, self::Um1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Um1<self::Um1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Vm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::Function*) →* dynamic, self::Vm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Vm1<self::Vm1::Z*>*
+class Vm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::Function) → dynamic, self::Vm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Vm1<self::Vm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Wm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* (() →* core::Function*) →* dynamic, self::Wm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Wm1<self::Wm1::Z*>*
+class Wm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → (() → core::Function) → dynamic, self::Wm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Wm1<self::Wm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Am2<X extends () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Am2<self::Am2::X*, self::Am2::Y*>*
+class Am2<X extends () → dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Am2<self::Am2::X, self::Am2::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
 }
-abstract class _Bm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::int*) →* dynamic, self::_Bm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Bm2&Object&Am2<self::_Bm2&Object&Am2::Z*>*
+abstract class _Bm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::_Bm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Bm2&Object&Am2<self::_Bm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bm2<Z extends core::Object* = dynamic> extends self::_Bm2&Object&Am2<self::Bm2::Z*> {
-  synthetic constructor •() → self::Bm2<self::Bm2::Z*>*
+class Bm2<Z extends core::Object? = dynamic> extends self::_Bm2&Object&Am2<self::Bm2::Z%> {
+  synthetic constructor •() → self::Bm2<self::Bm2::Z%>
     : super self::_Bm2&Object&Am2::•()
     ;
 }
-abstract class _Cm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::int*) →* dynamic, self::_Cm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Cm2&Object&Am2<self::_Cm2&Object&Am2::Z*>*
+abstract class _Cm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::_Cm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Cm2&Object&Am2<self::_Cm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cm2<Z extends core::Object* = dynamic> extends self::_Cm2&Object&Am2<self::Cm2::Z*> {
-  synthetic constructor •() → self::Cm2<self::Cm2::Z*>*
+class Cm2<Z extends core::Object? = dynamic> extends self::_Cm2&Object&Am2<self::Cm2::Z%> {
+  synthetic constructor •() → self::Cm2<self::Cm2::Z%>
     : super self::_Cm2&Object&Am2::•()
     ;
 }
-abstract class _Dm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* core::int*, self::_Dm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Dm2&Object&Am2<self::_Dm2&Object&Am2::Z*>*
+abstract class _Dm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → core::int, self::_Dm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Dm2&Object&Am2<self::_Dm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Dm2<Z extends core::Object* = dynamic> extends self::_Dm2&Object&Am2<self::Dm2::Z*> {
-  synthetic constructor •() → self::Dm2<self::Dm2::Z*>*
+class Dm2<Z extends core::Object? = dynamic> extends self::_Dm2&Object&Am2<self::Dm2::Z%> {
+  synthetic constructor •() → self::Dm2<self::Dm2::Z%>
     : super self::_Dm2&Object&Am2::•()
     ;
 }
-abstract class _Em2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* dynamic, self::_Em2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Em2&Object&Am2<self::_Em2&Object&Am2::Z*>*
+abstract class _Em2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → dynamic, self::_Em2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Em2&Object&Am2<self::_Em2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Em2<Z extends core::Object* = dynamic> extends self::_Em2&Object&Am2<self::Em2::Z*> {
-  synthetic constructor •() → self::Em2<self::Em2::Z*>*
+class Em2<Z extends core::Object? = dynamic> extends self::_Em2&Object&Am2<self::Em2::Z%> {
+  synthetic constructor •() → self::Em2<self::Em2::Z%>
     : super self::_Em2&Object&Am2::•()
     ;
 }
-abstract class _Fm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* dynamic, self::_Fm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fm2&Object&Am2<self::_Fm2&Object&Am2::Z*>*
+abstract class _Fm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → dynamic, self::_Fm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fm2&Object&Am2<self::_Fm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Fm2<Z extends core::Object* = dynamic> extends self::_Fm2&Object&Am2<self::Fm2::Z*> {
-  synthetic constructor •() → self::Fm2<self::Fm2::Z*>*
+class Fm2<Z extends core::Object? = dynamic> extends self::_Fm2&Object&Am2<self::Fm2::Z%> {
+  synthetic constructor •() → self::Fm2<self::Fm2::Z%>
     : super self::_Fm2&Object&Am2::•()
     ;
 }
-abstract class _Gm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<({x: core::int*}) →* dynamic, self::_Gm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Gm2&Object&Am2<self::_Gm2&Object&Am2::Z*>*
+abstract class _Gm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<({x: core::int}) → dynamic, self::_Gm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Gm2&Object&Am2<self::_Gm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Gm2<Z extends core::Object* = dynamic> extends self::_Gm2&Object&Am2<self::Gm2::Z*> {
-  synthetic constructor •() → self::Gm2<self::Gm2::Z*>*
+class Gm2<Z extends core::Object? = dynamic> extends self::_Gm2&Object&Am2<self::Gm2::Z%> {
+  synthetic constructor •() → self::Gm2<self::Gm2::Z%>
     : super self::_Gm2&Object&Am2::•()
     ;
 }
-abstract class _Hm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<([core::int*]) →* dynamic, self::_Hm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Hm2&Object&Am2<self::_Hm2&Object&Am2::Z*>*
+abstract class _Hm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::_Hm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Hm2&Object&Am2<self::_Hm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Hm2<Z extends core::Object* = dynamic> extends self::_Hm2&Object&Am2<self::Hm2::Z*> {
-  synthetic constructor •() → self::Hm2<self::Hm2::Z*>*
+class Hm2<Z extends core::Object? = dynamic> extends self::_Hm2&Object&Am2<self::Hm2::Z%> {
+  synthetic constructor •() → self::Hm2<self::Hm2::Z%>
     : super self::_Hm2&Object&Am2::•()
     ;
 }
-abstract class _Im2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<([core::int*]) →* dynamic, self::_Im2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Im2&Object&Am2<self::_Im2&Object&Am2::Z*>*
+abstract class _Im2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::_Im2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Im2&Object&Am2<self::_Im2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Im2<Z extends core::Object* = dynamic> extends self::_Im2&Object&Am2<self::Im2::Z*> {
-  synthetic constructor •() → self::Im2<self::Im2::Z*>*
+class Im2<Z extends core::Object? = dynamic> extends self::_Im2&Object&Am2<self::Im2::Z%> {
+  synthetic constructor •() → self::Im2<self::Im2::Z%>
     : super self::_Im2&Object&Am2::•()
     ;
 }
-abstract class _Jm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<core::Function*, self::_Jm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Jm2&Object&Am2<self::_Jm2&Object&Am2::Z*>*
+abstract class _Jm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<core::Function, self::_Jm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Jm2&Object&Am2<self::_Jm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Jm2<Z extends core::Object* = dynamic> extends self::_Jm2&Object&Am2<self::Jm2::Z*> {
-  synthetic constructor •() → self::Jm2<self::Jm2::Z*>*
+class Jm2<Z extends core::Object? = dynamic> extends self::_Jm2&Object&Am2<self::Jm2::Z%> {
+  synthetic constructor •() → self::Jm2<self::Jm2::Z%>
     : super self::_Jm2&Object&Am2::•()
     ;
 }
-abstract class _Km2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::Function*) →* dynamic, self::_Km2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Km2&Object&Am2<self::_Km2&Object&Am2::Z*>*
+abstract class _Km2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::Function) → dynamic, self::_Km2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Km2&Object&Am2<self::_Km2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Km2<Z extends core::Object* = dynamic> extends self::_Km2&Object&Am2<self::Km2::Z*> {
-  synthetic constructor •() → self::Km2<self::Km2::Z*>*
+class Km2<Z extends core::Object? = dynamic> extends self::_Km2&Object&Am2<self::Km2::Z%> {
+  synthetic constructor •() → self::Km2<self::Km2::Z%>
     : super self::_Km2&Object&Am2::•()
     ;
 }
-abstract class _Lm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* (() →* core::Function*) →* dynamic, self::_Lm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Lm2&Object&Am2<self::_Lm2&Object&Am2::Z*>*
+abstract class _Lm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → (() → core::Function) → dynamic, self::_Lm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Lm2&Object&Am2<self::_Lm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Lm2<Z extends core::Object* = dynamic> extends self::_Lm2&Object&Am2<self::Lm2::Z*> {
-  synthetic constructor •() → self::Lm2<self::Lm2::Z*>*
+class Lm2<Z extends core::Object? = dynamic> extends self::_Lm2&Object&Am2<self::Lm2::Z%> {
+  synthetic constructor •() → self::Lm2<self::Lm2::Z%>
     : super self::_Lm2&Object&Am2::•()
     ;
 }
-class Mm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::int*) →* dynamic, self::Mm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Mm2<self::Mm2::Z*>*
+class Mm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::Mm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Mm2<self::Mm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Nm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::int*) →* dynamic, self::Nm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Nm2<self::Nm2::Z*>*
+class Nm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::Nm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Nm2<self::Nm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Om2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* core::int*, self::Om2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Om2<self::Om2::Z*>*
+class Om2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → core::int, self::Om2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Om2<self::Om2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Pm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* dynamic, self::Pm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Pm2<self::Pm2::Z*>*
+class Pm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → dynamic, self::Pm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Pm2<self::Pm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Qm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* dynamic, self::Qm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Qm2<self::Qm2::Z*>*
+class Qm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → dynamic, self::Qm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Qm2<self::Qm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Rm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<({x: core::int*}) →* dynamic, self::Rm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Rm2<self::Rm2::Z*>*
+class Rm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<({x: core::int}) → dynamic, self::Rm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Rm2<self::Rm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Sm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<([core::int*]) →* dynamic, self::Sm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Sm2<self::Sm2::Z*>*
+class Sm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::Sm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Sm2<self::Sm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Tm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<([core::int*]) →* dynamic, self::Tm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Tm2<self::Tm2::Z*>*
+class Tm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::Tm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Tm2<self::Tm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Um2<Z extends core::Object* = dynamic> = core::Object with self::Am2<core::Function*, self::Um2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Um2<self::Um2::Z*>*
+class Um2<Z extends core::Object? = dynamic> = core::Object with self::Am2<core::Function, self::Um2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Um2<self::Um2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Vm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::Function*) →* dynamic, self::Vm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Vm2<self::Vm2::Z*>*
+class Vm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::Function) → dynamic, self::Vm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Vm2<self::Vm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Wm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* (() →* core::Function*) →* dynamic, self::Wm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Wm2<self::Wm2::Z*>*
+class Wm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → (() → core::Function) → dynamic, self::Wm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Wm2<self::Wm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Am3<L extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Am3<self::Am3::L*, self::Am3::Y*>*
+class Am3<L extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Am3<self::Am3::L%, self::Am3::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
 }
-abstract class _Bm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<(core::int*) →* dynamic, self::_Bm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Bm3&Object&Am3<self::_Bm3&Object&Am3::Z*>*
+abstract class _Bm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<(core::int) → dynamic, self::_Bm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Bm3&Object&Am3<self::_Bm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bm3<Z extends core::Object* = dynamic> extends self::_Bm3&Object&Am3<self::Bm3::Z*> {
-  synthetic constructor •() → self::Bm3<self::Bm3::Z*>*
+class Bm3<Z extends core::Object? = dynamic> extends self::_Bm3&Object&Am3<self::Bm3::Z%> {
+  synthetic constructor •() → self::Bm3<self::Bm3::Z%>
     : super self::_Bm3&Object&Am3::•()
     ;
 }
-abstract class _Cm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<(core::int*) →* dynamic, self::_Cm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Cm3&Object&Am3<self::_Cm3&Object&Am3::Z*>*
+abstract class _Cm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<(core::int) → dynamic, self::_Cm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Cm3&Object&Am3<self::_Cm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cm3<Z extends core::Object* = dynamic> extends self::_Cm3&Object&Am3<self::Cm3::Z*> {
-  synthetic constructor •() → self::Cm3<self::Cm3::Z*>*
+class Cm3<Z extends core::Object? = dynamic> extends self::_Cm3&Object&Am3<self::Cm3::Z%> {
+  synthetic constructor •() → self::Cm3<self::Cm3::Z%>
     : super self::_Cm3&Object&Am3::•()
     ;
 }
-abstract class _Dm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<() →* core::int*, self::_Dm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Dm3&Object&Am3<self::_Dm3&Object&Am3::Z*>*
+abstract class _Dm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<() → core::int, self::_Dm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Dm3&Object&Am3<self::_Dm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Dm3<Z extends core::Object* = dynamic> extends self::_Dm3&Object&Am3<self::Dm3::Z*> {
-  synthetic constructor •() → self::Dm3<self::Dm3::Z*>*
+class Dm3<Z extends core::Object? = dynamic> extends self::_Dm3&Object&Am3<self::Dm3::Z%> {
+  synthetic constructor •() → self::Dm3<self::Dm3::Z%>
     : super self::_Dm3&Object&Am3::•()
     ;
 }
-abstract class _Em3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<() →* dynamic, self::_Em3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Em3&Object&Am3<self::_Em3&Object&Am3::Z*>*
+abstract class _Em3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<() → dynamic, self::_Em3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Em3&Object&Am3<self::_Em3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Em3<Z extends core::Object* = dynamic> extends self::_Em3&Object&Am3<self::Em3::Z*> {
-  synthetic constructor •() → self::Em3<self::Em3::Z*>*
+class Em3<Z extends core::Object? = dynamic> extends self::_Em3&Object&Am3<self::Em3::Z%> {
+  synthetic constructor •() → self::Em3<self::Em3::Z%>
     : super self::_Em3&Object&Am3::•()
     ;
 }
-abstract class _Fm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<() →* dynamic, self::_Fm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fm3&Object&Am3<self::_Fm3&Object&Am3::Z*>*
+abstract class _Fm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<() → dynamic, self::_Fm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fm3&Object&Am3<self::_Fm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Fm3<Z extends core::Object* = dynamic> extends self::_Fm3&Object&Am3<self::Fm3::Z*> {
-  synthetic constructor •() → self::Fm3<self::Fm3::Z*>*
+class Fm3<Z extends core::Object? = dynamic> extends self::_Fm3&Object&Am3<self::Fm3::Z%> {
+  synthetic constructor •() → self::Fm3<self::Fm3::Z%>
     : super self::_Fm3&Object&Am3::•()
     ;
 }
-abstract class _Gm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<({x: core::int*}) →* dynamic, self::_Gm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Gm3&Object&Am3<self::_Gm3&Object&Am3::Z*>*
+abstract class _Gm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<({x: core::int}) → dynamic, self::_Gm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Gm3&Object&Am3<self::_Gm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Gm3<Z extends core::Object* = dynamic> extends self::_Gm3&Object&Am3<self::Gm3::Z*> {
-  synthetic constructor •() → self::Gm3<self::Gm3::Z*>*
+class Gm3<Z extends core::Object? = dynamic> extends self::_Gm3&Object&Am3<self::Gm3::Z%> {
+  synthetic constructor •() → self::Gm3<self::Gm3::Z%>
     : super self::_Gm3&Object&Am3::•()
     ;
 }
-abstract class _Hm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<([core::int*]) →* dynamic, self::_Hm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Hm3&Object&Am3<self::_Hm3&Object&Am3::Z*>*
+abstract class _Hm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<([core::int]) → dynamic, self::_Hm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Hm3&Object&Am3<self::_Hm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Hm3<Z extends core::Object* = dynamic> extends self::_Hm3&Object&Am3<self::Hm3::Z*> {
-  synthetic constructor •() → self::Hm3<self::Hm3::Z*>*
+class Hm3<Z extends core::Object? = dynamic> extends self::_Hm3&Object&Am3<self::Hm3::Z%> {
+  synthetic constructor •() → self::Hm3<self::Hm3::Z%>
     : super self::_Hm3&Object&Am3::•()
     ;
 }
-abstract class _Im3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<([core::int*]) →* dynamic, self::_Im3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Im3&Object&Am3<self::_Im3&Object&Am3::Z*>*
+abstract class _Im3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<([core::int]) → dynamic, self::_Im3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Im3&Object&Am3<self::_Im3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Im3<Z extends core::Object* = dynamic> extends self::_Im3&Object&Am3<self::Im3::Z*> {
-  synthetic constructor •() → self::Im3<self::Im3::Z*>*
+class Im3<Z extends core::Object? = dynamic> extends self::_Im3&Object&Am3<self::Im3::Z%> {
+  synthetic constructor •() → self::Im3<self::Im3::Z%>
     : super self::_Im3&Object&Am3::•()
     ;
 }
-abstract class _Jm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<(core::Function*) →* dynamic, self::_Jm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Jm3&Object&Am3<self::_Jm3&Object&Am3::Z*>*
+abstract class _Jm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<(core::Function) → dynamic, self::_Jm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Jm3&Object&Am3<self::_Jm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Jm3<Z extends core::Object* = dynamic> extends self::_Jm3&Object&Am3<self::Jm3::Z*> {
-  synthetic constructor •() → self::Jm3<self::Jm3::Z*>*
+class Jm3<Z extends core::Object? = dynamic> extends self::_Jm3&Object&Am3<self::Jm3::Z%> {
+  synthetic constructor •() → self::Jm3<self::Jm3::Z%>
     : super self::_Jm3&Object&Am3::•()
     ;
 }
-abstract class _Km3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<() →* (() →* core::Function*) →* dynamic, self::_Km3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Km3&Object&Am3<self::_Km3&Object&Am3::Z*>*
+abstract class _Km3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<() → (() → core::Function) → dynamic, self::_Km3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Km3&Object&Am3<self::_Km3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Km3<Z extends core::Object* = dynamic> extends self::_Km3&Object&Am3<self::Km3::Z*> {
-  synthetic constructor •() → self::Km3<self::Km3::Z*>*
+class Km3<Z extends core::Object? = dynamic> extends self::_Km3&Object&Am3<self::Km3::Z%> {
+  synthetic constructor •() → self::Km3<self::Km3::Z%>
     : super self::_Km3&Object&Am3::•()
     ;
 }
-class Af1<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Af1<self::Af1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Af1<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Af1<self::Af1::foo::X>
+    return throw "";
 }
-class Bf1<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Bf1<self::Bf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Bf1<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Bf1<self::Bf1::foo::X>
+    return throw "";
 }
-class Cf1<X extends () →* core::int*> extends core::Object {
-  static factory foo<X extends () →* core::int*>() → self::Cf1<self::Cf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Cf1<X extends () → core::int> extends core::Object {
+  static factory foo<X extends () → core::int>() → self::Cf1<self::Cf1::foo::X>
+    return throw "";
 }
-class Df1<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Df1<self::Df1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Df1<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Df1<self::Df1::foo::X>
+    return throw "";
 }
-class Ef1<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Ef1<self::Ef1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Ef1<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Ef1<self::Ef1::foo::X>
+    return throw "";
 }
-class Ff1<X extends ({x: core::int*}) →* dynamic> extends core::Object {
-  static factory foo<X extends ({x: core::int*}) →* dynamic>() → self::Ff1<self::Ff1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Ff1<X extends ({x: core::int}) → dynamic> extends core::Object {
+  static factory foo<X extends ({x: core::int}) → dynamic>() → self::Ff1<self::Ff1::foo::X>
+    return throw "";
 }
-class Gf1<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::Gf1<self::Gf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Gf1<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::Gf1<self::Gf1::foo::X>
+    return throw "";
 }
-class Hf1<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::Hf1<self::Hf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Hf1<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::Hf1<self::Hf1::foo::X>
+    return throw "";
 }
-class If1<X extends core::Function*> extends core::Object {
-  static factory foo<X extends core::Function*>() → self::If1<self::If1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class If1<X extends core::Function> extends core::Object {
+  static factory foo<X extends core::Function>() → self::If1<self::If1::foo::X>
+    return throw "";
 }
-class Jf1<X extends (core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::Function*) →* dynamic>() → self::Jf1<self::Jf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Jf1<X extends (core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends (core::Function) → dynamic>() → self::Jf1<self::Jf1::foo::X>
+    return throw "";
 }
-class Kf1<X extends () →* (() →* core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends () →* (() →* core::Function*) →* dynamic>() → self::Kf1<self::Kf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Kf1<X extends () → (() → core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends () → (() → core::Function) → dynamic>() → self::Kf1<self::Kf1::foo::X>
+    return throw "";
 }
-class Bf2<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Bf2<self::Bf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Bf2<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Bf2<self::Bf2::foo::X>
+    return throw "";
 }
-class Cf2<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Cf2<self::Cf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Cf2<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Cf2<self::Cf2::foo::X>
+    return throw "";
 }
-class Df2<X extends () →* core::int*> extends core::Object {
-  static factory foo<X extends () →* core::int*>() → self::Df2<self::Df2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Df2<X extends () → core::int> extends core::Object {
+  static factory foo<X extends () → core::int>() → self::Df2<self::Df2::foo::X>
+    return throw "";
 }
-class Ef2<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Ef2<self::Ef2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Ef2<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Ef2<self::Ef2::foo::X>
+    return throw "";
 }
-class Ff2<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Ff2<self::Ff2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Ff2<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Ff2<self::Ff2::foo::X>
+    return throw "";
 }
-class Gf2<X extends ({x: core::int*}) →* dynamic> extends core::Object {
-  static factory foo<X extends ({x: core::int*}) →* dynamic>() → self::Gf2<self::Gf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Gf2<X extends ({x: core::int}) → dynamic> extends core::Object {
+  static factory foo<X extends ({x: core::int}) → dynamic>() → self::Gf2<self::Gf2::foo::X>
+    return throw "";
 }
-class Hf2<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::Hf2<self::Hf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Hf2<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::Hf2<self::Hf2::foo::X>
+    return throw "";
 }
-class If2<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::If2<self::If2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class If2<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::If2<self::If2::foo::X>
+    return throw "";
 }
-class Jf2<X extends (core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::Function*) →* dynamic>() → self::Jf2<self::Jf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Jf2<X extends (core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends (core::Function) → dynamic>() → self::Jf2<self::Jf2::foo::X>
+    return throw "";
 }
-class Kf2<X extends () →* (() →* core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends () →* (() →* core::Function*) →* dynamic>() → self::Kf2<self::Kf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Kf2<X extends () → (() → core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends () → (() → core::Function) → dynamic>() → self::Kf2<self::Kf2::foo::X>
+    return throw "";
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.weak.modular.expect b/pkg/front_end/testcases/general/clone_function_type.dart.weak.modular.expect
index 7453dc4..17fbc7c 100644
--- a/pkg/front_end/testcases/general/clone_function_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/clone_function_type.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -103,1323 +103,543 @@
 import self as self;
 import "dart:core" as core;
 
-typedef TdB = (core::int*) →* dynamic;
-typedef TdC = (core::int*) →* dynamic;
-typedef TdD = () →* core::int*;
-typedef TdE = () →* dynamic;
-typedef TdF = () →* dynamic;
-typedef TdG = ({x: core::int*}) →* dynamic;
-typedef TdH = ([core::int*]) →* dynamic;
-typedef TdI = ([core::int*]) →* dynamic;
-typedef TdJ = (core::Function*) →* dynamic;
-typedef TdK = () →* (() →* core::Function*) →* dynamic;
-class Am1<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Am1<self::Am1::X*, self::Am1::Y*>*
+typedef TdB = (core::int) → dynamic;
+typedef TdC = (core::int) → dynamic;
+typedef TdD = () → core::int;
+typedef TdE = () → dynamic;
+typedef TdF = () → dynamic;
+typedef TdG = ({x: core::int}) → dynamic;
+typedef TdH = ([core::int]) → dynamic;
+typedef TdI = ([core::int]) → dynamic;
+typedef TdJ = (core::Function) → dynamic;
+typedef TdK = () → (() → core::Function) → dynamic;
+class Am1<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Am1<self::Am1::X%, self::Am1::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
 }
-abstract class _Bm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::int*) →* dynamic, self::_Bm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Bm1&Object&Am1<self::_Bm1&Object&Am1::Z*>*
+abstract class _Bm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::_Bm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Bm1&Object&Am1<self::_Bm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bm1<Z extends core::Object* = dynamic> extends self::_Bm1&Object&Am1<self::Bm1::Z*> {
-  synthetic constructor •() → self::Bm1<self::Bm1::Z*>*
+class Bm1<Z extends core::Object? = dynamic> extends self::_Bm1&Object&Am1<self::Bm1::Z%> {
+  synthetic constructor •() → self::Bm1<self::Bm1::Z%>
     : super self::_Bm1&Object&Am1::•()
     ;
 }
-abstract class _Cm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::int*) →* dynamic, self::_Cm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Cm1&Object&Am1<self::_Cm1&Object&Am1::Z*>*
+abstract class _Cm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::_Cm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Cm1&Object&Am1<self::_Cm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cm1<Z extends core::Object* = dynamic> extends self::_Cm1&Object&Am1<self::Cm1::Z*> {
-  synthetic constructor •() → self::Cm1<self::Cm1::Z*>*
+class Cm1<Z extends core::Object? = dynamic> extends self::_Cm1&Object&Am1<self::Cm1::Z%> {
+  synthetic constructor •() → self::Cm1<self::Cm1::Z%>
     : super self::_Cm1&Object&Am1::•()
     ;
 }
-abstract class _Dm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* core::int*, self::_Dm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Dm1&Object&Am1<self::_Dm1&Object&Am1::Z*>*
+abstract class _Dm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → core::int, self::_Dm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Dm1&Object&Am1<self::_Dm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Dm1<Z extends core::Object* = dynamic> extends self::_Dm1&Object&Am1<self::Dm1::Z*> {
-  synthetic constructor •() → self::Dm1<self::Dm1::Z*>*
+class Dm1<Z extends core::Object? = dynamic> extends self::_Dm1&Object&Am1<self::Dm1::Z%> {
+  synthetic constructor •() → self::Dm1<self::Dm1::Z%>
     : super self::_Dm1&Object&Am1::•()
     ;
 }
-abstract class _Em1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* dynamic, self::_Em1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Em1&Object&Am1<self::_Em1&Object&Am1::Z*>*
+abstract class _Em1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → dynamic, self::_Em1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Em1&Object&Am1<self::_Em1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Em1<Z extends core::Object* = dynamic> extends self::_Em1&Object&Am1<self::Em1::Z*> {
-  synthetic constructor •() → self::Em1<self::Em1::Z*>*
+class Em1<Z extends core::Object? = dynamic> extends self::_Em1&Object&Am1<self::Em1::Z%> {
+  synthetic constructor •() → self::Em1<self::Em1::Z%>
     : super self::_Em1&Object&Am1::•()
     ;
 }
-abstract class _Fm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* dynamic, self::_Fm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fm1&Object&Am1<self::_Fm1&Object&Am1::Z*>*
+abstract class _Fm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → dynamic, self::_Fm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fm1&Object&Am1<self::_Fm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Fm1<Z extends core::Object* = dynamic> extends self::_Fm1&Object&Am1<self::Fm1::Z*> {
-  synthetic constructor •() → self::Fm1<self::Fm1::Z*>*
+class Fm1<Z extends core::Object? = dynamic> extends self::_Fm1&Object&Am1<self::Fm1::Z%> {
+  synthetic constructor •() → self::Fm1<self::Fm1::Z%>
     : super self::_Fm1&Object&Am1::•()
     ;
 }
-abstract class _Gm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<({x: core::int*}) →* dynamic, self::_Gm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Gm1&Object&Am1<self::_Gm1&Object&Am1::Z*>*
+abstract class _Gm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<({x: core::int}) → dynamic, self::_Gm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Gm1&Object&Am1<self::_Gm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Gm1<Z extends core::Object* = dynamic> extends self::_Gm1&Object&Am1<self::Gm1::Z*> {
-  synthetic constructor •() → self::Gm1<self::Gm1::Z*>*
+class Gm1<Z extends core::Object? = dynamic> extends self::_Gm1&Object&Am1<self::Gm1::Z%> {
+  synthetic constructor •() → self::Gm1<self::Gm1::Z%>
     : super self::_Gm1&Object&Am1::•()
     ;
 }
-abstract class _Hm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<([core::int*]) →* dynamic, self::_Hm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Hm1&Object&Am1<self::_Hm1&Object&Am1::Z*>*
+abstract class _Hm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::_Hm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Hm1&Object&Am1<self::_Hm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Hm1<Z extends core::Object* = dynamic> extends self::_Hm1&Object&Am1<self::Hm1::Z*> {
-  synthetic constructor •() → self::Hm1<self::Hm1::Z*>*
+class Hm1<Z extends core::Object? = dynamic> extends self::_Hm1&Object&Am1<self::Hm1::Z%> {
+  synthetic constructor •() → self::Hm1<self::Hm1::Z%>
     : super self::_Hm1&Object&Am1::•()
     ;
 }
-abstract class _Im1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<([core::int*]) →* dynamic, self::_Im1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Im1&Object&Am1<self::_Im1&Object&Am1::Z*>*
+abstract class _Im1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::_Im1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Im1&Object&Am1<self::_Im1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Im1<Z extends core::Object* = dynamic> extends self::_Im1&Object&Am1<self::Im1::Z*> {
-  synthetic constructor •() → self::Im1<self::Im1::Z*>*
+class Im1<Z extends core::Object? = dynamic> extends self::_Im1&Object&Am1<self::Im1::Z%> {
+  synthetic constructor •() → self::Im1<self::Im1::Z%>
     : super self::_Im1&Object&Am1::•()
     ;
 }
-abstract class _Jm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<core::Function*, self::_Jm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Jm1&Object&Am1<self::_Jm1&Object&Am1::Z*>*
+abstract class _Jm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<core::Function, self::_Jm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Jm1&Object&Am1<self::_Jm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Jm1<Z extends core::Object* = dynamic> extends self::_Jm1&Object&Am1<self::Jm1::Z*> {
-  synthetic constructor •() → self::Jm1<self::Jm1::Z*>*
+class Jm1<Z extends core::Object? = dynamic> extends self::_Jm1&Object&Am1<self::Jm1::Z%> {
+  synthetic constructor •() → self::Jm1<self::Jm1::Z%>
     : super self::_Jm1&Object&Am1::•()
     ;
 }
-abstract class _Km1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::Function*) →* dynamic, self::_Km1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Km1&Object&Am1<self::_Km1&Object&Am1::Z*>*
+abstract class _Km1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::Function) → dynamic, self::_Km1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Km1&Object&Am1<self::_Km1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Km1<Z extends core::Object* = dynamic> extends self::_Km1&Object&Am1<self::Km1::Z*> {
-  synthetic constructor •() → self::Km1<self::Km1::Z*>*
+class Km1<Z extends core::Object? = dynamic> extends self::_Km1&Object&Am1<self::Km1::Z%> {
+  synthetic constructor •() → self::Km1<self::Km1::Z%>
     : super self::_Km1&Object&Am1::•()
     ;
 }
-abstract class _Lm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* (() →* core::Function*) →* dynamic, self::_Lm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Lm1&Object&Am1<self::_Lm1&Object&Am1::Z*>*
+abstract class _Lm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → (() → core::Function) → dynamic, self::_Lm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Lm1&Object&Am1<self::_Lm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Lm1<Z extends core::Object* = dynamic> extends self::_Lm1&Object&Am1<self::Lm1::Z*> {
-  synthetic constructor •() → self::Lm1<self::Lm1::Z*>*
+class Lm1<Z extends core::Object? = dynamic> extends self::_Lm1&Object&Am1<self::Lm1::Z%> {
+  synthetic constructor •() → self::Lm1<self::Lm1::Z%>
     : super self::_Lm1&Object&Am1::•()
     ;
 }
-class Mm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::int*) →* dynamic, self::Mm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Mm1<self::Mm1::Z*>*
+class Mm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::Mm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Mm1<self::Mm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Nm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::int*) →* dynamic, self::Nm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Nm1<self::Nm1::Z*>*
+class Nm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::Nm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Nm1<self::Nm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Om1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* core::int*, self::Om1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Om1<self::Om1::Z*>*
+class Om1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → core::int, self::Om1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Om1<self::Om1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Pm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* dynamic, self::Pm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Pm1<self::Pm1::Z*>*
+class Pm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → dynamic, self::Pm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Pm1<self::Pm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Qm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* dynamic, self::Qm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Qm1<self::Qm1::Z*>*
+class Qm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → dynamic, self::Qm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Qm1<self::Qm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Rm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<({x: core::int*}) →* dynamic, self::Rm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Rm1<self::Rm1::Z*>*
+class Rm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<({x: core::int}) → dynamic, self::Rm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Rm1<self::Rm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Sm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<([core::int*]) →* dynamic, self::Sm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Sm1<self::Sm1::Z*>*
+class Sm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::Sm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Sm1<self::Sm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Tm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<([core::int*]) →* dynamic, self::Tm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Tm1<self::Tm1::Z*>*
+class Tm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::Tm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Tm1<self::Tm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Um1<Z extends core::Object* = dynamic> = core::Object with self::Am1<core::Function*, self::Um1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Um1<self::Um1::Z*>*
+class Um1<Z extends core::Object? = dynamic> = core::Object with self::Am1<core::Function, self::Um1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Um1<self::Um1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Vm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::Function*) →* dynamic, self::Vm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Vm1<self::Vm1::Z*>*
+class Vm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::Function) → dynamic, self::Vm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Vm1<self::Vm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Wm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* (() →* core::Function*) →* dynamic, self::Wm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Wm1<self::Wm1::Z*>*
+class Wm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → (() → core::Function) → dynamic, self::Wm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Wm1<self::Wm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Am2<X extends () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Am2<self::Am2::X*, self::Am2::Y*>*
+class Am2<X extends () → dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Am2<self::Am2::X, self::Am2::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
 }
-abstract class _Bm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::int*) →* dynamic, self::_Bm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Bm2&Object&Am2<self::_Bm2&Object&Am2::Z*>*
+abstract class _Bm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::_Bm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Bm2&Object&Am2<self::_Bm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bm2<Z extends core::Object* = dynamic> extends self::_Bm2&Object&Am2<self::Bm2::Z*> {
-  synthetic constructor •() → self::Bm2<self::Bm2::Z*>*
+class Bm2<Z extends core::Object? = dynamic> extends self::_Bm2&Object&Am2<self::Bm2::Z%> {
+  synthetic constructor •() → self::Bm2<self::Bm2::Z%>
     : super self::_Bm2&Object&Am2::•()
     ;
 }
-abstract class _Cm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::int*) →* dynamic, self::_Cm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Cm2&Object&Am2<self::_Cm2&Object&Am2::Z*>*
+abstract class _Cm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::_Cm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Cm2&Object&Am2<self::_Cm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cm2<Z extends core::Object* = dynamic> extends self::_Cm2&Object&Am2<self::Cm2::Z*> {
-  synthetic constructor •() → self::Cm2<self::Cm2::Z*>*
+class Cm2<Z extends core::Object? = dynamic> extends self::_Cm2&Object&Am2<self::Cm2::Z%> {
+  synthetic constructor •() → self::Cm2<self::Cm2::Z%>
     : super self::_Cm2&Object&Am2::•()
     ;
 }
-abstract class _Dm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* core::int*, self::_Dm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Dm2&Object&Am2<self::_Dm2&Object&Am2::Z*>*
+abstract class _Dm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → core::int, self::_Dm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Dm2&Object&Am2<self::_Dm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Dm2<Z extends core::Object* = dynamic> extends self::_Dm2&Object&Am2<self::Dm2::Z*> {
-  synthetic constructor •() → self::Dm2<self::Dm2::Z*>*
+class Dm2<Z extends core::Object? = dynamic> extends self::_Dm2&Object&Am2<self::Dm2::Z%> {
+  synthetic constructor •() → self::Dm2<self::Dm2::Z%>
     : super self::_Dm2&Object&Am2::•()
     ;
 }
-abstract class _Em2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* dynamic, self::_Em2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Em2&Object&Am2<self::_Em2&Object&Am2::Z*>*
+abstract class _Em2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → dynamic, self::_Em2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Em2&Object&Am2<self::_Em2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Em2<Z extends core::Object* = dynamic> extends self::_Em2&Object&Am2<self::Em2::Z*> {
-  synthetic constructor •() → self::Em2<self::Em2::Z*>*
+class Em2<Z extends core::Object? = dynamic> extends self::_Em2&Object&Am2<self::Em2::Z%> {
+  synthetic constructor •() → self::Em2<self::Em2::Z%>
     : super self::_Em2&Object&Am2::•()
     ;
 }
-abstract class _Fm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* dynamic, self::_Fm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fm2&Object&Am2<self::_Fm2&Object&Am2::Z*>*
+abstract class _Fm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → dynamic, self::_Fm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fm2&Object&Am2<self::_Fm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Fm2<Z extends core::Object* = dynamic> extends self::_Fm2&Object&Am2<self::Fm2::Z*> {
-  synthetic constructor •() → self::Fm2<self::Fm2::Z*>*
+class Fm2<Z extends core::Object? = dynamic> extends self::_Fm2&Object&Am2<self::Fm2::Z%> {
+  synthetic constructor •() → self::Fm2<self::Fm2::Z%>
     : super self::_Fm2&Object&Am2::•()
     ;
 }
-abstract class _Gm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<({x: core::int*}) →* dynamic, self::_Gm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Gm2&Object&Am2<self::_Gm2&Object&Am2::Z*>*
+abstract class _Gm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<({x: core::int}) → dynamic, self::_Gm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Gm2&Object&Am2<self::_Gm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Gm2<Z extends core::Object* = dynamic> extends self::_Gm2&Object&Am2<self::Gm2::Z*> {
-  synthetic constructor •() → self::Gm2<self::Gm2::Z*>*
+class Gm2<Z extends core::Object? = dynamic> extends self::_Gm2&Object&Am2<self::Gm2::Z%> {
+  synthetic constructor •() → self::Gm2<self::Gm2::Z%>
     : super self::_Gm2&Object&Am2::•()
     ;
 }
-abstract class _Hm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<([core::int*]) →* dynamic, self::_Hm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Hm2&Object&Am2<self::_Hm2&Object&Am2::Z*>*
+abstract class _Hm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::_Hm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Hm2&Object&Am2<self::_Hm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Hm2<Z extends core::Object* = dynamic> extends self::_Hm2&Object&Am2<self::Hm2::Z*> {
-  synthetic constructor •() → self::Hm2<self::Hm2::Z*>*
+class Hm2<Z extends core::Object? = dynamic> extends self::_Hm2&Object&Am2<self::Hm2::Z%> {
+  synthetic constructor •() → self::Hm2<self::Hm2::Z%>
     : super self::_Hm2&Object&Am2::•()
     ;
 }
-abstract class _Im2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<([core::int*]) →* dynamic, self::_Im2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Im2&Object&Am2<self::_Im2&Object&Am2::Z*>*
+abstract class _Im2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::_Im2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Im2&Object&Am2<self::_Im2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Im2<Z extends core::Object* = dynamic> extends self::_Im2&Object&Am2<self::Im2::Z*> {
-  synthetic constructor •() → self::Im2<self::Im2::Z*>*
+class Im2<Z extends core::Object? = dynamic> extends self::_Im2&Object&Am2<self::Im2::Z%> {
+  synthetic constructor •() → self::Im2<self::Im2::Z%>
     : super self::_Im2&Object&Am2::•()
     ;
 }
-abstract class _Jm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<core::Function*, self::_Jm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Jm2&Object&Am2<self::_Jm2&Object&Am2::Z*>*
+abstract class _Jm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<core::Function, self::_Jm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Jm2&Object&Am2<self::_Jm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Jm2<Z extends core::Object* = dynamic> extends self::_Jm2&Object&Am2<self::Jm2::Z*> {
-  synthetic constructor •() → self::Jm2<self::Jm2::Z*>*
+class Jm2<Z extends core::Object? = dynamic> extends self::_Jm2&Object&Am2<self::Jm2::Z%> {
+  synthetic constructor •() → self::Jm2<self::Jm2::Z%>
     : super self::_Jm2&Object&Am2::•()
     ;
 }
-abstract class _Km2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::Function*) →* dynamic, self::_Km2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Km2&Object&Am2<self::_Km2&Object&Am2::Z*>*
+abstract class _Km2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::Function) → dynamic, self::_Km2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Km2&Object&Am2<self::_Km2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Km2<Z extends core::Object* = dynamic> extends self::_Km2&Object&Am2<self::Km2::Z*> {
-  synthetic constructor •() → self::Km2<self::Km2::Z*>*
+class Km2<Z extends core::Object? = dynamic> extends self::_Km2&Object&Am2<self::Km2::Z%> {
+  synthetic constructor •() → self::Km2<self::Km2::Z%>
     : super self::_Km2&Object&Am2::•()
     ;
 }
-abstract class _Lm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* (() →* core::Function*) →* dynamic, self::_Lm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Lm2&Object&Am2<self::_Lm2&Object&Am2::Z*>*
+abstract class _Lm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → (() → core::Function) → dynamic, self::_Lm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Lm2&Object&Am2<self::_Lm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Lm2<Z extends core::Object* = dynamic> extends self::_Lm2&Object&Am2<self::Lm2::Z*> {
-  synthetic constructor •() → self::Lm2<self::Lm2::Z*>*
+class Lm2<Z extends core::Object? = dynamic> extends self::_Lm2&Object&Am2<self::Lm2::Z%> {
+  synthetic constructor •() → self::Lm2<self::Lm2::Z%>
     : super self::_Lm2&Object&Am2::•()
     ;
 }
-class Mm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::int*) →* dynamic, self::Mm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Mm2<self::Mm2::Z*>*
+class Mm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::Mm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Mm2<self::Mm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Nm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::int*) →* dynamic, self::Nm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Nm2<self::Nm2::Z*>*
+class Nm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::Nm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Nm2<self::Nm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Om2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* core::int*, self::Om2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Om2<self::Om2::Z*>*
+class Om2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → core::int, self::Om2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Om2<self::Om2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Pm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* dynamic, self::Pm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Pm2<self::Pm2::Z*>*
+class Pm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → dynamic, self::Pm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Pm2<self::Pm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Qm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* dynamic, self::Qm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Qm2<self::Qm2::Z*>*
+class Qm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → dynamic, self::Qm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Qm2<self::Qm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Rm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<({x: core::int*}) →* dynamic, self::Rm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Rm2<self::Rm2::Z*>*
+class Rm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<({x: core::int}) → dynamic, self::Rm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Rm2<self::Rm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Sm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<([core::int*]) →* dynamic, self::Sm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Sm2<self::Sm2::Z*>*
+class Sm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::Sm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Sm2<self::Sm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Tm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<([core::int*]) →* dynamic, self::Tm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Tm2<self::Tm2::Z*>*
+class Tm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::Tm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Tm2<self::Tm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Um2<Z extends core::Object* = dynamic> = core::Object with self::Am2<core::Function*, self::Um2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Um2<self::Um2::Z*>*
+class Um2<Z extends core::Object? = dynamic> = core::Object with self::Am2<core::Function, self::Um2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Um2<self::Um2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Vm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::Function*) →* dynamic, self::Vm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Vm2<self::Vm2::Z*>*
+class Vm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::Function) → dynamic, self::Vm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Vm2<self::Vm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Wm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* (() →* core::Function*) →* dynamic, self::Wm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Wm2<self::Wm2::Z*>*
+class Wm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → (() → core::Function) → dynamic, self::Wm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Wm2<self::Wm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Am3<L extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Am3<self::Am3::L*, self::Am3::Y*>*
+class Am3<L extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Am3<self::Am3::L%, self::Am3::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
 }
-abstract class _Bm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<(core::int*) →* dynamic, self::_Bm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Bm3&Object&Am3<self::_Bm3&Object&Am3::Z*>*
+abstract class _Bm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<(core::int) → dynamic, self::_Bm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Bm3&Object&Am3<self::_Bm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bm3<Z extends core::Object* = dynamic> extends self::_Bm3&Object&Am3<self::Bm3::Z*> {
-  synthetic constructor •() → self::Bm3<self::Bm3::Z*>*
+class Bm3<Z extends core::Object? = dynamic> extends self::_Bm3&Object&Am3<self::Bm3::Z%> {
+  synthetic constructor •() → self::Bm3<self::Bm3::Z%>
     : super self::_Bm3&Object&Am3::•()
     ;
 }
-abstract class _Cm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<(core::int*) →* dynamic, self::_Cm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Cm3&Object&Am3<self::_Cm3&Object&Am3::Z*>*
+abstract class _Cm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<(core::int) → dynamic, self::_Cm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Cm3&Object&Am3<self::_Cm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cm3<Z extends core::Object* = dynamic> extends self::_Cm3&Object&Am3<self::Cm3::Z*> {
-  synthetic constructor •() → self::Cm3<self::Cm3::Z*>*
+class Cm3<Z extends core::Object? = dynamic> extends self::_Cm3&Object&Am3<self::Cm3::Z%> {
+  synthetic constructor •() → self::Cm3<self::Cm3::Z%>
     : super self::_Cm3&Object&Am3::•()
     ;
 }
-abstract class _Dm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<() →* core::int*, self::_Dm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Dm3&Object&Am3<self::_Dm3&Object&Am3::Z*>*
+abstract class _Dm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<() → core::int, self::_Dm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Dm3&Object&Am3<self::_Dm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Dm3<Z extends core::Object* = dynamic> extends self::_Dm3&Object&Am3<self::Dm3::Z*> {
-  synthetic constructor •() → self::Dm3<self::Dm3::Z*>*
+class Dm3<Z extends core::Object? = dynamic> extends self::_Dm3&Object&Am3<self::Dm3::Z%> {
+  synthetic constructor •() → self::Dm3<self::Dm3::Z%>
     : super self::_Dm3&Object&Am3::•()
     ;
 }
-abstract class _Em3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<() →* dynamic, self::_Em3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Em3&Object&Am3<self::_Em3&Object&Am3::Z*>*
+abstract class _Em3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<() → dynamic, self::_Em3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Em3&Object&Am3<self::_Em3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Em3<Z extends core::Object* = dynamic> extends self::_Em3&Object&Am3<self::Em3::Z*> {
-  synthetic constructor •() → self::Em3<self::Em3::Z*>*
+class Em3<Z extends core::Object? = dynamic> extends self::_Em3&Object&Am3<self::Em3::Z%> {
+  synthetic constructor •() → self::Em3<self::Em3::Z%>
     : super self::_Em3&Object&Am3::•()
     ;
 }
-abstract class _Fm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<() →* dynamic, self::_Fm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fm3&Object&Am3<self::_Fm3&Object&Am3::Z*>*
+abstract class _Fm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<() → dynamic, self::_Fm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fm3&Object&Am3<self::_Fm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Fm3<Z extends core::Object* = dynamic> extends self::_Fm3&Object&Am3<self::Fm3::Z*> {
-  synthetic constructor •() → self::Fm3<self::Fm3::Z*>*
+class Fm3<Z extends core::Object? = dynamic> extends self::_Fm3&Object&Am3<self::Fm3::Z%> {
+  synthetic constructor •() → self::Fm3<self::Fm3::Z%>
     : super self::_Fm3&Object&Am3::•()
     ;
 }
-abstract class _Gm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<({x: core::int*}) →* dynamic, self::_Gm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Gm3&Object&Am3<self::_Gm3&Object&Am3::Z*>*
+abstract class _Gm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<({x: core::int}) → dynamic, self::_Gm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Gm3&Object&Am3<self::_Gm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Gm3<Z extends core::Object* = dynamic> extends self::_Gm3&Object&Am3<self::Gm3::Z*> {
-  synthetic constructor •() → self::Gm3<self::Gm3::Z*>*
+class Gm3<Z extends core::Object? = dynamic> extends self::_Gm3&Object&Am3<self::Gm3::Z%> {
+  synthetic constructor •() → self::Gm3<self::Gm3::Z%>
     : super self::_Gm3&Object&Am3::•()
     ;
 }
-abstract class _Hm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<([core::int*]) →* dynamic, self::_Hm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Hm3&Object&Am3<self::_Hm3&Object&Am3::Z*>*
+abstract class _Hm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<([core::int]) → dynamic, self::_Hm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Hm3&Object&Am3<self::_Hm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Hm3<Z extends core::Object* = dynamic> extends self::_Hm3&Object&Am3<self::Hm3::Z*> {
-  synthetic constructor •() → self::Hm3<self::Hm3::Z*>*
+class Hm3<Z extends core::Object? = dynamic> extends self::_Hm3&Object&Am3<self::Hm3::Z%> {
+  synthetic constructor •() → self::Hm3<self::Hm3::Z%>
     : super self::_Hm3&Object&Am3::•()
     ;
 }
-abstract class _Im3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<([core::int*]) →* dynamic, self::_Im3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Im3&Object&Am3<self::_Im3&Object&Am3::Z*>*
+abstract class _Im3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<([core::int]) → dynamic, self::_Im3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Im3&Object&Am3<self::_Im3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Im3<Z extends core::Object* = dynamic> extends self::_Im3&Object&Am3<self::Im3::Z*> {
-  synthetic constructor •() → self::Im3<self::Im3::Z*>*
+class Im3<Z extends core::Object? = dynamic> extends self::_Im3&Object&Am3<self::Im3::Z%> {
+  synthetic constructor •() → self::Im3<self::Im3::Z%>
     : super self::_Im3&Object&Am3::•()
     ;
 }
-abstract class _Jm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<(core::Function*) →* dynamic, self::_Jm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Jm3&Object&Am3<self::_Jm3&Object&Am3::Z*>*
+abstract class _Jm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<(core::Function) → dynamic, self::_Jm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Jm3&Object&Am3<self::_Jm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Jm3<Z extends core::Object* = dynamic> extends self::_Jm3&Object&Am3<self::Jm3::Z*> {
-  synthetic constructor •() → self::Jm3<self::Jm3::Z*>*
+class Jm3<Z extends core::Object? = dynamic> extends self::_Jm3&Object&Am3<self::Jm3::Z%> {
+  synthetic constructor •() → self::Jm3<self::Jm3::Z%>
     : super self::_Jm3&Object&Am3::•()
     ;
 }
-abstract class _Km3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<() →* (() →* core::Function*) →* dynamic, self::_Km3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Km3&Object&Am3<self::_Km3&Object&Am3::Z*>*
+abstract class _Km3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<() → (() → core::Function) → dynamic, self::_Km3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Km3&Object&Am3<self::_Km3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Km3<Z extends core::Object* = dynamic> extends self::_Km3&Object&Am3<self::Km3::Z*> {
-  synthetic constructor •() → self::Km3<self::Km3::Z*>*
+class Km3<Z extends core::Object? = dynamic> extends self::_Km3&Object&Am3<self::Km3::Z%> {
+  synthetic constructor •() → self::Km3<self::Km3::Z%>
     : super self::_Km3&Object&Am3::•()
     ;
 }
-class Af1<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Af1<self::Af1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Af1<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Af1<self::Af1::foo::X>
+    return throw "";
 }
-class Bf1<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Bf1<self::Bf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Bf1<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Bf1<self::Bf1::foo::X>
+    return throw "";
 }
-class Cf1<X extends () →* core::int*> extends core::Object {
-  static factory foo<X extends () →* core::int*>() → self::Cf1<self::Cf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Cf1<X extends () → core::int> extends core::Object {
+  static factory foo<X extends () → core::int>() → self::Cf1<self::Cf1::foo::X>
+    return throw "";
 }
-class Df1<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Df1<self::Df1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Df1<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Df1<self::Df1::foo::X>
+    return throw "";
 }
-class Ef1<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Ef1<self::Ef1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Ef1<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Ef1<self::Ef1::foo::X>
+    return throw "";
 }
-class Ff1<X extends ({x: core::int*}) →* dynamic> extends core::Object {
-  static factory foo<X extends ({x: core::int*}) →* dynamic>() → self::Ff1<self::Ff1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Ff1<X extends ({x: core::int}) → dynamic> extends core::Object {
+  static factory foo<X extends ({x: core::int}) → dynamic>() → self::Ff1<self::Ff1::foo::X>
+    return throw "";
 }
-class Gf1<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::Gf1<self::Gf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Gf1<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::Gf1<self::Gf1::foo::X>
+    return throw "";
 }
-class Hf1<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::Hf1<self::Hf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Hf1<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::Hf1<self::Hf1::foo::X>
+    return throw "";
 }
-class If1<X extends core::Function*> extends core::Object {
-  static factory foo<X extends core::Function*>() → self::If1<self::If1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class If1<X extends core::Function> extends core::Object {
+  static factory foo<X extends core::Function>() → self::If1<self::If1::foo::X>
+    return throw "";
 }
-class Jf1<X extends (core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::Function*) →* dynamic>() → self::Jf1<self::Jf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Jf1<X extends (core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends (core::Function) → dynamic>() → self::Jf1<self::Jf1::foo::X>
+    return throw "";
 }
-class Kf1<X extends () →* (() →* core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends () →* (() →* core::Function*) →* dynamic>() → self::Kf1<self::Kf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Kf1<X extends () → (() → core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends () → (() → core::Function) → dynamic>() → self::Kf1<self::Kf1::foo::X>
+    return throw "";
 }
-class Bf2<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Bf2<self::Bf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Bf2<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Bf2<self::Bf2::foo::X>
+    return throw "";
 }
-class Cf2<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Cf2<self::Cf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Cf2<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Cf2<self::Cf2::foo::X>
+    return throw "";
 }
-class Df2<X extends () →* core::int*> extends core::Object {
-  static factory foo<X extends () →* core::int*>() → self::Df2<self::Df2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Df2<X extends () → core::int> extends core::Object {
+  static factory foo<X extends () → core::int>() → self::Df2<self::Df2::foo::X>
+    return throw "";
 }
-class Ef2<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Ef2<self::Ef2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Ef2<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Ef2<self::Ef2::foo::X>
+    return throw "";
 }
-class Ff2<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Ff2<self::Ff2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Ff2<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Ff2<self::Ff2::foo::X>
+    return throw "";
 }
-class Gf2<X extends ({x: core::int*}) →* dynamic> extends core::Object {
-  static factory foo<X extends ({x: core::int*}) →* dynamic>() → self::Gf2<self::Gf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Gf2<X extends ({x: core::int}) → dynamic> extends core::Object {
+  static factory foo<X extends ({x: core::int}) → dynamic>() → self::Gf2<self::Gf2::foo::X>
+    return throw "";
 }
-class Hf2<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::Hf2<self::Hf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Hf2<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::Hf2<self::Hf2::foo::X>
+    return throw "";
 }
-class If2<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::If2<self::If2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class If2<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::If2<self::If2::foo::X>
+    return throw "";
 }
-class Jf2<X extends (core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::Function*) →* dynamic>() → self::Jf2<self::Jf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Jf2<X extends (core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends (core::Function) → dynamic>() → self::Jf2<self::Jf2::foo::X>
+    return throw "";
 }
-class Kf2<X extends () →* (() →* core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends () →* (() →* core::Function*) →* dynamic>() → self::Kf2<self::Kf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Kf2<X extends () → (() → core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends () → (() → core::Function) → dynamic>() → self::Kf2<self::Kf2::foo::X>
+    return throw "";
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.weak.outline.expect b/pkg/front_end/testcases/general/clone_function_type.dart.weak.outline.expect
index cf63a80..118b670 100644
--- a/pkg/front_end/testcases/general/clone_function_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/clone_function_type.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -103,1289 +103,509 @@
 import self as self;
 import "dart:core" as core;
 
-typedef TdB = (core::int*) →* dynamic;
-typedef TdC = (core::int*) →* dynamic;
-typedef TdD = () →* core::int*;
-typedef TdE = () →* dynamic;
-typedef TdF = () →* dynamic;
-typedef TdG = ({x: core::int*}) →* dynamic;
-typedef TdH = ([core::int*]) →* dynamic;
-typedef TdI = ([core::int*]) →* dynamic;
-typedef TdJ = (core::Function*) →* dynamic;
-typedef TdK = () →* (() →* core::Function*) →* dynamic;
-class Am1<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Am1<self::Am1::X*, self::Am1::Y*>*
+typedef TdB = (core::int) → dynamic;
+typedef TdC = (core::int) → dynamic;
+typedef TdD = () → core::int;
+typedef TdE = () → dynamic;
+typedef TdF = () → dynamic;
+typedef TdG = ({x: core::int}) → dynamic;
+typedef TdH = ([core::int]) → dynamic;
+typedef TdI = ([core::int]) → dynamic;
+typedef TdJ = (core::Function) → dynamic;
+typedef TdK = () → (() → core::Function) → dynamic;
+class Am1<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Am1<self::Am1::X%, self::Am1::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
 }
-abstract class _Bm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::int*) →* dynamic, self::_Bm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Bm1&Object&Am1<self::_Bm1&Object&Am1::Z*>*
+abstract class _Bm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::_Bm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Bm1&Object&Am1<self::_Bm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bm1<Z extends core::Object* = dynamic> extends self::_Bm1&Object&Am1<self::Bm1::Z*> {
-  synthetic constructor •() → self::Bm1<self::Bm1::Z*>*
+class Bm1<Z extends core::Object? = dynamic> extends self::_Bm1&Object&Am1<self::Bm1::Z%> {
+  synthetic constructor •() → self::Bm1<self::Bm1::Z%>
     ;
 }
-abstract class _Cm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::int*) →* dynamic, self::_Cm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Cm1&Object&Am1<self::_Cm1&Object&Am1::Z*>*
+abstract class _Cm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::_Cm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Cm1&Object&Am1<self::_Cm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cm1<Z extends core::Object* = dynamic> extends self::_Cm1&Object&Am1<self::Cm1::Z*> {
-  synthetic constructor •() → self::Cm1<self::Cm1::Z*>*
+class Cm1<Z extends core::Object? = dynamic> extends self::_Cm1&Object&Am1<self::Cm1::Z%> {
+  synthetic constructor •() → self::Cm1<self::Cm1::Z%>
     ;
 }
-abstract class _Dm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* core::int*, self::_Dm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Dm1&Object&Am1<self::_Dm1&Object&Am1::Z*>*
+abstract class _Dm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → core::int, self::_Dm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Dm1&Object&Am1<self::_Dm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Dm1<Z extends core::Object* = dynamic> extends self::_Dm1&Object&Am1<self::Dm1::Z*> {
-  synthetic constructor •() → self::Dm1<self::Dm1::Z*>*
+class Dm1<Z extends core::Object? = dynamic> extends self::_Dm1&Object&Am1<self::Dm1::Z%> {
+  synthetic constructor •() → self::Dm1<self::Dm1::Z%>
     ;
 }
-abstract class _Em1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* dynamic, self::_Em1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Em1&Object&Am1<self::_Em1&Object&Am1::Z*>*
+abstract class _Em1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → dynamic, self::_Em1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Em1&Object&Am1<self::_Em1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Em1<Z extends core::Object* = dynamic> extends self::_Em1&Object&Am1<self::Em1::Z*> {
-  synthetic constructor •() → self::Em1<self::Em1::Z*>*
+class Em1<Z extends core::Object? = dynamic> extends self::_Em1&Object&Am1<self::Em1::Z%> {
+  synthetic constructor •() → self::Em1<self::Em1::Z%>
     ;
 }
-abstract class _Fm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* dynamic, self::_Fm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fm1&Object&Am1<self::_Fm1&Object&Am1::Z*>*
+abstract class _Fm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → dynamic, self::_Fm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fm1&Object&Am1<self::_Fm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Fm1<Z extends core::Object* = dynamic> extends self::_Fm1&Object&Am1<self::Fm1::Z*> {
-  synthetic constructor •() → self::Fm1<self::Fm1::Z*>*
+class Fm1<Z extends core::Object? = dynamic> extends self::_Fm1&Object&Am1<self::Fm1::Z%> {
+  synthetic constructor •() → self::Fm1<self::Fm1::Z%>
     ;
 }
-abstract class _Gm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<({x: core::int*}) →* dynamic, self::_Gm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Gm1&Object&Am1<self::_Gm1&Object&Am1::Z*>*
+abstract class _Gm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<({x: core::int}) → dynamic, self::_Gm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Gm1&Object&Am1<self::_Gm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Gm1<Z extends core::Object* = dynamic> extends self::_Gm1&Object&Am1<self::Gm1::Z*> {
-  synthetic constructor •() → self::Gm1<self::Gm1::Z*>*
+class Gm1<Z extends core::Object? = dynamic> extends self::_Gm1&Object&Am1<self::Gm1::Z%> {
+  synthetic constructor •() → self::Gm1<self::Gm1::Z%>
     ;
 }
-abstract class _Hm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<([core::int*]) →* dynamic, self::_Hm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Hm1&Object&Am1<self::_Hm1&Object&Am1::Z*>*
+abstract class _Hm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::_Hm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Hm1&Object&Am1<self::_Hm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Hm1<Z extends core::Object* = dynamic> extends self::_Hm1&Object&Am1<self::Hm1::Z*> {
-  synthetic constructor •() → self::Hm1<self::Hm1::Z*>*
+class Hm1<Z extends core::Object? = dynamic> extends self::_Hm1&Object&Am1<self::Hm1::Z%> {
+  synthetic constructor •() → self::Hm1<self::Hm1::Z%>
     ;
 }
-abstract class _Im1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<([core::int*]) →* dynamic, self::_Im1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Im1&Object&Am1<self::_Im1&Object&Am1::Z*>*
+abstract class _Im1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::_Im1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Im1&Object&Am1<self::_Im1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Im1<Z extends core::Object* = dynamic> extends self::_Im1&Object&Am1<self::Im1::Z*> {
-  synthetic constructor •() → self::Im1<self::Im1::Z*>*
+class Im1<Z extends core::Object? = dynamic> extends self::_Im1&Object&Am1<self::Im1::Z%> {
+  synthetic constructor •() → self::Im1<self::Im1::Z%>
     ;
 }
-abstract class _Jm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<core::Function*, self::_Jm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Jm1&Object&Am1<self::_Jm1&Object&Am1::Z*>*
+abstract class _Jm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<core::Function, self::_Jm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Jm1&Object&Am1<self::_Jm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Jm1<Z extends core::Object* = dynamic> extends self::_Jm1&Object&Am1<self::Jm1::Z*> {
-  synthetic constructor •() → self::Jm1<self::Jm1::Z*>*
+class Jm1<Z extends core::Object? = dynamic> extends self::_Jm1&Object&Am1<self::Jm1::Z%> {
+  synthetic constructor •() → self::Jm1<self::Jm1::Z%>
     ;
 }
-abstract class _Km1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::Function*) →* dynamic, self::_Km1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Km1&Object&Am1<self::_Km1&Object&Am1::Z*>*
+abstract class _Km1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::Function) → dynamic, self::_Km1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Km1&Object&Am1<self::_Km1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Km1<Z extends core::Object* = dynamic> extends self::_Km1&Object&Am1<self::Km1::Z*> {
-  synthetic constructor •() → self::Km1<self::Km1::Z*>*
+class Km1<Z extends core::Object? = dynamic> extends self::_Km1&Object&Am1<self::Km1::Z%> {
+  synthetic constructor •() → self::Km1<self::Km1::Z%>
     ;
 }
-abstract class _Lm1&Object&Am1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* (() →* core::Function*) →* dynamic, self::_Lm1&Object&Am1::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Lm1&Object&Am1<self::_Lm1&Object&Am1::Z*>*
+abstract class _Lm1&Object&Am1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → (() → core::Function) → dynamic, self::_Lm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Lm1&Object&Am1<self::_Lm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Lm1<Z extends core::Object* = dynamic> extends self::_Lm1&Object&Am1<self::Lm1::Z*> {
-  synthetic constructor •() → self::Lm1<self::Lm1::Z*>*
+class Lm1<Z extends core::Object? = dynamic> extends self::_Lm1&Object&Am1<self::Lm1::Z%> {
+  synthetic constructor •() → self::Lm1<self::Lm1::Z%>
     ;
 }
-class Mm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::int*) →* dynamic, self::Mm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Mm1<self::Mm1::Z*>*
+class Mm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::Mm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Mm1<self::Mm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Nm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::int*) →* dynamic, self::Nm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Nm1<self::Nm1::Z*>*
+class Nm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::Nm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Nm1<self::Nm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Om1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* core::int*, self::Om1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Om1<self::Om1::Z*>*
+class Om1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → core::int, self::Om1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Om1<self::Om1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Pm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* dynamic, self::Pm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Pm1<self::Pm1::Z*>*
+class Pm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → dynamic, self::Pm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Pm1<self::Pm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Qm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* dynamic, self::Qm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Qm1<self::Qm1::Z*>*
+class Qm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → dynamic, self::Qm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Qm1<self::Qm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Rm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<({x: core::int*}) →* dynamic, self::Rm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Rm1<self::Rm1::Z*>*
+class Rm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<({x: core::int}) → dynamic, self::Rm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Rm1<self::Rm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Sm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<([core::int*]) →* dynamic, self::Sm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Sm1<self::Sm1::Z*>*
+class Sm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::Sm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Sm1<self::Sm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Tm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<([core::int*]) →* dynamic, self::Tm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Tm1<self::Tm1::Z*>*
+class Tm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::Tm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Tm1<self::Tm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Um1<Z extends core::Object* = dynamic> = core::Object with self::Am1<core::Function*, self::Um1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Um1<self::Um1::Z*>*
+class Um1<Z extends core::Object? = dynamic> = core::Object with self::Am1<core::Function, self::Um1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Um1<self::Um1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Vm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<(core::Function*) →* dynamic, self::Vm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Vm1<self::Vm1::Z*>*
+class Vm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<(core::Function) → dynamic, self::Vm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Vm1<self::Vm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Wm1<Z extends core::Object* = dynamic> = core::Object with self::Am1<() →* (() →* core::Function*) →* dynamic, self::Wm1::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Wm1<self::Wm1::Z*>*
+class Wm1<Z extends core::Object? = dynamic> = core::Object with self::Am1<() → (() → core::Function) → dynamic, self::Wm1::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Wm1<self::Wm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Am2<X extends () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Am2<self::Am2::X*, self::Am2::Y*>*
+class Am2<X extends () → dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Am2<self::Am2::X, self::Am2::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
 }
-abstract class _Bm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::int*) →* dynamic, self::_Bm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Bm2&Object&Am2<self::_Bm2&Object&Am2::Z*>*
+abstract class _Bm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::_Bm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Bm2&Object&Am2<self::_Bm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bm2<Z extends core::Object* = dynamic> extends self::_Bm2&Object&Am2<self::Bm2::Z*> {
-  synthetic constructor •() → self::Bm2<self::Bm2::Z*>*
+class Bm2<Z extends core::Object? = dynamic> extends self::_Bm2&Object&Am2<self::Bm2::Z%> {
+  synthetic constructor •() → self::Bm2<self::Bm2::Z%>
     ;
 }
-abstract class _Cm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::int*) →* dynamic, self::_Cm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Cm2&Object&Am2<self::_Cm2&Object&Am2::Z*>*
+abstract class _Cm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::_Cm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Cm2&Object&Am2<self::_Cm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cm2<Z extends core::Object* = dynamic> extends self::_Cm2&Object&Am2<self::Cm2::Z*> {
-  synthetic constructor •() → self::Cm2<self::Cm2::Z*>*
+class Cm2<Z extends core::Object? = dynamic> extends self::_Cm2&Object&Am2<self::Cm2::Z%> {
+  synthetic constructor •() → self::Cm2<self::Cm2::Z%>
     ;
 }
-abstract class _Dm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* core::int*, self::_Dm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Dm2&Object&Am2<self::_Dm2&Object&Am2::Z*>*
+abstract class _Dm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → core::int, self::_Dm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Dm2&Object&Am2<self::_Dm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Dm2<Z extends core::Object* = dynamic> extends self::_Dm2&Object&Am2<self::Dm2::Z*> {
-  synthetic constructor •() → self::Dm2<self::Dm2::Z*>*
+class Dm2<Z extends core::Object? = dynamic> extends self::_Dm2&Object&Am2<self::Dm2::Z%> {
+  synthetic constructor •() → self::Dm2<self::Dm2::Z%>
     ;
 }
-abstract class _Em2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* dynamic, self::_Em2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Em2&Object&Am2<self::_Em2&Object&Am2::Z*>*
+abstract class _Em2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → dynamic, self::_Em2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Em2&Object&Am2<self::_Em2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Em2<Z extends core::Object* = dynamic> extends self::_Em2&Object&Am2<self::Em2::Z*> {
-  synthetic constructor •() → self::Em2<self::Em2::Z*>*
+class Em2<Z extends core::Object? = dynamic> extends self::_Em2&Object&Am2<self::Em2::Z%> {
+  synthetic constructor •() → self::Em2<self::Em2::Z%>
     ;
 }
-abstract class _Fm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* dynamic, self::_Fm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fm2&Object&Am2<self::_Fm2&Object&Am2::Z*>*
+abstract class _Fm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → dynamic, self::_Fm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fm2&Object&Am2<self::_Fm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Fm2<Z extends core::Object* = dynamic> extends self::_Fm2&Object&Am2<self::Fm2::Z*> {
-  synthetic constructor •() → self::Fm2<self::Fm2::Z*>*
+class Fm2<Z extends core::Object? = dynamic> extends self::_Fm2&Object&Am2<self::Fm2::Z%> {
+  synthetic constructor •() → self::Fm2<self::Fm2::Z%>
     ;
 }
-abstract class _Gm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<({x: core::int*}) →* dynamic, self::_Gm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Gm2&Object&Am2<self::_Gm2&Object&Am2::Z*>*
+abstract class _Gm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<({x: core::int}) → dynamic, self::_Gm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Gm2&Object&Am2<self::_Gm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Gm2<Z extends core::Object* = dynamic> extends self::_Gm2&Object&Am2<self::Gm2::Z*> {
-  synthetic constructor •() → self::Gm2<self::Gm2::Z*>*
+class Gm2<Z extends core::Object? = dynamic> extends self::_Gm2&Object&Am2<self::Gm2::Z%> {
+  synthetic constructor •() → self::Gm2<self::Gm2::Z%>
     ;
 }
-abstract class _Hm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<([core::int*]) →* dynamic, self::_Hm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Hm2&Object&Am2<self::_Hm2&Object&Am2::Z*>*
+abstract class _Hm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::_Hm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Hm2&Object&Am2<self::_Hm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Hm2<Z extends core::Object* = dynamic> extends self::_Hm2&Object&Am2<self::Hm2::Z*> {
-  synthetic constructor •() → self::Hm2<self::Hm2::Z*>*
+class Hm2<Z extends core::Object? = dynamic> extends self::_Hm2&Object&Am2<self::Hm2::Z%> {
+  synthetic constructor •() → self::Hm2<self::Hm2::Z%>
     ;
 }
-abstract class _Im2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<([core::int*]) →* dynamic, self::_Im2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Im2&Object&Am2<self::_Im2&Object&Am2::Z*>*
+abstract class _Im2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::_Im2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Im2&Object&Am2<self::_Im2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Im2<Z extends core::Object* = dynamic> extends self::_Im2&Object&Am2<self::Im2::Z*> {
-  synthetic constructor •() → self::Im2<self::Im2::Z*>*
+class Im2<Z extends core::Object? = dynamic> extends self::_Im2&Object&Am2<self::Im2::Z%> {
+  synthetic constructor •() → self::Im2<self::Im2::Z%>
     ;
 }
-abstract class _Jm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<core::Function*, self::_Jm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Jm2&Object&Am2<self::_Jm2&Object&Am2::Z*>*
+abstract class _Jm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<core::Function, self::_Jm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Jm2&Object&Am2<self::_Jm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Jm2<Z extends core::Object* = dynamic> extends self::_Jm2&Object&Am2<self::Jm2::Z*> {
-  synthetic constructor •() → self::Jm2<self::Jm2::Z*>*
+class Jm2<Z extends core::Object? = dynamic> extends self::_Jm2&Object&Am2<self::Jm2::Z%> {
+  synthetic constructor •() → self::Jm2<self::Jm2::Z%>
     ;
 }
-abstract class _Km2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::Function*) →* dynamic, self::_Km2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Km2&Object&Am2<self::_Km2&Object&Am2::Z*>*
+abstract class _Km2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::Function) → dynamic, self::_Km2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Km2&Object&Am2<self::_Km2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Km2<Z extends core::Object* = dynamic> extends self::_Km2&Object&Am2<self::Km2::Z*> {
-  synthetic constructor •() → self::Km2<self::Km2::Z*>*
+class Km2<Z extends core::Object? = dynamic> extends self::_Km2&Object&Am2<self::Km2::Z%> {
+  synthetic constructor •() → self::Km2<self::Km2::Z%>
     ;
 }
-abstract class _Lm2&Object&Am2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* (() →* core::Function*) →* dynamic, self::_Lm2&Object&Am2::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Lm2&Object&Am2<self::_Lm2&Object&Am2::Z*>*
+abstract class _Lm2&Object&Am2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → (() → core::Function) → dynamic, self::_Lm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Lm2&Object&Am2<self::_Lm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Lm2<Z extends core::Object* = dynamic> extends self::_Lm2&Object&Am2<self::Lm2::Z*> {
-  synthetic constructor •() → self::Lm2<self::Lm2::Z*>*
+class Lm2<Z extends core::Object? = dynamic> extends self::_Lm2&Object&Am2<self::Lm2::Z%> {
+  synthetic constructor •() → self::Lm2<self::Lm2::Z%>
     ;
 }
-class Mm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::int*) →* dynamic, self::Mm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Mm2<self::Mm2::Z*>*
+class Mm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::Mm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Mm2<self::Mm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Nm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::int*) →* dynamic, self::Nm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Nm2<self::Nm2::Z*>*
+class Nm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::Nm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Nm2<self::Nm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Om2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* core::int*, self::Om2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Om2<self::Om2::Z*>*
+class Om2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → core::int, self::Om2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Om2<self::Om2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Pm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* dynamic, self::Pm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Pm2<self::Pm2::Z*>*
+class Pm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → dynamic, self::Pm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Pm2<self::Pm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Qm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* dynamic, self::Qm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Qm2<self::Qm2::Z*>*
+class Qm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → dynamic, self::Qm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Qm2<self::Qm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Rm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<({x: core::int*}) →* dynamic, self::Rm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Rm2<self::Rm2::Z*>*
+class Rm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<({x: core::int}) → dynamic, self::Rm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Rm2<self::Rm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Sm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<([core::int*]) →* dynamic, self::Sm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Sm2<self::Sm2::Z*>*
+class Sm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::Sm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Sm2<self::Sm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Tm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<([core::int*]) →* dynamic, self::Tm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Tm2<self::Tm2::Z*>*
+class Tm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::Tm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Tm2<self::Tm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Um2<Z extends core::Object* = dynamic> = core::Object with self::Am2<core::Function*, self::Um2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Um2<self::Um2::Z*>*
+class Um2<Z extends core::Object? = dynamic> = core::Object with self::Am2<core::Function, self::Um2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Um2<self::Um2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Vm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<(core::Function*) →* dynamic, self::Vm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Vm2<self::Vm2::Z*>*
+class Vm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<(core::Function) → dynamic, self::Vm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Vm2<self::Vm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Wm2<Z extends core::Object* = dynamic> = core::Object with self::Am2<() →* (() →* core::Function*) →* dynamic, self::Wm2::Z*> /*hasConstConstructor*/  {
-  const synthetic constructor •() → self::Wm2<self::Wm2::Z*>*
+class Wm2<Z extends core::Object? = dynamic> = core::Object with self::Am2<() → (() → core::Function) → dynamic, self::Wm2::Z%> /*hasConstConstructor*/  {
+  const synthetic constructor •() → self::Wm2<self::Wm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Am3<L extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Am3<self::Am3::L*, self::Am3::Y*>*
+class Am3<L extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Am3<self::Am3::L%, self::Am3::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
 }
-abstract class _Bm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<(core::int*) →* dynamic, self::_Bm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Bm3&Object&Am3<self::_Bm3&Object&Am3::Z*>*
+abstract class _Bm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<(core::int) → dynamic, self::_Bm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Bm3&Object&Am3<self::_Bm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bm3<Z extends core::Object* = dynamic> extends self::_Bm3&Object&Am3<self::Bm3::Z*> {
-  synthetic constructor •() → self::Bm3<self::Bm3::Z*>*
+class Bm3<Z extends core::Object? = dynamic> extends self::_Bm3&Object&Am3<self::Bm3::Z%> {
+  synthetic constructor •() → self::Bm3<self::Bm3::Z%>
     ;
 }
-abstract class _Cm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<(core::int*) →* dynamic, self::_Cm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Cm3&Object&Am3<self::_Cm3&Object&Am3::Z*>*
+abstract class _Cm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<(core::int) → dynamic, self::_Cm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Cm3&Object&Am3<self::_Cm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cm3<Z extends core::Object* = dynamic> extends self::_Cm3&Object&Am3<self::Cm3::Z*> {
-  synthetic constructor •() → self::Cm3<self::Cm3::Z*>*
+class Cm3<Z extends core::Object? = dynamic> extends self::_Cm3&Object&Am3<self::Cm3::Z%> {
+  synthetic constructor •() → self::Cm3<self::Cm3::Z%>
     ;
 }
-abstract class _Dm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<() →* core::int*, self::_Dm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Dm3&Object&Am3<self::_Dm3&Object&Am3::Z*>*
+abstract class _Dm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<() → core::int, self::_Dm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Dm3&Object&Am3<self::_Dm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Dm3<Z extends core::Object* = dynamic> extends self::_Dm3&Object&Am3<self::Dm3::Z*> {
-  synthetic constructor •() → self::Dm3<self::Dm3::Z*>*
+class Dm3<Z extends core::Object? = dynamic> extends self::_Dm3&Object&Am3<self::Dm3::Z%> {
+  synthetic constructor •() → self::Dm3<self::Dm3::Z%>
     ;
 }
-abstract class _Em3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<() →* dynamic, self::_Em3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Em3&Object&Am3<self::_Em3&Object&Am3::Z*>*
+abstract class _Em3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<() → dynamic, self::_Em3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Em3&Object&Am3<self::_Em3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Em3<Z extends core::Object* = dynamic> extends self::_Em3&Object&Am3<self::Em3::Z*> {
-  synthetic constructor •() → self::Em3<self::Em3::Z*>*
+class Em3<Z extends core::Object? = dynamic> extends self::_Em3&Object&Am3<self::Em3::Z%> {
+  synthetic constructor •() → self::Em3<self::Em3::Z%>
     ;
 }
-abstract class _Fm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<() →* dynamic, self::_Fm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fm3&Object&Am3<self::_Fm3&Object&Am3::Z*>*
+abstract class _Fm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<() → dynamic, self::_Fm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fm3&Object&Am3<self::_Fm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Fm3<Z extends core::Object* = dynamic> extends self::_Fm3&Object&Am3<self::Fm3::Z*> {
-  synthetic constructor •() → self::Fm3<self::Fm3::Z*>*
+class Fm3<Z extends core::Object? = dynamic> extends self::_Fm3&Object&Am3<self::Fm3::Z%> {
+  synthetic constructor •() → self::Fm3<self::Fm3::Z%>
     ;
 }
-abstract class _Gm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<({x: core::int*}) →* dynamic, self::_Gm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Gm3&Object&Am3<self::_Gm3&Object&Am3::Z*>*
+abstract class _Gm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<({x: core::int}) → dynamic, self::_Gm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Gm3&Object&Am3<self::_Gm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Gm3<Z extends core::Object* = dynamic> extends self::_Gm3&Object&Am3<self::Gm3::Z*> {
-  synthetic constructor •() → self::Gm3<self::Gm3::Z*>*
+class Gm3<Z extends core::Object? = dynamic> extends self::_Gm3&Object&Am3<self::Gm3::Z%> {
+  synthetic constructor •() → self::Gm3<self::Gm3::Z%>
     ;
 }
-abstract class _Hm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<([core::int*]) →* dynamic, self::_Hm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Hm3&Object&Am3<self::_Hm3&Object&Am3::Z*>*
+abstract class _Hm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<([core::int]) → dynamic, self::_Hm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Hm3&Object&Am3<self::_Hm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Hm3<Z extends core::Object* = dynamic> extends self::_Hm3&Object&Am3<self::Hm3::Z*> {
-  synthetic constructor •() → self::Hm3<self::Hm3::Z*>*
+class Hm3<Z extends core::Object? = dynamic> extends self::_Hm3&Object&Am3<self::Hm3::Z%> {
+  synthetic constructor •() → self::Hm3<self::Hm3::Z%>
     ;
 }
-abstract class _Im3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<([core::int*]) →* dynamic, self::_Im3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Im3&Object&Am3<self::_Im3&Object&Am3::Z*>*
+abstract class _Im3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<([core::int]) → dynamic, self::_Im3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Im3&Object&Am3<self::_Im3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Im3<Z extends core::Object* = dynamic> extends self::_Im3&Object&Am3<self::Im3::Z*> {
-  synthetic constructor •() → self::Im3<self::Im3::Z*>*
+class Im3<Z extends core::Object? = dynamic> extends self::_Im3&Object&Am3<self::Im3::Z%> {
+  synthetic constructor •() → self::Im3<self::Im3::Z%>
     ;
 }
-abstract class _Jm3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<(core::Function*) →* dynamic, self::_Jm3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Jm3&Object&Am3<self::_Jm3&Object&Am3::Z*>*
+abstract class _Jm3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<(core::Function) → dynamic, self::_Jm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Jm3&Object&Am3<self::_Jm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Jm3<Z extends core::Object* = dynamic> extends self::_Jm3&Object&Am3<self::Jm3::Z*> {
-  synthetic constructor •() → self::Jm3<self::Jm3::Z*>*
+class Jm3<Z extends core::Object? = dynamic> extends self::_Jm3&Object&Am3<self::Jm3::Z%> {
+  synthetic constructor •() → self::Jm3<self::Jm3::Z%>
     ;
 }
-abstract class _Km3&Object&Am3<Z extends core::Object* = dynamic> = core::Object with self::Am3<() →* (() →* core::Function*) →* dynamic, self::_Km3&Object&Am3::Z*> /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Km3&Object&Am3<self::_Km3&Object&Am3::Z*>*
+abstract class _Km3&Object&Am3<Z extends core::Object? = dynamic> = core::Object with self::Am3<() → (() → core::Function) → dynamic, self::_Km3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Km3&Object&Am3<self::_Km3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Km3<Z extends core::Object* = dynamic> extends self::_Km3&Object&Am3<self::Km3::Z*> {
-  synthetic constructor •() → self::Km3<self::Km3::Z*>*
+class Km3<Z extends core::Object? = dynamic> extends self::_Km3&Object&Am3<self::Km3::Z%> {
+  synthetic constructor •() → self::Km3<self::Km3::Z%>
     ;
 }
-class Af1<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Af1<self::Af1::foo::X*>*
+class Af1<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Af1<self::Af1::foo::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 Bf1<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Bf1<self::Bf1::foo::X*>*
+class Bf1<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Bf1<self::Bf1::foo::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 Cf1<X extends () →* core::int*> extends core::Object {
-  static factory foo<X extends () →* core::int*>() → self::Cf1<self::Cf1::foo::X*>*
+class Cf1<X extends () → core::int> extends core::Object {
+  static factory foo<X extends () → core::int>() → self::Cf1<self::Cf1::foo::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 Df1<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Df1<self::Df1::foo::X*>*
+class Df1<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Df1<self::Df1::foo::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 Ef1<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Ef1<self::Ef1::foo::X*>*
+class Ef1<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Ef1<self::Ef1::foo::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 Ff1<X extends ({x: core::int*}) →* dynamic> extends core::Object {
-  static factory foo<X extends ({x: core::int*}) →* dynamic>() → self::Ff1<self::Ff1::foo::X*>*
+class Ff1<X extends ({x: core::int}) → dynamic> extends core::Object {
+  static factory foo<X extends ({x: core::int}) → dynamic>() → self::Ff1<self::Ff1::foo::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 Gf1<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::Gf1<self::Gf1::foo::X*>*
+class Gf1<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::Gf1<self::Gf1::foo::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 Hf1<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::Hf1<self::Hf1::foo::X*>*
+class Hf1<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::Hf1<self::Hf1::foo::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 If1<X extends core::Function*> extends core::Object {
-  static factory foo<X extends core::Function*>() → self::If1<self::If1::foo::X*>*
+class If1<X extends core::Function> extends core::Object {
+  static factory foo<X extends core::Function>() → self::If1<self::If1::foo::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 Jf1<X extends (core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::Function*) →* dynamic>() → self::Jf1<self::Jf1::foo::X*>*
+class Jf1<X extends (core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends (core::Function) → dynamic>() → self::Jf1<self::Jf1::foo::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 Kf1<X extends () →* (() →* core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends () →* (() →* core::Function*) →* dynamic>() → self::Kf1<self::Kf1::foo::X*>*
+class Kf1<X extends () → (() → core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends () → (() → core::Function) → dynamic>() → self::Kf1<self::Kf1::foo::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 Bf2<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Bf2<self::Bf2::foo::X*>*
+class Bf2<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Bf2<self::Bf2::foo::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 Cf2<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Cf2<self::Cf2::foo::X*>*
+class Cf2<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Cf2<self::Cf2::foo::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 Df2<X extends () →* core::int*> extends core::Object {
-  static factory foo<X extends () →* core::int*>() → self::Df2<self::Df2::foo::X*>*
+class Df2<X extends () → core::int> extends core::Object {
+  static factory foo<X extends () → core::int>() → self::Df2<self::Df2::foo::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 Ef2<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Ef2<self::Ef2::foo::X*>*
+class Ef2<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Ef2<self::Ef2::foo::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 Ff2<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Ff2<self::Ff2::foo::X*>*
+class Ff2<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Ff2<self::Ff2::foo::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 Gf2<X extends ({x: core::int*}) →* dynamic> extends core::Object {
-  static factory foo<X extends ({x: core::int*}) →* dynamic>() → self::Gf2<self::Gf2::foo::X*>*
+class Gf2<X extends ({x: core::int}) → dynamic> extends core::Object {
+  static factory foo<X extends ({x: core::int}) → dynamic>() → self::Gf2<self::Gf2::foo::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 Hf2<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::Hf2<self::Hf2::foo::X*>*
+class Hf2<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::Hf2<self::Hf2::foo::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 If2<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::If2<self::If2::foo::X*>*
+class If2<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::If2<self::If2::foo::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 Jf2<X extends (core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::Function*) →* dynamic>() → self::Jf2<self::Jf2::foo::X*>*
+class Jf2<X extends (core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends (core::Function) → dynamic>() → self::Jf2<self::Jf2::foo::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 Kf2<X extends () →* (() →* core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends () →* (() →* core::Function*) →* dynamic>() → self::Kf2<self::Kf2::foo::X*>*
+class Kf2<X extends () → (() → core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends () → (() → core::Function) → dynamic>() → self::Kf2<self::Kf2::foo::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/general/clone_function_type.dart.weak.transformed.expect b/pkg/front_end/testcases/general/clone_function_type.dart.weak.transformed.expect
index 93e0a13..44336bf 100644
--- a/pkg/front_end/testcases/general/clone_function_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/clone_function_type.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -103,1323 +103,543 @@
 import self as self;
 import "dart:core" as core;
 
-typedef TdB = (core::int*) →* dynamic;
-typedef TdC = (core::int*) →* dynamic;
-typedef TdD = () →* core::int*;
-typedef TdE = () →* dynamic;
-typedef TdF = () →* dynamic;
-typedef TdG = ({x: core::int*}) →* dynamic;
-typedef TdH = ([core::int*]) →* dynamic;
-typedef TdI = ([core::int*]) →* dynamic;
-typedef TdJ = (core::Function*) →* dynamic;
-typedef TdK = () →* (() →* core::Function*) →* dynamic;
-class Am1<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Am1<self::Am1::X*, self::Am1::Y*>*
+typedef TdB = (core::int) → dynamic;
+typedef TdC = (core::int) → dynamic;
+typedef TdD = () → core::int;
+typedef TdE = () → dynamic;
+typedef TdF = () → dynamic;
+typedef TdG = ({x: core::int}) → dynamic;
+typedef TdH = ([core::int]) → dynamic;
+typedef TdI = ([core::int]) → dynamic;
+typedef TdJ = (core::Function) → dynamic;
+typedef TdK = () → (() → core::Function) → dynamic;
+class Am1<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Am1<self::Am1::X%, self::Am1::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
 }
-abstract class _Bm1&Object&Am1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<(core::int*) →* dynamic, self::_Bm1&Object&Am1::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Bm1&Object&Am1<self::_Bm1&Object&Am1::Z*>*
+abstract class _Bm1&Object&Am1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<(core::int) → dynamic, self::_Bm1&Object&Am1::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Bm1&Object&Am1<self::_Bm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bm1<Z extends core::Object* = dynamic> extends self::_Bm1&Object&Am1<self::Bm1::Z*> {
-  synthetic constructor •() → self::Bm1<self::Bm1::Z*>*
+class Bm1<Z extends core::Object? = dynamic> extends self::_Bm1&Object&Am1<self::Bm1::Z%> {
+  synthetic constructor •() → self::Bm1<self::Bm1::Z%>
     : super self::_Bm1&Object&Am1::•()
     ;
 }
-abstract class _Cm1&Object&Am1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<(core::int*) →* dynamic, self::_Cm1&Object&Am1::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Cm1&Object&Am1<self::_Cm1&Object&Am1::Z*>*
+abstract class _Cm1&Object&Am1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<(core::int) → dynamic, self::_Cm1&Object&Am1::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Cm1&Object&Am1<self::_Cm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cm1<Z extends core::Object* = dynamic> extends self::_Cm1&Object&Am1<self::Cm1::Z*> {
-  synthetic constructor •() → self::Cm1<self::Cm1::Z*>*
+class Cm1<Z extends core::Object? = dynamic> extends self::_Cm1&Object&Am1<self::Cm1::Z%> {
+  synthetic constructor •() → self::Cm1<self::Cm1::Z%>
     : super self::_Cm1&Object&Am1::•()
     ;
 }
-abstract class _Dm1&Object&Am1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<() →* core::int*, self::_Dm1&Object&Am1::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Dm1&Object&Am1<self::_Dm1&Object&Am1::Z*>*
+abstract class _Dm1&Object&Am1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<() → core::int, self::_Dm1&Object&Am1::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Dm1&Object&Am1<self::_Dm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Dm1<Z extends core::Object* = dynamic> extends self::_Dm1&Object&Am1<self::Dm1::Z*> {
-  synthetic constructor •() → self::Dm1<self::Dm1::Z*>*
+class Dm1<Z extends core::Object? = dynamic> extends self::_Dm1&Object&Am1<self::Dm1::Z%> {
+  synthetic constructor •() → self::Dm1<self::Dm1::Z%>
     : super self::_Dm1&Object&Am1::•()
     ;
 }
-abstract class _Em1&Object&Am1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<() →* dynamic, self::_Em1&Object&Am1::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Em1&Object&Am1<self::_Em1&Object&Am1::Z*>*
+abstract class _Em1&Object&Am1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<() → dynamic, self::_Em1&Object&Am1::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Em1&Object&Am1<self::_Em1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Em1<Z extends core::Object* = dynamic> extends self::_Em1&Object&Am1<self::Em1::Z*> {
-  synthetic constructor •() → self::Em1<self::Em1::Z*>*
+class Em1<Z extends core::Object? = dynamic> extends self::_Em1&Object&Am1<self::Em1::Z%> {
+  synthetic constructor •() → self::Em1<self::Em1::Z%>
     : super self::_Em1&Object&Am1::•()
     ;
 }
-abstract class _Fm1&Object&Am1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<() →* dynamic, self::_Fm1&Object&Am1::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fm1&Object&Am1<self::_Fm1&Object&Am1::Z*>*
+abstract class _Fm1&Object&Am1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<() → dynamic, self::_Fm1&Object&Am1::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fm1&Object&Am1<self::_Fm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Fm1<Z extends core::Object* = dynamic> extends self::_Fm1&Object&Am1<self::Fm1::Z*> {
-  synthetic constructor •() → self::Fm1<self::Fm1::Z*>*
+class Fm1<Z extends core::Object? = dynamic> extends self::_Fm1&Object&Am1<self::Fm1::Z%> {
+  synthetic constructor •() → self::Fm1<self::Fm1::Z%>
     : super self::_Fm1&Object&Am1::•()
     ;
 }
-abstract class _Gm1&Object&Am1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<({x: core::int*}) →* dynamic, self::_Gm1&Object&Am1::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Gm1&Object&Am1<self::_Gm1&Object&Am1::Z*>*
+abstract class _Gm1&Object&Am1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<({x: core::int}) → dynamic, self::_Gm1&Object&Am1::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Gm1&Object&Am1<self::_Gm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Gm1<Z extends core::Object* = dynamic> extends self::_Gm1&Object&Am1<self::Gm1::Z*> {
-  synthetic constructor •() → self::Gm1<self::Gm1::Z*>*
+class Gm1<Z extends core::Object? = dynamic> extends self::_Gm1&Object&Am1<self::Gm1::Z%> {
+  synthetic constructor •() → self::Gm1<self::Gm1::Z%>
     : super self::_Gm1&Object&Am1::•()
     ;
 }
-abstract class _Hm1&Object&Am1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<([core::int*]) →* dynamic, self::_Hm1&Object&Am1::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Hm1&Object&Am1<self::_Hm1&Object&Am1::Z*>*
+abstract class _Hm1&Object&Am1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<([core::int]) → dynamic, self::_Hm1&Object&Am1::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Hm1&Object&Am1<self::_Hm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Hm1<Z extends core::Object* = dynamic> extends self::_Hm1&Object&Am1<self::Hm1::Z*> {
-  synthetic constructor •() → self::Hm1<self::Hm1::Z*>*
+class Hm1<Z extends core::Object? = dynamic> extends self::_Hm1&Object&Am1<self::Hm1::Z%> {
+  synthetic constructor •() → self::Hm1<self::Hm1::Z%>
     : super self::_Hm1&Object&Am1::•()
     ;
 }
-abstract class _Im1&Object&Am1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<([core::int*]) →* dynamic, self::_Im1&Object&Am1::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Im1&Object&Am1<self::_Im1&Object&Am1::Z*>*
+abstract class _Im1&Object&Am1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<([core::int]) → dynamic, self::_Im1&Object&Am1::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Im1&Object&Am1<self::_Im1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Im1<Z extends core::Object* = dynamic> extends self::_Im1&Object&Am1<self::Im1::Z*> {
-  synthetic constructor •() → self::Im1<self::Im1::Z*>*
+class Im1<Z extends core::Object? = dynamic> extends self::_Im1&Object&Am1<self::Im1::Z%> {
+  synthetic constructor •() → self::Im1<self::Im1::Z%>
     : super self::_Im1&Object&Am1::•()
     ;
 }
-abstract class _Jm1&Object&Am1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<core::Function*, self::_Jm1&Object&Am1::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Jm1&Object&Am1<self::_Jm1&Object&Am1::Z*>*
+abstract class _Jm1&Object&Am1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<core::Function, self::_Jm1&Object&Am1::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Jm1&Object&Am1<self::_Jm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Jm1<Z extends core::Object* = dynamic> extends self::_Jm1&Object&Am1<self::Jm1::Z*> {
-  synthetic constructor •() → self::Jm1<self::Jm1::Z*>*
+class Jm1<Z extends core::Object? = dynamic> extends self::_Jm1&Object&Am1<self::Jm1::Z%> {
+  synthetic constructor •() → self::Jm1<self::Jm1::Z%>
     : super self::_Jm1&Object&Am1::•()
     ;
 }
-abstract class _Km1&Object&Am1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<(core::Function*) →* dynamic, self::_Km1&Object&Am1::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Km1&Object&Am1<self::_Km1&Object&Am1::Z*>*
+abstract class _Km1&Object&Am1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<(core::Function) → dynamic, self::_Km1&Object&Am1::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Km1&Object&Am1<self::_Km1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Km1<Z extends core::Object* = dynamic> extends self::_Km1&Object&Am1<self::Km1::Z*> {
-  synthetic constructor •() → self::Km1<self::Km1::Z*>*
+class Km1<Z extends core::Object? = dynamic> extends self::_Km1&Object&Am1<self::Km1::Z%> {
+  synthetic constructor •() → self::Km1<self::Km1::Z%>
     : super self::_Km1&Object&Am1::•()
     ;
 }
-abstract class _Lm1&Object&Am1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<() →* (() →* core::Function*) →* dynamic, self::_Lm1&Object&Am1::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Lm1&Object&Am1<self::_Lm1&Object&Am1::Z*>*
+abstract class _Lm1&Object&Am1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<() → (() → core::Function) → dynamic, self::_Lm1&Object&Am1::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Lm1&Object&Am1<self::_Lm1&Object&Am1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Lm1<Z extends core::Object* = dynamic> extends self::_Lm1&Object&Am1<self::Lm1::Z*> {
-  synthetic constructor •() → self::Lm1<self::Lm1::Z*>*
+class Lm1<Z extends core::Object? = dynamic> extends self::_Lm1&Object&Am1<self::Lm1::Z%> {
+  synthetic constructor •() → self::Lm1<self::Lm1::Z%>
     : super self::_Lm1&Object&Am1::•()
     ;
 }
-class Mm1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<(core::int*) →* dynamic, self::Mm1::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Mm1<self::Mm1::Z*>*
+class Mm1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<(core::int) → dynamic, self::Mm1::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Mm1<self::Mm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Nm1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<(core::int*) →* dynamic, self::Nm1::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Nm1<self::Nm1::Z*>*
+class Nm1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<(core::int) → dynamic, self::Nm1::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Nm1<self::Nm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Om1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<() →* core::int*, self::Om1::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Om1<self::Om1::Z*>*
+class Om1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<() → core::int, self::Om1::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Om1<self::Om1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Pm1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<() →* dynamic, self::Pm1::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Pm1<self::Pm1::Z*>*
+class Pm1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<() → dynamic, self::Pm1::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Pm1<self::Pm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Qm1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<() →* dynamic, self::Qm1::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Qm1<self::Qm1::Z*>*
+class Qm1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<() → dynamic, self::Qm1::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Qm1<self::Qm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Rm1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<({x: core::int*}) →* dynamic, self::Rm1::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Rm1<self::Rm1::Z*>*
+class Rm1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<({x: core::int}) → dynamic, self::Rm1::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Rm1<self::Rm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Sm1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<([core::int*]) →* dynamic, self::Sm1::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Sm1<self::Sm1::Z*>*
+class Sm1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<([core::int]) → dynamic, self::Sm1::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Sm1<self::Sm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Tm1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<([core::int*]) →* dynamic, self::Tm1::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Tm1<self::Tm1::Z*>*
+class Tm1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<([core::int]) → dynamic, self::Tm1::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Tm1<self::Tm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Um1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<core::Function*, self::Um1::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Um1<self::Um1::Z*>*
+class Um1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<core::Function, self::Um1::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Um1<self::Um1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Vm1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<(core::Function*) →* dynamic, self::Vm1::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Vm1<self::Vm1::Z*>*
+class Vm1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<(core::Function) → dynamic, self::Vm1::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Vm1<self::Vm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Wm1<Z extends core::Object* = dynamic> extends core::Object implements self::Am1<() →* (() →* core::Function*) →* dynamic, self::Wm1::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Wm1<self::Wm1::Z*>*
+class Wm1<Z extends core::Object? = dynamic> extends core::Object implements self::Am1<() → (() → core::Function) → dynamic, self::Wm1::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Wm1<self::Wm1::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Am2<X extends () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Am2<self::Am2::X*, self::Am2::Y*>*
+class Am2<X extends () → dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Am2<self::Am2::X, self::Am2::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
 }
-abstract class _Bm2&Object&Am2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<(core::int*) →* dynamic, self::_Bm2&Object&Am2::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Bm2&Object&Am2<self::_Bm2&Object&Am2::Z*>*
+abstract class _Bm2&Object&Am2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<(core::int) → dynamic, self::_Bm2&Object&Am2::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Bm2&Object&Am2<self::_Bm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bm2<Z extends core::Object* = dynamic> extends self::_Bm2&Object&Am2<self::Bm2::Z*> {
-  synthetic constructor •() → self::Bm2<self::Bm2::Z*>*
+class Bm2<Z extends core::Object? = dynamic> extends self::_Bm2&Object&Am2<self::Bm2::Z%> {
+  synthetic constructor •() → self::Bm2<self::Bm2::Z%>
     : super self::_Bm2&Object&Am2::•()
     ;
 }
-abstract class _Cm2&Object&Am2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<(core::int*) →* dynamic, self::_Cm2&Object&Am2::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Cm2&Object&Am2<self::_Cm2&Object&Am2::Z*>*
+abstract class _Cm2&Object&Am2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<(core::int) → dynamic, self::_Cm2&Object&Am2::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Cm2&Object&Am2<self::_Cm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cm2<Z extends core::Object* = dynamic> extends self::_Cm2&Object&Am2<self::Cm2::Z*> {
-  synthetic constructor •() → self::Cm2<self::Cm2::Z*>*
+class Cm2<Z extends core::Object? = dynamic> extends self::_Cm2&Object&Am2<self::Cm2::Z%> {
+  synthetic constructor •() → self::Cm2<self::Cm2::Z%>
     : super self::_Cm2&Object&Am2::•()
     ;
 }
-abstract class _Dm2&Object&Am2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<() →* core::int*, self::_Dm2&Object&Am2::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Dm2&Object&Am2<self::_Dm2&Object&Am2::Z*>*
+abstract class _Dm2&Object&Am2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<() → core::int, self::_Dm2&Object&Am2::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Dm2&Object&Am2<self::_Dm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Dm2<Z extends core::Object* = dynamic> extends self::_Dm2&Object&Am2<self::Dm2::Z*> {
-  synthetic constructor •() → self::Dm2<self::Dm2::Z*>*
+class Dm2<Z extends core::Object? = dynamic> extends self::_Dm2&Object&Am2<self::Dm2::Z%> {
+  synthetic constructor •() → self::Dm2<self::Dm2::Z%>
     : super self::_Dm2&Object&Am2::•()
     ;
 }
-abstract class _Em2&Object&Am2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<() →* dynamic, self::_Em2&Object&Am2::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Em2&Object&Am2<self::_Em2&Object&Am2::Z*>*
+abstract class _Em2&Object&Am2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<() → dynamic, self::_Em2&Object&Am2::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Em2&Object&Am2<self::_Em2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Em2<Z extends core::Object* = dynamic> extends self::_Em2&Object&Am2<self::Em2::Z*> {
-  synthetic constructor •() → self::Em2<self::Em2::Z*>*
+class Em2<Z extends core::Object? = dynamic> extends self::_Em2&Object&Am2<self::Em2::Z%> {
+  synthetic constructor •() → self::Em2<self::Em2::Z%>
     : super self::_Em2&Object&Am2::•()
     ;
 }
-abstract class _Fm2&Object&Am2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<() →* dynamic, self::_Fm2&Object&Am2::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fm2&Object&Am2<self::_Fm2&Object&Am2::Z*>*
+abstract class _Fm2&Object&Am2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<() → dynamic, self::_Fm2&Object&Am2::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fm2&Object&Am2<self::_Fm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Fm2<Z extends core::Object* = dynamic> extends self::_Fm2&Object&Am2<self::Fm2::Z*> {
-  synthetic constructor •() → self::Fm2<self::Fm2::Z*>*
+class Fm2<Z extends core::Object? = dynamic> extends self::_Fm2&Object&Am2<self::Fm2::Z%> {
+  synthetic constructor •() → self::Fm2<self::Fm2::Z%>
     : super self::_Fm2&Object&Am2::•()
     ;
 }
-abstract class _Gm2&Object&Am2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<({x: core::int*}) →* dynamic, self::_Gm2&Object&Am2::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Gm2&Object&Am2<self::_Gm2&Object&Am2::Z*>*
+abstract class _Gm2&Object&Am2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<({x: core::int}) → dynamic, self::_Gm2&Object&Am2::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Gm2&Object&Am2<self::_Gm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Gm2<Z extends core::Object* = dynamic> extends self::_Gm2&Object&Am2<self::Gm2::Z*> {
-  synthetic constructor •() → self::Gm2<self::Gm2::Z*>*
+class Gm2<Z extends core::Object? = dynamic> extends self::_Gm2&Object&Am2<self::Gm2::Z%> {
+  synthetic constructor •() → self::Gm2<self::Gm2::Z%>
     : super self::_Gm2&Object&Am2::•()
     ;
 }
-abstract class _Hm2&Object&Am2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<([core::int*]) →* dynamic, self::_Hm2&Object&Am2::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Hm2&Object&Am2<self::_Hm2&Object&Am2::Z*>*
+abstract class _Hm2&Object&Am2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<([core::int]) → dynamic, self::_Hm2&Object&Am2::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Hm2&Object&Am2<self::_Hm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Hm2<Z extends core::Object* = dynamic> extends self::_Hm2&Object&Am2<self::Hm2::Z*> {
-  synthetic constructor •() → self::Hm2<self::Hm2::Z*>*
+class Hm2<Z extends core::Object? = dynamic> extends self::_Hm2&Object&Am2<self::Hm2::Z%> {
+  synthetic constructor •() → self::Hm2<self::Hm2::Z%>
     : super self::_Hm2&Object&Am2::•()
     ;
 }
-abstract class _Im2&Object&Am2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<([core::int*]) →* dynamic, self::_Im2&Object&Am2::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Im2&Object&Am2<self::_Im2&Object&Am2::Z*>*
+abstract class _Im2&Object&Am2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<([core::int]) → dynamic, self::_Im2&Object&Am2::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Im2&Object&Am2<self::_Im2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Im2<Z extends core::Object* = dynamic> extends self::_Im2&Object&Am2<self::Im2::Z*> {
-  synthetic constructor •() → self::Im2<self::Im2::Z*>*
+class Im2<Z extends core::Object? = dynamic> extends self::_Im2&Object&Am2<self::Im2::Z%> {
+  synthetic constructor •() → self::Im2<self::Im2::Z%>
     : super self::_Im2&Object&Am2::•()
     ;
 }
-abstract class _Jm2&Object&Am2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<core::Function*, self::_Jm2&Object&Am2::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Jm2&Object&Am2<self::_Jm2&Object&Am2::Z*>*
+abstract class _Jm2&Object&Am2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<core::Function, self::_Jm2&Object&Am2::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Jm2&Object&Am2<self::_Jm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Jm2<Z extends core::Object* = dynamic> extends self::_Jm2&Object&Am2<self::Jm2::Z*> {
-  synthetic constructor •() → self::Jm2<self::Jm2::Z*>*
+class Jm2<Z extends core::Object? = dynamic> extends self::_Jm2&Object&Am2<self::Jm2::Z%> {
+  synthetic constructor •() → self::Jm2<self::Jm2::Z%>
     : super self::_Jm2&Object&Am2::•()
     ;
 }
-abstract class _Km2&Object&Am2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<(core::Function*) →* dynamic, self::_Km2&Object&Am2::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Km2&Object&Am2<self::_Km2&Object&Am2::Z*>*
+abstract class _Km2&Object&Am2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<(core::Function) → dynamic, self::_Km2&Object&Am2::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Km2&Object&Am2<self::_Km2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Km2<Z extends core::Object* = dynamic> extends self::_Km2&Object&Am2<self::Km2::Z*> {
-  synthetic constructor •() → self::Km2<self::Km2::Z*>*
+class Km2<Z extends core::Object? = dynamic> extends self::_Km2&Object&Am2<self::Km2::Z%> {
+  synthetic constructor •() → self::Km2<self::Km2::Z%>
     : super self::_Km2&Object&Am2::•()
     ;
 }
-abstract class _Lm2&Object&Am2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<() →* (() →* core::Function*) →* dynamic, self::_Lm2&Object&Am2::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Lm2&Object&Am2<self::_Lm2&Object&Am2::Z*>*
+abstract class _Lm2&Object&Am2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<() → (() → core::Function) → dynamic, self::_Lm2&Object&Am2::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Lm2&Object&Am2<self::_Lm2&Object&Am2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Lm2<Z extends core::Object* = dynamic> extends self::_Lm2&Object&Am2<self::Lm2::Z*> {
-  synthetic constructor •() → self::Lm2<self::Lm2::Z*>*
+class Lm2<Z extends core::Object? = dynamic> extends self::_Lm2&Object&Am2<self::Lm2::Z%> {
+  synthetic constructor •() → self::Lm2<self::Lm2::Z%>
     : super self::_Lm2&Object&Am2::•()
     ;
 }
-class Mm2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<(core::int*) →* dynamic, self::Mm2::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Mm2<self::Mm2::Z*>*
+class Mm2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<(core::int) → dynamic, self::Mm2::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Mm2<self::Mm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Nm2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<(core::int*) →* dynamic, self::Nm2::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Nm2<self::Nm2::Z*>*
+class Nm2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<(core::int) → dynamic, self::Nm2::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Nm2<self::Nm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Om2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<() →* core::int*, self::Om2::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Om2<self::Om2::Z*>*
+class Om2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<() → core::int, self::Om2::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Om2<self::Om2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Pm2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<() →* dynamic, self::Pm2::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Pm2<self::Pm2::Z*>*
+class Pm2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<() → dynamic, self::Pm2::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Pm2<self::Pm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Qm2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<() →* dynamic, self::Qm2::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Qm2<self::Qm2::Z*>*
+class Qm2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<() → dynamic, self::Qm2::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Qm2<self::Qm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Rm2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<({x: core::int*}) →* dynamic, self::Rm2::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Rm2<self::Rm2::Z*>*
+class Rm2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<({x: core::int}) → dynamic, self::Rm2::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Rm2<self::Rm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Sm2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<([core::int*]) →* dynamic, self::Sm2::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Sm2<self::Sm2::Z*>*
+class Sm2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<([core::int]) → dynamic, self::Sm2::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Sm2<self::Sm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Tm2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<([core::int*]) →* dynamic, self::Tm2::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Tm2<self::Tm2::Z*>*
+class Tm2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<([core::int]) → dynamic, self::Tm2::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Tm2<self::Tm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Um2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<core::Function*, self::Um2::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Um2<self::Um2::Z*>*
+class Um2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<core::Function, self::Um2::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Um2<self::Um2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Vm2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<(core::Function*) →* dynamic, self::Vm2::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Vm2<self::Vm2::Z*>*
+class Vm2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<(core::Function) → dynamic, self::Vm2::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Vm2<self::Vm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Wm2<Z extends core::Object* = dynamic> extends core::Object implements self::Am2<() →* (() →* core::Function*) →* dynamic, self::Wm2::Z*> /*isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::Wm2<self::Wm2::Z*>*
+class Wm2<Z extends core::Object? = dynamic> extends core::Object implements self::Am2<() → (() → core::Function) → dynamic, self::Wm2::Z%> /*isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::Wm2<self::Wm2::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Am3<L extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::Am3<self::Am3::L*, self::Am3::Y*>*
+class Am3<L extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::Am3<self::Am3::L%, self::Am3::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
 }
-abstract class _Bm3&Object&Am3<Z extends core::Object* = dynamic> extends core::Object implements self::Am3<(core::int*) →* dynamic, self::_Bm3&Object&Am3::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Bm3&Object&Am3<self::_Bm3&Object&Am3::Z*>*
+abstract class _Bm3&Object&Am3<Z extends core::Object? = dynamic> extends core::Object implements self::Am3<(core::int) → dynamic, self::_Bm3&Object&Am3::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Bm3&Object&Am3<self::_Bm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Bm3<Z extends core::Object* = dynamic> extends self::_Bm3&Object&Am3<self::Bm3::Z*> {
-  synthetic constructor •() → self::Bm3<self::Bm3::Z*>*
+class Bm3<Z extends core::Object? = dynamic> extends self::_Bm3&Object&Am3<self::Bm3::Z%> {
+  synthetic constructor •() → self::Bm3<self::Bm3::Z%>
     : super self::_Bm3&Object&Am3::•()
     ;
 }
-abstract class _Cm3&Object&Am3<Z extends core::Object* = dynamic> extends core::Object implements self::Am3<(core::int*) →* dynamic, self::_Cm3&Object&Am3::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Cm3&Object&Am3<self::_Cm3&Object&Am3::Z*>*
+abstract class _Cm3&Object&Am3<Z extends core::Object? = dynamic> extends core::Object implements self::Am3<(core::int) → dynamic, self::_Cm3&Object&Am3::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Cm3&Object&Am3<self::_Cm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Cm3<Z extends core::Object* = dynamic> extends self::_Cm3&Object&Am3<self::Cm3::Z*> {
-  synthetic constructor •() → self::Cm3<self::Cm3::Z*>*
+class Cm3<Z extends core::Object? = dynamic> extends self::_Cm3&Object&Am3<self::Cm3::Z%> {
+  synthetic constructor •() → self::Cm3<self::Cm3::Z%>
     : super self::_Cm3&Object&Am3::•()
     ;
 }
-abstract class _Dm3&Object&Am3<Z extends core::Object* = dynamic> extends core::Object implements self::Am3<() →* core::int*, self::_Dm3&Object&Am3::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Dm3&Object&Am3<self::_Dm3&Object&Am3::Z*>*
+abstract class _Dm3&Object&Am3<Z extends core::Object? = dynamic> extends core::Object implements self::Am3<() → core::int, self::_Dm3&Object&Am3::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Dm3&Object&Am3<self::_Dm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Dm3<Z extends core::Object* = dynamic> extends self::_Dm3&Object&Am3<self::Dm3::Z*> {
-  synthetic constructor •() → self::Dm3<self::Dm3::Z*>*
+class Dm3<Z extends core::Object? = dynamic> extends self::_Dm3&Object&Am3<self::Dm3::Z%> {
+  synthetic constructor •() → self::Dm3<self::Dm3::Z%>
     : super self::_Dm3&Object&Am3::•()
     ;
 }
-abstract class _Em3&Object&Am3<Z extends core::Object* = dynamic> extends core::Object implements self::Am3<() →* dynamic, self::_Em3&Object&Am3::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Em3&Object&Am3<self::_Em3&Object&Am3::Z*>*
+abstract class _Em3&Object&Am3<Z extends core::Object? = dynamic> extends core::Object implements self::Am3<() → dynamic, self::_Em3&Object&Am3::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Em3&Object&Am3<self::_Em3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Em3<Z extends core::Object* = dynamic> extends self::_Em3&Object&Am3<self::Em3::Z*> {
-  synthetic constructor •() → self::Em3<self::Em3::Z*>*
+class Em3<Z extends core::Object? = dynamic> extends self::_Em3&Object&Am3<self::Em3::Z%> {
+  synthetic constructor •() → self::Em3<self::Em3::Z%>
     : super self::_Em3&Object&Am3::•()
     ;
 }
-abstract class _Fm3&Object&Am3<Z extends core::Object* = dynamic> extends core::Object implements self::Am3<() →* dynamic, self::_Fm3&Object&Am3::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Fm3&Object&Am3<self::_Fm3&Object&Am3::Z*>*
+abstract class _Fm3&Object&Am3<Z extends core::Object? = dynamic> extends core::Object implements self::Am3<() → dynamic, self::_Fm3&Object&Am3::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Fm3&Object&Am3<self::_Fm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Fm3<Z extends core::Object* = dynamic> extends self::_Fm3&Object&Am3<self::Fm3::Z*> {
-  synthetic constructor •() → self::Fm3<self::Fm3::Z*>*
+class Fm3<Z extends core::Object? = dynamic> extends self::_Fm3&Object&Am3<self::Fm3::Z%> {
+  synthetic constructor •() → self::Fm3<self::Fm3::Z%>
     : super self::_Fm3&Object&Am3::•()
     ;
 }
-abstract class _Gm3&Object&Am3<Z extends core::Object* = dynamic> extends core::Object implements self::Am3<({x: core::int*}) →* dynamic, self::_Gm3&Object&Am3::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Gm3&Object&Am3<self::_Gm3&Object&Am3::Z*>*
+abstract class _Gm3&Object&Am3<Z extends core::Object? = dynamic> extends core::Object implements self::Am3<({x: core::int}) → dynamic, self::_Gm3&Object&Am3::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Gm3&Object&Am3<self::_Gm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Gm3<Z extends core::Object* = dynamic> extends self::_Gm3&Object&Am3<self::Gm3::Z*> {
-  synthetic constructor •() → self::Gm3<self::Gm3::Z*>*
+class Gm3<Z extends core::Object? = dynamic> extends self::_Gm3&Object&Am3<self::Gm3::Z%> {
+  synthetic constructor •() → self::Gm3<self::Gm3::Z%>
     : super self::_Gm3&Object&Am3::•()
     ;
 }
-abstract class _Hm3&Object&Am3<Z extends core::Object* = dynamic> extends core::Object implements self::Am3<([core::int*]) →* dynamic, self::_Hm3&Object&Am3::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Hm3&Object&Am3<self::_Hm3&Object&Am3::Z*>*
+abstract class _Hm3&Object&Am3<Z extends core::Object? = dynamic> extends core::Object implements self::Am3<([core::int]) → dynamic, self::_Hm3&Object&Am3::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Hm3&Object&Am3<self::_Hm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Hm3<Z extends core::Object* = dynamic> extends self::_Hm3&Object&Am3<self::Hm3::Z*> {
-  synthetic constructor •() → self::Hm3<self::Hm3::Z*>*
+class Hm3<Z extends core::Object? = dynamic> extends self::_Hm3&Object&Am3<self::Hm3::Z%> {
+  synthetic constructor •() → self::Hm3<self::Hm3::Z%>
     : super self::_Hm3&Object&Am3::•()
     ;
 }
-abstract class _Im3&Object&Am3<Z extends core::Object* = dynamic> extends core::Object implements self::Am3<([core::int*]) →* dynamic, self::_Im3&Object&Am3::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Im3&Object&Am3<self::_Im3&Object&Am3::Z*>*
+abstract class _Im3&Object&Am3<Z extends core::Object? = dynamic> extends core::Object implements self::Am3<([core::int]) → dynamic, self::_Im3&Object&Am3::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Im3&Object&Am3<self::_Im3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Im3<Z extends core::Object* = dynamic> extends self::_Im3&Object&Am3<self::Im3::Z*> {
-  synthetic constructor •() → self::Im3<self::Im3::Z*>*
+class Im3<Z extends core::Object? = dynamic> extends self::_Im3&Object&Am3<self::Im3::Z%> {
+  synthetic constructor •() → self::Im3<self::Im3::Z%>
     : super self::_Im3&Object&Am3::•()
     ;
 }
-abstract class _Jm3&Object&Am3<Z extends core::Object* = dynamic> extends core::Object implements self::Am3<(core::Function*) →* dynamic, self::_Jm3&Object&Am3::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Jm3&Object&Am3<self::_Jm3&Object&Am3::Z*>*
+abstract class _Jm3&Object&Am3<Z extends core::Object? = dynamic> extends core::Object implements self::Am3<(core::Function) → dynamic, self::_Jm3&Object&Am3::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Jm3&Object&Am3<self::_Jm3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Jm3<Z extends core::Object* = dynamic> extends self::_Jm3&Object&Am3<self::Jm3::Z*> {
-  synthetic constructor •() → self::Jm3<self::Jm3::Z*>*
+class Jm3<Z extends core::Object? = dynamic> extends self::_Jm3&Object&Am3<self::Jm3::Z%> {
+  synthetic constructor •() → self::Jm3<self::Jm3::Z%>
     : super self::_Jm3&Object&Am3::•()
     ;
 }
-abstract class _Km3&Object&Am3<Z extends core::Object* = dynamic> extends core::Object implements self::Am3<() →* (() →* core::Function*) →* dynamic, self::_Km3&Object&Am3::Z*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Km3&Object&Am3<self::_Km3&Object&Am3::Z*>*
+abstract class _Km3&Object&Am3<Z extends core::Object? = dynamic> extends core::Object implements self::Am3<() → (() → core::Function) → dynamic, self::_Km3&Object&Am3::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_Km3&Object&Am3<self::_Km3&Object&Am3::Z%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class Km3<Z extends core::Object* = dynamic> extends self::_Km3&Object&Am3<self::Km3::Z*> {
-  synthetic constructor •() → self::Km3<self::Km3::Z*>*
+class Km3<Z extends core::Object? = dynamic> extends self::_Km3&Object&Am3<self::Km3::Z%> {
+  synthetic constructor •() → self::Km3<self::Km3::Z%>
     : super self::_Km3&Object&Am3::•()
     ;
 }
-class Af1<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Af1<self::Af1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Af1<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Af1<self::Af1::foo::X>
+    return throw "";
 }
-class Bf1<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Bf1<self::Bf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Bf1<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Bf1<self::Bf1::foo::X>
+    return throw "";
 }
-class Cf1<X extends () →* core::int*> extends core::Object {
-  static factory foo<X extends () →* core::int*>() → self::Cf1<self::Cf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Cf1<X extends () → core::int> extends core::Object {
+  static factory foo<X extends () → core::int>() → self::Cf1<self::Cf1::foo::X>
+    return throw "";
 }
-class Df1<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Df1<self::Df1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Df1<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Df1<self::Df1::foo::X>
+    return throw "";
 }
-class Ef1<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Ef1<self::Ef1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Ef1<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Ef1<self::Ef1::foo::X>
+    return throw "";
 }
-class Ff1<X extends ({x: core::int*}) →* dynamic> extends core::Object {
-  static factory foo<X extends ({x: core::int*}) →* dynamic>() → self::Ff1<self::Ff1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Ff1<X extends ({x: core::int}) → dynamic> extends core::Object {
+  static factory foo<X extends ({x: core::int}) → dynamic>() → self::Ff1<self::Ff1::foo::X>
+    return throw "";
 }
-class Gf1<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::Gf1<self::Gf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Gf1<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::Gf1<self::Gf1::foo::X>
+    return throw "";
 }
-class Hf1<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::Hf1<self::Hf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Hf1<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::Hf1<self::Hf1::foo::X>
+    return throw "";
 }
-class If1<X extends core::Function*> extends core::Object {
-  static factory foo<X extends core::Function*>() → self::If1<self::If1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class If1<X extends core::Function> extends core::Object {
+  static factory foo<X extends core::Function>() → self::If1<self::If1::foo::X>
+    return throw "";
 }
-class Jf1<X extends (core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::Function*) →* dynamic>() → self::Jf1<self::Jf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Jf1<X extends (core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends (core::Function) → dynamic>() → self::Jf1<self::Jf1::foo::X>
+    return throw "";
 }
-class Kf1<X extends () →* (() →* core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends () →* (() →* core::Function*) →* dynamic>() → self::Kf1<self::Kf1::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Kf1<X extends () → (() → core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends () → (() → core::Function) → dynamic>() → self::Kf1<self::Kf1::foo::X>
+    return throw "";
 }
-class Bf2<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Bf2<self::Bf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Bf2<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Bf2<self::Bf2::foo::X>
+    return throw "";
 }
-class Cf2<X extends (core::int*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::int*) →* dynamic>() → self::Cf2<self::Cf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Cf2<X extends (core::int) → dynamic> extends core::Object {
+  static factory foo<X extends (core::int) → dynamic>() → self::Cf2<self::Cf2::foo::X>
+    return throw "";
 }
-class Df2<X extends () →* core::int*> extends core::Object {
-  static factory foo<X extends () →* core::int*>() → self::Df2<self::Df2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Df2<X extends () → core::int> extends core::Object {
+  static factory foo<X extends () → core::int>() → self::Df2<self::Df2::foo::X>
+    return throw "";
 }
-class Ef2<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Ef2<self::Ef2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Ef2<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Ef2<self::Ef2::foo::X>
+    return throw "";
 }
-class Ff2<X extends () →* dynamic> extends core::Object {
-  static factory foo<X extends () →* dynamic>() → self::Ff2<self::Ff2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Ff2<X extends () → dynamic> extends core::Object {
+  static factory foo<X extends () → dynamic>() → self::Ff2<self::Ff2::foo::X>
+    return throw "";
 }
-class Gf2<X extends ({x: core::int*}) →* dynamic> extends core::Object {
-  static factory foo<X extends ({x: core::int*}) →* dynamic>() → self::Gf2<self::Gf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Gf2<X extends ({x: core::int}) → dynamic> extends core::Object {
+  static factory foo<X extends ({x: core::int}) → dynamic>() → self::Gf2<self::Gf2::foo::X>
+    return throw "";
 }
-class Hf2<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::Hf2<self::Hf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Hf2<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::Hf2<self::Hf2::foo::X>
+    return throw "";
 }
-class If2<X extends ([core::int*]) →* dynamic> extends core::Object {
-  static factory foo<X extends ([core::int*]) →* dynamic>() → self::If2<self::If2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class If2<X extends ([core::int]) → dynamic> extends core::Object {
+  static factory foo<X extends ([core::int]) → dynamic>() → self::If2<self::If2::foo::X>
+    return throw "";
 }
-class Jf2<X extends (core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends (core::Function*) →* dynamic>() → self::Jf2<self::Jf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Jf2<X extends (core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends (core::Function) → dynamic>() → self::Jf2<self::Jf2::foo::X>
+    return throw "";
 }
-class Kf2<X extends () →* (() →* core::Function*) →* dynamic> extends core::Object {
-  static factory foo<X extends () →* (() →* core::Function*) →* dynamic>() → self::Kf2<self::Kf2::foo::X*>*
-    return null;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class Kf2<X extends () → (() → core::Function) → dynamic> extends core::Object {
+  static factory foo<X extends () → (() → core::Function) → dynamic>() → self::Kf2<self::Kf2::foo::X>
+    return throw "";
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/closure.dart b/pkg/front_end/testcases/general/closure.dart
index 59364ef..664a4fa 100644
--- a/pkg/front_end/testcases/general/closure.dart
+++ b/pkg/front_end/testcases/general/closure.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 Foo {
   var _field = new Bar();
 }
diff --git a/pkg/front_end/testcases/general/closure.dart.textual_outline.expect b/pkg/front_end/testcases/general/closure.dart.textual_outline.expect
index a71d508..544a9e7 100644
--- a/pkg/front_end/testcases/general/closure.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/closure.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Foo {
   var _field = new Bar();
 }
diff --git a/pkg/front_end/testcases/general/closure.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/closure.dart.textual_outline_modelled.expect
index 707cfa0..2f6023d 100644
--- a/pkg/front_end/testcases/general/closure.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/closure.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class Bar {}
 
 class Foo {
diff --git a/pkg/front_end/testcases/general/closure.dart.weak.expect b/pkg/front_end/testcases/general/closure.dart.weak.expect
index 2d530e8..b9e4e43 100644
--- a/pkg/front_end/testcases/general/closure.dart.weak.expect
+++ b/pkg/front_end/testcases/general/closure.dart.weak.expect
@@ -1,47 +1,27 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  field self::Bar* _field = new self::Bar::•();
-  synthetic constructor •() → self::Foo*
+  field self::Bar _field = new self::Bar::•();
+  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
 }
 class Bar extends core::Object {
-  synthetic constructor •() → self::Bar*
+  synthetic constructor •() → self::Bar
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method useCallback(dynamic callback) → dynamic {
   dynamic _ = callback{dynamic}.call();
 }
 static method main() → dynamic {
   dynamic x;
-  function inner() → self::Foo* {
+  function inner() → self::Foo {
     x = new self::Foo::•();
     return new self::Foo::•();
   }
   self::useCallback(inner);
-  self::Bar* _ = inner(){() →* self::Foo*}.{self::Foo::_field}{self::Bar*};
+  self::Bar _ = inner(){() → self::Foo}.{self::Foo::_field}{self::Bar};
 }
diff --git a/pkg/front_end/testcases/general/closure.dart.weak.modular.expect b/pkg/front_end/testcases/general/closure.dart.weak.modular.expect
index 2d530e8..b9e4e43 100644
--- a/pkg/front_end/testcases/general/closure.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/closure.dart.weak.modular.expect
@@ -1,47 +1,27 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  field self::Bar* _field = new self::Bar::•();
-  synthetic constructor •() → self::Foo*
+  field self::Bar _field = new self::Bar::•();
+  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
 }
 class Bar extends core::Object {
-  synthetic constructor •() → self::Bar*
+  synthetic constructor •() → self::Bar
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method useCallback(dynamic callback) → dynamic {
   dynamic _ = callback{dynamic}.call();
 }
 static method main() → dynamic {
   dynamic x;
-  function inner() → self::Foo* {
+  function inner() → self::Foo {
     x = new self::Foo::•();
     return new self::Foo::•();
   }
   self::useCallback(inner);
-  self::Bar* _ = inner(){() →* self::Foo*}.{self::Foo::_field}{self::Bar*};
+  self::Bar _ = inner(){() → self::Foo}.{self::Foo::_field}{self::Bar};
 }
diff --git a/pkg/front_end/testcases/general/closure.dart.weak.outline.expect b/pkg/front_end/testcases/general/closure.dart.weak.outline.expect
index cc26bdb..a3a843e 100644
--- a/pkg/front_end/testcases/general/closure.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/closure.dart.weak.outline.expect
@@ -1,35 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  field self::Bar* _field;
-  synthetic constructor •() → self::Foo*
+  field self::Bar _field;
+  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
 }
 class Bar extends core::Object {
-  synthetic constructor •() → self::Bar*
+  synthetic constructor •() → 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
 }
 static method useCallback(dynamic callback) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/closure.dart.weak.transformed.expect b/pkg/front_end/testcases/general/closure.dart.weak.transformed.expect
index 2d530e8..b9e4e43 100644
--- a/pkg/front_end/testcases/general/closure.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/closure.dart.weak.transformed.expect
@@ -1,47 +1,27 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  field self::Bar* _field = new self::Bar::•();
-  synthetic constructor •() → self::Foo*
+  field self::Bar _field = new self::Bar::•();
+  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
 }
 class Bar extends core::Object {
-  synthetic constructor •() → self::Bar*
+  synthetic constructor •() → self::Bar
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method useCallback(dynamic callback) → dynamic {
   dynamic _ = callback{dynamic}.call();
 }
 static method main() → dynamic {
   dynamic x;
-  function inner() → self::Foo* {
+  function inner() → self::Foo {
     x = new self::Foo::•();
     return new self::Foo::•();
   }
   self::useCallback(inner);
-  self::Bar* _ = inner(){() →* self::Foo*}.{self::Foo::_field}{self::Bar*};
+  self::Bar _ = inner(){() → self::Foo}.{self::Foo::_field}{self::Bar};
 }
diff --git a/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart b/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart
index 0d9a8f1..3385d23 100644
--- a/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart
+++ b/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart
@@ -12,7 +12,7 @@
  * @compile-error
  * @author a.semenov@unipro.ru
  */
-// @dart=2.9
+
 class A {
   const A();
 }
diff --git a/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.textual_outline.expect b/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.textual_outline.expect
index 795ce34..896c9f0 100644
--- a/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   const A();
 }
diff --git a/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.textual_outline_modelled.expect
index 99630e1..c112c59 100644
--- a/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 A() {}
 
 class A {
diff --git a/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.expect b/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.expect
index 58cf612..8b7c94f 100644
--- a/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.expect
+++ b/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,33 +17,13 @@
 import "dart:core" as core;
 
 class A extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::A*
+  const 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
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.modular.expect b/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.modular.expect
index 58cf612..8b7c94f 100644
--- a/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,33 +17,13 @@
 import "dart:core" as core;
 
 class A extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::A*
+  const 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
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.outline.expect b/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.outline.expect
index e39a0bb..18e6424 100644
--- a/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,33 +17,13 @@
 import "dart:core" as core;
 
 class A extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::A*
+  const 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
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.transformed.expect b/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.transformed.expect
index 58cf612..8b7c94f 100644
--- a/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/co19_language_metadata_syntax_t04.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -17,33 +17,13 @@
 import "dart:core" as core;
 
 class A extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::A*
+  const 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
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/complex_class_hierarchy.dart b/pkg/front_end/testcases/general/complex_class_hierarchy.dart
index c851026..3363794 100644
--- a/pkg/front_end/testcases/general/complex_class_hierarchy.dart
+++ b/pkg/front_end/testcases/general/complex_class_hierarchy.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() {}
 
 class A {}
diff --git a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.textual_outline.expect b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.textual_outline.expect
index f56bf39..adeaf17 100644
--- a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 main() {}
 
 class A {}
diff --git a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.textual_outline_modelled.expect
index 99b7569..ca66b2f 100644
--- a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {}
 
 class ARN extends ARQ<A> {}
diff --git a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.expect b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.expect
index 79836e1..effbb96 100644
--- a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.expect
+++ b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.expect
@@ -1,209 +1,109 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends 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::•()
     ;
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
 }
-class G<T extends self::A*> extends core::Object {
-  synthetic constructor •() → self::G<self::G::T*>*
+class G<T extends self::A> 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 GB extends self::G<self::B*> {
-  synthetic constructor •() → self::GB*
+class GB extends self::G<self::B> {
+  synthetic constructor •() → self::GB
     : super self::G::•()
     ;
 }
-class GC extends self::G<self::C*> {
-  synthetic constructor •() → self::GC*
+class GC extends self::G<self::C> {
+  synthetic constructor •() → self::GC
     : super self::G::•()
     ;
 }
-class GD extends self::G<self::D*> {
-  synthetic constructor •() → self::GD*
+class GD extends self::G<self::D> {
+  synthetic constructor •() → self::GD
     : super self::G::•()
     ;
 }
 class X extends core::Object implements self::A {
-  synthetic constructor •() → self::X*
+  synthetic constructor •() → self::X
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Y extends self::X {
-  synthetic constructor •() → self::Y*
+  synthetic constructor •() → self::Y
     : super self::X::•()
     ;
 }
 class Z extends core::Object implements self::Y {
-  synthetic constructor •() → self::Z*
+  synthetic constructor •() → self::Z
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class W extends core::Object implements self::Z {
-  synthetic constructor •() → self::W*
+  synthetic constructor •() → self::W
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class GX extends core::Object implements self::G<self::A*> {
-  synthetic constructor •() → self::GX*
+class GX extends core::Object implements self::G<self::A> {
+  synthetic constructor •() → self::GX
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class GY extends self::X implements self::GB {
-  synthetic constructor •() → self::GY*
+  synthetic constructor •() → self::GY
     : super self::X::•()
     ;
 }
 class GZ extends core::Object implements self::Y, self::GC {
-  synthetic constructor •() → self::GZ*
+  synthetic constructor •() → self::GZ
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class GW extends core::Object implements self::Z, self::GD {
-  synthetic constructor •() → self::GW*
+  synthetic constructor •() → self::GW
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class GU extends self::GW {
-  synthetic constructor •() → self::GU*
+  synthetic constructor •() → self::GU
     : super self::GW::•()
     ;
 }
 class GV extends self::GU implements self::GW {
-  synthetic constructor •() → self::GV*
+  synthetic constructor •() → self::GV
     : super self::GU::•()
     ;
 }
-class ARO<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::ARO<self::ARO::S*>*
+class ARO<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::ARO<self::ARO::S%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class ARQ<T extends core::Object* = dynamic> extends core::Object implements self::ARO<self::ARQ::T*> {
-  synthetic constructor •() → self::ARQ<self::ARQ::T*>*
+class ARQ<T extends core::Object? = dynamic> extends core::Object implements self::ARO<self::ARQ::T%> {
+  synthetic constructor •() → self::ARQ<self::ARQ::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 ARN extends self::ARQ<self::A*> {
-  synthetic constructor •() → self::ARN*
+class ARN extends self::ARQ<self::A> {
+  synthetic constructor •() → self::ARN
     : super self::ARQ::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.modular.expect b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.modular.expect
index 79836e1..effbb96 100644
--- a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.modular.expect
@@ -1,209 +1,109 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends 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::•()
     ;
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
 }
-class G<T extends self::A*> extends core::Object {
-  synthetic constructor •() → self::G<self::G::T*>*
+class G<T extends self::A> 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 GB extends self::G<self::B*> {
-  synthetic constructor •() → self::GB*
+class GB extends self::G<self::B> {
+  synthetic constructor •() → self::GB
     : super self::G::•()
     ;
 }
-class GC extends self::G<self::C*> {
-  synthetic constructor •() → self::GC*
+class GC extends self::G<self::C> {
+  synthetic constructor •() → self::GC
     : super self::G::•()
     ;
 }
-class GD extends self::G<self::D*> {
-  synthetic constructor •() → self::GD*
+class GD extends self::G<self::D> {
+  synthetic constructor •() → self::GD
     : super self::G::•()
     ;
 }
 class X extends core::Object implements self::A {
-  synthetic constructor •() → self::X*
+  synthetic constructor •() → self::X
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Y extends self::X {
-  synthetic constructor •() → self::Y*
+  synthetic constructor •() → self::Y
     : super self::X::•()
     ;
 }
 class Z extends core::Object implements self::Y {
-  synthetic constructor •() → self::Z*
+  synthetic constructor •() → self::Z
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class W extends core::Object implements self::Z {
-  synthetic constructor •() → self::W*
+  synthetic constructor •() → self::W
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class GX extends core::Object implements self::G<self::A*> {
-  synthetic constructor •() → self::GX*
+class GX extends core::Object implements self::G<self::A> {
+  synthetic constructor •() → self::GX
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class GY extends self::X implements self::GB {
-  synthetic constructor •() → self::GY*
+  synthetic constructor •() → self::GY
     : super self::X::•()
     ;
 }
 class GZ extends core::Object implements self::Y, self::GC {
-  synthetic constructor •() → self::GZ*
+  synthetic constructor •() → self::GZ
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class GW extends core::Object implements self::Z, self::GD {
-  synthetic constructor •() → self::GW*
+  synthetic constructor •() → self::GW
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class GU extends self::GW {
-  synthetic constructor •() → self::GU*
+  synthetic constructor •() → self::GU
     : super self::GW::•()
     ;
 }
 class GV extends self::GU implements self::GW {
-  synthetic constructor •() → self::GV*
+  synthetic constructor •() → self::GV
     : super self::GU::•()
     ;
 }
-class ARO<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::ARO<self::ARO::S*>*
+class ARO<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::ARO<self::ARO::S%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class ARQ<T extends core::Object* = dynamic> extends core::Object implements self::ARO<self::ARQ::T*> {
-  synthetic constructor •() → self::ARQ<self::ARQ::T*>*
+class ARQ<T extends core::Object? = dynamic> extends core::Object implements self::ARO<self::ARQ::T%> {
+  synthetic constructor •() → self::ARQ<self::ARQ::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 ARN extends self::ARQ<self::A*> {
-  synthetic constructor •() → self::ARN*
+class ARN extends self::ARQ<self::A> {
+  synthetic constructor •() → self::ARN
     : super self::ARQ::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.outline.expect b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.outline.expect
index ec0b3ec..be59749 100644
--- a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.outline.expect
@@ -1,189 +1,89 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
 }
-class G<T extends self::A*> 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 GB extends self::G<self::B*> {
-  synthetic constructor •() → self::GB*
+class G<T extends self::A> extends core::Object {
+  synthetic constructor •() → self::G<self::G::T>
     ;
 }
-class GC extends self::G<self::C*> {
-  synthetic constructor •() → self::GC*
+class GB extends self::G<self::B> {
+  synthetic constructor •() → self::GB
     ;
 }
-class GD extends self::G<self::D*> {
-  synthetic constructor •() → self::GD*
+class GC extends self::G<self::C> {
+  synthetic constructor •() → self::GC
+    ;
+}
+class GD extends self::G<self::D> {
+  synthetic constructor •() → self::GD
     ;
 }
 class X extends core::Object implements self::A {
-  synthetic constructor •() → self::X*
+  synthetic constructor •() → self::X
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Y extends self::X {
-  synthetic constructor •() → self::Y*
+  synthetic constructor •() → self::Y
     ;
 }
 class Z extends core::Object implements self::Y {
-  synthetic constructor •() → self::Z*
+  synthetic constructor •() → self::Z
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class W extends core::Object implements self::Z {
-  synthetic constructor •() → self::W*
+  synthetic constructor •() → self::W
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class GX extends core::Object implements self::G<self::A*> {
-  synthetic constructor •() → self::GX*
+class GX extends core::Object implements self::G<self::A> {
+  synthetic constructor •() → self::GX
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class GY extends self::X implements self::GB {
-  synthetic constructor •() → self::GY*
+  synthetic constructor •() → self::GY
     ;
 }
 class GZ extends core::Object implements self::Y, self::GC {
-  synthetic constructor •() → self::GZ*
+  synthetic constructor •() → self::GZ
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class GW extends core::Object implements self::Z, self::GD {
-  synthetic constructor •() → self::GW*
+  synthetic constructor •() → self::GW
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class GU extends self::GW {
-  synthetic constructor •() → self::GU*
+  synthetic constructor •() → self::GU
     ;
 }
 class GV extends self::GU implements self::GW {
-  synthetic constructor •() → self::GV*
+  synthetic constructor •() → self::GV
     ;
 }
-class ARO<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::ARO<self::ARO::S*>*
+class ARO<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::ARO<self::ARO::S%>
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class ARQ<T extends core::Object* = dynamic> extends core::Object implements self::ARO<self::ARQ::T*> {
-  synthetic constructor •() → self::ARQ<self::ARQ::T*>*
+class ARQ<T extends core::Object? = dynamic> extends core::Object implements self::ARO<self::ARQ::T%> {
+  synthetic constructor •() → self::ARQ<self::ARQ::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 ARN extends self::ARQ<self::A*> {
-  synthetic constructor •() → self::ARN*
+class ARN extends self::ARQ<self::A> {
+  synthetic constructor •() → self::ARN
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.transformed.expect b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.transformed.expect
index 79836e1..effbb96 100644
--- a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.transformed.expect
@@ -1,209 +1,109 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends 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::•()
     ;
 }
 class D extends self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
 }
-class G<T extends self::A*> extends core::Object {
-  synthetic constructor •() → self::G<self::G::T*>*
+class G<T extends self::A> 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 GB extends self::G<self::B*> {
-  synthetic constructor •() → self::GB*
+class GB extends self::G<self::B> {
+  synthetic constructor •() → self::GB
     : super self::G::•()
     ;
 }
-class GC extends self::G<self::C*> {
-  synthetic constructor •() → self::GC*
+class GC extends self::G<self::C> {
+  synthetic constructor •() → self::GC
     : super self::G::•()
     ;
 }
-class GD extends self::G<self::D*> {
-  synthetic constructor •() → self::GD*
+class GD extends self::G<self::D> {
+  synthetic constructor •() → self::GD
     : super self::G::•()
     ;
 }
 class X extends core::Object implements self::A {
-  synthetic constructor •() → self::X*
+  synthetic constructor •() → self::X
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Y extends self::X {
-  synthetic constructor •() → self::Y*
+  synthetic constructor •() → self::Y
     : super self::X::•()
     ;
 }
 class Z extends core::Object implements self::Y {
-  synthetic constructor •() → self::Z*
+  synthetic constructor •() → self::Z
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class W extends core::Object implements self::Z {
-  synthetic constructor •() → self::W*
+  synthetic constructor •() → self::W
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class GX extends core::Object implements self::G<self::A*> {
-  synthetic constructor •() → self::GX*
+class GX extends core::Object implements self::G<self::A> {
+  synthetic constructor •() → self::GX
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class GY extends self::X implements self::GB {
-  synthetic constructor •() → self::GY*
+  synthetic constructor •() → self::GY
     : super self::X::•()
     ;
 }
 class GZ extends core::Object implements self::Y, self::GC {
-  synthetic constructor •() → self::GZ*
+  synthetic constructor •() → self::GZ
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class GW extends core::Object implements self::Z, self::GD {
-  synthetic constructor •() → self::GW*
+  synthetic constructor •() → self::GW
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class GU extends self::GW {
-  synthetic constructor •() → self::GU*
+  synthetic constructor •() → self::GU
     : super self::GW::•()
     ;
 }
 class GV extends self::GU implements self::GW {
-  synthetic constructor •() → self::GV*
+  synthetic constructor •() → self::GV
     : super self::GU::•()
     ;
 }
-class ARO<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::ARO<self::ARO::S*>*
+class ARO<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::ARO<self::ARO::S%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class ARQ<T extends core::Object* = dynamic> extends core::Object implements self::ARO<self::ARQ::T*> {
-  synthetic constructor •() → self::ARQ<self::ARQ::T*>*
+class ARQ<T extends core::Object? = dynamic> extends core::Object implements self::ARO<self::ARQ::T%> {
+  synthetic constructor •() → self::ARQ<self::ARQ::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 ARN extends self::ARQ<self::A*> {
-  synthetic constructor •() → self::ARN*
+class ARN extends self::ARQ<self::A> {
+  synthetic constructor •() → self::ARN
     : super self::ARQ::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/compound_binary_implicit_as.dart b/pkg/front_end/testcases/general/compound_binary_implicit_as.dart
index 1db3cbe..a1d1af7 100644
--- a/pkg/front_end/testcases/general/compound_binary_implicit_as.dart
+++ b/pkg/front_end/testcases/general/compound_binary_implicit_as.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
+
 class A {}
 
 class B extends A {
diff --git a/pkg/front_end/testcases/general/compound_binary_implicit_as.dart.weak.transformed.expect b/pkg/front_end/testcases/general/compound_binary_implicit_as.dart.weak.transformed.expect
index f8d6d80..2cb045b 100644
--- a/pkg/front_end/testcases/general/compound_binary_implicit_as.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/compound_binary_implicit_as.dart.weak.transformed.expect
@@ -41,6 +41,6 @@
 
 
 Extra constant evaluation status:
-Evaluated: VariableGet @ org-dartlang-testcase:///compound_binary_implicit_as.dart:16:9 -> IntConstant(0)
-Evaluated: VariableGet @ org-dartlang-testcase:///compound_binary_implicit_as.dart:16:9 -> IntConstant(0)
+Evaluated: VariableGet @ org-dartlang-testcase:///compound_binary_implicit_as.dart:18:9 -> IntConstant(0)
+Evaluated: VariableGet @ org-dartlang-testcase:///compound_binary_implicit_as.dart:18:9 -> IntConstant(0)
 Extra constant evaluation: evaluated: 16, effectively constant: 2
diff --git a/pkg/front_end/testcases/general/constant_truncate.dart b/pkg/front_end/testcases/general/constant_truncate.dart
index 2d09173..2f2e792 100644
--- a/pkg/front_end/testcases/general/constant_truncate.dart
+++ b/pkg/front_end/testcases/general/constant_truncate.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
+
 const a0 = 0 ~/ 0; // error
 const a1 = 0.0 ~/ 0; // error
 const a2 = -0.0 ~/ 0; // error
diff --git a/pkg/front_end/testcases/general/constant_truncate.dart.textual_outline.expect b/pkg/front_end/testcases/general/constant_truncate.dart.textual_outline.expect
index cc9734c..44d49e8 100644
--- a/pkg/front_end/testcases/general/constant_truncate.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/constant_truncate.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 const a0 = 0 ~/ 0;
 const a1 = 0.0 ~/ 0;
 const a2 = -0.0 ~/ 0;
diff --git a/pkg/front_end/testcases/general/constant_truncate.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/constant_truncate.dart.textual_outline_modelled.expect
index 84e1f84..4eeedfa 100644
--- a/pkg/front_end/testcases/general/constant_truncate.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/constant_truncate.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 const a0 = 0 ~/ 0;
 const a1 = 0.0 ~/ 0;
 const a2 = -0.0 ~/ 0;
diff --git a/pkg/front_end/testcases/general/constant_truncate.dart.weak.expect b/pkg/front_end/testcases/general/constant_truncate.dart.weak.expect
index f87f7ba..e3e759a 100644
--- a/pkg/front_end/testcases/general/constant_truncate.dart.weak.expect
+++ b/pkg/front_end/testcases/general/constant_truncate.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -305,103 +305,103 @@
 import self as self;
 import "dart:core" as core;
 
-static const field core::int* a0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* d0 = invalid-expression "Binary operator '0 ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d1 = invalid-expression "Binary operator '0.0 ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d2 = invalid-expression "Binary operator '-0.0 ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d3 = invalid-expression "Binary operator 'NaN ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d4 = invalid-expression "Binary operator 'Infinity ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d5 = invalid-expression "Binary operator '-Infinity ~/ NaN' results is Infinity or NaN.";
-static const field core::int* e0 = #C1;
-static const field core::int* e1 = #C1;
-static const field core::int* e2 = #C1;
-static const field core::int* e3 = invalid-expression "Binary operator 'NaN ~/ Infinity' results is Infinity or NaN.";
-static const field core::int* e4 = invalid-expression "Binary operator 'Infinity ~/ Infinity' results is Infinity or NaN.";
-static const field core::int* e5 = invalid-expression "Binary operator '-Infinity ~/ Infinity' results is Infinity or NaN.";
-static const field core::int* f0 = #C1;
-static const field core::int* f1 = #C1;
-static const field core::int* f2 = #C1;
-static const field core::int* f3 = invalid-expression "Binary operator 'NaN ~/ -Infinity' results is Infinity or NaN.";
-static const field core::int* f4 = invalid-expression "Binary operator 'Infinity ~/ -Infinity' results is Infinity or NaN.";
-static const field core::int* f5 = invalid-expression "Binary operator '-Infinity ~/ -Infinity' results is Infinity or NaN.";
+static const field core::int a0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int d0 = invalid-expression "Binary operator '0 ~/ NaN' results is Infinity or NaN.";
+static const field core::int d1 = invalid-expression "Binary operator '0.0 ~/ NaN' results is Infinity or NaN.";
+static const field core::int d2 = invalid-expression "Binary operator '-0.0 ~/ NaN' results is Infinity or NaN.";
+static const field core::int d3 = invalid-expression "Binary operator 'NaN ~/ NaN' results is Infinity or NaN.";
+static const field core::int d4 = invalid-expression "Binary operator 'Infinity ~/ NaN' results is Infinity or NaN.";
+static const field core::int d5 = invalid-expression "Binary operator '-Infinity ~/ NaN' results is Infinity or NaN.";
+static const field core::int e0 = #C1;
+static const field core::int e1 = #C1;
+static const field core::int e2 = #C1;
+static const field core::int e3 = invalid-expression "Binary operator 'NaN ~/ Infinity' results is Infinity or NaN.";
+static const field core::int e4 = invalid-expression "Binary operator 'Infinity ~/ Infinity' results is Infinity or NaN.";
+static const field core::int e5 = invalid-expression "Binary operator '-Infinity ~/ Infinity' results is Infinity or NaN.";
+static const field core::int f0 = #C1;
+static const field core::int f1 = #C1;
+static const field core::int f2 = #C1;
+static const field core::int f3 = invalid-expression "Binary operator 'NaN ~/ -Infinity' results is Infinity or NaN.";
+static const field core::int f4 = invalid-expression "Binary operator 'Infinity ~/ -Infinity' results is Infinity or NaN.";
+static const field core::int f5 = invalid-expression "Binary operator '-Infinity ~/ -Infinity' results is Infinity or NaN.";
 static method main() → dynamic {
-  self::test(0, 0, () → core::int* => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0, 0, () → core::int* => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, 0, () → core::int* => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C2, 0, () → core::int* => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C3, 0, () → core::int* => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C4, 0, () → core::int* => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(0, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C2, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C3, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C4, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(0, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C2, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C3, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C4, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(0, #C2, () → core::int* => invalid-expression "Binary operator '0 ~/ NaN' results is Infinity or NaN.");
-  self::test(0.0, #C2, () → core::int* => invalid-expression "Binary operator '0.0 ~/ NaN' results is Infinity or NaN.");
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, #C2, () → core::int* => invalid-expression "Binary operator '-0.0 ~/ NaN' results is Infinity or NaN.");
-  self::test(#C2, #C2, () → core::int* => invalid-expression "Binary operator 'NaN ~/ NaN' results is Infinity or NaN.");
-  self::test(#C3, #C2, () → core::int* => invalid-expression "Binary operator 'Infinity ~/ NaN' results is Infinity or NaN.");
-  self::test(#C4, #C2, () → core::int* => invalid-expression "Binary operator '-Infinity ~/ NaN' results is Infinity or NaN.");
-  self::test(0, #C3, () → core::int* => #C1);
-  self::test(0.0, #C3, () → core::int* => #C1);
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, #C3, () → core::int* => #C1);
-  self::test(#C2, #C3, () → core::int* => invalid-expression "Binary operator 'NaN ~/ Infinity' results is Infinity or NaN.");
-  self::test(#C3, #C3, () → core::int* => invalid-expression "Binary operator 'Infinity ~/ Infinity' results is Infinity or NaN.");
-  self::test(#C4, #C3, () → core::int* => invalid-expression "Binary operator '-Infinity ~/ Infinity' results is Infinity or NaN.");
-  self::test(0, #C4, () → core::int* => #C1);
-  self::test(0.0, #C4, () → core::int* => #C1);
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, #C4, () → core::int* => #C1);
-  self::test(#C2, #C4, () → core::int* => invalid-expression "Binary operator 'NaN ~/ -Infinity' results is Infinity or NaN.");
-  self::test(#C3, #C4, () → core::int* => invalid-expression "Binary operator 'Infinity ~/ -Infinity' results is Infinity or NaN.");
-  self::test(#C4, #C4, () → core::int* => invalid-expression "Binary operator '-Infinity ~/ -Infinity' results is Infinity or NaN.");
+  self::test(0, 0, () → core::int => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0, 0, () → core::int => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0.{core::double::unary-}(){() → core::double}, 0, () → core::int => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C2, 0, () → core::int => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C3, 0, () → core::int => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C4, 0, () → core::int => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(0, 0.0, () → core::int => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0, 0.0, () → core::int => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0.{core::double::unary-}(){() → core::double}, 0.0, () → core::int => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C2, 0.0, () → core::int => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C3, 0.0, () → core::int => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C4, 0.0, () → core::int => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(0, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0.{core::double::unary-}(){() → core::double}, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C2, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C3, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C4, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(0, #C2, () → core::int => invalid-expression "Binary operator '0 ~/ NaN' results is Infinity or NaN.");
+  self::test(0.0, #C2, () → core::int => invalid-expression "Binary operator '0.0 ~/ NaN' results is Infinity or NaN.");
+  self::test(0.0.{core::double::unary-}(){() → core::double}, #C2, () → core::int => invalid-expression "Binary operator '-0.0 ~/ NaN' results is Infinity or NaN.");
+  self::test(#C2, #C2, () → core::int => invalid-expression "Binary operator 'NaN ~/ NaN' results is Infinity or NaN.");
+  self::test(#C3, #C2, () → core::int => invalid-expression "Binary operator 'Infinity ~/ NaN' results is Infinity or NaN.");
+  self::test(#C4, #C2, () → core::int => invalid-expression "Binary operator '-Infinity ~/ NaN' results is Infinity or NaN.");
+  self::test(0, #C3, () → core::int => #C1);
+  self::test(0.0, #C3, () → core::int => #C1);
+  self::test(0.0.{core::double::unary-}(){() → core::double}, #C3, () → core::int => #C1);
+  self::test(#C2, #C3, () → core::int => invalid-expression "Binary operator 'NaN ~/ Infinity' results is Infinity or NaN.");
+  self::test(#C3, #C3, () → core::int => invalid-expression "Binary operator 'Infinity ~/ Infinity' results is Infinity or NaN.");
+  self::test(#C4, #C3, () → core::int => invalid-expression "Binary operator '-Infinity ~/ Infinity' results is Infinity or NaN.");
+  self::test(0, #C4, () → core::int => #C1);
+  self::test(0.0, #C4, () → core::int => #C1);
+  self::test(0.0.{core::double::unary-}(){() → core::double}, #C4, () → core::int => #C1);
+  self::test(#C2, #C4, () → core::int => invalid-expression "Binary operator 'NaN ~/ -Infinity' results is Infinity or NaN.");
+  self::test(#C3, #C4, () → core::int => invalid-expression "Binary operator 'Infinity ~/ -Infinity' results is Infinity or NaN.");
+  self::test(#C4, #C4, () → core::int => invalid-expression "Binary operator '-Infinity ~/ -Infinity' results is Infinity or NaN.");
 }
-static method test(core::num* a, core::num* b, () →* core::num* f) → void {
-  core::num* result;
+static method test(core::num a, core::num b, () → core::num f) → void {
+  core::num result;
   try {
-    result = a.{core::num::~/}(b){(core::num*) →* core::int*};
+    result = a.{core::num::~/}(b){(core::num) → core::int};
     core::print("${a} ~/ ${b} = ${result}");
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
     core::print("${a} ~/ ${b} throws ${e}");
     self::throws(f);
     return;
   }
-  self::expect(f(){() →* core::num*}, result);
+  self::expect(f(){() → core::num}, result);
 }
 static method expect(dynamic expected, dynamic actual) → void {
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual)) {
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual)) {
     throw "Expected ${expected}, actual ${actual}";
   }
 }
-static method throws(() →* core::num* f) → void {
+static method throws(() → core::num f) → void {
   try {
-    f(){() →* core::num*};
+    f(){() → core::num};
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
     return;
   }
   throw "Expected exception";
diff --git a/pkg/front_end/testcases/general/constant_truncate.dart.weak.modular.expect b/pkg/front_end/testcases/general/constant_truncate.dart.weak.modular.expect
index f87f7ba..e3e759a 100644
--- a/pkg/front_end/testcases/general/constant_truncate.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/constant_truncate.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -305,103 +305,103 @@
 import self as self;
 import "dart:core" as core;
 
-static const field core::int* a0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* d0 = invalid-expression "Binary operator '0 ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d1 = invalid-expression "Binary operator '0.0 ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d2 = invalid-expression "Binary operator '-0.0 ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d3 = invalid-expression "Binary operator 'NaN ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d4 = invalid-expression "Binary operator 'Infinity ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d5 = invalid-expression "Binary operator '-Infinity ~/ NaN' results is Infinity or NaN.";
-static const field core::int* e0 = #C1;
-static const field core::int* e1 = #C1;
-static const field core::int* e2 = #C1;
-static const field core::int* e3 = invalid-expression "Binary operator 'NaN ~/ Infinity' results is Infinity or NaN.";
-static const field core::int* e4 = invalid-expression "Binary operator 'Infinity ~/ Infinity' results is Infinity or NaN.";
-static const field core::int* e5 = invalid-expression "Binary operator '-Infinity ~/ Infinity' results is Infinity or NaN.";
-static const field core::int* f0 = #C1;
-static const field core::int* f1 = #C1;
-static const field core::int* f2 = #C1;
-static const field core::int* f3 = invalid-expression "Binary operator 'NaN ~/ -Infinity' results is Infinity or NaN.";
-static const field core::int* f4 = invalid-expression "Binary operator 'Infinity ~/ -Infinity' results is Infinity or NaN.";
-static const field core::int* f5 = invalid-expression "Binary operator '-Infinity ~/ -Infinity' results is Infinity or NaN.";
+static const field core::int a0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int d0 = invalid-expression "Binary operator '0 ~/ NaN' results is Infinity or NaN.";
+static const field core::int d1 = invalid-expression "Binary operator '0.0 ~/ NaN' results is Infinity or NaN.";
+static const field core::int d2 = invalid-expression "Binary operator '-0.0 ~/ NaN' results is Infinity or NaN.";
+static const field core::int d3 = invalid-expression "Binary operator 'NaN ~/ NaN' results is Infinity or NaN.";
+static const field core::int d4 = invalid-expression "Binary operator 'Infinity ~/ NaN' results is Infinity or NaN.";
+static const field core::int d5 = invalid-expression "Binary operator '-Infinity ~/ NaN' results is Infinity or NaN.";
+static const field core::int e0 = #C1;
+static const field core::int e1 = #C1;
+static const field core::int e2 = #C1;
+static const field core::int e3 = invalid-expression "Binary operator 'NaN ~/ Infinity' results is Infinity or NaN.";
+static const field core::int e4 = invalid-expression "Binary operator 'Infinity ~/ Infinity' results is Infinity or NaN.";
+static const field core::int e5 = invalid-expression "Binary operator '-Infinity ~/ Infinity' results is Infinity or NaN.";
+static const field core::int f0 = #C1;
+static const field core::int f1 = #C1;
+static const field core::int f2 = #C1;
+static const field core::int f3 = invalid-expression "Binary operator 'NaN ~/ -Infinity' results is Infinity or NaN.";
+static const field core::int f4 = invalid-expression "Binary operator 'Infinity ~/ -Infinity' results is Infinity or NaN.";
+static const field core::int f5 = invalid-expression "Binary operator '-Infinity ~/ -Infinity' results is Infinity or NaN.";
 static method main() → dynamic {
-  self::test(0, 0, () → core::int* => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0, 0, () → core::int* => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, 0, () → core::int* => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C2, 0, () → core::int* => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C3, 0, () → core::int* => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C4, 0, () → core::int* => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(0, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C2, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C3, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C4, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(0, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C2, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C3, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C4, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(0, #C2, () → core::int* => invalid-expression "Binary operator '0 ~/ NaN' results is Infinity or NaN.");
-  self::test(0.0, #C2, () → core::int* => invalid-expression "Binary operator '0.0 ~/ NaN' results is Infinity or NaN.");
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, #C2, () → core::int* => invalid-expression "Binary operator '-0.0 ~/ NaN' results is Infinity or NaN.");
-  self::test(#C2, #C2, () → core::int* => invalid-expression "Binary operator 'NaN ~/ NaN' results is Infinity or NaN.");
-  self::test(#C3, #C2, () → core::int* => invalid-expression "Binary operator 'Infinity ~/ NaN' results is Infinity or NaN.");
-  self::test(#C4, #C2, () → core::int* => invalid-expression "Binary operator '-Infinity ~/ NaN' results is Infinity or NaN.");
-  self::test(0, #C3, () → core::int* => #C1);
-  self::test(0.0, #C3, () → core::int* => #C1);
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, #C3, () → core::int* => #C1);
-  self::test(#C2, #C3, () → core::int* => invalid-expression "Binary operator 'NaN ~/ Infinity' results is Infinity or NaN.");
-  self::test(#C3, #C3, () → core::int* => invalid-expression "Binary operator 'Infinity ~/ Infinity' results is Infinity or NaN.");
-  self::test(#C4, #C3, () → core::int* => invalid-expression "Binary operator '-Infinity ~/ Infinity' results is Infinity or NaN.");
-  self::test(0, #C4, () → core::int* => #C1);
-  self::test(0.0, #C4, () → core::int* => #C1);
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, #C4, () → core::int* => #C1);
-  self::test(#C2, #C4, () → core::int* => invalid-expression "Binary operator 'NaN ~/ -Infinity' results is Infinity or NaN.");
-  self::test(#C3, #C4, () → core::int* => invalid-expression "Binary operator 'Infinity ~/ -Infinity' results is Infinity or NaN.");
-  self::test(#C4, #C4, () → core::int* => invalid-expression "Binary operator '-Infinity ~/ -Infinity' results is Infinity or NaN.");
+  self::test(0, 0, () → core::int => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0, 0, () → core::int => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0.{core::double::unary-}(){() → core::double}, 0, () → core::int => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C2, 0, () → core::int => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C3, 0, () → core::int => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C4, 0, () → core::int => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(0, 0.0, () → core::int => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0, 0.0, () → core::int => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0.{core::double::unary-}(){() → core::double}, 0.0, () → core::int => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C2, 0.0, () → core::int => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C3, 0.0, () → core::int => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C4, 0.0, () → core::int => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(0, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0.{core::double::unary-}(){() → core::double}, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C2, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C3, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C4, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(0, #C2, () → core::int => invalid-expression "Binary operator '0 ~/ NaN' results is Infinity or NaN.");
+  self::test(0.0, #C2, () → core::int => invalid-expression "Binary operator '0.0 ~/ NaN' results is Infinity or NaN.");
+  self::test(0.0.{core::double::unary-}(){() → core::double}, #C2, () → core::int => invalid-expression "Binary operator '-0.0 ~/ NaN' results is Infinity or NaN.");
+  self::test(#C2, #C2, () → core::int => invalid-expression "Binary operator 'NaN ~/ NaN' results is Infinity or NaN.");
+  self::test(#C3, #C2, () → core::int => invalid-expression "Binary operator 'Infinity ~/ NaN' results is Infinity or NaN.");
+  self::test(#C4, #C2, () → core::int => invalid-expression "Binary operator '-Infinity ~/ NaN' results is Infinity or NaN.");
+  self::test(0, #C3, () → core::int => #C1);
+  self::test(0.0, #C3, () → core::int => #C1);
+  self::test(0.0.{core::double::unary-}(){() → core::double}, #C3, () → core::int => #C1);
+  self::test(#C2, #C3, () → core::int => invalid-expression "Binary operator 'NaN ~/ Infinity' results is Infinity or NaN.");
+  self::test(#C3, #C3, () → core::int => invalid-expression "Binary operator 'Infinity ~/ Infinity' results is Infinity or NaN.");
+  self::test(#C4, #C3, () → core::int => invalid-expression "Binary operator '-Infinity ~/ Infinity' results is Infinity or NaN.");
+  self::test(0, #C4, () → core::int => #C1);
+  self::test(0.0, #C4, () → core::int => #C1);
+  self::test(0.0.{core::double::unary-}(){() → core::double}, #C4, () → core::int => #C1);
+  self::test(#C2, #C4, () → core::int => invalid-expression "Binary operator 'NaN ~/ -Infinity' results is Infinity or NaN.");
+  self::test(#C3, #C4, () → core::int => invalid-expression "Binary operator 'Infinity ~/ -Infinity' results is Infinity or NaN.");
+  self::test(#C4, #C4, () → core::int => invalid-expression "Binary operator '-Infinity ~/ -Infinity' results is Infinity or NaN.");
 }
-static method test(core::num* a, core::num* b, () →* core::num* f) → void {
-  core::num* result;
+static method test(core::num a, core::num b, () → core::num f) → void {
+  core::num result;
   try {
-    result = a.{core::num::~/}(b){(core::num*) →* core::int*};
+    result = a.{core::num::~/}(b){(core::num) → core::int};
     core::print("${a} ~/ ${b} = ${result}");
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
     core::print("${a} ~/ ${b} throws ${e}");
     self::throws(f);
     return;
   }
-  self::expect(f(){() →* core::num*}, result);
+  self::expect(f(){() → core::num}, result);
 }
 static method expect(dynamic expected, dynamic actual) → void {
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual)) {
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual)) {
     throw "Expected ${expected}, actual ${actual}";
   }
 }
-static method throws(() →* core::num* f) → void {
+static method throws(() → core::num f) → void {
   try {
-    f(){() →* core::num*};
+    f(){() → core::num};
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
     return;
   }
   throw "Expected exception";
diff --git a/pkg/front_end/testcases/general/constant_truncate.dart.weak.outline.expect b/pkg/front_end/testcases/general/constant_truncate.dart.weak.outline.expect
index ddc3a1d..2686aea 100644
--- a/pkg/front_end/testcases/general/constant_truncate.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/constant_truncate.dart.weak.outline.expect
@@ -1,50 +1,50 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static const field core::int* a0 = 0.{core::num::~/}(0){(core::num*) →* core::int*};
-static const field core::int* a1 = 0.0.{core::double::~/}(0){(core::num*) →* core::int*};
-static const field core::int* a2 = 0.0.{core::double::unary-}(){() →* core::double*}.{core::double::~/}(0){(core::num*) →* core::int*};
-static const field core::int* a3 = core::double::nan.{core::double::~/}(0){(core::num*) →* core::int*};
-static const field core::int* a4 = core::double::infinity.{core::double::~/}(0){(core::num*) →* core::int*};
-static const field core::int* a5 = core::double::negativeInfinity.{core::double::~/}(0){(core::num*) →* core::int*};
-static const field core::int* b0 = 0.{core::num::~/}(0.0){(core::num*) →* core::int*};
-static const field core::int* b1 = 0.0.{core::double::~/}(0.0){(core::num*) →* core::int*};
-static const field core::int* b2 = 0.0.{core::double::unary-}(){() →* core::double*}.{core::double::~/}(0.0){(core::num*) →* core::int*};
-static const field core::int* b3 = core::double::nan.{core::double::~/}(0.0){(core::num*) →* core::int*};
-static const field core::int* b4 = core::double::infinity.{core::double::~/}(0.0){(core::num*) →* core::int*};
-static const field core::int* b5 = core::double::negativeInfinity.{core::double::~/}(0.0){(core::num*) →* core::int*};
-static const field core::int* c0 = 0.{core::num::~/}(0.0.{core::double::unary-}(){() →* core::double*}){(core::num*) →* core::int*};
-static const field core::int* c1 = 0.0.{core::double::~/}(0.0.{core::double::unary-}(){() →* core::double*}){(core::num*) →* core::int*};
-static const field core::int* c2 = 0.0.{core::double::unary-}(){() →* core::double*}.{core::double::~/}(0.0.{core::double::unary-}(){() →* core::double*}){(core::num*) →* core::int*};
-static const field core::int* c3 = core::double::nan.{core::double::~/}(0.0.{core::double::unary-}(){() →* core::double*}){(core::num*) →* core::int*};
-static const field core::int* c4 = core::double::infinity.{core::double::~/}(0.0.{core::double::unary-}(){() →* core::double*}){(core::num*) →* core::int*};
-static const field core::int* c5 = core::double::negativeInfinity.{core::double::~/}(0.0.{core::double::unary-}(){() →* core::double*}){(core::num*) →* core::int*};
-static const field core::int* d0 = 0.{core::num::~/}(core::double::nan){(core::num*) →* core::int*};
-static const field core::int* d1 = 0.0.{core::double::~/}(core::double::nan){(core::num*) →* core::int*};
-static const field core::int* d2 = 0.0.{core::double::unary-}(){() →* core::double*}.{core::double::~/}(core::double::nan){(core::num*) →* core::int*};
-static const field core::int* d3 = core::double::nan.{core::double::~/}(core::double::nan){(core::num*) →* core::int*};
-static const field core::int* d4 = core::double::infinity.{core::double::~/}(core::double::nan){(core::num*) →* core::int*};
-static const field core::int* d5 = core::double::negativeInfinity.{core::double::~/}(core::double::nan){(core::num*) →* core::int*};
-static const field core::int* e0 = 0.{core::num::~/}(core::double::infinity){(core::num*) →* core::int*};
-static const field core::int* e1 = 0.0.{core::double::~/}(core::double::infinity){(core::num*) →* core::int*};
-static const field core::int* e2 = 0.0.{core::double::unary-}(){() →* core::double*}.{core::double::~/}(core::double::infinity){(core::num*) →* core::int*};
-static const field core::int* e3 = core::double::nan.{core::double::~/}(core::double::infinity){(core::num*) →* core::int*};
-static const field core::int* e4 = core::double::infinity.{core::double::~/}(core::double::infinity){(core::num*) →* core::int*};
-static const field core::int* e5 = core::double::negativeInfinity.{core::double::~/}(core::double::infinity){(core::num*) →* core::int*};
-static const field core::int* f0 = 0.{core::num::~/}(core::double::negativeInfinity){(core::num*) →* core::int*};
-static const field core::int* f1 = 0.0.{core::double::~/}(core::double::negativeInfinity){(core::num*) →* core::int*};
-static const field core::int* f2 = 0.0.{core::double::unary-}(){() →* core::double*}.{core::double::~/}(core::double::negativeInfinity){(core::num*) →* core::int*};
-static const field core::int* f3 = core::double::nan.{core::double::~/}(core::double::negativeInfinity){(core::num*) →* core::int*};
-static const field core::int* f4 = core::double::infinity.{core::double::~/}(core::double::negativeInfinity){(core::num*) →* core::int*};
-static const field core::int* f5 = core::double::negativeInfinity.{core::double::~/}(core::double::negativeInfinity){(core::num*) →* core::int*};
+static const field core::int a0 = 0.{core::num::~/}(0){(core::num) → core::int};
+static const field core::int a1 = 0.0.{core::double::~/}(0){(core::num) → core::int};
+static const field core::int a2 = 0.0.{core::double::unary-}(){() → core::double}.{core::double::~/}(0){(core::num) → core::int};
+static const field core::int a3 = core::double::nan.{core::double::~/}(0){(core::num) → core::int};
+static const field core::int a4 = core::double::infinity.{core::double::~/}(0){(core::num) → core::int};
+static const field core::int a5 = core::double::negativeInfinity.{core::double::~/}(0){(core::num) → core::int};
+static const field core::int b0 = 0.{core::num::~/}(0.0){(core::num) → core::int};
+static const field core::int b1 = 0.0.{core::double::~/}(0.0){(core::num) → core::int};
+static const field core::int b2 = 0.0.{core::double::unary-}(){() → core::double}.{core::double::~/}(0.0){(core::num) → core::int};
+static const field core::int b3 = core::double::nan.{core::double::~/}(0.0){(core::num) → core::int};
+static const field core::int b4 = core::double::infinity.{core::double::~/}(0.0){(core::num) → core::int};
+static const field core::int b5 = core::double::negativeInfinity.{core::double::~/}(0.0){(core::num) → core::int};
+static const field core::int c0 = 0.{core::num::~/}(0.0.{core::double::unary-}(){() → core::double}){(core::num) → core::int};
+static const field core::int c1 = 0.0.{core::double::~/}(0.0.{core::double::unary-}(){() → core::double}){(core::num) → core::int};
+static const field core::int c2 = 0.0.{core::double::unary-}(){() → core::double}.{core::double::~/}(0.0.{core::double::unary-}(){() → core::double}){(core::num) → core::int};
+static const field core::int c3 = core::double::nan.{core::double::~/}(0.0.{core::double::unary-}(){() → core::double}){(core::num) → core::int};
+static const field core::int c4 = core::double::infinity.{core::double::~/}(0.0.{core::double::unary-}(){() → core::double}){(core::num) → core::int};
+static const field core::int c5 = core::double::negativeInfinity.{core::double::~/}(0.0.{core::double::unary-}(){() → core::double}){(core::num) → core::int};
+static const field core::int d0 = 0.{core::num::~/}(core::double::nan){(core::num) → core::int};
+static const field core::int d1 = 0.0.{core::double::~/}(core::double::nan){(core::num) → core::int};
+static const field core::int d2 = 0.0.{core::double::unary-}(){() → core::double}.{core::double::~/}(core::double::nan){(core::num) → core::int};
+static const field core::int d3 = core::double::nan.{core::double::~/}(core::double::nan){(core::num) → core::int};
+static const field core::int d4 = core::double::infinity.{core::double::~/}(core::double::nan){(core::num) → core::int};
+static const field core::int d5 = core::double::negativeInfinity.{core::double::~/}(core::double::nan){(core::num) → core::int};
+static const field core::int e0 = 0.{core::num::~/}(core::double::infinity){(core::num) → core::int};
+static const field core::int e1 = 0.0.{core::double::~/}(core::double::infinity){(core::num) → core::int};
+static const field core::int e2 = 0.0.{core::double::unary-}(){() → core::double}.{core::double::~/}(core::double::infinity){(core::num) → core::int};
+static const field core::int e3 = core::double::nan.{core::double::~/}(core::double::infinity){(core::num) → core::int};
+static const field core::int e4 = core::double::infinity.{core::double::~/}(core::double::infinity){(core::num) → core::int};
+static const field core::int e5 = core::double::negativeInfinity.{core::double::~/}(core::double::infinity){(core::num) → core::int};
+static const field core::int f0 = 0.{core::num::~/}(core::double::negativeInfinity){(core::num) → core::int};
+static const field core::int f1 = 0.0.{core::double::~/}(core::double::negativeInfinity){(core::num) → core::int};
+static const field core::int f2 = 0.0.{core::double::unary-}(){() → core::double}.{core::double::~/}(core::double::negativeInfinity){(core::num) → core::int};
+static const field core::int f3 = core::double::nan.{core::double::~/}(core::double::negativeInfinity){(core::num) → core::int};
+static const field core::int f4 = core::double::infinity.{core::double::~/}(core::double::negativeInfinity){(core::num) → core::int};
+static const field core::int f5 = core::double::negativeInfinity.{core::double::~/}(core::double::negativeInfinity){(core::num) → core::int};
 static method main() → dynamic
   ;
-static method test(core::num* a, core::num* b, () →* core::num* f) → void
+static method test(core::num a, core::num b, () → core::num f) → void
   ;
 static method expect(dynamic expected, dynamic actual) → void
   ;
-static method throws(() →* core::num* f) → void
+static method throws(() → core::num f) → void
   ;
 
 
diff --git a/pkg/front_end/testcases/general/constant_truncate.dart.weak.transformed.expect b/pkg/front_end/testcases/general/constant_truncate.dart.weak.transformed.expect
index 5bb1e01..375b557 100644
--- a/pkg/front_end/testcases/general/constant_truncate.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/constant_truncate.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -305,103 +305,103 @@
 import self as self;
 import "dart:core" as core;
 
-static const field core::int* a0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* a5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* b5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* c5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
-static const field core::int* d0 = invalid-expression "Binary operator '0 ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d1 = invalid-expression "Binary operator '0.0 ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d2 = invalid-expression "Binary operator '-0.0 ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d3 = invalid-expression "Binary operator 'NaN ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d4 = invalid-expression "Binary operator 'Infinity ~/ NaN' results is Infinity or NaN.";
-static const field core::int* d5 = invalid-expression "Binary operator '-Infinity ~/ NaN' results is Infinity or NaN.";
-static const field core::int* e0 = #C1;
-static const field core::int* e1 = #C1;
-static const field core::int* e2 = #C1;
-static const field core::int* e3 = invalid-expression "Binary operator 'NaN ~/ Infinity' results is Infinity or NaN.";
-static const field core::int* e4 = invalid-expression "Binary operator 'Infinity ~/ Infinity' results is Infinity or NaN.";
-static const field core::int* e5 = invalid-expression "Binary operator '-Infinity ~/ Infinity' results is Infinity or NaN.";
-static const field core::int* f0 = #C1;
-static const field core::int* f1 = #C1;
-static const field core::int* f2 = #C1;
-static const field core::int* f3 = invalid-expression "Binary operator 'NaN ~/ -Infinity' results is Infinity or NaN.";
-static const field core::int* f4 = invalid-expression "Binary operator 'Infinity ~/ -Infinity' results is Infinity or NaN.";
-static const field core::int* f5 = invalid-expression "Binary operator '-Infinity ~/ -Infinity' results is Infinity or NaN.";
+static const field core::int a0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int a5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int b5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c0 = invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c1 = invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c2 = invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c3 = invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c4 = invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int c5 = invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.";
+static const field core::int d0 = invalid-expression "Binary operator '0 ~/ NaN' results is Infinity or NaN.";
+static const field core::int d1 = invalid-expression "Binary operator '0.0 ~/ NaN' results is Infinity or NaN.";
+static const field core::int d2 = invalid-expression "Binary operator '-0.0 ~/ NaN' results is Infinity or NaN.";
+static const field core::int d3 = invalid-expression "Binary operator 'NaN ~/ NaN' results is Infinity or NaN.";
+static const field core::int d4 = invalid-expression "Binary operator 'Infinity ~/ NaN' results is Infinity or NaN.";
+static const field core::int d5 = invalid-expression "Binary operator '-Infinity ~/ NaN' results is Infinity or NaN.";
+static const field core::int e0 = #C1;
+static const field core::int e1 = #C1;
+static const field core::int e2 = #C1;
+static const field core::int e3 = invalid-expression "Binary operator 'NaN ~/ Infinity' results is Infinity or NaN.";
+static const field core::int e4 = invalid-expression "Binary operator 'Infinity ~/ Infinity' results is Infinity or NaN.";
+static const field core::int e5 = invalid-expression "Binary operator '-Infinity ~/ Infinity' results is Infinity or NaN.";
+static const field core::int f0 = #C1;
+static const field core::int f1 = #C1;
+static const field core::int f2 = #C1;
+static const field core::int f3 = invalid-expression "Binary operator 'NaN ~/ -Infinity' results is Infinity or NaN.";
+static const field core::int f4 = invalid-expression "Binary operator 'Infinity ~/ -Infinity' results is Infinity or NaN.";
+static const field core::int f5 = invalid-expression "Binary operator '-Infinity ~/ -Infinity' results is Infinity or NaN.";
 static method main() → dynamic {
-  self::test(0, 0, () → core::int* => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0, 0, () → core::int* => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, 0, () → core::int* => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C2, 0, () → core::int* => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C3, 0, () → core::int* => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C4, 0, () → core::int* => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(0, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C2, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C3, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C4, 0.0, () → core::int* => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(0, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C2, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C3, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(#C4, 0.0.{core::double::unary-}(){() →* core::double*}, () → core::int* => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
-  self::test(0, #C2, () → core::int* => invalid-expression "Binary operator '0 ~/ NaN' results is Infinity or NaN.");
-  self::test(0.0, #C2, () → core::int* => invalid-expression "Binary operator '0.0 ~/ NaN' results is Infinity or NaN.");
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, #C2, () → core::int* => invalid-expression "Binary operator '-0.0 ~/ NaN' results is Infinity or NaN.");
-  self::test(#C2, #C2, () → core::int* => invalid-expression "Binary operator 'NaN ~/ NaN' results is Infinity or NaN.");
-  self::test(#C3, #C2, () → core::int* => invalid-expression "Binary operator 'Infinity ~/ NaN' results is Infinity or NaN.");
-  self::test(#C4, #C2, () → core::int* => invalid-expression "Binary operator '-Infinity ~/ NaN' results is Infinity or NaN.");
-  self::test(0, #C3, () → core::int* => #C1);
-  self::test(0.0, #C3, () → core::int* => #C1);
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, #C3, () → core::int* => #C1);
-  self::test(#C2, #C3, () → core::int* => invalid-expression "Binary operator 'NaN ~/ Infinity' results is Infinity or NaN.");
-  self::test(#C3, #C3, () → core::int* => invalid-expression "Binary operator 'Infinity ~/ Infinity' results is Infinity or NaN.");
-  self::test(#C4, #C3, () → core::int* => invalid-expression "Binary operator '-Infinity ~/ Infinity' results is Infinity or NaN.");
-  self::test(0, #C4, () → core::int* => #C1);
-  self::test(0.0, #C4, () → core::int* => #C1);
-  self::test(0.0.{core::double::unary-}(){() →* core::double*}, #C4, () → core::int* => #C1);
-  self::test(#C2, #C4, () → core::int* => invalid-expression "Binary operator 'NaN ~/ -Infinity' results is Infinity or NaN.");
-  self::test(#C3, #C4, () → core::int* => invalid-expression "Binary operator 'Infinity ~/ -Infinity' results is Infinity or NaN.");
-  self::test(#C4, #C4, () → core::int* => invalid-expression "Binary operator '-Infinity ~/ -Infinity' results is Infinity or NaN.");
+  self::test(0, 0, () → core::int => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0, 0, () → core::int => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0.{core::double::unary-}(){() → core::double}, 0, () → core::int => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C2, 0, () → core::int => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C3, 0, () → core::int => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C4, 0, () → core::int => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(0, 0.0, () → core::int => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0, 0.0, () → core::int => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0.{core::double::unary-}(){() → core::double}, 0.0, () → core::int => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C2, 0.0, () → core::int => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C3, 0.0, () → core::int => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C4, 0.0, () → core::int => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(0, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on '0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on '0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(0.0.{core::double::unary-}(){() → core::double}, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on '-0.0' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C2, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on 'NaN' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C3, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on 'Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(#C4, 0.0.{core::double::unary-}(){() → core::double}, () → core::int => invalid-expression "Binary operator '~/' on '-Infinity' requires non-zero divisor, but divisor was '0'.");
+  self::test(0, #C2, () → core::int => invalid-expression "Binary operator '0 ~/ NaN' results is Infinity or NaN.");
+  self::test(0.0, #C2, () → core::int => invalid-expression "Binary operator '0.0 ~/ NaN' results is Infinity or NaN.");
+  self::test(0.0.{core::double::unary-}(){() → core::double}, #C2, () → core::int => invalid-expression "Binary operator '-0.0 ~/ NaN' results is Infinity or NaN.");
+  self::test(#C2, #C2, () → core::int => invalid-expression "Binary operator 'NaN ~/ NaN' results is Infinity or NaN.");
+  self::test(#C3, #C2, () → core::int => invalid-expression "Binary operator 'Infinity ~/ NaN' results is Infinity or NaN.");
+  self::test(#C4, #C2, () → core::int => invalid-expression "Binary operator '-Infinity ~/ NaN' results is Infinity or NaN.");
+  self::test(0, #C3, () → core::int => #C1);
+  self::test(0.0, #C3, () → core::int => #C1);
+  self::test(0.0.{core::double::unary-}(){() → core::double}, #C3, () → core::int => #C1);
+  self::test(#C2, #C3, () → core::int => invalid-expression "Binary operator 'NaN ~/ Infinity' results is Infinity or NaN.");
+  self::test(#C3, #C3, () → core::int => invalid-expression "Binary operator 'Infinity ~/ Infinity' results is Infinity or NaN.");
+  self::test(#C4, #C3, () → core::int => invalid-expression "Binary operator '-Infinity ~/ Infinity' results is Infinity or NaN.");
+  self::test(0, #C4, () → core::int => #C1);
+  self::test(0.0, #C4, () → core::int => #C1);
+  self::test(0.0.{core::double::unary-}(){() → core::double}, #C4, () → core::int => #C1);
+  self::test(#C2, #C4, () → core::int => invalid-expression "Binary operator 'NaN ~/ -Infinity' results is Infinity or NaN.");
+  self::test(#C3, #C4, () → core::int => invalid-expression "Binary operator 'Infinity ~/ -Infinity' results is Infinity or NaN.");
+  self::test(#C4, #C4, () → core::int => invalid-expression "Binary operator '-Infinity ~/ -Infinity' results is Infinity or NaN.");
 }
-static method test(core::num* a, core::num* b, () →* core::num* f) → void {
-  core::num* result;
+static method test(core::num a, core::num b, () → core::num f) → void {
+  core::num result;
   try {
-    result = a.{core::num::~/}(b){(core::num*) →* core::int*};
+    result = a.{core::num::~/}(b){(core::num) → core::int};
     core::print("${a} ~/ ${b} = ${result}");
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
     core::print("${a} ~/ ${b} throws ${e}");
     self::throws(f);
     return;
   }
-  self::expect(f(){() →* core::num*}, result);
+  self::expect(f(){() → core::num}, result);
 }
 static method expect(dynamic expected, dynamic actual) → void {
-  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual)) {
+  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual)) {
     throw "Expected ${expected}, actual ${actual}";
   }
 }
-static method throws(() →* core::num* f) → void {
+static method throws(() → core::num f) → void {
   try {
-    f(){() →* core::num*};
+    f(){() → core::num};
   }
-  on dynamic catch(final dynamic e) {
+  on core::Object catch(final core::Object e) {
     return;
   }
   throw "Expected exception";
diff --git a/pkg/front_end/testcases/general/constructor_const_inference.dart b/pkg/front_end/testcases/general/constructor_const_inference.dart
index e883d4f..824e517 100644
--- a/pkg/front_end/testcases/general/constructor_const_inference.dart
+++ b/pkg/front_end/testcases/general/constructor_const_inference.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
+
 // This test checks that the type inference implementation correctly uses least
 // closure of the inferred type arguments in invocations of 'const' constructors
 // in case there are type variables in them.
diff --git a/pkg/front_end/testcases/general/constructor_const_inference.dart.textual_outline.expect b/pkg/front_end/testcases/general/constructor_const_inference.dart.textual_outline.expect
index e300475..f6ab576 100644
--- a/pkg/front_end/testcases/general/constructor_const_inference.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/constructor_const_inference.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class _Y<T> {
   const _Y();
 }
diff --git a/pkg/front_end/testcases/general/constructor_const_inference.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/constructor_const_inference.dart.textual_outline_modelled.expect
index 46d2c92..6b4aec7 100644
--- a/pkg/front_end/testcases/general/constructor_const_inference.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/constructor_const_inference.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A<T> {
   A(this.x);
   _Y<T> x;
diff --git a/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.expect b/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.expect
index 2c1402b..21168f4 100644
--- a/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.expect
@@ -1,52 +1,32 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class _Y<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::_Y<self::_Y::T*>*
+class _Y<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor •() → self::_Y<self::_Y::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<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::_Y<self::A::T*>* x;
-  constructor •(self::_Y<self::A::T*>* x) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::_Y<self::A::T%> x;
+  constructor •(self::_Y<self::A::T%> x) → self::A<self::A::T%>
     : self::A::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
 }
-class B<T extends core::Object* = dynamic> extends self::A<self::B::T*> {
-  constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::A<self::B::T%> {
+  constructor •() → self::B<self::B::T%>
     : super self::A::•(#C1)
     ;
 }
 static method main() → dynamic {
-  dynamic x = new self::B::•<dynamic>().{self::A::x}{self::_Y<dynamic>*};
-  if(!(x is self::_Y<Null>*)) {
-    throw "Unexpected run-time type: `new B().x` is ${x.{core::Object::runtimeType}{core::Type*}}, but `_Y<Null>` expected";
+  dynamic x = new self::B::•<dynamic>().{self::A::x}{self::_Y<dynamic>};
+  if(!(x is{ForNonNullableByDefault} self::_Y<Null>)) {
+    throw "Unexpected run-time type: `new B().x` is ${x.{core::Object::runtimeType}{core::Type}}, but `_Y<Null>` expected";
   }
 }
 
 constants  {
-  #C1 = self::_Y<Null> {}
+  #C1 = self::_Y<Never*> {}
 }
 
 
diff --git a/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.modular.expect b/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.modular.expect
index 2c1402b..21168f4 100644
--- a/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.modular.expect
@@ -1,52 +1,32 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class _Y<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::_Y<self::_Y::T*>*
+class _Y<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor •() → self::_Y<self::_Y::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<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::_Y<self::A::T*>* x;
-  constructor •(self::_Y<self::A::T*>* x) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::_Y<self::A::T%> x;
+  constructor •(self::_Y<self::A::T%> x) → self::A<self::A::T%>
     : self::A::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
 }
-class B<T extends core::Object* = dynamic> extends self::A<self::B::T*> {
-  constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::A<self::B::T%> {
+  constructor •() → self::B<self::B::T%>
     : super self::A::•(#C1)
     ;
 }
 static method main() → dynamic {
-  dynamic x = new self::B::•<dynamic>().{self::A::x}{self::_Y<dynamic>*};
-  if(!(x is self::_Y<Null>*)) {
-    throw "Unexpected run-time type: `new B().x` is ${x.{core::Object::runtimeType}{core::Type*}}, but `_Y<Null>` expected";
+  dynamic x = new self::B::•<dynamic>().{self::A::x}{self::_Y<dynamic>};
+  if(!(x is{ForNonNullableByDefault} self::_Y<Null>)) {
+    throw "Unexpected run-time type: `new B().x` is ${x.{core::Object::runtimeType}{core::Type}}, but `_Y<Null>` expected";
   }
 }
 
 constants  {
-  #C1 = self::_Y<Null> {}
+  #C1 = self::_Y<Never*> {}
 }
 
 
diff --git a/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.outline.expect b/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.outline.expect
index f0f7deb..86ab71d 100644
--- a/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.outline.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class _Y<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::_Y<self::_Y::T*>*
+class _Y<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor •() → self::_Y<self::_Y::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<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::_Y<self::A::T*>* x;
-  constructor •(self::_Y<self::A::T*>* x) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::_Y<self::A::T%> x;
+  constructor •(self::_Y<self::A::T%> x) → 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 B<T extends core::Object* = dynamic> extends self::A<self::B::T*> {
-  constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::A<self::B::T%> {
+  constructor •() → self::B<self::B::T%>
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.transformed.expect
index 2c1402b..21168f4 100644
--- a/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/constructor_const_inference.dart.weak.transformed.expect
@@ -1,52 +1,32 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class _Y<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
-  const constructor •() → self::_Y<self::_Y::T*>*
+class _Y<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
+  const constructor •() → self::_Y<self::_Y::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<T extends core::Object* = dynamic> extends core::Object {
-  covariant-by-class field self::_Y<self::A::T*>* x;
-  constructor •(self::_Y<self::A::T*>* x) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+  covariant-by-class field self::_Y<self::A::T%> x;
+  constructor •(self::_Y<self::A::T%> x) → self::A<self::A::T%>
     : self::A::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
 }
-class B<T extends core::Object* = dynamic> extends self::A<self::B::T*> {
-  constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::A<self::B::T%> {
+  constructor •() → self::B<self::B::T%>
     : super self::A::•(#C1)
     ;
 }
 static method main() → dynamic {
-  dynamic x = new self::B::•<dynamic>().{self::A::x}{self::_Y<dynamic>*};
-  if(!(x is self::_Y<Null>*)) {
-    throw "Unexpected run-time type: `new B().x` is ${x.{core::Object::runtimeType}{core::Type*}}, but `_Y<Null>` expected";
+  dynamic x = new self::B::•<dynamic>().{self::A::x}{self::_Y<dynamic>};
+  if(!(x is{ForNonNullableByDefault} self::_Y<Null>)) {
+    throw "Unexpected run-time type: `new B().x` is ${x.{core::Object::runtimeType}{core::Type}}, but `_Y<Null>` expected";
   }
 }
 
 constants  {
-  #C1 = self::_Y<Null> {}
+  #C1 = self::_Y<Never*> {}
 }
 
 
diff --git a/pkg/front_end/testcases/general/constructor_cycle.dart b/pkg/front_end/testcases/general/constructor_cycle.dart
index 42f7fd7..85f38e4 100644
--- a/pkg/front_end/testcases/general/constructor_cycle.dart
+++ b/pkg/front_end/testcases/general/constructor_cycle.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 {
   A.foo() : this.bar();
   A.bar() : this.foo();
diff --git a/pkg/front_end/testcases/general/constructor_cycle.dart.textual_outline.expect b/pkg/front_end/testcases/general/constructor_cycle.dart.textual_outline.expect
index 1fa7cfe..4471e83 100644
--- a/pkg/front_end/testcases/general/constructor_cycle.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/constructor_cycle.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A.foo() : this.bar();
   A.bar() : this.foo();
diff --git a/pkg/front_end/testcases/general/constructor_cycle.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/constructor_cycle.dart.textual_outline_modelled.expect
index c42a433..051f9f7 100644
--- a/pkg/front_end/testcases/general/constructor_cycle.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/constructor_cycle.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A() : this();
   A.bar() : this.foo();
diff --git a/pkg/front_end/testcases/general/constructor_cycle.dart.weak.expect b/pkg/front_end/testcases/general/constructor_cycle.dart.weak.expect
index 7510955..e65ccdb 100644
--- a/pkg/front_end/testcases/general/constructor_cycle.dart.weak.expect
+++ b/pkg/front_end/testcases/general/constructor_cycle.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,27 +16,17 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor foo() → self::A*
+  constructor foo() → self::A
     : this self::A::bar()
     ;
-  constructor bar() → self::A*
+  constructor bar() → self::A
     : this self::A::foo()
     ;
-  constructor baz() → self::A*
+  constructor baz() → self::A
     : this self::A::foo()
     ;
-  constructor •() → self::A*
+  constructor •() → self::A
     : this 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/general/constructor_cycle.dart.weak.modular.expect b/pkg/front_end/testcases/general/constructor_cycle.dart.weak.modular.expect
index 7510955..e65ccdb 100644
--- a/pkg/front_end/testcases/general/constructor_cycle.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/constructor_cycle.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,27 +16,17 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor foo() → self::A*
+  constructor foo() → self::A
     : this self::A::bar()
     ;
-  constructor bar() → self::A*
+  constructor bar() → self::A
     : this self::A::foo()
     ;
-  constructor baz() → self::A*
+  constructor baz() → self::A
     : this self::A::foo()
     ;
-  constructor •() → self::A*
+  constructor •() → self::A
     : this 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/general/constructor_cycle.dart.weak.outline.expect b/pkg/front_end/testcases/general/constructor_cycle.dart.weak.outline.expect
index a3bff12..0be8c19 100644
--- a/pkg/front_end/testcases/general/constructor_cycle.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/constructor_cycle.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor foo() → self::A*
+  constructor foo() → self::A
     ;
-  constructor bar() → self::A*
+  constructor bar() → self::A
     ;
-  constructor baz() → self::A*
+  constructor baz() → self::A
     ;
-  constructor •() → self::A*
+  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/general/constructor_cycle.dart.weak.transformed.expect b/pkg/front_end/testcases/general/constructor_cycle.dart.weak.transformed.expect
index 7510955..e65ccdb 100644
--- a/pkg/front_end/testcases/general/constructor_cycle.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/constructor_cycle.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -16,27 +16,17 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor foo() → self::A*
+  constructor foo() → self::A
     : this self::A::bar()
     ;
-  constructor bar() → self::A*
+  constructor bar() → self::A
     : this self::A::foo()
     ;
-  constructor baz() → self::A*
+  constructor baz() → self::A
     : this self::A::foo()
     ;
-  constructor •() → self::A*
+  constructor •() → self::A
     : this 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/general/constructor_function_types.dart b/pkg/front_end/testcases/general/constructor_function_types.dart
index 35037a9..d2c70d6 100644
--- a/pkg/front_end/testcases/general/constructor_function_types.dart
+++ b/pkg/front_end/testcases/general/constructor_function_types.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 {
   A();
 }
@@ -22,5 +22,5 @@
   new A();
   new B(0, 3.14, "foo");
   new C();
-  new D<Object, int>(null, 3);
+  new D<Object, int>(new Object(), 3);
 }
diff --git a/pkg/front_end/testcases/general/constructor_function_types.dart.textual_outline.expect b/pkg/front_end/testcases/general/constructor_function_types.dart.textual_outline.expect
index 6990c7d..52ecd80 100644
--- a/pkg/front_end/testcases/general/constructor_function_types.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/constructor_function_types.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A();
 }
diff --git a/pkg/front_end/testcases/general/constructor_function_types.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/constructor_function_types.dart.textual_outline_modelled.expect
index 6990c7d..52ecd80 100644
--- a/pkg/front_end/testcases/general/constructor_function_types.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/constructor_function_types.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A();
 }
diff --git a/pkg/front_end/testcases/general/constructor_function_types.dart.weak.expect b/pkg/front_end/testcases/general/constructor_function_types.dart.weak.expect
index 3e5a359..9b1c710 100644
--- a/pkg/front_end/testcases/general/constructor_function_types.dart.weak.expect
+++ b/pkg/front_end/testcases/general/constructor_function_types.dart.weak.expect
@@ -1,70 +1,30 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •() → self::A*
+  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 {
-  constructor •(core::int* x, core::double* y, core::String* s) → self::B*
+  constructor •(core::int x, core::double y, core::String s) → 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<T extends core::Object* = dynamic> extends core::Object {
-  constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  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 D<T extends core::Object* = dynamic, S extends core::Object* = dynamic> extends core::Object {
-  constructor •(self::D::T* x, self::D::S* y) → self::D<self::D::T*, self::D::S*>*
+class D<T extends core::Object? = dynamic, S extends core::Object? = dynamic> extends core::Object {
+  constructor •(self::D::T% x, self::D::S% y) → self::D<self::D::T%, self::D::S%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → void {
   new self::A::•();
   new self::B::•(0, 3.14, "foo");
   new self::C::•<dynamic>();
-  new self::D::•<core::Object*, core::int*>(null, 3);
+  new self::D::•<core::Object, core::int>(new core::Object::•(), 3);
 }
diff --git a/pkg/front_end/testcases/general/constructor_function_types.dart.weak.modular.expect b/pkg/front_end/testcases/general/constructor_function_types.dart.weak.modular.expect
index 3e5a359..9b1c710 100644
--- a/pkg/front_end/testcases/general/constructor_function_types.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/constructor_function_types.dart.weak.modular.expect
@@ -1,70 +1,30 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •() → self::A*
+  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 {
-  constructor •(core::int* x, core::double* y, core::String* s) → self::B*
+  constructor •(core::int x, core::double y, core::String s) → 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<T extends core::Object* = dynamic> extends core::Object {
-  constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  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 D<T extends core::Object* = dynamic, S extends core::Object* = dynamic> extends core::Object {
-  constructor •(self::D::T* x, self::D::S* y) → self::D<self::D::T*, self::D::S*>*
+class D<T extends core::Object? = dynamic, S extends core::Object? = dynamic> extends core::Object {
+  constructor •(self::D::T% x, self::D::S% y) → self::D<self::D::T%, self::D::S%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → void {
   new self::A::•();
   new self::B::•(0, 3.14, "foo");
   new self::C::•<dynamic>();
-  new self::D::•<core::Object*, core::int*>(null, 3);
+  new self::D::•<core::Object, core::int>(new core::Object::•(), 3);
 }
diff --git a/pkg/front_end/testcases/general/constructor_function_types.dart.weak.outline.expect b/pkg/front_end/testcases/general/constructor_function_types.dart.weak.outline.expect
index 77d1f0c..bd1b261 100644
--- a/pkg/front_end/testcases/general/constructor_function_types.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/constructor_function_types.dart.weak.outline.expect
@@ -1,62 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •() → self::A*
+  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 {
-  constructor •(core::int* x, core::double* y, core::String* s) → self::B*
+  constructor •(core::int x, core::double y, core::String s) → 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<T extends core::Object* = dynamic> extends core::Object {
-  constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  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 D<T extends core::Object* = dynamic, S extends core::Object* = dynamic> extends core::Object {
-  constructor •(self::D::T* x, self::D::S* y) → self::D<self::D::T*, self::D::S*>*
+class D<T extends core::Object? = dynamic, S extends core::Object? = dynamic> extends core::Object {
+  constructor •(self::D::T% x, self::D::S% y) → self::D<self::D::T%, self::D::S%>
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/general/constructor_function_types.dart.weak.transformed.expect b/pkg/front_end/testcases/general/constructor_function_types.dart.weak.transformed.expect
index 3e5a359..9b1c710 100644
--- a/pkg/front_end/testcases/general/constructor_function_types.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/constructor_function_types.dart.weak.transformed.expect
@@ -1,70 +1,30 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  constructor •() → self::A*
+  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 {
-  constructor •(core::int* x, core::double* y, core::String* s) → self::B*
+  constructor •(core::int x, core::double y, core::String s) → 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<T extends core::Object* = dynamic> extends core::Object {
-  constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+  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 D<T extends core::Object* = dynamic, S extends core::Object* = dynamic> extends core::Object {
-  constructor •(self::D::T* x, self::D::S* y) → self::D<self::D::T*, self::D::S*>*
+class D<T extends core::Object? = dynamic, S extends core::Object? = dynamic> extends core::Object {
+  constructor •(self::D::T% x, self::D::S% y) → self::D<self::D::T%, self::D::S%>
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → void {
   new self::A::•();
   new self::B::•(0, 3.14, "foo");
   new self::C::•<dynamic>();
-  new self::D::•<core::Object*, core::int*>(null, 3);
+  new self::D::•<core::Object, core::int>(new core::Object::•(), 3);
 }
diff --git a/pkg/front_end/testcases/general/constructor_initializer_invalid.dart b/pkg/front_end/testcases/general/constructor_initializer_invalid.dart
index 6ff4140..8d30fe5 100644
--- a/pkg/front_end/testcases/general/constructor_initializer_invalid.dart
+++ b/pkg/front_end/testcases/general/constructor_initializer_invalid.dart
@@ -1,10 +1,10 @@
 // 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 C1 { int f; C1() : ; }
-class C2 { int f; C2() : f; }
-class C3 { int f; C3() : f++; }
+
+class C1 { var f; C1() : ; }
+class C2 { var f; C2() : f; }
+class C3 { var f; C3() : f++; }
 
 main() {
   var c1 = new C1();
diff --git a/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.textual_outline.expect b/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.textual_outline.expect
index e6ef74a..6244877 100644
--- a/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.textual_outline.expect
@@ -1,14 +1,13 @@
-// @dart = 2.9
 class C1 {
-  int f;
+  var f;
   C1() : =;
 }
 class C2 {
-  int f;
+  var f;
   C2() : f=;
 }
 class C3 {
-  int f;
+  var f;
   C3() : =f++;
 }
 main() {}
diff --git a/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.expect b/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.expect
index 69f8ec9..ceee6e9 100644
--- a/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.expect
+++ b/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.expect
@@ -1,87 +1,57 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:5:24: Error: Expected an initializer.
-// class C1 { int f; C1() : ; }
+// class C1 { var f; C1() : ; }
 //                        ^
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:6:26: Error: Expected an assignment after the field name.
 // To initialize a field, use the syntax 'name = value'.
-// class C2 { int f; C2() : f; }
+// class C2 { var f; C2() : f; }
 //                          ^
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:7:26: Error: Expected an assignment after the field name.
 // To initialize a field, use the syntax 'name = value'.
-// class C3 { int f; C3() : f++; }
+// class C3 { var f; C3() : f++; }
 //                          ^
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:7:26: Error: Can't access 'this' in a field initializer to read 'f'.
-// class C3 { int f; C3() : f++; }
+// class C3 { var f; C3() : f++; }
 //                          ^
 //
 import self as self;
 import "dart:core" as core;
 
 class C1 extends core::Object {
-  field core::int* f = null;
-  constructor •() → self::C1*
+  field dynamic f = null;
+  constructor •() → self::C1
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/constructor_initializer_invalid.dart:5:26: Error: This couldn't be parsed.
-class C1 { int f; C1() : ; }
+class C1 { var f; 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 {
-  field core::int* f;
-  constructor •() → self::C2*
+  field dynamic f;
+  constructor •() → self::C2
     : self::C2::f = invalid-expression "pkg/front_end/testcases/general/constructor_initializer_invalid.dart:6:27: Error: This couldn't be parsed.
-class C2 { int f; C2() : f; }
+class C2 { var f; C2() : f; }
                           ^", super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C3 extends core::Object {
-  field core::int* f = null;
-  constructor •() → self::C3*
+  field dynamic f = null;
+  constructor •() → self::C3
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/general/constructor_initializer_invalid.dart:7:26: Error: This couldn't be parsed.
-class C3 { int f; C3() : f++; }
+class C3 { var f; C3() : f++; }
                          ^"
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {
-  self::C1* c1 = new self::C1::•();
-  c1.{self::C1::toString}(){() →* core::String*};
-  self::C2* c2 = new self::C2::•();
-  c2.{self::C2::toString}(){() →* core::String*};
-  self::C3* c3 = new self::C3::•();
-  c3.{self::C3::toString}(){() →* core::String*};
+  self::C1 c1 = new self::C1::•();
+  c1.{core::Object::toString}(){() → core::String};
+  self::C2 c2 = new self::C2::•();
+  c2.{core::Object::toString}(){() → core::String};
+  self::C3 c3 = new self::C3::•();
+  c3.{core::Object::toString}(){() → core::String};
 }
diff --git a/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.modular.expect b/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.modular.expect
index 69f8ec9..ceee6e9 100644
--- a/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.modular.expect
@@ -1,87 +1,57 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:5:24: Error: Expected an initializer.
-// class C1 { int f; C1() : ; }
+// class C1 { var f; C1() : ; }
 //                        ^
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:6:26: Error: Expected an assignment after the field name.
 // To initialize a field, use the syntax 'name = value'.
-// class C2 { int f; C2() : f; }
+// class C2 { var f; C2() : f; }
 //                          ^
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:7:26: Error: Expected an assignment after the field name.
 // To initialize a field, use the syntax 'name = value'.
-// class C3 { int f; C3() : f++; }
+// class C3 { var f; C3() : f++; }
 //                          ^
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:7:26: Error: Can't access 'this' in a field initializer to read 'f'.
-// class C3 { int f; C3() : f++; }
+// class C3 { var f; C3() : f++; }
 //                          ^
 //
 import self as self;
 import "dart:core" as core;
 
 class C1 extends core::Object {
-  field core::int* f = null;
-  constructor •() → self::C1*
+  field dynamic f = null;
+  constructor •() → self::C1
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/constructor_initializer_invalid.dart:5:26: Error: This couldn't be parsed.
-class C1 { int f; C1() : ; }
+class C1 { var f; 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 {
-  field core::int* f;
-  constructor •() → self::C2*
+  field dynamic f;
+  constructor •() → self::C2
     : self::C2::f = invalid-expression "pkg/front_end/testcases/general/constructor_initializer_invalid.dart:6:27: Error: This couldn't be parsed.
-class C2 { int f; C2() : f; }
+class C2 { var f; C2() : f; }
                           ^", super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C3 extends core::Object {
-  field core::int* f = null;
-  constructor •() → self::C3*
+  field dynamic f = null;
+  constructor •() → self::C3
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/general/constructor_initializer_invalid.dart:7:26: Error: This couldn't be parsed.
-class C3 { int f; C3() : f++; }
+class C3 { var f; C3() : f++; }
                          ^"
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {
-  self::C1* c1 = new self::C1::•();
-  c1.{self::C1::toString}(){() →* core::String*};
-  self::C2* c2 = new self::C2::•();
-  c2.{self::C2::toString}(){() →* core::String*};
-  self::C3* c3 = new self::C3::•();
-  c3.{self::C3::toString}(){() →* core::String*};
+  self::C1 c1 = new self::C1::•();
+  c1.{core::Object::toString}(){() → core::String};
+  self::C2 c2 = new self::C2::•();
+  c2.{core::Object::toString}(){() → core::String};
+  self::C3 c3 = new self::C3::•();
+  c3.{core::Object::toString}(){() → core::String};
 }
diff --git a/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.outline.expect b/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.outline.expect
index 702dc5a..3aeaef6 100644
--- a/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.outline.expect
@@ -1,68 +1,38 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:5:24: Error: Expected an initializer.
-// class C1 { int f; C1() : ; }
+// class C1 { var f; C1() : ; }
 //                        ^
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:6:26: Error: Expected an assignment after the field name.
 // To initialize a field, use the syntax 'name = value'.
-// class C2 { int f; C2() : f; }
+// class C2 { var f; C2() : f; }
 //                          ^
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:7:26: Error: Expected an assignment after the field name.
 // To initialize a field, use the syntax 'name = value'.
-// class C3 { int f; C3() : f++; }
+// class C3 { var f; C3() : f++; }
 //                          ^
 //
 import self as self;
 import "dart:core" as core;
 
 class C1 extends core::Object {
-  field core::int* f;
-  constructor •() → self::C1*
+  field dynamic f;
+  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 {
-  field core::int* f;
-  constructor •() → self::C2*
+  field dynamic f;
+  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 {
-  field core::int* f;
-  constructor •() → self::C3*
+  field dynamic f;
+  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/general/constructor_initializer_invalid.dart.weak.transformed.expect b/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.transformed.expect
index 69f8ec9..ceee6e9 100644
--- a/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/constructor_initializer_invalid.dart.weak.transformed.expect
@@ -1,87 +1,57 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:5:24: Error: Expected an initializer.
-// class C1 { int f; C1() : ; }
+// class C1 { var f; C1() : ; }
 //                        ^
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:6:26: Error: Expected an assignment after the field name.
 // To initialize a field, use the syntax 'name = value'.
-// class C2 { int f; C2() : f; }
+// class C2 { var f; C2() : f; }
 //                          ^
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:7:26: Error: Expected an assignment after the field name.
 // To initialize a field, use the syntax 'name = value'.
-// class C3 { int f; C3() : f++; }
+// class C3 { var f; C3() : f++; }
 //                          ^
 //
 // pkg/front_end/testcases/general/constructor_initializer_invalid.dart:7:26: Error: Can't access 'this' in a field initializer to read 'f'.
-// class C3 { int f; C3() : f++; }
+// class C3 { var f; C3() : f++; }
 //                          ^
 //
 import self as self;
 import "dart:core" as core;
 
 class C1 extends core::Object {
-  field core::int* f = null;
-  constructor •() → self::C1*
+  field dynamic f = null;
+  constructor •() → self::C1
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/constructor_initializer_invalid.dart:5:26: Error: This couldn't be parsed.
-class C1 { int f; C1() : ; }
+class C1 { var f; 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 {
-  field core::int* f;
-  constructor •() → self::C2*
+  field dynamic f;
+  constructor •() → self::C2
     : self::C2::f = invalid-expression "pkg/front_end/testcases/general/constructor_initializer_invalid.dart:6:27: Error: This couldn't be parsed.
-class C2 { int f; C2() : f; }
+class C2 { var f; C2() : f; }
                           ^", super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C3 extends core::Object {
-  field core::int* f = null;
-  constructor •() → self::C3*
+  field dynamic f = null;
+  constructor •() → self::C3
     : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/general/constructor_initializer_invalid.dart:7:26: Error: This couldn't be parsed.
-class C3 { int f; C3() : f++; }
+class C3 { var f; C3() : f++; }
                          ^"
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {
-  self::C1* c1 = new self::C1::•();
-  c1.{self::C1::toString}(){() →* core::String*};
-  self::C2* c2 = new self::C2::•();
-  c2.{self::C2::toString}(){() →* core::String*};
-  self::C3* c3 = new self::C3::•();
-  c3.{self::C3::toString}(){() →* core::String*};
+  self::C1 c1 = new self::C1::•();
+  c1.{core::Object::toString}(){() → core::String};
+  self::C2 c2 = new self::C2::•();
+  c2.{core::Object::toString}(){() → core::String};
+  self::C3 c3 = new self::C3::•();
+  c3.{core::Object::toString}(){() → core::String};
 }
diff --git a/pkg/front_end/testcases/general/continue_inference_after_error.dart b/pkg/front_end/testcases/general/continue_inference_after_error.dart
index 8e3d5d3..edcb626 100644
--- a/pkg/front_end/testcases/general/continue_inference_after_error.dart
+++ b/pkg/front_end/testcases/general/continue_inference_after_error.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 "continue_inference_after_error_lib.dart" as lib;
 
 class C {}
diff --git a/pkg/front_end/testcases/general/continue_inference_after_error.dart.textual_outline.expect b/pkg/front_end/testcases/general/continue_inference_after_error.dart.textual_outline.expect
index 5dd4bfd..419aa23 100644
--- a/pkg/front_end/testcases/general/continue_inference_after_error.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/continue_inference_after_error.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "continue_inference_after_error_lib.dart" as lib;
 
 class C {}
diff --git a/pkg/front_end/testcases/general/continue_inference_after_error.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/continue_inference_after_error.dart.textual_outline_modelled.expect
index af026a2..2384d20 100644
--- a/pkg/front_end/testcases/general/continue_inference_after_error.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/continue_inference_after_error.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import "continue_inference_after_error_lib.dart" as lib;
 
 class C {}
diff --git a/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.expect b/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.expect
index cbaacd1..3fe7f57 100644
--- a/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.expect
+++ b/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,24 +18,14 @@
 import "org-dartlang-testcase:///continue_inference_after_error_lib.dart" as lib;
 
 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 test() → dynamic {
   invalid-expression "pkg/front_end/testcases/general/continue_inference_after_error.dart:10:3: Error: A prefix can't be used as an expression.
   lib(new C().missing());
-  ^^^" in let final core::Object* #t1 = invalid-expression "pkg/front_end/testcases/general/continue_inference_after_error.dart:10:15: Error: The method 'missing' isn't defined for the class 'C'.
+  ^^^" in let final core::Object? #t1 = invalid-expression "pkg/front_end/testcases/general/continue_inference_after_error.dart:10:15: Error: The method 'missing' isn't defined for the class 'C'.
  - 'C' is from 'pkg/front_end/testcases/general/continue_inference_after_error.dart'.
 Try correcting the name to the name of an existing method, or defining a method named 'missing'.
   lib(new C().missing());
@@ -43,5 +33,5 @@
 }
 static method main() → dynamic {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
diff --git a/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.modular.expect b/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.modular.expect
index cbaacd1..3fe7f57 100644
--- a/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,24 +18,14 @@
 import "org-dartlang-testcase:///continue_inference_after_error_lib.dart" as lib;
 
 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 test() → dynamic {
   invalid-expression "pkg/front_end/testcases/general/continue_inference_after_error.dart:10:3: Error: A prefix can't be used as an expression.
   lib(new C().missing());
-  ^^^" in let final core::Object* #t1 = invalid-expression "pkg/front_end/testcases/general/continue_inference_after_error.dart:10:15: Error: The method 'missing' isn't defined for the class 'C'.
+  ^^^" in let final core::Object? #t1 = invalid-expression "pkg/front_end/testcases/general/continue_inference_after_error.dart:10:15: Error: The method 'missing' isn't defined for the class 'C'.
  - 'C' is from 'pkg/front_end/testcases/general/continue_inference_after_error.dart'.
 Try correcting the name to the name of an existing method, or defining a method named 'missing'.
   lib(new C().missing());
@@ -43,5 +33,5 @@
 }
 static method main() → dynamic {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
diff --git a/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.outline.expect b/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.outline.expect
index 78e1d62..28c727e 100644
--- a/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.outline.expect
@@ -1,27 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 import "org-dartlang-testcase:///continue_inference_after_error_lib.dart" as lib;
 
 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 test() → dynamic
   ;
 static method main() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
diff --git a/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.transformed.expect b/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.transformed.expect
index cbaacd1..3fe7f57 100644
--- a/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/continue_inference_after_error.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,24 +18,14 @@
 import "org-dartlang-testcase:///continue_inference_after_error_lib.dart" as lib;
 
 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 test() → dynamic {
   invalid-expression "pkg/front_end/testcases/general/continue_inference_after_error.dart:10:3: Error: A prefix can't be used as an expression.
   lib(new C().missing());
-  ^^^" in let final core::Object* #t1 = invalid-expression "pkg/front_end/testcases/general/continue_inference_after_error.dart:10:15: Error: The method 'missing' isn't defined for the class 'C'.
+  ^^^" in let final core::Object? #t1 = invalid-expression "pkg/front_end/testcases/general/continue_inference_after_error.dart:10:15: Error: The method 'missing' isn't defined for the class 'C'.
  - 'C' is from 'pkg/front_end/testcases/general/continue_inference_after_error.dart'.
 Try correcting the name to the name of an existing method, or defining a method named 'missing'.
   lib(new C().missing());
@@ -43,5 +33,5 @@
 }
 static method main() → dynamic {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
diff --git a/pkg/front_end/testcases/general/continue_inference_after_error_lib.dart b/pkg/front_end/testcases/general/continue_inference_after_error_lib.dart
index e343683..87869b0 100644
--- a/pkg/front_end/testcases/general/continue_inference_after_error_lib.dart
+++ b/pkg/front_end/testcases/general/continue_inference_after_error_lib.dart
@@ -1,4 +1,3 @@
-// @dart=2.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.
diff --git a/pkg/front_end/testcases/general/control_flow_collection.dart b/pkg/front_end/testcases/general/control_flow_collection.dart
index ca2a8e0..63e2664 100644
--- a/pkg/front_end/testcases/general/control_flow_collection.dart
+++ b/pkg/front_end/testcases/general/control_flow_collection.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() {
   final aList = <int>[
     1,
diff --git a/pkg/front_end/testcases/general/control_flow_collection.dart.textual_outline.expect b/pkg/front_end/testcases/general/control_flow_collection.dart.textual_outline.expect
index e8735f6..f4795c0 100644
--- a/pkg/front_end/testcases/general/control_flow_collection.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
 oracle() => true;
diff --git a/pkg/front_end/testcases/general/control_flow_collection.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/control_flow_collection.dart.textual_outline_modelled.expect
index e8735f6..f4795c0 100644
--- a/pkg/front_end/testcases/general/control_flow_collection.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
 oracle() => true;
diff --git a/pkg/front_end/testcases/general/control_flow_collection.dart.weak.expect b/pkg/front_end/testcases/general/control_flow_collection.dart.weak.expect
index ca02ce0..ad04066 100644
--- a/pkg/front_end/testcases/general/control_flow_collection.dart.weak.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection.dart.weak.expect
@@ -1,67 +1,67 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:collection" as col;
 
 static method main() → dynamic {
-  final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = <core::int*>[1];
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t1.{core::List::add}{Invariant}(2){(core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t1.{core::List::add}{Invariant}(3){(core::int*) →* void};
+  final core::List<core::int> aList = block {
+    final core::List<core::int> #t1 = <core::int>[1];
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t1.{core::List::add}{Invariant}(2){(core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t1.{core::List::add}{Invariant}(3){(core::int) → void};
     else
-      #t1.{core::List::add}{Invariant}(1.{core::int::unary-}(){() →* core::int*}){(core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t1.{core::List::add}{Invariant}(4){(core::int*) →* void};
-    for (core::int* i in <core::int*>[5, 6, 7])
-      #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
-    for (core::int* i in <core::int*>[8, 9, 10])
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
-    for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
+      #t1.{core::List::add}{Invariant}(1.{core::int::unary-}(){() → core::int}){(core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t1.{core::List::add}{Invariant}(4){(core::int) → void};
+    for (core::int i in <core::int>[5, 6, 7])
+      #t1.{core::List::add}{Invariant}(i){(core::int) → void};
+    for (core::int i in <core::int>[8, 9, 10])
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t1.{core::List::add}{Invariant}(i){(core::int) → void};
+    for (core::int i = 11; i.{core::num::<=}(14){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t1.{core::List::add}{Invariant}(i){(core::int) → void};
   } =>#t1;
-  final core::Set<core::int*>* aSet = block {
-    final core::Set<core::int*>* #t2 = col::LinkedHashSet::•<core::int*>();
-    #t2.{core::Set::add}{Invariant}(1){(core::int*) →* core::bool*};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t2.{core::Set::add}{Invariant}(2){(core::int*) →* core::bool*};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t2.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+  final core::Set<core::int> aSet = block {
+    final core::Set<core::int> #t2 = col::LinkedHashSet::•<core::int>();
+    #t2.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t2.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t2.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
     else
-      #t2.{core::Set::add}{Invariant}(1.{core::int::unary-}(){() →* core::int*}){(core::int*) →* core::bool*};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t2.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
-    for (core::int* i in <core::int*>[5, 6, 7])
-      #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
-    for (core::int* i in <core::int*>[8, 9, 10])
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
-    for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
+      #t2.{core::Set::add}{Invariant}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::bool};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t2.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
+    for (core::int i in <core::int>[5, 6, 7])
+      #t2.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
+    for (core::int i in <core::int>[8, 9, 10])
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t2.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
+    for (core::int i = 11; i.{core::num::<=}(14){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t2.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
   } =>#t2;
-  final core::Map<core::int*, core::int*>* aMap = block {
-    final core::Map<core::int*, core::int*>* #t3 = <core::int*, core::int*>{};
-    #t3.{core::Map::[]=}{Invariant}(1, 1){(core::int*, core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t3.{core::Map::[]=}{Invariant}(2, 2){(core::int*, core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t3.{core::Map::[]=}{Invariant}(3, 3){(core::int*, core::int*) →* void};
+  final core::Map<core::int, core::int> aMap = block {
+    final core::Map<core::int, core::int> #t3 = <core::int, core::int>{};
+    #t3.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t3.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t3.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
     else
-      #t3.{core::Map::[]=}{Invariant}(1.{core::int::unary-}(){() →* core::int*}, 1.{core::int::unary-}(){() →* core::int*}){(core::int*, core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t3.{core::Map::[]=}{Invariant}(4, 4){(core::int*, core::int*) →* void};
-    for (core::int* i in <core::int*>[5, 6, 7])
-      #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
-    for (core::int* i in <core::int*>[8, 9, 10])
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
-    for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
+      #t3.{core::Map::[]=}{Invariant}(1.{core::int::unary-}(){() → core::int}, 1.{core::int::unary-}(){() → core::int}){(core::int, core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t3.{core::Map::[]=}{Invariant}(4, 4){(core::int, core::int) → void};
+    for (core::int i in <core::int>[5, 6, 7])
+      #t3.{core::Map::[]=}{Invariant}(i, i){(core::int, core::int) → void};
+    for (core::int i in <core::int>[8, 9, 10])
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t3.{core::Map::[]=}{Invariant}(i, i){(core::int, core::int) → void};
+    for (core::int i = 11; i.{core::num::<=}(14){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t3.{core::Map::[]=}{Invariant}(i, i){(core::int, core::int) → void};
   } =>#t3;
   core::print(aList);
   core::print(aSet);
diff --git a/pkg/front_end/testcases/general/control_flow_collection.dart.weak.modular.expect b/pkg/front_end/testcases/general/control_flow_collection.dart.weak.modular.expect
index ca02ce0..ad04066 100644
--- a/pkg/front_end/testcases/general/control_flow_collection.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection.dart.weak.modular.expect
@@ -1,67 +1,67 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:collection" as col;
 
 static method main() → dynamic {
-  final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = <core::int*>[1];
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t1.{core::List::add}{Invariant}(2){(core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t1.{core::List::add}{Invariant}(3){(core::int*) →* void};
+  final core::List<core::int> aList = block {
+    final core::List<core::int> #t1 = <core::int>[1];
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t1.{core::List::add}{Invariant}(2){(core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t1.{core::List::add}{Invariant}(3){(core::int) → void};
     else
-      #t1.{core::List::add}{Invariant}(1.{core::int::unary-}(){() →* core::int*}){(core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t1.{core::List::add}{Invariant}(4){(core::int*) →* void};
-    for (core::int* i in <core::int*>[5, 6, 7])
-      #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
-    for (core::int* i in <core::int*>[8, 9, 10])
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
-    for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
+      #t1.{core::List::add}{Invariant}(1.{core::int::unary-}(){() → core::int}){(core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t1.{core::List::add}{Invariant}(4){(core::int) → void};
+    for (core::int i in <core::int>[5, 6, 7])
+      #t1.{core::List::add}{Invariant}(i){(core::int) → void};
+    for (core::int i in <core::int>[8, 9, 10])
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t1.{core::List::add}{Invariant}(i){(core::int) → void};
+    for (core::int i = 11; i.{core::num::<=}(14){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t1.{core::List::add}{Invariant}(i){(core::int) → void};
   } =>#t1;
-  final core::Set<core::int*>* aSet = block {
-    final core::Set<core::int*>* #t2 = col::LinkedHashSet::•<core::int*>();
-    #t2.{core::Set::add}{Invariant}(1){(core::int*) →* core::bool*};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t2.{core::Set::add}{Invariant}(2){(core::int*) →* core::bool*};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t2.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+  final core::Set<core::int> aSet = block {
+    final core::Set<core::int> #t2 = col::LinkedHashSet::•<core::int>();
+    #t2.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t2.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t2.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
     else
-      #t2.{core::Set::add}{Invariant}(1.{core::int::unary-}(){() →* core::int*}){(core::int*) →* core::bool*};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t2.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
-    for (core::int* i in <core::int*>[5, 6, 7])
-      #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
-    for (core::int* i in <core::int*>[8, 9, 10])
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
-    for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
+      #t2.{core::Set::add}{Invariant}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::bool};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t2.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
+    for (core::int i in <core::int>[5, 6, 7])
+      #t2.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
+    for (core::int i in <core::int>[8, 9, 10])
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t2.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
+    for (core::int i = 11; i.{core::num::<=}(14){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t2.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
   } =>#t2;
-  final core::Map<core::int*, core::int*>* aMap = block {
-    final core::Map<core::int*, core::int*>* #t3 = <core::int*, core::int*>{};
-    #t3.{core::Map::[]=}{Invariant}(1, 1){(core::int*, core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t3.{core::Map::[]=}{Invariant}(2, 2){(core::int*, core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t3.{core::Map::[]=}{Invariant}(3, 3){(core::int*, core::int*) →* void};
+  final core::Map<core::int, core::int> aMap = block {
+    final core::Map<core::int, core::int> #t3 = <core::int, core::int>{};
+    #t3.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t3.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t3.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
     else
-      #t3.{core::Map::[]=}{Invariant}(1.{core::int::unary-}(){() →* core::int*}, 1.{core::int::unary-}(){() →* core::int*}){(core::int*, core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t3.{core::Map::[]=}{Invariant}(4, 4){(core::int*, core::int*) →* void};
-    for (core::int* i in <core::int*>[5, 6, 7])
-      #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
-    for (core::int* i in <core::int*>[8, 9, 10])
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
-    for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
+      #t3.{core::Map::[]=}{Invariant}(1.{core::int::unary-}(){() → core::int}, 1.{core::int::unary-}(){() → core::int}){(core::int, core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t3.{core::Map::[]=}{Invariant}(4, 4){(core::int, core::int) → void};
+    for (core::int i in <core::int>[5, 6, 7])
+      #t3.{core::Map::[]=}{Invariant}(i, i){(core::int, core::int) → void};
+    for (core::int i in <core::int>[8, 9, 10])
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t3.{core::Map::[]=}{Invariant}(i, i){(core::int, core::int) → void};
+    for (core::int i = 11; i.{core::num::<=}(14){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t3.{core::Map::[]=}{Invariant}(i, i){(core::int, core::int) → void};
   } =>#t3;
   core::print(aList);
   core::print(aSet);
diff --git a/pkg/front_end/testcases/general/control_flow_collection.dart.weak.outline.expect b/pkg/front_end/testcases/general/control_flow_collection.dart.weak.outline.expect
index b0c1797..735ded1 100644
--- a/pkg/front_end/testcases/general/control_flow_collection.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/control_flow_collection.dart.weak.transformed.expect b/pkg/front_end/testcases/general/control_flow_collection.dart.weak.transformed.expect
index a7fe03f..a903507 100644
--- a/pkg/front_end/testcases/general/control_flow_collection.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection.dart.weak.transformed.expect
@@ -1,97 +1,97 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 import "dart:collection" as col;
 
 static method main() → dynamic {
-  final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = core::_GrowableList::_literal1<core::int*>(1);
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t1.{core::List::add}{Invariant}(2){(core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t1.{core::List::add}{Invariant}(3){(core::int*) →* void};
+  final core::List<core::int> aList = block {
+    final core::List<core::int> #t1 = core::_GrowableList::_literal1<core::int>(1);
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t1.{core::List::add}{Invariant}(2){(core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t1.{core::List::add}{Invariant}(3){(core::int) → void};
     else
-      #t1.{core::List::add}{Invariant}(1.{core::int::unary-}(){() →* core::int*}){(core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t1.{core::List::add}{Invariant}(4){(core::int*) →* void};
+      #t1.{core::List::add}{Invariant}(1.{core::int::unary-}(){() → core::int}){(core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t1.{core::List::add}{Invariant}(4){(core::int) → void};
     {
-      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(5, 6, 7).{core::Iterable::iterator}{core::Iterator<core::int*>*};
+      core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(5, 6, 7).{core::Iterable::iterator}{core::Iterator<core::int>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
-        #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
+        core::int i = :sync-for-iterator.{core::Iterator::current}{core::int};
+        #t1.{core::List::add}{Invariant}(i){(core::int) → void};
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(8, 9, 10).{core::Iterable::iterator}{core::Iterator<core::int*>*};
+      core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(8, 9, 10).{core::Iterable::iterator}{core::Iterator<core::int>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
-        if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-          #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
+        core::int i = :sync-for-iterator.{core::Iterator::current}{core::int};
+        if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+          #t1.{core::List::add}{Invariant}(i){(core::int) → void};
       }
     }
-    for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
+    for (core::int i = 11; i.{core::num::<=}(14){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t1.{core::List::add}{Invariant}(i){(core::int) → void};
   } =>#t1;
-  final core::Set<core::int*>* aSet = block {
-    final core::Set<core::int*>* #t2 = new col::_CompactLinkedHashSet::•<core::int*>();
-    #t2.{core::Set::add}{Invariant}(1){(core::int*) →* core::bool*};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t2.{core::Set::add}{Invariant}(2){(core::int*) →* core::bool*};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t2.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+  final core::Set<core::int> aSet = block {
+    final core::Set<core::int> #t2 = new col::_CompactLinkedHashSet::•<core::int>();
+    #t2.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t2.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t2.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
     else
-      #t2.{core::Set::add}{Invariant}(1.{core::int::unary-}(){() →* core::int*}){(core::int*) →* core::bool*};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t2.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+      #t2.{core::Set::add}{Invariant}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::bool};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t2.{core::Set::add}{Invariant}(4){(core::int) → core::bool};
     {
-      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(5, 6, 7).{core::Iterable::iterator}{core::Iterator<core::int*>*};
+      core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(5, 6, 7).{core::Iterable::iterator}{core::Iterator<core::int>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
-        #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
+        core::int i = :sync-for-iterator.{core::Iterator::current}{core::int};
+        #t2.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(8, 9, 10).{core::Iterable::iterator}{core::Iterator<core::int*>*};
+      core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(8, 9, 10).{core::Iterable::iterator}{core::Iterator<core::int>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
-        if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-          #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
+        core::int i = :sync-for-iterator.{core::Iterator::current}{core::int};
+        if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+          #t2.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
       }
     }
-    for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
+    for (core::int i = 11; i.{core::num::<=}(14){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t2.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
   } =>#t2;
-  final core::Map<core::int*, core::int*>* aMap = block {
-    final core::Map<core::int*, core::int*>* #t3 = <core::int*, core::int*>{};
-    #t3.{core::Map::[]=}{Invariant}(1, 1){(core::int*, core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t3.{core::Map::[]=}{Invariant}(2, 2){(core::int*, core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      #t3.{core::Map::[]=}{Invariant}(3, 3){(core::int*, core::int*) →* void};
+  final core::Map<core::int, core::int> aMap = block {
+    final core::Map<core::int, core::int> #t3 = <core::int, core::int>{};
+    #t3.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t3.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t3.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
     else
-      #t3.{core::Map::[]=}{Invariant}(1.{core::int::unary-}(){() →* core::int*}, 1.{core::int::unary-}(){() →* core::int*}){(core::int*, core::int*) →* void};
-    if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-        #t3.{core::Map::[]=}{Invariant}(4, 4){(core::int*, core::int*) →* void};
+      #t3.{core::Map::[]=}{Invariant}(1.{core::int::unary-}(){() → core::int}, 1.{core::int::unary-}(){() → core::int}){(core::int, core::int) → void};
+    if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t3.{core::Map::[]=}{Invariant}(4, 4){(core::int, core::int) → void};
     {
-      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(5, 6, 7).{core::Iterable::iterator}{core::Iterator<core::int*>*};
+      core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(5, 6, 7).{core::Iterable::iterator}{core::Iterator<core::int>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
-        #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
+        core::int i = :sync-for-iterator.{core::Iterator::current}{core::int};
+        #t3.{core::Map::[]=}{Invariant}(i, i){(core::int, core::int) → void};
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(8, 9, 10).{core::Iterable::iterator}{core::Iterator<core::int*>*};
+      core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(8, 9, 10).{core::Iterable::iterator}{core::Iterator<core::int>};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
-        core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
-        if(self::oracle() as{TypeError,ForDynamic} core::bool*)
-          #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
+        core::int i = :sync-for-iterator.{core::Iterator::current}{core::int};
+        if(self::oracle() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+          #t3.{core::Map::[]=}{Invariant}(i, i){(core::int, core::int) → void};
       }
     }
-    for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
+    for (core::int i = 11; i.{core::num::<=}(14){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t3.{core::Map::[]=}{Invariant}(i, i){(core::int, core::int) → void};
   } =>#t3;
   core::print(aList);
   core::print(aSet);
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference.dart b/pkg/front_end/testcases/general/control_flow_collection_inference.dart
index 0c5923d..961e48e 100644
--- a/pkg/front_end/testcases/general/control_flow_collection_inference.dart
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference.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
+
 // Oracle is generic to test the inference in conditions of if-elements.
 oracle<T>([T t]) => true;
 
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.expect b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.expect
index 2ebf6f7..d4a4508 100644
--- a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.expect
@@ -2,421 +2,421 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:39:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:41:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 //   Map<String, List<int>> map40 = {if (oracle("foo")) ...{"bar", []}, "baz": null};
 //                                  ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:73:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   var map82 = {if (oracle("foo")) ...mapToInt else ...dynVar, null};
 //                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:44: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:44: Error: Expected ':' after this.
 //   Set<dynamic> set10 = {if (oracle("foo")) 42 else "bar": 3.14};
 //                                            ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:107:53: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:53: Error: Expected ':' after this.
 //   Map<dynamic, dynamic> map10 = {if (oracle("foo")) 42 else "bar": 3.14};
 //                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:61: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:61: Error: Expected ':' after this.
 //   Set<dynamic> set11 = {if (oracle("foo")) "bar": 3.14 else 42};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:70: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:70: Error: Expected ':' after this.
 //   Map<dynamic, dynamic> map11 = {if (oracle("foo")) "bar": 3.14 else 42};
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:35: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:35: Error: Expected ':' after this.
 //   var map12 = {if (oracle("foo")) 42 else "bar": 3.14};
 //                                   ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:52: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:52: Error: Expected ':' after this.
 //   var map13 = {if (oracle("foo")) "bar": 3.14 else 42};
 //                                                    ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>[if (oracle("foo")) "bar"];
 //                            ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:88:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>{if (oracle("foo")) "bar", null};
 //                            ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <String, int>{if (oracle("foo")) "bar": "bar", "baz": null};
 //                                           ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>[if (oracle("foo")) ...["bar"]];
 //                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>{if (oracle("foo")) ...["bar"], null};
 //                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:47: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:47: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <String, int>{if (oracle("foo")) ...{"bar": "bar"}, "baz": null};
 //                                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[if (oracle("foo")) ...map];
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{if (oracle("foo")) ...map, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{if (oracle("foo")) ...["bar"], "baz": null};
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String>[if (oracle("foo")) 42 else 3.14];
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String>[if (oracle("foo")) 42 else 3.14];
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String>{if (oracle("foo")) 42 else 3.14, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String>{if (oracle("foo")) 42 else 3.14, null};
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String, String>{if (oracle("foo")) "bar": 42 else "baz": 3.14, "baz": null};
 //                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String, String>{if (oracle("foo")) "bar": 42 else "baz": 3.14, "baz": null};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[if (oracle("foo")) ...map else 42];
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{if (oracle("foo")) ...map else 42, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{if (oracle("foo")) ...[42] else "bar": 42, "baz": null};
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[if (oracle("foo")) 42 else ...map];
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:105:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{if (oracle("foo")) ...map else 42, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{if (oracle("foo")) "bar": 42 else ...[42], "baz": null};
 //                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 //   Set<dynamic> set10 = {if (oracle("foo")) 42 else "bar": 3.14};
 //                        ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 //   Set<dynamic> set11 = {if (oracle("foo")) "bar": 3.14 else 42};
 //                        ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
 //   List<int> list20 = [if (42) 42];
 //                           ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
 //   Set<int> set20 = {if (42) 42};
 //                         ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
 //   Map<int, int> map30 = {if (42) 42: 42};
 //                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
 //   List<String> list40 = <String>[if (oracle("foo")) true else 42];
 //                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   List<String> list40 = <String>[if (oracle("foo")) true else 42];
 //                                                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
 //   Set<String> set40 = <String>{if (oracle("foo")) true else 42};
 //                                                   ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   Set<String> set40 = <String>{if (oracle("foo")) true else 42};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:119:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
 //   Map<String, int> map40 = <String, int>{if (oracle("foo")) true: 42 else 42: 42};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:119:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   Map<String, int> map40 = <String, int>{if (oracle("foo")) true: 42 else 42: 42};
 //                                                                           ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:120:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
 //   Map<int, String> map41 = <int, String>{if (oracle("foo")) 42: true else 42: 42};
 //                                                                 ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:120:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   Map<int, String> map41 = <int, String>{if (oracle("foo")) 42: true else 42: 42};
 //                                                                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:230:14: Error: Can't assign to the final variable 'i'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:14: Error: Can't assign to the final variable 'i'.
 //   <int>[for (i in <int>[1]) i];
 //              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:231:14: Error: Can't assign to the final variable 'i'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:233:14: Error: Can't assign to the final variable 'i'.
 //   <int>{for (i in <int>[1]) i, null};
 //              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:21: Error: Can't assign to the final variable 'i'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:234:21: Error: Can't assign to the final variable 'i'.
 // 	<String, int>{for (i in <int>[1]) "bar": i, "baz": null};
 // 	                   ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:17: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:248:17: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
 // Try removing the keyword, or use a for-each statement.
 //   var list50 = [await for (;;) 42];
 //                 ^^^^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:249:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
 // Try removing the keyword, or use a for-each statement.
 //   var set50 = {await for (;;) 42, null};
 //                ^^^^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:248:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:250:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
 // Try removing the keyword, or use a for-each statement.
 //   var map50 = {await for (;;) "bar": 42, "baz": null};
 //                ^^^^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>[for (int i = 0; oracle("foo"); i++) "bar"];
 //                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:211:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>{for (int i = 0; oracle("foo"); i++) "bar", null};
 //                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
 //                                                  ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
 //                                                         ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
 //                                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>[for (int i = 0; oracle("foo"); i++) ...["bar"]];
 //                                                 ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>{for (int i = 0; oracle("foo"); i++) ...["bar"], null};
 //                                                 ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
 //                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
 //                                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[for (int i = 0; oracle("foo"); i++) ...map];
 //                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{for (int i = 0; oracle("foo"); i++) ...map, null};
 //                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) ...list, 42: null};
 //                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
 //                                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
 //                                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String, String>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
 //                                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String, String>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
 //                                                                                            ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42];
 //                                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42, null};
 //                                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...list else "bar": 42, "baz": null};
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map];
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:228:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map, null};
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:229:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else ...list, "baz": null};
 //                                                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:234:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:236:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
 //  - 'Iterable' is from 'dart:core'.
 //   var list10 = [for (var i in "not iterable") i];
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:235:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
 //  - 'Iterable' is from 'dart:core'.
 //   var set10 = {for (var i in "not iterable") i, null};
 //                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:236:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
 //  - 'Iterable' is from 'dart:core'.
 //   var map10 = {for (var i in "not iterable") "bar": i, "baz": null};
 //                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var list20 = [for (int i in ["not", "int"]) i];
 //                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var list20 = [for (int i in ["not", "int"]) i];
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var set20 = {for (int i in ["not", "int"]) i, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var set20 = {for (int i in ["not", "int"]) i, null};
 //                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var map20 = {for (int i in ["not", "int"]) "bar": i, "baz": null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var map20 = {for (int i in ["not", "int"]) "bar": i, "baz": null};
 //                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:242:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
 //  - 'Stream' is from 'dart:async'.
 //   var list30 = [await for (var i in "not stream") i];
 //                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
 //  - 'Stream' is from 'dart:async'.
 //   var set30 = {await for (var i in "not stream") i, null};
 //                                    ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:242:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
 //  - 'Stream' is from 'dart:async'.
 //   var map30 = {await for (var i in "not stream") "bar": i, "baz": null};
 //                                    ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var list40 = [await for (int i in Stream.fromIterable(["not", "int"])) i];
 //                                                          ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var list40 = [await for (int i in Stream.fromIterable(["not", "int"])) i];
 //                                                                 ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var set40 = {await for (int i in Stream.fromIterable(["not", "int"])) i, null};
 //                                                         ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var set40 = {await for (int i in Stream.fromIterable(["not", "int"])) i, null};
 //                                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var map40 = {await for (int i in Stream.fromIterable(["not", "int"])) "bar": i, "baz": null};
 //                                                         ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var map40 = {await for (int i in Stream.fromIterable(["not", "int"])) "bar": i, "baz": null};
 //                                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
 //   var list60 = [for (; "not bool";) 42];
 //                        ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:250:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:252:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
 //   var set60 = {for (; "not bool";) 42, null};
 //                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:253:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
 //   var map60 = {for (; "not bool";) "bar": 42, "baz": null};
 //                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:255:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:257:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
 // Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
 //   <int>[await for (int i in stream) i];
 //                          ^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:256:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:258:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
 // Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
 //   <int>{await for (int i in stream) i};
 //                          ^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:257:34: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:259:34: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
 // Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
 //   <String, int>{await for (int i in stream) "bar": i};
 //                                  ^^
@@ -630,7 +630,7 @@
       #t35.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
     #t35.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
   } =>#t35;
-  core::Map<core::String*, core::List<core::int*>*>* map40 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:39:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  core::Map<core::String*, core::List<core::int*>*>* map40 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:41:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
   Map<String, List<int>> map40 = {if (oracle(\"foo\")) ...{\"bar\", []}, \"baz\": null};
                                  ^";
   core::List<core::List<core::int*>*>* list41 = block {
@@ -854,7 +854,7 @@
   core::Set<dynamic>* map82 = block {
     final core::Set<dynamic>* #t78 = col::LinkedHashSet::•<dynamic>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t78.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t78.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:73:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   var map82 = {if (oracle(\"foo\")) ...mapToInt else ...dynVar, null};
                                      ^"){(dynamic) →* core::bool*};
@@ -950,14 +950,14 @@
   block {
     final core::List<core::int*>* #t99 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t99.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t99.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[if (oracle(\"foo\")) \"bar\"];
                            ^" in "bar" as{TypeError} core::int*){(core::int*) →* void};
   } =>#t99;
   block {
     final core::Set<core::int*>* #t100 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t100.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:88:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t100.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{if (oracle(\"foo\")) \"bar\", null};
                            ^" in "bar" as{TypeError} core::int*){(core::int*) →* core::bool*};
     #t100.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
@@ -965,7 +965,7 @@
   block {
     final core::Map<core::String*, core::int*>* #t101 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t101.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t101.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <String, int>{if (oracle(\"foo\")) \"bar\": \"bar\", \"baz\": null};
                                           ^" in "bar" as{TypeError} core::int*){(core::String*, core::int*) →* void};
     #t101.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
@@ -973,14 +973,14 @@
   block {
     final core::List<core::int*>* #t102 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t102.{core::List::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t102.{core::List::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[if (oracle(\"foo\")) ...[\"bar\"]];
                                ^" in "bar" as{TypeError} core::int*]){(core::Iterable<core::int*>*) →* void};
   } =>#t102;
   block {
     final core::Set<core::int*>* #t103 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t103.{core::Set::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t103.{core::Set::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{if (oracle(\"foo\")) ...[\"bar\"], null};
                                ^" in "bar" as{TypeError} core::int*]){(core::Iterable<core::int*>*) →* void};
     #t103.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
@@ -988,7 +988,7 @@
   block {
     final core::Map<core::String*, core::int*>* #t104 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      for (final core::MapEntry<core::String*, core::int*>* #t105 in <core::String*, core::int*>{"bar": invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:47: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      for (final core::MapEntry<core::String*, core::int*>* #t105 in <core::String*, core::int*>{"bar": invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:47: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <String, int>{if (oracle(\"foo\")) ...{\"bar\": \"bar\"}, \"baz\": null};
                                               ^" in "bar" as{TypeError} core::int*}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
         #t104.{core::Map::[]=}{Invariant}(#t105.{core::MapEntry::key}{core::String*}, #t105.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
@@ -997,7 +997,7 @@
   block {
     final core::List<core::int*>* #t106 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t106.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t106.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) ...map];
                               ^"){(core::int*) →* void};
@@ -1005,38 +1005,38 @@
   block {
     final core::Set<core::int*>* #t107 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t107.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t107.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map, null};
                               ^"){(core::int*) →* core::bool*};
     #t107.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t107;
-  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
-                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
                                       ^": null};
   block {
     final core::List<core::String*>* #t108 = <core::String*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String>[if (oracle(\"foo\")) 42 else 3.14];
                               ^" in 42 as{TypeError} core::String*){(core::String*) →* void};
     else
-      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String>[if (oracle(\"foo\")) 42 else 3.14];
                                       ^" in 3.14 as{TypeError} core::String*){(core::String*) →* void};
   } =>#t108;
   block {
     final core::Set<core::String*>* #t109 = col::LinkedHashSet::•<core::String*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String>{if (oracle(\"foo\")) 42 else 3.14, null};
                               ^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
     else
-      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String>{if (oracle(\"foo\")) 42 else 3.14, null};
                                       ^" in 3.14 as{TypeError} core::String*){(core::String*) →* core::bool*};
     #t109.{core::Set::add}{Invariant}(null){(core::String*) →* core::bool*};
@@ -1044,11 +1044,11 @@
   block {
     final core::Map<core::String*, core::String*>* #t110 = <core::String*, core::String*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t110.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t110.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String, String>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
                                              ^" in 42 as{TypeError} core::String*){(core::String*, core::String*) →* void};
     else
-      #t110.{core::Map::[]=}{Invariant}("baz", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t110.{core::Map::[]=}{Invariant}("baz", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String, String>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
                                                             ^" in 3.14 as{TypeError} core::String*){(core::String*, core::String*) →* void};
     #t110.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::String*) →* void};
@@ -1056,7 +1056,7 @@
   block {
     final core::List<core::int*>* #t111 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t111.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t111.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) ...map else 42];
                               ^"){(core::int*) →* void};
@@ -1066,7 +1066,7 @@
   block {
     final core::Set<core::int*>* #t112 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t112.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t112.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map else 42, null};
                               ^"){(core::int*) →* core::bool*};
@@ -1074,10 +1074,10 @@
       #t112.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
     #t112.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t112;
-  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
-                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
                                       ^": null};
@@ -1086,7 +1086,7 @@
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t113.{core::List::add}{Invariant}(42){(core::int*) →* void};
     else
-      #t113.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t113.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) 42 else ...map];
                                       ^"){(core::int*) →* void};
@@ -1094,7 +1094,7 @@
   block {
     final core::Set<core::int*>* #t114 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t114.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t114.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:105:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map else 42, null};
                               ^"){(core::int*) →* core::bool*};
@@ -1102,48 +1102,48 @@
       #t114.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
     #t114.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t114;
-  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) \"bar\": 42 else ...[42], \"baz\": null};
-                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) \"bar\": 42 else ...[42], \"baz\": null};
                                                      ^": null};
-  core::Set<dynamic>* set10 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  core::Set<dynamic>* set10 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
   Set<dynamic> set10 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
                        ^";
-  core::Map<dynamic, dynamic>* map10 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:107:53: Error: Expected ':' after this.
+  core::Map<dynamic, dynamic>* map10 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:53: Error: Expected ':' after this.
   Map<dynamic, dynamic> map10 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
                                                     ^": null};
-  core::Set<dynamic>* set11 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  core::Set<dynamic>* set11 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
   Set<dynamic> set11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                        ^";
-  core::Map<dynamic, dynamic>* map11 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:70: Error: Expected ':' after this.
+  core::Map<dynamic, dynamic>* map11 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:70: Error: Expected ':' after this.
   Map<dynamic, dynamic> map11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                                                                      ^": null};
-  core::Map<invalid-type, Null>* map12 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:35: Error: Expected ':' after this.
+  core::Map<invalid-type, Null>* map12 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:35: Error: Expected ':' after this.
   var map12 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
                                   ^": null};
-  core::Map<invalid-type, Null>* map13 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:52: Error: Expected ':' after this.
+  core::Map<invalid-type, Null>* map13 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:52: Error: Expected ':' after this.
   var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                                                    ^": null};
   core::List<core::int*>* list20 = block {
     final core::List<core::int*>* #t115 = <core::int*>[];
-    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
   List<int> list20 = [if (42) 42];
                           ^" in 42 as{TypeError} core::bool*)
       #t115.{core::List::add}{Invariant}(42){(core::int*) →* void};
   } =>#t115;
   core::Set<core::int*>* set20 = block {
     final core::Set<core::int*>* #t116 = col::LinkedHashSet::•<core::int*>();
-    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
   Set<int> set20 = {if (42) 42};
                         ^" in 42 as{TypeError} core::bool*)
       #t116.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
   } =>#t116;
   core::Map<core::int*, core::int*>* map30 = block {
     final core::Map<core::int*, core::int*>* #t117 = <core::int*, core::int*>{};
-    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
   Map<int, int> map30 = {if (42) 42: 42};
                              ^" in 42 as{TypeError} core::bool*)
       #t117.{core::Map::[]=}{Invariant}(42, 42){(core::int*, core::int*) →* void};
@@ -1151,44 +1151,44 @@
   core::List<core::String*>* list40 = block {
     final core::List<core::String*>* #t118 = <core::String*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
   List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
                                                     ^" in true as{TypeError} core::String*){(core::String*) →* void};
     else
-      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
                                                               ^" in 42 as{TypeError} core::String*){(core::String*) →* void};
   } =>#t118;
   core::Set<core::String*>* set40 = block {
     final core::Set<core::String*>* #t119 = col::LinkedHashSet::•<core::String*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
   Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
                                                   ^" in true as{TypeError} core::String*){(core::String*) →* core::bool*};
     else
-      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
                                                             ^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
   } =>#t119;
   core::Map<core::String*, core::int*>* map40 = block {
     final core::Map<core::String*, core::int*>* #t120 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:119:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
   Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
                                                             ^" in true as{TypeError} core::String*, 42){(core::String*, core::int*) →* void};
     else
-      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:119:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
                                                                           ^" in 42 as{TypeError} core::String*, 42){(core::String*, core::int*) →* void};
   } =>#t120;
   core::Map<core::int*, core::String*>* map41 = block {
     final core::Map<core::int*, core::String*>* #t121 = <core::int*, core::String*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:120:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
   Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
                                                                 ^" in true as{TypeError} core::String*){(core::int*, core::String*) →* void};
     else
-      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:120:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
                                                                               ^" in 42 as{TypeError} core::String*){(core::int*, core::String*) →* void};
   } =>#t121;
@@ -1762,14 +1762,14 @@
   block {
     final core::List<core::int*>* #t236 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t236.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t236.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) \"bar\"];
                                             ^" in "bar" as{TypeError} core::int*){(core::int*) →* void};
   } =>#t236;
   block {
     final core::Set<core::int*>* #t237 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t237.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:211:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t237.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\", null};
                                             ^" in "bar" as{TypeError} core::int*){(core::int*) →* core::bool*};
     #t237.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
@@ -1777,26 +1777,26 @@
   block {
     final core::Map<core::int*, core::int*>* #t238 = <core::int*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
-                                                 ^" in "bar" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                 ^" in "bar" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
                                                         ^" in "bar" as{TypeError} core::int*){(core::int*, core::int*) →* void};
-    #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
                                                                ^" in "baz" as{TypeError} core::int*, null){(core::int*, core::int*) →* void};
   } =>#t238;
   block {
     final core::List<core::int*>* #t239 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t239.{core::List::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t239.{core::List::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"]];
                                                 ^" in "bar" as{TypeError} core::int*]){(core::Iterable<core::int*>*) →* void};
   } =>#t239;
   block {
     final core::Set<core::int*>* #t240 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t240.{core::Set::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t240.{core::Set::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"], null};
                                                 ^" in "bar" as{TypeError} core::int*]){(core::Iterable<core::int*>*) →* void};
     #t240.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
@@ -1804,20 +1804,20 @@
   block {
     final core::Map<core::int*, core::int*>* #t241 = <core::int*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      for (final core::MapEntry<core::int*, core::int*>* #t242 in <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      for (final core::MapEntry<core::int*, core::int*>* #t242 in <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
-                                                     ^" in "bar" as{TypeError} core::int*: invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                     ^" in "bar" as{TypeError} core::int*: invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
                                                             ^" in "bar" as{TypeError} core::int*}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>})
         #t241.{core::Map::[]=}{Invariant}(#t242.{core::MapEntry::key}{core::int*}, #t242.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
-    #t241.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    #t241.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
                                                                     ^" in "baz" as{TypeError} core::int*, null){(core::int*, core::int*) →* void};
   } =>#t241;
   block {
     final core::List<core::int*>* #t243 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t243.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t243.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) ...map];
                                                ^"){(core::int*) →* void};
@@ -1825,16 +1825,16 @@
   block {
     final core::Set<core::int*>* #t244 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t244.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t244.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) ...map, null};
                                                ^"){(core::int*) →* core::bool*};
     #t244.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t244;
-  <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
-                                                    ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                                    ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
                                                     ^": null};
@@ -1842,11 +1842,11 @@
     final core::List<core::String*>* #t245 = <core::String*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+        #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
                                                              ^" in 42 as{TypeError} core::String*){(core::String*) →* void};
       else
-        #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+        #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
                                                                      ^" in 3.14 as{TypeError} core::String*){(core::String*) →* void};
   } =>#t245;
@@ -1854,11 +1854,11 @@
     final core::Set<core::String*>* #t246 = col::LinkedHashSet::•<core::String*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+        #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
                                                              ^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
       else
-        #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+        #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
                                                                      ^" in 3.14 as{TypeError} core::String*){(core::String*) →* core::bool*};
     #t246.{core::Set::add}{Invariant}(null){(core::String*) →* core::bool*};
@@ -1867,11 +1867,11 @@
     final core::Map<core::String*, core::String*>* #t247 = <core::String*, core::String*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+        #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String, String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
                                                                             ^" in 42 as{TypeError} core::String*){(core::String*, core::String*) →* void};
       else
-        #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+        #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String, String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
                                                                                            ^" in 3.14 as{TypeError} core::String*){(core::String*, core::String*) →* void};
     #t247.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::String*) →* void};
@@ -1880,7 +1880,7 @@
     final core::List<core::int*>* #t248 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t248.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+        #t248.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42];
                                                              ^"){(core::int*) →* void};
@@ -1891,7 +1891,7 @@
     final core::Set<core::int*>* #t249 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t249.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+        #t249.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42, null};
                                                              ^"){(core::int*) →* core::bool*};
@@ -1899,10 +1899,10 @@
         #t249.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
     #t249.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t249;
-  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
-                                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
                                                                      ^": null};
@@ -1912,7 +1912,7 @@
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
         #t250.{core::List::add}{Invariant}(42){(core::int*) →* void};
       else
-        #t250.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+        #t250.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map];
                                                                      ^"){(core::int*) →* void};
@@ -1923,16 +1923,16 @@
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
         #t251.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
       else
-        #t251.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+        #t251.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:228:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map, null};
                                                                      ^"){(core::int*) →* core::bool*};
     #t251.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t251;
-  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:229:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else ...list, \"baz\": null};
-                                                                                    ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                                                                    ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:229:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else ...list, \"baz\": null};
                                                                                     ^": null};
@@ -1940,7 +1940,7 @@
   block {
     final core::List<core::int*>* #t252 = <core::int*>[];
     for (final core::int* #t253 in <core::int*>[1]) {
-      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:230:14: Error: Can't assign to the final variable 'i'.
+      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:14: Error: Can't assign to the final variable 'i'.
   <int>[for (i in <int>[1]) i];
              ^";
       #t252.{core::List::add}{Invariant}(i){(core::int*) →* void};
@@ -1949,7 +1949,7 @@
   block {
     final core::Set<core::int*>* #t254 = col::LinkedHashSet::•<core::int*>();
     for (final core::int* #t255 in <core::int*>[1]) {
-      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:231:14: Error: Can't assign to the final variable 'i'.
+      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:233:14: Error: Can't assign to the final variable 'i'.
   <int>{for (i in <int>[1]) i, null};
              ^";
       #t254.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
@@ -1959,7 +1959,7 @@
   block {
     final core::Map<core::String*, core::int*>* #t256 = <core::String*, core::int*>{};
     for (final core::int* #t257 in <core::int*>[1]) {
-      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:21: Error: Can't assign to the final variable 'i'.
+      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:234:21: Error: Can't assign to the final variable 'i'.
 \t<String, int>{for (i in <int>[1]) \"bar\": i, \"baz\": null};
 \t                   ^";
       #t256.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
@@ -1968,7 +1968,7 @@
   } =>#t256;
   core::List<dynamic>* list10 = block {
     final core::List<dynamic>* #t258 = <dynamic>[];
-    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:234:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:236:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Iterable' is from 'dart:core'.
   var list10 = [for (var i in \"not iterable\") i];
                               ^" in "not iterable" as{TypeError} core::Iterable<dynamic>*)
@@ -1976,7 +1976,7 @@
   } =>#t258;
   core::Set<dynamic>* set10 = block {
     final core::Set<dynamic>* #t259 = col::LinkedHashSet::•<dynamic>();
-    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:235:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Iterable' is from 'dart:core'.
   var set10 = {for (var i in \"not iterable\") i, null};
                              ^" in "not iterable" as{TypeError} core::Iterable<dynamic>*)
@@ -1985,7 +1985,7 @@
   } =>#t259;
   core::Map<core::String*, dynamic>* map10 = block {
     final core::Map<core::String*, dynamic>* #t260 = <core::String*, dynamic>{};
-    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:236:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Iterable' is from 'dart:core'.
   var map10 = {for (var i in \"not iterable\") \"bar\": i, \"baz\": null};
                              ^" in "not iterable" as{TypeError} core::Iterable<dynamic>*)
@@ -1994,18 +1994,18 @@
   } =>#t260;
   core::List<core::int*>* list20 = block {
     final core::List<core::int*>* #t261 = <core::int*>[];
-    for (core::int* i in <core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    for (core::int* i in <core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list20 = [for (int i in [\"not\", \"int\"]) i];
-                               ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                               ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list20 = [for (int i in [\"not\", \"int\"]) i];
                                       ^" in "int" as{TypeError} core::int*])
       #t261.{core::List::add}{Invariant}(i){(core::int*) →* void};
   } =>#t261;
   core::Set<core::int*>* set20 = block {
     final core::Set<core::int*>* #t262 = col::LinkedHashSet::•<core::int*>();
-    for (core::int* i in <core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    for (core::int* i in <core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set20 = {for (int i in [\"not\", \"int\"]) i, null};
-                              ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                              ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set20 = {for (int i in [\"not\", \"int\"]) i, null};
                                      ^" in "int" as{TypeError} core::int*])
       #t262.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
@@ -2013,9 +2013,9 @@
   } =>#t262;
   core::Map<core::String*, core::int*>* map20 = block {
     final core::Map<core::String*, core::int*>* #t263 = <core::String*, core::int*>{};
-    for (core::int* i in <core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    for (core::int* i in <core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
-                              ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                              ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
                                      ^" in "int" as{TypeError} core::int*])
       #t263.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
@@ -2023,7 +2023,7 @@
   } =>#t263;
   core::List<dynamic>* list30 = block {
     final core::List<dynamic>* #t264 = <dynamic>[];
-    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:242:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
  - 'Stream' is from 'dart:async'.
   var list30 = [await for (var i in \"not stream\") i];
                                     ^" in "not stream" as{TypeError} asy::Stream<dynamic>*)
@@ -2031,7 +2031,7 @@
   } =>#t264;
   core::Set<dynamic>* set30 = block {
     final core::Set<dynamic>* #t265 = col::LinkedHashSet::•<dynamic>();
-    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
  - 'Stream' is from 'dart:async'.
   var set30 = {await for (var i in \"not stream\") i, null};
                                    ^" in "not stream" as{TypeError} asy::Stream<dynamic>*)
@@ -2040,7 +2040,7 @@
   } =>#t265;
   core::Map<core::String*, dynamic>* map30 = block {
     final core::Map<core::String*, dynamic>* #t266 = <core::String*, dynamic>{};
-    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:242:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
  - 'Stream' is from 'dart:async'.
   var map30 = {await for (var i in \"not stream\") \"bar\": i, \"baz\": null};
                                    ^" in "not stream" as{TypeError} asy::Stream<dynamic>*)
@@ -2049,18 +2049,18 @@
   } =>#t266;
   core::List<core::int*>* list40 = block {
     final core::List<core::int*>* #t267 = <core::int*>[];
-    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
-                                                         ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                         ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
                                                                 ^" in "int" as{TypeError} core::int*]))
       #t267.{core::List::add}{Invariant}(i){(core::int*) →* void};
   } =>#t267;
   core::Set<core::int*>* set40 = block {
     final core::Set<core::int*>* #t268 = col::LinkedHashSet::•<core::int*>();
-    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
-                                                        ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                        ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
                                                                ^" in "int" as{TypeError} core::int*]))
       #t268.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
@@ -2068,9 +2068,9 @@
   } =>#t268;
   core::Map<core::String*, core::int*>* map40 = block {
     final core::Map<core::String*, core::int*>* #t269 = <core::String*, core::int*>{};
-    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
-                                                        ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                        ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
                                                                ^" in "int" as{TypeError} core::int*]))
       #t269.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
@@ -2095,14 +2095,14 @@
   } =>#t272;
   core::List<core::int*>* list60 = block {
     final core::List<core::int*>* #t273 = <core::int*>[];
-    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
   var list60 = [for (; \"not bool\";) 42];
                        ^" in "not bool" as{TypeError} core::bool*; )
       #t273.{core::List::add}{Invariant}(42){(core::int*) →* void};
   } =>#t273;
   core::Set<core::int*>* set60 = block {
     final core::Set<core::int*>* #t274 = col::LinkedHashSet::•<core::int*>();
-    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:250:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:252:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
   var set60 = {for (; \"not bool\";) 42, null};
                       ^" in "not bool" as{TypeError} core::bool*; )
       #t274.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
@@ -2110,7 +2110,7 @@
   } =>#t274;
   core::Map<core::String*, core::int*>* map60 = block {
     final core::Map<core::String*, core::int*>* #t275 = <core::String*, core::int*>{};
-    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:253:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
   var map60 = {for (; \"not bool\";) \"bar\": 42, \"baz\": null};
                       ^" in "not bool" as{TypeError} core::bool*; )
       #t275.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::int*) →* void};
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.modular.expect b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.modular.expect
index 2ebf6f7..d4a4508 100644
--- a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.modular.expect
@@ -2,421 +2,421 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:39:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:41:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 //   Map<String, List<int>> map40 = {if (oracle("foo")) ...{"bar", []}, "baz": null};
 //                                  ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:73:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   var map82 = {if (oracle("foo")) ...mapToInt else ...dynVar, null};
 //                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:44: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:44: Error: Expected ':' after this.
 //   Set<dynamic> set10 = {if (oracle("foo")) 42 else "bar": 3.14};
 //                                            ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:107:53: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:53: Error: Expected ':' after this.
 //   Map<dynamic, dynamic> map10 = {if (oracle("foo")) 42 else "bar": 3.14};
 //                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:61: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:61: Error: Expected ':' after this.
 //   Set<dynamic> set11 = {if (oracle("foo")) "bar": 3.14 else 42};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:70: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:70: Error: Expected ':' after this.
 //   Map<dynamic, dynamic> map11 = {if (oracle("foo")) "bar": 3.14 else 42};
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:35: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:35: Error: Expected ':' after this.
 //   var map12 = {if (oracle("foo")) 42 else "bar": 3.14};
 //                                   ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:52: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:52: Error: Expected ':' after this.
 //   var map13 = {if (oracle("foo")) "bar": 3.14 else 42};
 //                                                    ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>[if (oracle("foo")) "bar"];
 //                            ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:88:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>{if (oracle("foo")) "bar", null};
 //                            ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <String, int>{if (oracle("foo")) "bar": "bar", "baz": null};
 //                                           ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>[if (oracle("foo")) ...["bar"]];
 //                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>{if (oracle("foo")) ...["bar"], null};
 //                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:47: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:47: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <String, int>{if (oracle("foo")) ...{"bar": "bar"}, "baz": null};
 //                                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[if (oracle("foo")) ...map];
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{if (oracle("foo")) ...map, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{if (oracle("foo")) ...["bar"], "baz": null};
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String>[if (oracle("foo")) 42 else 3.14];
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String>[if (oracle("foo")) 42 else 3.14];
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String>{if (oracle("foo")) 42 else 3.14, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String>{if (oracle("foo")) 42 else 3.14, null};
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String, String>{if (oracle("foo")) "bar": 42 else "baz": 3.14, "baz": null};
 //                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String, String>{if (oracle("foo")) "bar": 42 else "baz": 3.14, "baz": null};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[if (oracle("foo")) ...map else 42];
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{if (oracle("foo")) ...map else 42, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{if (oracle("foo")) ...[42] else "bar": 42, "baz": null};
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[if (oracle("foo")) 42 else ...map];
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:105:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{if (oracle("foo")) ...map else 42, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{if (oracle("foo")) "bar": 42 else ...[42], "baz": null};
 //                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 //   Set<dynamic> set10 = {if (oracle("foo")) 42 else "bar": 3.14};
 //                        ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 //   Set<dynamic> set11 = {if (oracle("foo")) "bar": 3.14 else 42};
 //                        ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
 //   List<int> list20 = [if (42) 42];
 //                           ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
 //   Set<int> set20 = {if (42) 42};
 //                         ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
 //   Map<int, int> map30 = {if (42) 42: 42};
 //                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
 //   List<String> list40 = <String>[if (oracle("foo")) true else 42];
 //                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   List<String> list40 = <String>[if (oracle("foo")) true else 42];
 //                                                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
 //   Set<String> set40 = <String>{if (oracle("foo")) true else 42};
 //                                                   ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   Set<String> set40 = <String>{if (oracle("foo")) true else 42};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:119:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
 //   Map<String, int> map40 = <String, int>{if (oracle("foo")) true: 42 else 42: 42};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:119:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   Map<String, int> map40 = <String, int>{if (oracle("foo")) true: 42 else 42: 42};
 //                                                                           ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:120:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
 //   Map<int, String> map41 = <int, String>{if (oracle("foo")) 42: true else 42: 42};
 //                                                                 ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:120:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   Map<int, String> map41 = <int, String>{if (oracle("foo")) 42: true else 42: 42};
 //                                                                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:230:14: Error: Can't assign to the final variable 'i'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:14: Error: Can't assign to the final variable 'i'.
 //   <int>[for (i in <int>[1]) i];
 //              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:231:14: Error: Can't assign to the final variable 'i'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:233:14: Error: Can't assign to the final variable 'i'.
 //   <int>{for (i in <int>[1]) i, null};
 //              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:21: Error: Can't assign to the final variable 'i'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:234:21: Error: Can't assign to the final variable 'i'.
 // 	<String, int>{for (i in <int>[1]) "bar": i, "baz": null};
 // 	                   ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:17: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:248:17: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
 // Try removing the keyword, or use a for-each statement.
 //   var list50 = [await for (;;) 42];
 //                 ^^^^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:249:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
 // Try removing the keyword, or use a for-each statement.
 //   var set50 = {await for (;;) 42, null};
 //                ^^^^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:248:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:250:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
 // Try removing the keyword, or use a for-each statement.
 //   var map50 = {await for (;;) "bar": 42, "baz": null};
 //                ^^^^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>[for (int i = 0; oracle("foo"); i++) "bar"];
 //                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:211:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>{for (int i = 0; oracle("foo"); i++) "bar", null};
 //                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
 //                                                  ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
 //                                                         ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
 //                                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>[for (int i = 0; oracle("foo"); i++) ...["bar"]];
 //                                                 ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>{for (int i = 0; oracle("foo"); i++) ...["bar"], null};
 //                                                 ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
 //                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
 //                                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[for (int i = 0; oracle("foo"); i++) ...map];
 //                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{for (int i = 0; oracle("foo"); i++) ...map, null};
 //                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) ...list, 42: null};
 //                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
 //                                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
 //                                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String, String>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
 //                                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String, String>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
 //                                                                                            ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42];
 //                                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42, null};
 //                                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...list else "bar": 42, "baz": null};
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map];
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:228:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map, null};
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:229:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else ...list, "baz": null};
 //                                                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:234:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:236:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
 //  - 'Iterable' is from 'dart:core'.
 //   var list10 = [for (var i in "not iterable") i];
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:235:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
 //  - 'Iterable' is from 'dart:core'.
 //   var set10 = {for (var i in "not iterable") i, null};
 //                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:236:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
 //  - 'Iterable' is from 'dart:core'.
 //   var map10 = {for (var i in "not iterable") "bar": i, "baz": null};
 //                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var list20 = [for (int i in ["not", "int"]) i];
 //                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var list20 = [for (int i in ["not", "int"]) i];
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var set20 = {for (int i in ["not", "int"]) i, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var set20 = {for (int i in ["not", "int"]) i, null};
 //                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var map20 = {for (int i in ["not", "int"]) "bar": i, "baz": null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var map20 = {for (int i in ["not", "int"]) "bar": i, "baz": null};
 //                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:242:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
 //  - 'Stream' is from 'dart:async'.
 //   var list30 = [await for (var i in "not stream") i];
 //                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
 //  - 'Stream' is from 'dart:async'.
 //   var set30 = {await for (var i in "not stream") i, null};
 //                                    ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:242:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
 //  - 'Stream' is from 'dart:async'.
 //   var map30 = {await for (var i in "not stream") "bar": i, "baz": null};
 //                                    ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var list40 = [await for (int i in Stream.fromIterable(["not", "int"])) i];
 //                                                          ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var list40 = [await for (int i in Stream.fromIterable(["not", "int"])) i];
 //                                                                 ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var set40 = {await for (int i in Stream.fromIterable(["not", "int"])) i, null};
 //                                                         ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var set40 = {await for (int i in Stream.fromIterable(["not", "int"])) i, null};
 //                                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var map40 = {await for (int i in Stream.fromIterable(["not", "int"])) "bar": i, "baz": null};
 //                                                         ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var map40 = {await for (int i in Stream.fromIterable(["not", "int"])) "bar": i, "baz": null};
 //                                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
 //   var list60 = [for (; "not bool";) 42];
 //                        ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:250:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:252:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
 //   var set60 = {for (; "not bool";) 42, null};
 //                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:253:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
 //   var map60 = {for (; "not bool";) "bar": 42, "baz": null};
 //                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:255:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:257:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
 // Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
 //   <int>[await for (int i in stream) i];
 //                          ^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:256:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:258:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
 // Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
 //   <int>{await for (int i in stream) i};
 //                          ^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:257:34: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:259:34: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
 // Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
 //   <String, int>{await for (int i in stream) "bar": i};
 //                                  ^^
@@ -630,7 +630,7 @@
       #t35.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
     #t35.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
   } =>#t35;
-  core::Map<core::String*, core::List<core::int*>*>* map40 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:39:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  core::Map<core::String*, core::List<core::int*>*>* map40 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:41:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
   Map<String, List<int>> map40 = {if (oracle(\"foo\")) ...{\"bar\", []}, \"baz\": null};
                                  ^";
   core::List<core::List<core::int*>*>* list41 = block {
@@ -854,7 +854,7 @@
   core::Set<dynamic>* map82 = block {
     final core::Set<dynamic>* #t78 = col::LinkedHashSet::•<dynamic>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t78.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t78.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:73:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   var map82 = {if (oracle(\"foo\")) ...mapToInt else ...dynVar, null};
                                      ^"){(dynamic) →* core::bool*};
@@ -950,14 +950,14 @@
   block {
     final core::List<core::int*>* #t99 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t99.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t99.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[if (oracle(\"foo\")) \"bar\"];
                            ^" in "bar" as{TypeError} core::int*){(core::int*) →* void};
   } =>#t99;
   block {
     final core::Set<core::int*>* #t100 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t100.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:88:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t100.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{if (oracle(\"foo\")) \"bar\", null};
                            ^" in "bar" as{TypeError} core::int*){(core::int*) →* core::bool*};
     #t100.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
@@ -965,7 +965,7 @@
   block {
     final core::Map<core::String*, core::int*>* #t101 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t101.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t101.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <String, int>{if (oracle(\"foo\")) \"bar\": \"bar\", \"baz\": null};
                                           ^" in "bar" as{TypeError} core::int*){(core::String*, core::int*) →* void};
     #t101.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
@@ -973,14 +973,14 @@
   block {
     final core::List<core::int*>* #t102 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t102.{core::List::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t102.{core::List::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[if (oracle(\"foo\")) ...[\"bar\"]];
                                ^" in "bar" as{TypeError} core::int*]){(core::Iterable<core::int*>*) →* void};
   } =>#t102;
   block {
     final core::Set<core::int*>* #t103 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t103.{core::Set::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t103.{core::Set::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{if (oracle(\"foo\")) ...[\"bar\"], null};
                                ^" in "bar" as{TypeError} core::int*]){(core::Iterable<core::int*>*) →* void};
     #t103.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
@@ -988,7 +988,7 @@
   block {
     final core::Map<core::String*, core::int*>* #t104 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      for (final core::MapEntry<core::String*, core::int*>* #t105 in <core::String*, core::int*>{"bar": invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:47: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      for (final core::MapEntry<core::String*, core::int*>* #t105 in <core::String*, core::int*>{"bar": invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:47: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <String, int>{if (oracle(\"foo\")) ...{\"bar\": \"bar\"}, \"baz\": null};
                                               ^" in "bar" as{TypeError} core::int*}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
         #t104.{core::Map::[]=}{Invariant}(#t105.{core::MapEntry::key}{core::String*}, #t105.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
@@ -997,7 +997,7 @@
   block {
     final core::List<core::int*>* #t106 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t106.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t106.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) ...map];
                               ^"){(core::int*) →* void};
@@ -1005,38 +1005,38 @@
   block {
     final core::Set<core::int*>* #t107 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t107.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t107.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map, null};
                               ^"){(core::int*) →* core::bool*};
     #t107.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t107;
-  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
-                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
                                       ^": null};
   block {
     final core::List<core::String*>* #t108 = <core::String*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String>[if (oracle(\"foo\")) 42 else 3.14];
                               ^" in 42 as{TypeError} core::String*){(core::String*) →* void};
     else
-      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String>[if (oracle(\"foo\")) 42 else 3.14];
                                       ^" in 3.14 as{TypeError} core::String*){(core::String*) →* void};
   } =>#t108;
   block {
     final core::Set<core::String*>* #t109 = col::LinkedHashSet::•<core::String*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String>{if (oracle(\"foo\")) 42 else 3.14, null};
                               ^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
     else
-      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String>{if (oracle(\"foo\")) 42 else 3.14, null};
                                       ^" in 3.14 as{TypeError} core::String*){(core::String*) →* core::bool*};
     #t109.{core::Set::add}{Invariant}(null){(core::String*) →* core::bool*};
@@ -1044,11 +1044,11 @@
   block {
     final core::Map<core::String*, core::String*>* #t110 = <core::String*, core::String*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t110.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t110.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String, String>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
                                              ^" in 42 as{TypeError} core::String*){(core::String*, core::String*) →* void};
     else
-      #t110.{core::Map::[]=}{Invariant}("baz", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t110.{core::Map::[]=}{Invariant}("baz", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String, String>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
                                                             ^" in 3.14 as{TypeError} core::String*){(core::String*, core::String*) →* void};
     #t110.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::String*) →* void};
@@ -1056,7 +1056,7 @@
   block {
     final core::List<core::int*>* #t111 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t111.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t111.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) ...map else 42];
                               ^"){(core::int*) →* void};
@@ -1066,7 +1066,7 @@
   block {
     final core::Set<core::int*>* #t112 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t112.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t112.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map else 42, null};
                               ^"){(core::int*) →* core::bool*};
@@ -1074,10 +1074,10 @@
       #t112.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
     #t112.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t112;
-  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
-                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
                                       ^": null};
@@ -1086,7 +1086,7 @@
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t113.{core::List::add}{Invariant}(42){(core::int*) →* void};
     else
-      #t113.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t113.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) 42 else ...map];
                                       ^"){(core::int*) →* void};
@@ -1094,7 +1094,7 @@
   block {
     final core::Set<core::int*>* #t114 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t114.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t114.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:105:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map else 42, null};
                               ^"){(core::int*) →* core::bool*};
@@ -1102,48 +1102,48 @@
       #t114.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
     #t114.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t114;
-  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) \"bar\": 42 else ...[42], \"baz\": null};
-                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) \"bar\": 42 else ...[42], \"baz\": null};
                                                      ^": null};
-  core::Set<dynamic>* set10 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  core::Set<dynamic>* set10 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
   Set<dynamic> set10 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
                        ^";
-  core::Map<dynamic, dynamic>* map10 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:107:53: Error: Expected ':' after this.
+  core::Map<dynamic, dynamic>* map10 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:53: Error: Expected ':' after this.
   Map<dynamic, dynamic> map10 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
                                                     ^": null};
-  core::Set<dynamic>* set11 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  core::Set<dynamic>* set11 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
   Set<dynamic> set11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                        ^";
-  core::Map<dynamic, dynamic>* map11 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:70: Error: Expected ':' after this.
+  core::Map<dynamic, dynamic>* map11 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:70: Error: Expected ':' after this.
   Map<dynamic, dynamic> map11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                                                                      ^": null};
-  core::Map<invalid-type, Null>* map12 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:35: Error: Expected ':' after this.
+  core::Map<invalid-type, Null>* map12 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:35: Error: Expected ':' after this.
   var map12 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
                                   ^": null};
-  core::Map<invalid-type, Null>* map13 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:52: Error: Expected ':' after this.
+  core::Map<invalid-type, Null>* map13 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:52: Error: Expected ':' after this.
   var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                                                    ^": null};
   core::List<core::int*>* list20 = block {
     final core::List<core::int*>* #t115 = <core::int*>[];
-    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
   List<int> list20 = [if (42) 42];
                           ^" in 42 as{TypeError} core::bool*)
       #t115.{core::List::add}{Invariant}(42){(core::int*) →* void};
   } =>#t115;
   core::Set<core::int*>* set20 = block {
     final core::Set<core::int*>* #t116 = col::LinkedHashSet::•<core::int*>();
-    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
   Set<int> set20 = {if (42) 42};
                         ^" in 42 as{TypeError} core::bool*)
       #t116.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
   } =>#t116;
   core::Map<core::int*, core::int*>* map30 = block {
     final core::Map<core::int*, core::int*>* #t117 = <core::int*, core::int*>{};
-    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
   Map<int, int> map30 = {if (42) 42: 42};
                              ^" in 42 as{TypeError} core::bool*)
       #t117.{core::Map::[]=}{Invariant}(42, 42){(core::int*, core::int*) →* void};
@@ -1151,44 +1151,44 @@
   core::List<core::String*>* list40 = block {
     final core::List<core::String*>* #t118 = <core::String*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
   List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
                                                     ^" in true as{TypeError} core::String*){(core::String*) →* void};
     else
-      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
                                                               ^" in 42 as{TypeError} core::String*){(core::String*) →* void};
   } =>#t118;
   core::Set<core::String*>* set40 = block {
     final core::Set<core::String*>* #t119 = col::LinkedHashSet::•<core::String*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
   Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
                                                   ^" in true as{TypeError} core::String*){(core::String*) →* core::bool*};
     else
-      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
                                                             ^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
   } =>#t119;
   core::Map<core::String*, core::int*>* map40 = block {
     final core::Map<core::String*, core::int*>* #t120 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:119:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
   Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
                                                             ^" in true as{TypeError} core::String*, 42){(core::String*, core::int*) →* void};
     else
-      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:119:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
                                                                           ^" in 42 as{TypeError} core::String*, 42){(core::String*, core::int*) →* void};
   } =>#t120;
   core::Map<core::int*, core::String*>* map41 = block {
     final core::Map<core::int*, core::String*>* #t121 = <core::int*, core::String*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:120:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
   Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
                                                                 ^" in true as{TypeError} core::String*){(core::int*, core::String*) →* void};
     else
-      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:120:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
                                                                               ^" in 42 as{TypeError} core::String*){(core::int*, core::String*) →* void};
   } =>#t121;
@@ -1762,14 +1762,14 @@
   block {
     final core::List<core::int*>* #t236 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t236.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t236.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) \"bar\"];
                                             ^" in "bar" as{TypeError} core::int*){(core::int*) →* void};
   } =>#t236;
   block {
     final core::Set<core::int*>* #t237 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t237.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:211:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t237.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\", null};
                                             ^" in "bar" as{TypeError} core::int*){(core::int*) →* core::bool*};
     #t237.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
@@ -1777,26 +1777,26 @@
   block {
     final core::Map<core::int*, core::int*>* #t238 = <core::int*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
-                                                 ^" in "bar" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                 ^" in "bar" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
                                                         ^" in "bar" as{TypeError} core::int*){(core::int*, core::int*) →* void};
-    #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
                                                                ^" in "baz" as{TypeError} core::int*, null){(core::int*, core::int*) →* void};
   } =>#t238;
   block {
     final core::List<core::int*>* #t239 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t239.{core::List::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t239.{core::List::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"]];
                                                 ^" in "bar" as{TypeError} core::int*]){(core::Iterable<core::int*>*) →* void};
   } =>#t239;
   block {
     final core::Set<core::int*>* #t240 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t240.{core::Set::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t240.{core::Set::addAll}{Invariant}(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"], null};
                                                 ^" in "bar" as{TypeError} core::int*]){(core::Iterable<core::int*>*) →* void};
     #t240.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
@@ -1804,20 +1804,20 @@
   block {
     final core::Map<core::int*, core::int*>* #t241 = <core::int*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      for (final core::MapEntry<core::int*, core::int*>* #t242 in <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      for (final core::MapEntry<core::int*, core::int*>* #t242 in <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
-                                                     ^" in "bar" as{TypeError} core::int*: invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                     ^" in "bar" as{TypeError} core::int*: invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
                                                             ^" in "bar" as{TypeError} core::int*}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>})
         #t241.{core::Map::[]=}{Invariant}(#t242.{core::MapEntry::key}{core::int*}, #t242.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
-    #t241.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    #t241.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
                                                                     ^" in "baz" as{TypeError} core::int*, null){(core::int*, core::int*) →* void};
   } =>#t241;
   block {
     final core::List<core::int*>* #t243 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t243.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t243.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) ...map];
                                                ^"){(core::int*) →* void};
@@ -1825,16 +1825,16 @@
   block {
     final core::Set<core::int*>* #t244 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-      #t244.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t244.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) ...map, null};
                                                ^"){(core::int*) →* core::bool*};
     #t244.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t244;
-  <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
-                                                    ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                                    ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
                                                     ^": null};
@@ -1842,11 +1842,11 @@
     final core::List<core::String*>* #t245 = <core::String*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+        #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
                                                              ^" in 42 as{TypeError} core::String*){(core::String*) →* void};
       else
-        #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+        #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
                                                                      ^" in 3.14 as{TypeError} core::String*){(core::String*) →* void};
   } =>#t245;
@@ -1854,11 +1854,11 @@
     final core::Set<core::String*>* #t246 = col::LinkedHashSet::•<core::String*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+        #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
                                                              ^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
       else
-        #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+        #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
                                                                      ^" in 3.14 as{TypeError} core::String*){(core::String*) →* core::bool*};
     #t246.{core::Set::add}{Invariant}(null){(core::String*) →* core::bool*};
@@ -1867,11 +1867,11 @@
     final core::Map<core::String*, core::String*>* #t247 = <core::String*, core::String*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+        #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String, String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
                                                                             ^" in 42 as{TypeError} core::String*){(core::String*, core::String*) →* void};
       else
-        #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+        #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String, String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
                                                                                            ^" in 3.14 as{TypeError} core::String*){(core::String*, core::String*) →* void};
     #t247.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::String*) →* void};
@@ -1880,7 +1880,7 @@
     final core::List<core::int*>* #t248 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t248.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+        #t248.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42];
                                                              ^"){(core::int*) →* void};
@@ -1891,7 +1891,7 @@
     final core::Set<core::int*>* #t249 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t249.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+        #t249.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42, null};
                                                              ^"){(core::int*) →* core::bool*};
@@ -1899,10 +1899,10 @@
         #t249.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
     #t249.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t249;
-  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
-                                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
                                                                      ^": null};
@@ -1912,7 +1912,7 @@
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
         #t250.{core::List::add}{Invariant}(42){(core::int*) →* void};
       else
-        #t250.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+        #t250.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map];
                                                                      ^"){(core::int*) →* void};
@@ -1923,16 +1923,16 @@
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
         #t251.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
       else
-        #t251.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+        #t251.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:228:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map, null};
                                                                      ^"){(core::int*) →* core::bool*};
     #t251.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t251;
-  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:229:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else ...list, \"baz\": null};
-                                                                                    ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                                                                    ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:229:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else ...list, \"baz\": null};
                                                                                     ^": null};
@@ -1940,7 +1940,7 @@
   block {
     final core::List<core::int*>* #t252 = <core::int*>[];
     for (final core::int* #t253 in <core::int*>[1]) {
-      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:230:14: Error: Can't assign to the final variable 'i'.
+      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:14: Error: Can't assign to the final variable 'i'.
   <int>[for (i in <int>[1]) i];
              ^";
       #t252.{core::List::add}{Invariant}(i){(core::int*) →* void};
@@ -1949,7 +1949,7 @@
   block {
     final core::Set<core::int*>* #t254 = col::LinkedHashSet::•<core::int*>();
     for (final core::int* #t255 in <core::int*>[1]) {
-      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:231:14: Error: Can't assign to the final variable 'i'.
+      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:233:14: Error: Can't assign to the final variable 'i'.
   <int>{for (i in <int>[1]) i, null};
              ^";
       #t254.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
@@ -1959,7 +1959,7 @@
   block {
     final core::Map<core::String*, core::int*>* #t256 = <core::String*, core::int*>{};
     for (final core::int* #t257 in <core::int*>[1]) {
-      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:21: Error: Can't assign to the final variable 'i'.
+      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:234:21: Error: Can't assign to the final variable 'i'.
 \t<String, int>{for (i in <int>[1]) \"bar\": i, \"baz\": null};
 \t                   ^";
       #t256.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
@@ -1968,7 +1968,7 @@
   } =>#t256;
   core::List<dynamic>* list10 = block {
     final core::List<dynamic>* #t258 = <dynamic>[];
-    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:234:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:236:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Iterable' is from 'dart:core'.
   var list10 = [for (var i in \"not iterable\") i];
                               ^" in "not iterable" as{TypeError} core::Iterable<dynamic>*)
@@ -1976,7 +1976,7 @@
   } =>#t258;
   core::Set<dynamic>* set10 = block {
     final core::Set<dynamic>* #t259 = col::LinkedHashSet::•<dynamic>();
-    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:235:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Iterable' is from 'dart:core'.
   var set10 = {for (var i in \"not iterable\") i, null};
                              ^" in "not iterable" as{TypeError} core::Iterable<dynamic>*)
@@ -1985,7 +1985,7 @@
   } =>#t259;
   core::Map<core::String*, dynamic>* map10 = block {
     final core::Map<core::String*, dynamic>* #t260 = <core::String*, dynamic>{};
-    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:236:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Iterable' is from 'dart:core'.
   var map10 = {for (var i in \"not iterable\") \"bar\": i, \"baz\": null};
                              ^" in "not iterable" as{TypeError} core::Iterable<dynamic>*)
@@ -1994,18 +1994,18 @@
   } =>#t260;
   core::List<core::int*>* list20 = block {
     final core::List<core::int*>* #t261 = <core::int*>[];
-    for (core::int* i in <core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    for (core::int* i in <core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list20 = [for (int i in [\"not\", \"int\"]) i];
-                               ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                               ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list20 = [for (int i in [\"not\", \"int\"]) i];
                                       ^" in "int" as{TypeError} core::int*])
       #t261.{core::List::add}{Invariant}(i){(core::int*) →* void};
   } =>#t261;
   core::Set<core::int*>* set20 = block {
     final core::Set<core::int*>* #t262 = col::LinkedHashSet::•<core::int*>();
-    for (core::int* i in <core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    for (core::int* i in <core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set20 = {for (int i in [\"not\", \"int\"]) i, null};
-                              ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                              ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set20 = {for (int i in [\"not\", \"int\"]) i, null};
                                      ^" in "int" as{TypeError} core::int*])
       #t262.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
@@ -2013,9 +2013,9 @@
   } =>#t262;
   core::Map<core::String*, core::int*>* map20 = block {
     final core::Map<core::String*, core::int*>* #t263 = <core::String*, core::int*>{};
-    for (core::int* i in <core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    for (core::int* i in <core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
-                              ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                              ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
                                      ^" in "int" as{TypeError} core::int*])
       #t263.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
@@ -2023,7 +2023,7 @@
   } =>#t263;
   core::List<dynamic>* list30 = block {
     final core::List<dynamic>* #t264 = <dynamic>[];
-    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:242:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
  - 'Stream' is from 'dart:async'.
   var list30 = [await for (var i in \"not stream\") i];
                                     ^" in "not stream" as{TypeError} asy::Stream<dynamic>*)
@@ -2031,7 +2031,7 @@
   } =>#t264;
   core::Set<dynamic>* set30 = block {
     final core::Set<dynamic>* #t265 = col::LinkedHashSet::•<dynamic>();
-    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
  - 'Stream' is from 'dart:async'.
   var set30 = {await for (var i in \"not stream\") i, null};
                                    ^" in "not stream" as{TypeError} asy::Stream<dynamic>*)
@@ -2040,7 +2040,7 @@
   } =>#t265;
   core::Map<core::String*, dynamic>* map30 = block {
     final core::Map<core::String*, dynamic>* #t266 = <core::String*, dynamic>{};
-    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:242:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
  - 'Stream' is from 'dart:async'.
   var map30 = {await for (var i in \"not stream\") \"bar\": i, \"baz\": null};
                                    ^" in "not stream" as{TypeError} asy::Stream<dynamic>*)
@@ -2049,18 +2049,18 @@
   } =>#t266;
   core::List<core::int*>* list40 = block {
     final core::List<core::int*>* #t267 = <core::int*>[];
-    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
-                                                         ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                         ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
                                                                 ^" in "int" as{TypeError} core::int*]))
       #t267.{core::List::add}{Invariant}(i){(core::int*) →* void};
   } =>#t267;
   core::Set<core::int*>* set40 = block {
     final core::Set<core::int*>* #t268 = col::LinkedHashSet::•<core::int*>();
-    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
-                                                        ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                        ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
                                                                ^" in "int" as{TypeError} core::int*]))
       #t268.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
@@ -2068,9 +2068,9 @@
   } =>#t268;
   core::Map<core::String*, core::int*>* map40 = block {
     final core::Map<core::String*, core::int*>* #t269 = <core::String*, core::int*>{};
-    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
-                                                        ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                        ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
                                                                ^" in "int" as{TypeError} core::int*]))
       #t269.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
@@ -2095,14 +2095,14 @@
   } =>#t272;
   core::List<core::int*>* list60 = block {
     final core::List<core::int*>* #t273 = <core::int*>[];
-    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
   var list60 = [for (; \"not bool\";) 42];
                        ^" in "not bool" as{TypeError} core::bool*; )
       #t273.{core::List::add}{Invariant}(42){(core::int*) →* void};
   } =>#t273;
   core::Set<core::int*>* set60 = block {
     final core::Set<core::int*>* #t274 = col::LinkedHashSet::•<core::int*>();
-    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:250:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:252:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
   var set60 = {for (; \"not bool\";) 42, null};
                       ^" in "not bool" as{TypeError} core::bool*; )
       #t274.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
@@ -2110,7 +2110,7 @@
   } =>#t274;
   core::Map<core::String*, core::int*>* map60 = block {
     final core::Map<core::String*, core::int*>* #t275 = <core::String*, core::int*>{};
-    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:253:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
   var map60 = {for (; \"not bool\";) \"bar\": 42, \"baz\": null};
                       ^" in "not bool" as{TypeError} core::bool*; )
       #t275.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::int*) →* void};
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.transformed.expect
index dfc514d..dad114d 100644
--- a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.transformed.expect
@@ -2,421 +2,421 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:39:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:41:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 //   Map<String, List<int>> map40 = {if (oracle("foo")) ...{"bar", []}, "baz": null};
 //                                  ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:73:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   var map82 = {if (oracle("foo")) ...mapToInt else ...dynVar, null};
 //                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:44: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:44: Error: Expected ':' after this.
 //   Set<dynamic> set10 = {if (oracle("foo")) 42 else "bar": 3.14};
 //                                            ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:107:53: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:53: Error: Expected ':' after this.
 //   Map<dynamic, dynamic> map10 = {if (oracle("foo")) 42 else "bar": 3.14};
 //                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:61: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:61: Error: Expected ':' after this.
 //   Set<dynamic> set11 = {if (oracle("foo")) "bar": 3.14 else 42};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:70: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:70: Error: Expected ':' after this.
 //   Map<dynamic, dynamic> map11 = {if (oracle("foo")) "bar": 3.14 else 42};
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:35: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:35: Error: Expected ':' after this.
 //   var map12 = {if (oracle("foo")) 42 else "bar": 3.14};
 //                                   ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:52: Error: Expected ':' after this.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:52: Error: Expected ':' after this.
 //   var map13 = {if (oracle("foo")) "bar": 3.14 else 42};
 //                                                    ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>[if (oracle("foo")) "bar"];
 //                            ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:88:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>{if (oracle("foo")) "bar", null};
 //                            ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <String, int>{if (oracle("foo")) "bar": "bar", "baz": null};
 //                                           ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>[if (oracle("foo")) ...["bar"]];
 //                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>{if (oracle("foo")) ...["bar"], null};
 //                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:47: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:47: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <String, int>{if (oracle("foo")) ...{"bar": "bar"}, "baz": null};
 //                                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[if (oracle("foo")) ...map];
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{if (oracle("foo")) ...map, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{if (oracle("foo")) ...["bar"], "baz": null};
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String>[if (oracle("foo")) 42 else 3.14];
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String>[if (oracle("foo")) 42 else 3.14];
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String>{if (oracle("foo")) 42 else 3.14, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String>{if (oracle("foo")) 42 else 3.14, null};
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String, String>{if (oracle("foo")) "bar": 42 else "baz": 3.14, "baz": null};
 //                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String, String>{if (oracle("foo")) "bar": 42 else "baz": 3.14, "baz": null};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[if (oracle("foo")) ...map else 42];
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{if (oracle("foo")) ...map else 42, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{if (oracle("foo")) ...[42] else "bar": 42, "baz": null};
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[if (oracle("foo")) 42 else ...map];
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:105:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{if (oracle("foo")) ...map else 42, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{if (oracle("foo")) "bar": 42 else ...[42], "baz": null};
 //                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 //   Set<dynamic> set10 = {if (oracle("foo")) 42 else "bar": 3.14};
 //                        ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 //   Set<dynamic> set11 = {if (oracle("foo")) "bar": 3.14 else 42};
 //                        ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
 //   List<int> list20 = [if (42) 42];
 //                           ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
 //   Set<int> set20 = {if (42) 42};
 //                         ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
 //   Map<int, int> map30 = {if (42) 42: 42};
 //                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
 //   List<String> list40 = <String>[if (oracle("foo")) true else 42];
 //                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   List<String> list40 = <String>[if (oracle("foo")) true else 42];
 //                                                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
 //   Set<String> set40 = <String>{if (oracle("foo")) true else 42};
 //                                                   ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   Set<String> set40 = <String>{if (oracle("foo")) true else 42};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:119:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
 //   Map<String, int> map40 = <String, int>{if (oracle("foo")) true: 42 else 42: 42};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:119:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   Map<String, int> map40 = <String, int>{if (oracle("foo")) true: 42 else 42: 42};
 //                                                                           ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:120:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
 //   Map<int, String> map41 = <int, String>{if (oracle("foo")) 42: true else 42: 42};
 //                                                                 ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:120:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   Map<int, String> map41 = <int, String>{if (oracle("foo")) 42: true else 42: 42};
 //                                                                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:230:14: Error: Can't assign to the final variable 'i'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:14: Error: Can't assign to the final variable 'i'.
 //   <int>[for (i in <int>[1]) i];
 //              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:231:14: Error: Can't assign to the final variable 'i'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:233:14: Error: Can't assign to the final variable 'i'.
 //   <int>{for (i in <int>[1]) i, null};
 //              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:21: Error: Can't assign to the final variable 'i'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:234:21: Error: Can't assign to the final variable 'i'.
 // 	<String, int>{for (i in <int>[1]) "bar": i, "baz": null};
 // 	                   ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:17: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:248:17: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
 // Try removing the keyword, or use a for-each statement.
 //   var list50 = [await for (;;) 42];
 //                 ^^^^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:249:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
 // Try removing the keyword, or use a for-each statement.
 //   var set50 = {await for (;;) 42, null};
 //                ^^^^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:248:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:250:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
 // Try removing the keyword, or use a for-each statement.
 //   var map50 = {await for (;;) "bar": 42, "baz": null};
 //                ^^^^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>[for (int i = 0; oracle("foo"); i++) "bar"];
 //                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:211:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>{for (int i = 0; oracle("foo"); i++) "bar", null};
 //                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
 //                                                  ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
 //                                                         ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
 //                                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>[for (int i = 0; oracle("foo"); i++) ...["bar"]];
 //                                                 ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int>{for (int i = 0; oracle("foo"); i++) ...["bar"], null};
 //                                                 ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
 //                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
 //                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
 //                                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[for (int i = 0; oracle("foo"); i++) ...map];
 //                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{for (int i = 0; oracle("foo"); i++) ...map, null};
 //                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <int, int>{for (int i = 0; oracle("foo"); i++) ...list, 42: null};
 //                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
 //                                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
 //                                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
 //   <String, String>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
 //                                                                             ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
 //   <String, String>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
 //                                                                                            ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42];
 //                                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42, null};
 //                                                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...list else "bar": 42, "baz": null};
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map];
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:228:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
 //  - 'Map' is from 'dart:core'.
 //   <int>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map, null};
 //                                                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:229:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
 //  - 'List' is from 'dart:core'.
 //   <String, int>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else ...list, "baz": null};
 //                                                                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:234:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:236:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
 //  - 'Iterable' is from 'dart:core'.
 //   var list10 = [for (var i in "not iterable") i];
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:235:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
 //  - 'Iterable' is from 'dart:core'.
 //   var set10 = {for (var i in "not iterable") i, null};
 //                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:236:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
 //  - 'Iterable' is from 'dart:core'.
 //   var map10 = {for (var i in "not iterable") "bar": i, "baz": null};
 //                              ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var list20 = [for (int i in ["not", "int"]) i];
 //                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var list20 = [for (int i in ["not", "int"]) i];
 //                                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var set20 = {for (int i in ["not", "int"]) i, null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var set20 = {for (int i in ["not", "int"]) i, null};
 //                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var map20 = {for (int i in ["not", "int"]) "bar": i, "baz": null};
 //                               ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var map20 = {for (int i in ["not", "int"]) "bar": i, "baz": null};
 //                                      ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:242:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
 //  - 'Stream' is from 'dart:async'.
 //   var list30 = [await for (var i in "not stream") i];
 //                                     ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
 //  - 'Stream' is from 'dart:async'.
 //   var set30 = {await for (var i in "not stream") i, null};
 //                                    ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:242:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
 //  - 'Stream' is from 'dart:async'.
 //   var map30 = {await for (var i in "not stream") "bar": i, "baz": null};
 //                                    ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var list40 = [await for (int i in Stream.fromIterable(["not", "int"])) i];
 //                                                          ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var list40 = [await for (int i in Stream.fromIterable(["not", "int"])) i];
 //                                                                 ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var set40 = {await for (int i in Stream.fromIterable(["not", "int"])) i, null};
 //                                                         ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var set40 = {await for (int i in Stream.fromIterable(["not", "int"])) i, null};
 //                                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var map40 = {await for (int i in Stream.fromIterable(["not", "int"])) "bar": i, "baz": null};
 //                                                         ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
 //   var map40 = {await for (int i in Stream.fromIterable(["not", "int"])) "bar": i, "baz": null};
 //                                                                ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
 //   var list60 = [for (; "not bool";) 42];
 //                        ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:250:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:252:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
 //   var set60 = {for (; "not bool";) 42, null};
 //                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:253:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
 //   var map60 = {for (; "not bool";) "bar": 42, "baz": null};
 //                       ^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:255:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:257:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
 // Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
 //   <int>[await for (int i in stream) i];
 //                          ^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:256:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:258:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
 // Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
 //   <int>{await for (int i in stream) i};
 //                          ^^
 //
-// pkg/front_end/testcases/general/control_flow_collection_inference.dart:257:34: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// pkg/front_end/testcases/general/control_flow_collection_inference.dart:259:34: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
 // Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
 //   <String, int>{await for (int i in stream) "bar": i};
 //                                  ^^
@@ -655,7 +655,7 @@
       #t35.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
     #t35.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
   } =>#t35;
-  core::Map<core::String*, core::List<core::int*>*>* map40 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:39:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  core::Map<core::String*, core::List<core::int*>*>* map40 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:41:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
   Map<String, List<int>> map40 = {if (oracle(\"foo\")) ...{\"bar\", []}, \"baz\": null};
                                  ^";
   core::List<core::List<core::int*>*>* list41 = block {
@@ -907,7 +907,7 @@
   core::Set<dynamic>* map82 = block {
     final core::Set<dynamic>* #t78 = new col::_CompactLinkedHashSet::•<dynamic>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t78.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t78.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:73:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   var map82 = {if (oracle(\"foo\")) ...mapToInt else ...dynVar, null};
                                      ^"){(dynamic) →* core::bool*};
@@ -1022,14 +1022,14 @@
   block {
     final core::List<core::int*>* #t99 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t99.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t99.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[if (oracle(\"foo\")) \"bar\"];
                            ^" in "bar" as{TypeError} core::int*){(core::int*) →* void};
   } =>#t99;
   block {
     final core::Set<core::int*>* #t100 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t100.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:88:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t100.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{if (oracle(\"foo\")) \"bar\", null};
                            ^" in "bar" as{TypeError} core::int*){(core::int*) →* core::bool*};
     #t100.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
@@ -1037,7 +1037,7 @@
   block {
     final core::Map<core::String*, core::int*>* #t101 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t101.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t101.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <String, int>{if (oracle(\"foo\")) \"bar\": \"bar\", \"baz\": null};
                                           ^" in "bar" as{TypeError} core::int*){(core::String*, core::int*) →* void};
     #t101.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
@@ -1045,14 +1045,14 @@
   block {
     final core::List<core::int*>* #t102 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t102.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t102.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[if (oracle(\"foo\")) ...[\"bar\"]];
                                ^" in "bar" as{TypeError} core::int*)){(core::Iterable<core::int*>*) →* void};
   } =>#t102;
   block {
     final core::Set<core::int*>* #t103 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t103.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t103.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{if (oracle(\"foo\")) ...[\"bar\"], null};
                                ^" in "bar" as{TypeError} core::int*)){(core::Iterable<core::int*>*) →* void};
     #t103.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
@@ -1060,7 +1060,7 @@
   block {
     final core::Map<core::String*, core::int*>* #t104 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
-      core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{"bar": invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:47: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{"bar": invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:47: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <String, int>{if (oracle(\"foo\")) ...{\"bar\": \"bar\"}, \"baz\": null};
                                               ^" in "bar" as{TypeError} core::int*}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
@@ -1073,7 +1073,7 @@
   block {
     final core::List<core::int*>* #t106 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t106.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t106.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) ...map];
                               ^"){(core::int*) →* void};
@@ -1081,38 +1081,38 @@
   block {
     final core::Set<core::int*>* #t107 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t107.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t107.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map, null};
                               ^"){(core::int*) →* core::bool*};
     #t107.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t107;
-  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
-                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
                                       ^": null};
   block {
     final core::List<core::String*>* #t108 = core::_GrowableList::•<core::String*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String>[if (oracle(\"foo\")) 42 else 3.14];
                               ^" in 42 as{TypeError} core::String*){(core::String*) →* void};
     else
-      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String>[if (oracle(\"foo\")) 42 else 3.14];
                                       ^" in 3.14 as{TypeError} core::String*){(core::String*) →* void};
   } =>#t108;
   block {
     final core::Set<core::String*>* #t109 = new col::_CompactLinkedHashSet::•<core::String*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String>{if (oracle(\"foo\")) 42 else 3.14, null};
                               ^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
     else
-      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String>{if (oracle(\"foo\")) 42 else 3.14, null};
                                       ^" in 3.14 as{TypeError} core::String*){(core::String*) →* core::bool*};
     #t109.{core::Set::add}{Invariant}(null){(core::String*) →* core::bool*};
@@ -1120,11 +1120,11 @@
   block {
     final core::Map<core::String*, core::String*>* #t110 = <core::String*, core::String*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t110.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t110.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String, String>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
                                              ^" in 42 as{TypeError} core::String*){(core::String*, core::String*) →* void};
     else
-      #t110.{core::Map::[]=}{Invariant}("baz", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t110.{core::Map::[]=}{Invariant}("baz", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String, String>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
                                                             ^" in 3.14 as{TypeError} core::String*){(core::String*, core::String*) →* void};
     #t110.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::String*) →* void};
@@ -1132,7 +1132,7 @@
   block {
     final core::List<core::int*>* #t111 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t111.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t111.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) ...map else 42];
                               ^"){(core::int*) →* void};
@@ -1142,7 +1142,7 @@
   block {
     final core::Set<core::int*>* #t112 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t112.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t112.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map else 42, null};
                               ^"){(core::int*) →* core::bool*};
@@ -1150,10 +1150,10 @@
       #t112.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
     #t112.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t112;
-  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
-                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:39: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
                                       ^": null};
@@ -1162,7 +1162,7 @@
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t113.{core::List::add}{Invariant}(42){(core::int*) →* void};
     else
-      #t113.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t113.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) 42 else ...map];
                                       ^"){(core::int*) →* void};
@@ -1170,7 +1170,7 @@
   block {
     final core::Set<core::int*>* #t114 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t114.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t114.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:105:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map else 42, null};
                               ^"){(core::int*) →* core::bool*};
@@ -1178,48 +1178,48 @@
       #t114.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
     #t114.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
   } =>#t114;
-  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+  <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) \"bar\": 42 else ...[42], \"baz\": null};
-                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) \"bar\": 42 else ...[42], \"baz\": null};
                                                      ^": null};
-  core::Set<dynamic>* set10 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  core::Set<dynamic>* set10 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
   Set<dynamic> set10 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
                        ^";
-  core::Map<dynamic, dynamic>* map10 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:107:53: Error: Expected ':' after this.
+  core::Map<dynamic, dynamic>* map10 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:53: Error: Expected ':' after this.
   Map<dynamic, dynamic> map10 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
                                                     ^": null};
-  core::Set<dynamic>* set11 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  core::Set<dynamic>* set11 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
   Set<dynamic> set11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                        ^";
-  core::Map<dynamic, dynamic>* map11 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:70: Error: Expected ':' after this.
+  core::Map<dynamic, dynamic>* map11 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:70: Error: Expected ':' after this.
   Map<dynamic, dynamic> map11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                                                                      ^": null};
-  core::Map<invalid-type, Null>* map12 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:35: Error: Expected ':' after this.
+  core::Map<invalid-type, Null>* map12 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:35: Error: Expected ':' after this.
   var map12 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
                                   ^": null};
-  core::Map<invalid-type, Null>* map13 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:52: Error: Expected ':' after this.
+  core::Map<invalid-type, Null>* map13 = <invalid-type, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:52: Error: Expected ':' after this.
   var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                                                    ^": null};
   core::List<core::int*>* list20 = block {
     final core::List<core::int*>* #t115 = core::_GrowableList::•<core::int*>(0);
-    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
   List<int> list20 = [if (42) 42];
                           ^" in 42 as{TypeError} core::bool*)
       #t115.{core::List::add}{Invariant}(42){(core::int*) →* void};
   } =>#t115;
   core::Set<core::int*>* set20 = block {
     final core::Set<core::int*>* #t116 = new col::_CompactLinkedHashSet::•<core::int*>();
-    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
   Set<int> set20 = {if (42) 42};
                         ^" in 42 as{TypeError} core::bool*)
       #t116.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
   } =>#t116;
   core::Map<core::int*, core::int*>* map30 = block {
     final core::Map<core::int*, core::int*>* #t117 = <core::int*, core::int*>{};
-    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
   Map<int, int> map30 = {if (42) 42: 42};
                              ^" in 42 as{TypeError} core::bool*)
       #t117.{core::Map::[]=}{Invariant}(42, 42){(core::int*, core::int*) →* void};
@@ -1227,44 +1227,44 @@
   core::List<core::String*>* list40 = block {
     final core::List<core::String*>* #t118 = core::_GrowableList::•<core::String*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
   List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
                                                     ^" in true as{TypeError} core::String*){(core::String*) →* void};
     else
-      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
                                                               ^" in 42 as{TypeError} core::String*){(core::String*) →* void};
   } =>#t118;
   core::Set<core::String*>* set40 = block {
     final core::Set<core::String*>* #t119 = new col::_CompactLinkedHashSet::•<core::String*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
   Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
                                                   ^" in true as{TypeError} core::String*){(core::String*) →* core::bool*};
     else
-      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
                                                             ^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
   } =>#t119;
   core::Map<core::String*, core::int*>* map40 = block {
     final core::Map<core::String*, core::int*>* #t120 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:119:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
   Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
                                                             ^" in true as{TypeError} core::String*, 42){(core::String*, core::int*) →* void};
     else
-      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:119:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
                                                                           ^" in 42 as{TypeError} core::String*, 42){(core::String*, core::int*) →* void};
   } =>#t120;
   core::Map<core::int*, core::String*>* map41 = block {
     final core::Map<core::int*, core::String*>* #t121 = <core::int*, core::String*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:120:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
   Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
                                                                 ^" in true as{TypeError} core::String*){(core::int*, core::String*) →* void};
     else
-      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:120:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
                                                                               ^" in 42 as{TypeError} core::String*){(core::int*, core::String*) →* void};
   } =>#t121;
@@ -1962,14 +1962,14 @@
         block {
           final core::List<core::int*>* #t236 = core::_GrowableList::•<core::int*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-            #t236.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            #t236.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) \"bar\"];
                                             ^" in "bar" as{TypeError} core::int*){(core::int*) →* void};
         } =>#t236;
         block {
           final core::Set<core::int*>* #t237 = new col::_CompactLinkedHashSet::•<core::int*>();
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-            #t237.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:211:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            #t237.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\", null};
                                             ^" in "bar" as{TypeError} core::int*){(core::int*) →* core::bool*};
           #t237.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
@@ -1977,26 +1977,26 @@
         block {
           final core::Map<core::int*, core::int*>* #t238 = <core::int*, core::int*>{};
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-            #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
-                                                 ^" in "bar" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                 ^" in "bar" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
                                                         ^" in "bar" as{TypeError} core::int*){(core::int*, core::int*) →* void};
-          #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+          #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
                                                                ^" in "baz" as{TypeError} core::int*, null){(core::int*, core::int*) →* void};
         } =>#t238;
         block {
           final core::List<core::int*>* #t239 = core::_GrowableList::•<core::int*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-            #t239.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            #t239.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"]];
                                                 ^" in "bar" as{TypeError} core::int*)){(core::Iterable<core::int*>*) →* void};
         } =>#t239;
         block {
           final core::Set<core::int*>* #t240 = new col::_CompactLinkedHashSet::•<core::int*>();
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-            #t240.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            #t240.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"], null};
                                                 ^" in "bar" as{TypeError} core::int*)){(core::Iterable<core::int*>*) →* void};
           #t240.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
@@ -2004,9 +2004,9 @@
         block {
           final core::Map<core::int*, core::int*>* #t241 = <core::int*, core::int*>{};
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
-            core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
-                                                     ^" in "bar" as{TypeError} core::int*: invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                     ^" in "bar" as{TypeError} core::int*: invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
                                                             ^" in "bar" as{TypeError} core::int*}.{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}; ) {
@@ -2014,14 +2014,14 @@
               #t241.{core::Map::[]=}{Invariant}(#t242.{core::MapEntry::key}{core::int*}, #t242.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
             }
           }
-          #t241.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+          #t241.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
                                                                     ^" in "baz" as{TypeError} core::int*, null){(core::int*, core::int*) →* void};
         } =>#t241;
         block {
           final core::List<core::int*>* #t243 = core::_GrowableList::•<core::int*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-            #t243.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+            #t243.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) ...map];
                                                ^"){(core::int*) →* void};
@@ -2029,16 +2029,16 @@
         block {
           final core::Set<core::int*>* #t244 = new col::_CompactLinkedHashSet::•<core::int*>();
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
-            #t244.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+            #t244.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) ...map, null};
                                                ^"){(core::int*) →* core::bool*};
           #t244.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
         } =>#t244;
-        <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+        <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
-                                                    ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                                    ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:53: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
                                                     ^": null};
@@ -2046,11 +2046,11 @@
           final core::List<core::String*>* #t245 = core::_GrowableList::•<core::String*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+              #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
                                                              ^" in 42 as{TypeError} core::String*){(core::String*) →* void};
             else
-              #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+              #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
                                                                      ^" in 3.14 as{TypeError} core::String*){(core::String*) →* void};
         } =>#t245;
@@ -2058,11 +2058,11 @@
           final core::Set<core::String*>* #t246 = new col::_CompactLinkedHashSet::•<core::String*>();
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+              #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
                                                              ^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
             else
-              #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+              #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
                                                                      ^" in 3.14 as{TypeError} core::String*){(core::String*) →* core::bool*};
           #t246.{core::Set::add}{Invariant}(null){(core::String*) →* core::bool*};
@@ -2071,11 +2071,11 @@
           final core::Map<core::String*, core::String*>* #t247 = <core::String*, core::String*>{};
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+              #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String, String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
                                                                             ^" in 42 as{TypeError} core::String*){(core::String*, core::String*) →* void};
             else
-              #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+              #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
   <String, String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
                                                                                            ^" in 3.14 as{TypeError} core::String*){(core::String*, core::String*) →* void};
           #t247.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::String*) →* void};
@@ -2084,7 +2084,7 @@
           final core::List<core::int*>* #t248 = core::_GrowableList::•<core::int*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t248.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+              #t248.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42];
                                                              ^"){(core::int*) →* void};
@@ -2095,7 +2095,7 @@
           final core::Set<core::int*>* #t249 = new col::_CompactLinkedHashSet::•<core::int*>();
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t249.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+              #t249.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42, null};
                                                              ^"){(core::int*) →* core::bool*};
@@ -2103,10 +2103,10 @@
               #t249.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
           #t249.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
         } =>#t249;
-        <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+        <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
-                                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
                                                                      ^": null};
@@ -2116,7 +2116,7 @@
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
               #t250.{core::List::add}{Invariant}(42){(core::int*) →* void};
             else
-              #t250.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+              #t250.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map];
                                                                      ^"){(core::int*) →* void};
@@ -2127,16 +2127,16 @@
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
               #t251.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
             else
-              #t251.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+              #t251.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:228:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map, null};
                                                                      ^"){(core::int*) →* core::bool*};
           #t251.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
         } =>#t251;
-        <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+        <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:229:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else ...list, \"baz\": null};
-                                                                                    ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+                                                                                    ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:229:85: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else ...list, \"baz\": null};
                                                                                     ^": null};
@@ -2148,7 +2148,7 @@
             for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
               final core::int* #t253 = :sync-for-iterator.{core::Iterator::current}{core::int*};
               {
-                invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:230:14: Error: Can't assign to the final variable 'i'.
+                invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:14: Error: Can't assign to the final variable 'i'.
   <int>[for (i in <int>[1]) i];
              ^";
                 #t252.{core::List::add}{Invariant}(i){(core::int*) →* void};
@@ -2163,7 +2163,7 @@
             for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
               final core::int* #t255 = :sync-for-iterator.{core::Iterator::current}{core::int*};
               {
-                invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:231:14: Error: Can't assign to the final variable 'i'.
+                invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:233:14: Error: Can't assign to the final variable 'i'.
   <int>{for (i in <int>[1]) i, null};
              ^";
                 #t254.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
@@ -2179,7 +2179,7 @@
             for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
               final core::int* #t257 = :sync-for-iterator.{core::Iterator::current}{core::int*};
               {
-                invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:21: Error: Can't assign to the final variable 'i'.
+                invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:234:21: Error: Can't assign to the final variable 'i'.
 \t<String, int>{for (i in <int>[1]) \"bar\": i, \"baz\": null};
 \t                   ^";
                 #t256.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
@@ -2191,7 +2191,7 @@
         core::List<dynamic>* list10 = block {
           final core::List<dynamic>* #t258 = core::_GrowableList::•<dynamic>(0);
           {
-            core::Iterator<Never>* :sync-for-iterator = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:234:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+            core::Iterator<Never>* :sync-for-iterator = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:236:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Iterable' is from 'dart:core'.
   var list10 = [for (var i in \"not iterable\") i];
                               ^" in "not iterable" as{TypeError} core::Iterable<dynamic>*.{core::Iterable::iterator}{core::Iterator<Never>*};
@@ -2204,7 +2204,7 @@
         core::Set<dynamic>* set10 = block {
           final core::Set<dynamic>* #t259 = new col::_CompactLinkedHashSet::•<dynamic>();
           {
-            core::Iterator<Never>* :sync-for-iterator = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:235:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+            core::Iterator<Never>* :sync-for-iterator = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Iterable' is from 'dart:core'.
   var set10 = {for (var i in \"not iterable\") i, null};
                              ^" in "not iterable" as{TypeError} core::Iterable<dynamic>*.{core::Iterable::iterator}{core::Iterator<Never>*};
@@ -2218,7 +2218,7 @@
         core::Map<core::String*, dynamic>* map10 = block {
           final core::Map<core::String*, dynamic>* #t260 = <core::String*, dynamic>{};
           {
-            core::Iterator<Never>* :sync-for-iterator = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:236:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+            core::Iterator<Never>* :sync-for-iterator = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Iterable' is from 'dart:core'.
   var map10 = {for (var i in \"not iterable\") \"bar\": i, \"baz\": null};
                              ^" in "not iterable" as{TypeError} core::Iterable<dynamic>*.{core::Iterable::iterator}{core::Iterator<Never>*};
@@ -2232,9 +2232,9 @@
         core::List<core::int*>* list20 = block {
           final core::List<core::int*>* #t261 = core::_GrowableList::•<core::int*>(0);
           {
-            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list20 = [for (int i in [\"not\", \"int\"]) i];
-                               ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                               ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list20 = [for (int i in [\"not\", \"int\"]) i];
                                       ^" in "int" as{TypeError} core::int*).{core::Iterable::iterator}{core::Iterator<core::int*>*};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
@@ -2246,9 +2246,9 @@
         core::Set<core::int*>* set20 = block {
           final core::Set<core::int*>* #t262 = new col::_CompactLinkedHashSet::•<core::int*>();
           {
-            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set20 = {for (int i in [\"not\", \"int\"]) i, null};
-                              ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                              ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set20 = {for (int i in [\"not\", \"int\"]) i, null};
                                      ^" in "int" as{TypeError} core::int*).{core::Iterable::iterator}{core::Iterator<core::int*>*};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
@@ -2261,9 +2261,9 @@
         core::Map<core::String*, core::int*>* map20 = block {
           final core::Map<core::String*, core::int*>* #t263 = <core::String*, core::int*>{};
           {
-            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
-                              ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                              ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
                                      ^" in "int" as{TypeError} core::int*).{core::Iterable::iterator}{core::Iterator<core::int*>*};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
@@ -2275,7 +2275,7 @@
         } =>#t263;
         final core::List<dynamic>* #t264 = core::_GrowableList::•<dynamic>(0);
         {
-          Never :stream = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+          Never :stream = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:242:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
  - 'Stream' is from 'dart:async'.
   var list30 = [await for (var i in \"not stream\") i];
                                     ^" in "not stream" as{TypeError} asy::Stream<dynamic>*;
@@ -2301,7 +2301,7 @@
         core::List<dynamic>* list30 = block {} =>#t264;
         final core::Set<dynamic>* #t268 = new col::_CompactLinkedHashSet::•<dynamic>();
         {
-          Never :stream = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+          Never :stream = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
  - 'Stream' is from 'dart:async'.
   var set30 = {await for (var i in \"not stream\") i, null};
                                    ^" in "not stream" as{TypeError} asy::Stream<dynamic>*;
@@ -2329,7 +2329,7 @@
         } =>#t268;
         final core::Map<core::String*, dynamic>* #t272 = <core::String*, dynamic>{};
         {
-          Never :stream = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:242:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+          Never :stream = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
  - 'Stream' is from 'dart:async'.
   var map30 = {await for (var i in \"not stream\") \"bar\": i, \"baz\": null};
                                    ^" in "not stream" as{TypeError} asy::Stream<dynamic>*;
@@ -2357,9 +2357,9 @@
         } =>#t272;
         final core::List<core::int*>* #t276 = core::_GrowableList::•<core::int*>(0);
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
-                                                         ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                         ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
                                                                 ^" in "int" as{TypeError} core::int*));
           asy::_StreamIterator<core::int*>* :for-iterator = new asy::_StreamIterator::•<core::int*>(:stream);
@@ -2384,9 +2384,9 @@
         core::List<core::int*>* list40 = block {} =>#t276;
         final core::Set<core::int*>* #t280 = new col::_CompactLinkedHashSet::•<core::int*>();
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
-                                                        ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                        ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
                                                                ^" in "int" as{TypeError} core::int*));
           asy::_StreamIterator<core::int*>* :for-iterator = new asy::_StreamIterator::•<core::int*>(:stream);
@@ -2413,9 +2413,9 @@
         } =>#t280;
         final core::Map<core::String*, core::int*>* #t284 = <core::String*, core::int*>{};
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
-                                                        ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                        ^" in "not" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
                                                                ^" in "int" as{TypeError} core::int*));
           asy::_StreamIterator<core::int*>* :for-iterator = new asy::_StreamIterator::•<core::int*>(:stream);
@@ -2459,14 +2459,14 @@
         } =>#t290;
         core::List<core::int*>* list60 = block {
           final core::List<core::int*>* #t291 = core::_GrowableList::•<core::int*>(0);
-          for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+          for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
   var list60 = [for (; \"not bool\";) 42];
                        ^" in "not bool" as{TypeError} core::bool*; )
             #t291.{core::List::add}{Invariant}(42){(core::int*) →* void};
         } =>#t291;
         core::Set<core::int*>* set60 = block {
           final core::Set<core::int*>* #t292 = new col::_CompactLinkedHashSet::•<core::int*>();
-          for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:250:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+          for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:252:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
   var set60 = {for (; \"not bool\";) 42, null};
                       ^" in "not bool" as{TypeError} core::bool*; )
             #t292.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
@@ -2474,7 +2474,7 @@
         } =>#t292;
         core::Map<core::String*, core::int*>* map60 = block {
           final core::Map<core::String*, core::int*>* #t293 = <core::String*, core::int*>{};
-          for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+          for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:253:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
   var map60 = {for (; \"not bool\";) \"bar\": 42, \"baz\": null};
                       ^" in "not bool" as{TypeError} core::bool*; )
             #t293.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::int*) →* void};
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference2.dart b/pkg/front_end/testcases/general/control_flow_collection_inference2.dart
new file mode 100644
index 0000000..26a9e38
--- /dev/null
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference2.dart
@@ -0,0 +1,272 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Oracle is generic to test the inference in conditions of if-elements.
+oracle<T>([T? t]) => true;
+
+testIfElement(dynamic dynVar, List<int> listInt, List<double> listDouble,
+    Map<String, int> mapToInt, Map<String, double> mapToDouble) {
+  var list10 = [if (oracle("foo")) 42];
+  var set10 = {if (oracle("foo")) 42, null};
+  var map10 = {if (oracle("foo")) "bar": 42, "baz": null};
+  var list11 = [if (oracle("foo")) dynVar];
+  var set11 = {if (oracle("foo")) dynVar, null};
+  var map11 = {if (oracle("foo")) "bar": dynVar, "baz": null};
+  var list12 = [if (oracle("foo")) [42]];
+  var set12 = {if (oracle("foo")) [42], null};
+  var map12 = {if (oracle("foo")) "bar": [42], "baz": null};
+  var list20 = [if (oracle("foo")) ...[42]];
+  var set20 = {if (oracle("foo")) ...[42], null};
+  var map20 = {if (oracle("foo")) ...{"bar": 42}, "baz": null};
+  var list21 = [if (oracle("foo")) ...[dynVar]];
+  var set21 = {if (oracle("foo")) ...[dynVar], null};
+  var map21 = {if (oracle("foo")) ...{"bar": dynVar}, "baz": null};
+  var list22 = [if (oracle("foo")) ...[[42]]];
+  var set22 = {if (oracle("foo")) ...[[42]], null};
+  var map22 = {if (oracle("foo")) ...{"bar": [42]}, "baz": null};
+  var list30 = [if (oracle("foo")) if (oracle()) ...[42]];
+  var set30 = {if (oracle("foo")) if (oracle()) ...[42], null};
+  var map30 = {if (oracle("foo")) if (oracle()) ...{"bar": 42}, "baz": null};
+  var list31 = [if (oracle("foo")) if (oracle()) ...[dynVar]];
+  var set31 = {if (oracle("foo")) if (oracle()) ...[dynVar], null};
+  var map31 = {if (oracle("foo")) if (oracle()) ...{"bar": dynVar}, "baz": null};
+  var list33 = [if (oracle("foo")) if (oracle()) ...[[42]]];
+  var set33 = {if (oracle("foo")) if (oracle()) ...[[42]], null};
+  var map33 = {if (oracle("foo")) if (oracle()) ...{"bar": [42]}, "baz": null};
+  List<List<int>> list40 = [if (oracle("foo")) ...[[]]];
+  Set<List<int>?> set40 = {if (oracle("foo")) ...[[]], null};
+  Map<String, List<int>?> map40 = {if (oracle("foo")) ...{"bar", []}, "baz": null};
+  List<List<int>> list41 = [if (oracle("foo")) ...{[]}];
+  Set<List<int>?> set41 = {if (oracle("foo")) ...{[]}, null};
+  List<List<int>> list42 = [if (oracle("foo")) if (oracle()) ...[[]]];
+  Set<List<int>?> set42 = {if (oracle("foo")) if (oracle()) ...[[]], null};
+  Map<String, List<int>?> map42 = {if (oracle("foo")) if (oracle()) ...{"bar": []}, "baz": null};
+  List<int> list50 = [if (oracle("foo")) ...[]];
+  Set<int?> set50 = {if (oracle("foo")) ...[], null};
+  Map<String, int?> map50 = {if (oracle("foo")) ...{}, "baz": null};
+  List<int> list51 = [if (oracle("foo")) ...{}];
+  Set<int?> set51 = {if (oracle("foo")) ...{}, null};
+  List<int> list52 = [if (oracle("foo")) if (oracle()) ...[]];
+  Set<int?> set52 = {if (oracle("foo")) if (oracle()) ...[], null};
+  Map<String, int?> map52 = {if (oracle("foo")) if (oracle()) ...{}, "baz": null};
+  List<List<int>> list60 = [if (oracle("foo")) ...[[]]];
+  Set<List<int>?> set60 = {if (oracle("foo")) ...[[]], null};
+  Map<String, List<int>?> map60 = {if (oracle("foo")) ...{"bar": []}, "baz": null};
+  List<List<int>> list61 = [if (oracle("foo")) if (oracle()) ...[[]]];
+  Set<List<int>?> set61 = {if (oracle("foo")) if (oracle()) ...[[]], null};
+  Map<String, List<int>?> map61 = {if (oracle("foo")) if (oracle()) ...{"bar": []}, "baz": null};
+  List<List<int>> list70 = [if (oracle("foo")) []];
+  Set<List<int>?> set70 = {if (oracle("foo")) [], null};
+  List<List<int>> list71 = [if (oracle("foo")) if (oracle()) []];
+  Set<List<int>?> set71 = {if (oracle("foo")) if (oracle()) [], null};
+  var list80 = [if (oracle("foo")) 42 else 3.14];
+  var set80 = {if (oracle("foo")) 42 else 3.14, null};
+  var map80 = {if (oracle("foo")) "bar": 42 else "bar": 3.14, "baz": null};
+  var list81 = [if (oracle("foo")) ...listInt else ...listDouble];
+  var set81 = {if (oracle("foo")) ...listInt else ...listDouble, null};
+  var map81 = {if (oracle("foo")) ...mapToInt else ...mapToDouble, "baz": null};
+  var list82 = [if (oracle("foo")) ...listInt else ...dynVar];
+  var set82 = {if (oracle("foo")) ...listInt else ...dynVar, null};
+  var map82 = {if (oracle("foo")) ...mapToInt else ...dynVar, null};
+  var list83 = [if (oracle("foo")) 42 else ...listDouble];
+  var set83 = {if (oracle("foo")) ...listInt else 3.14, null};
+  var map83 = {if (oracle("foo")) ...mapToInt else "bar": 3.14, "baz": null};
+  List<int> list90 = [if (oracle("foo")) dynVar];
+  Set<int?> set90 = {if (oracle("foo")) dynVar, null};
+  Map<String, int?> map90 = {if (oracle("foo")) "bar": dynVar, "baz": null};
+  List<int> list91 = [if (oracle("foo")) ...dynVar];
+  Set<int?> set91 = {if (oracle("foo")) ...dynVar, null};
+  Map<String, int?> map91 = {if (oracle("foo")) ...dynVar, "baz": null};
+  List<int> list100 = [if (dynVar) 42];
+  Set<int> set100 = {if (dynVar) 42};
+  Map<int, int> map100 = {if (dynVar) 42: 42};
+}
+
+testIfElementErrors(Map<int, int> map) {
+  <int>[if (oracle("foo")) "bar"];
+  <int?>{if (oracle("foo")) "bar", null};
+  <String, int?>{if (oracle("foo")) "bar": "bar", "baz": null};
+  <int>[if (oracle("foo")) ...["bar"]];
+  <int?>{if (oracle("foo")) ...["bar"], null};
+  <String, int?>{if (oracle("foo")) ...{"bar": "bar"}, "baz": null};
+  <int>[if (oracle("foo")) ...map];
+  <int?>{if (oracle("foo")) ...map, null};
+  <String, int?>{if (oracle("foo")) ...["bar"], "baz": null};
+  <String>[if (oracle("foo")) 42 else 3.14];
+  <String?>{if (oracle("foo")) 42 else 3.14, null};
+  <String, String?>{if (oracle("foo")) "bar": 42 else "baz": 3.14, "baz": null};
+  <int>[if (oracle("foo")) ...map else 42];
+  <int?>{if (oracle("foo")) ...map else 42, null};
+  <String, int?>{if (oracle("foo")) ...[42] else "bar": 42, "baz": null};
+  <int>[if (oracle("foo")) 42 else ...map];
+  <int?>{if (oracle("foo")) ...map else 42, null};
+  <String, int?>{if (oracle("foo")) "bar": 42 else ...[42], "baz": null};
+
+  Set<dynamic> set10 = {if (oracle("foo")) 42 else "bar": 3.14};
+  Map<dynamic, dynamic> map10 = {if (oracle("foo")) 42 else "bar": 3.14};
+  Set<dynamic> set11 = {if (oracle("foo")) "bar": 3.14 else 42};
+  Map<dynamic, dynamic> map11 = {if (oracle("foo")) "bar": 3.14 else 42};
+  var map12 = {if (oracle("foo")) 42 else "bar": 3.14};
+  var map13 = {if (oracle("foo")) "bar": 3.14 else 42};
+  List<int> list20 = [if (42) 42];
+  Set<int> set20 = {if (42) 42};
+  Map<int, int> map30 = {if (42) 42: 42};
+  List<String> list40 = <String>[if (oracle("foo")) true else 42];
+  Set<String> set40 = <String>{if (oracle("foo")) true else 42};
+  Map<String, int> map40 = <String, int>{if (oracle("foo")) true: 42 else 42: 42};
+  Map<int, String> map41 = <int, String>{if (oracle("foo")) 42: true else 42: 42};
+}
+
+testForElement(dynamic dynVar, List<int> listInt, List<double> listDouble, int
+index, Map<String, int> mapStringInt, Map<String, double> mapStringDouble) {
+  var list10 = [for (int i = 0; oracle("foo"); i++) 42];
+  var set10 = {for (int i = 0; oracle("foo"); i++) 42, null};
+  var map10 = {for (int i = 0; oracle("foo"); i++) "bar": 42, "baz": null};
+  var list11 = [for (int i = 0; oracle("foo"); i++) dynVar];
+  var set11 = {for (int i = 0; oracle("foo"); i++) dynVar, null};
+  var map11 = {for (int i = 0; oracle("foo"); i++) "bar": dynVar, "baz": null};
+  var list12 = [for (int i = 0; oracle("foo"); i++) [42]];
+  var set12 = {for (int i = 0; oracle("foo"); i++) [42], null};
+  var map12 = {for (int i = 0; oracle("foo"); i++) "bar": [42], "baz": null};
+  var list20 = [for (int i = 0; oracle("foo"); i++) ...[42]];
+  var set20 = {for (int i = 0; oracle("foo"); i++) ...[42], null};
+  var map20 = {for (int i = 0; oracle("foo"); i++) ...{"bar": 42}, "baz": null};
+  var list21 = [for (int i = 0; oracle("foo"); i++) ...[dynVar]];
+  var set21 = {for (int i = 0; oracle("foo"); i++) ...[dynVar], null};
+  var map21 = {for (int i = 0; oracle("foo"); i++) ...{"bar": dynVar}, "baz": null};
+  var list22 = [for (int i = 0; oracle("foo"); i++) ...[[42]]];
+  var set22 = {for (int i = 0; oracle("foo"); i++) ...[[42]], null};
+  var map22 = {for (int i = 0; oracle("foo"); i++) ...{"bar": [42]}, "baz": null};
+  var list30 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[42]];
+  var set30 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[42], null};
+  var map30 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...{"bar": 42}, "baz": null};
+  var list31 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[dynVar]];
+  var set31 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[dynVar], null};
+  var map31 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...{"bar": dynVar}, "baz": null};
+  var list33 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[42]]];
+  var set33 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[42]], null};
+  var map33 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...{"bar": [42]}, "baz": null};
+  List<List<int>> list40 = [for (int i = 0; oracle("foo"); i++) ...[[]]];
+  Set<List<int>?> set40 = {for (int i = 0; oracle("foo"); i++) ...[[]], null};
+  Map<String, List<int>?> map40 = {for (int i = 0; oracle("foo"); i++) ...{"bar": []}, "baz": null};
+  List<List<int>> list41 = [for (int i = 0; oracle("foo"); i++) ...{[]}];
+  Set<List<int>?> set41 = {for (int i = 0; oracle("foo"); i++) ...{[]}, null};
+  List<List<int>> list42 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]]];
+  Set<List<int>?> set42 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]], null};
+  Map<String, List<int>?> map42 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...{"bar": []}, "baz": null};
+  List<int> list50 = [for (int i = 0; oracle("foo"); i++) ...[]];
+  Set<int?> set50 = {for (int i = 0; oracle("foo"); i++) ...[], null};
+  Map<String, int?> map50 = {for (int i = 0; oracle("foo"); i++) ...{}, "baz": null};
+  List<int> list51 = [for (int i = 0; oracle("foo"); i++) ...{}];
+  Set<int?> set51 = {for (int i = 0; oracle("foo"); i++) ...{}, null};
+  List<int> list52 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[]];
+  Set<int?> set52 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[], null};
+  List<List<int>> list60 = [for (int i = 0; oracle("foo"); i++) ...[[]]];
+  Set<List<int>?> set60 = {for (int i = 0; oracle("foo"); i++) ...[[]], null};
+  Map<String, List<int>?> map60 = {for (int i = 0; oracle("foo"); i++) ...{"bar": []}, "baz": null};
+  List<List<int>> list61 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]]];
+  Set<List<int>?> set61 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]], null};
+  Map<String, List<int>?> map61 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...{"bar": []}, "baz": null};
+  List<List<int>> list70 = [for (int i = 0; oracle("foo"); i++) []];
+  Set<List<int>?> set70 = {for (int i = 0; oracle("foo"); i++) [], null};
+  Map<String, List<int>?> map70 = {for (int i = 0; oracle("foo"); i++) "bar": [], "baz": null};
+  List<List<int>> list71 = [for (int i = 0; oracle("foo"); i++) if (oracle()) []];
+  Set<List<int>?> set71 = {for (int i = 0; oracle("foo"); i++) if (oracle()) [], null};
+  Map<String, List<int>?> map71 = {for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": [], "baz": null};
+  var list80 = [for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
+  var set80 = {for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
+  var map80 = {for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
+  var list81 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else ...listDouble];
+  var set81 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else ...listDouble, null};
+  var map81 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...mapStringInt else ...mapStringDouble, "baz": null};
+  var list82 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else ...dynVar];
+  var set82 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else ...dynVar, null};
+  var map82 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...mapStringInt else ...dynVar, "baz": null};
+  var list83 = [for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...listDouble];
+  var set83 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else 3.14, null};
+  var map83 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...mapStringInt else "bar": 3.14, "baz": null};
+  List<int> list90 = [for (int i = 0; oracle("foo"); i++) dynVar];
+  Set<int?> set90 = {for (int i = 0; oracle("foo"); i++) dynVar, null};
+  Map<String, int?> map90 = {for (int i = 0; oracle("foo"); i++) "bar": dynVar, "baz": null};
+  List<int> list91 = [for (int i = 0; oracle("foo"); i++) ...dynVar];
+  Set<int?> set91 = {for (int i = 0; oracle("foo"); i++) ...dynVar, null};
+  Map<String, int?> map91 = {for (int i = 0; oracle("foo"); i++) ...dynVar, "baz": null};
+  List<int> list100 = <int>[for (index = 0; oracle("foo"); index++) 42];
+  Set<int> set100 = <int>{for (index = 0; oracle("foo"); index++) 42};
+  Map<String, int> map100 = <String, int>{for (index = 0; oracle("foo"); index++) "bar": 42};
+  var list110 = [for (var i in [1, 2, 3]) i];
+  var set110 = {for (var i in [1, 2, 3]) i, null};
+  var map110 = {for (var i in [1, 2, 3]) "bar": i, "baz": null};
+  List<int> list120 = [for (var i in dynVar) i];
+  Set<int?> set120 = {for (var i in dynVar) i, null};
+  Map<String, int?> map120 = {for (var i in dynVar) "bar": i, "baz": null};
+  List<int> list130 = [for (var i = 1; i < 2; i++) i];
+  Set<int> set130 = {for (var i = 1; i < 2; i++) i};
+  Map<int, int> map130 = {for (var i = 1; i < 2; i++) i: i};
+}
+
+testForElementErrors(Map<int, int> map, List<int> list) async {
+  <int>[for (int i = 0; oracle("foo"); i++) "bar"];
+  <int?>{for (int i = 0; oracle("foo"); i++) "bar", null};
+  <int, int?>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
+  <int>[for (int i = 0; oracle("foo"); i++) ...["bar"]];
+  <int?>{for (int i = 0; oracle("foo"); i++) ...["bar"], null};
+  <int, int?>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
+  <int>[for (int i = 0; oracle("foo"); i++) ...map];
+  <int?>{for (int i = 0; oracle("foo"); i++) ...map, null};
+  <int, int?>{for (int i = 0; oracle("foo"); i++) ...list, 42: null};
+  <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
+  <String?>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
+  <String, String?>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
+  <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42];
+  <int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42, null};
+  <String, int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...list else "bar": 42, "baz": null};
+  <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map];
+  <int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map, null};
+  <String, int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else ...list, "baz": null};
+
+  final i = 0;
+  <int>[for (i in <int>[1]) i];
+  <int?>{for (i in <int>[1]) i, null};
+  <String, int?>{for (i in <int>[1]) "bar": i, "baz": null};
+
+  var list10 = [for (var i in "not iterable") i];
+  var set10 = {for (var i in "not iterable") i, null};
+  var map10 = {for (var i in "not iterable") "bar": i, "baz": null};
+  var list20 = [for (int i in ["not", "int"]) i];
+  var set20 = {for (int i in ["not", "int"]) i, null};
+  var map20 = {for (int i in ["not", "int"]) "bar": i, "baz": null};
+  var list30 = [await for (var i in "not stream") i];
+  var set30 = {await for (var i in "not stream") i, null};
+  var map30 = {await for (var i in "not stream") "bar": i, "baz": null};
+  var list40 = [await for (int i in Stream.fromIterable(["not", "int"])) i];
+  var set40 = {await for (int i in Stream.fromIterable(["not", "int"])) i, null};
+  var map40 = {await for (int i in Stream.fromIterable(["not", "int"])) "bar": i, "baz": null};
+  var list50 = [await for (;;) 42];
+  var set50 = {await for (;;) 42, null};
+  var map50 = {await for (;;) "bar": 42, "baz": null};
+  var list60 = [for (; "not bool";) 42];
+  var set60 = {for (; "not bool";) 42, null};
+  var map60 = {for (; "not bool";) "bar": 42, "baz": null};
+}
+
+testForElementErrorsNotAsync(Stream<int> stream) {
+  <int>[await for (int i in stream) i];
+  <int>{await for (int i in stream) i};
+  <String, int>{await for (int i in stream) "bar": i};
+}
+
+class A {}
+
+class B extends A {
+  int get foo => 42;
+}
+
+testPromotion(A a) {
+  List<int> list10 = [if (a is B) a.foo];
+  Set<int> set10 = {if (a is B) a.foo};
+  Map<int, int> map10 = {if (a is B) a.foo: a.foo};
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.textual_outline.expect b/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.textual_outline.expect
new file mode 100644
index 0000000..21c73bb
--- /dev/null
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.textual_outline.expect
@@ -0,0 +1,22 @@
+oracle<T>([T? t]) => true;
+testIfElement(dynamic dynVar, List<int> listInt, List<double> listDouble,
+    Map<String, int> mapToInt, Map<String, double> mapToDouble) {}
+testIfElementErrors(Map<int, int> map) {}
+testForElement(
+    dynamic dynVar,
+    List<int> listInt,
+    List<double> listDouble,
+    int index,
+    Map<String, int> mapStringInt,
+    Map<String, double> mapStringDouble) {}
+testForElementErrors(Map<int, int> map, List<int> list) async {}
+testForElementErrorsNotAsync(Stream<int> stream) {}
+
+class A {}
+
+class B extends A {
+  int get foo => 42;
+}
+
+testPromotion(A a) {}
+main() {}
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..582976e
--- /dev/null
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.textual_outline_modelled.expect
@@ -0,0 +1,21 @@
+class A {}
+
+class B extends A {
+  int get foo => 42;
+}
+
+main() {}
+oracle<T>([T? t]) => true;
+testForElement(
+    dynamic dynVar,
+    List<int> listInt,
+    List<double> listDouble,
+    int index,
+    Map<String, int> mapStringInt,
+    Map<String, double> mapStringDouble) {}
+testForElementErrors(Map<int, int> map, List<int> list) async {}
+testForElementErrorsNotAsync(Stream<int> stream) {}
+testIfElement(dynamic dynVar, List<int> listInt, List<double> listDouble,
+    Map<String, int> mapToInt, Map<String, double> mapToDouble) {}
+testIfElementErrors(Map<int, int> map) {}
+testPromotion(A a) {}
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.weak.expect b/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.weak.expect
new file mode 100644
index 0000000..746e6cf
--- /dev/null
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.weak.expect
@@ -0,0 +1,2148 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:39:35: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+//   Map<String, List<int>?> map40 = {if (oracle("foo")) ...{"bar", []}, "baz": null};
+//                                   ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   var map82 = {if (oracle("foo")) ...mapToInt else ...dynVar, null};
+//                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:106:44: Error: Expected ':' after this.
+//   Set<dynamic> set10 = {if (oracle("foo")) 42 else "bar": 3.14};
+//                                            ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:107:53: Error: Expected ':' after this.
+//   Map<dynamic, dynamic> map10 = {if (oracle("foo")) 42 else "bar": 3.14};
+//                                                     ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:108:61: Error: Expected ':' after this.
+//   Set<dynamic> set11 = {if (oracle("foo")) "bar": 3.14 else 42};
+//                                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:109:70: Error: Expected ':' after this.
+//   Map<dynamic, dynamic> map11 = {if (oracle("foo")) "bar": 3.14 else 42};
+//                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:110:35: Error: Expected ':' after this.
+//   var map12 = {if (oracle("foo")) 42 else "bar": 3.14};
+//                                   ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:111:52: Error: Expected ':' after this.
+//   var map13 = {if (oracle("foo")) "bar": 3.14 else 42};
+//                                                    ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int>[if (oracle("foo")) "bar"];
+//                            ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:88:29: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int?>{if (oracle("foo")) "bar", null};
+//                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:89:44: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <String, int?>{if (oracle("foo")) "bar": "bar", "baz": null};
+//                                            ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int>[if (oracle("foo")) ...["bar"]];
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:91:33: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int?>{if (oracle("foo")) ...["bar"], null};
+//                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:92:48: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <String, int?>{if (oracle("foo")) ...{"bar": "bar"}, "baz": null};
+//                                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[if (oracle("foo")) ...map];
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:94:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{if (oracle("foo")) ...map, null};
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:95:40: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{if (oracle("foo")) ...["bar"], "baz": null};
+//                                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   <String>[if (oracle("foo")) 42 else 3.14];
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+//   <String>[if (oracle("foo")) 42 else 3.14];
+//                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:97:32: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+//   <String?>{if (oracle("foo")) 42 else 3.14, null};
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:97:40: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+//   <String?>{if (oracle("foo")) 42 else 3.14, null};
+//                                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:98:47: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+//   <String, String?>{if (oracle("foo")) "bar": 42 else "baz": 3.14, "baz": null};
+//                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:98:62: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+//   <String, String?>{if (oracle("foo")) "bar": 42 else "baz": 3.14, "baz": null};
+//                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[if (oracle("foo")) ...map else 42];
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:100:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{if (oracle("foo")) ...map else 42, null};
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:101:40: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{if (oracle("foo")) ...[42] else "bar": 42, "baz": null};
+//                                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[if (oracle("foo")) 42 else ...map];
+//                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:103:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{if (oracle("foo")) ...map else 42, null};
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:104:55: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{if (oracle("foo")) "bar": 42 else ...[42], "baz": null};
+//                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:106:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+//   Set<dynamic> set10 = {if (oracle("foo")) 42 else "bar": 3.14};
+//                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+//   Set<dynamic> set11 = {if (oracle("foo")) "bar": 3.14 else 42};
+//                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+//   List<int> list20 = [if (42) 42];
+//                           ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:113:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+//   Set<int> set20 = {if (42) 42};
+//                         ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:114:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+//   Map<int, int> map30 = {if (42) 42: 42};
+//                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+//   List<String> list40 = <String>[if (oracle("foo")) true else 42];
+//                                                     ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   List<String> list40 = <String>[if (oracle("foo")) true else 42];
+//                                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+//   Set<String> set40 = <String>{if (oracle("foo")) true else 42};
+//                                                   ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   Set<String> set40 = <String>{if (oracle("foo")) true else 42};
+//                                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+//   Map<String, int> map40 = <String, int>{if (oracle("foo")) true: 42 else 42: 42};
+//                                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   Map<String, int> map40 = <String, int>{if (oracle("foo")) true: 42 else 42: 42};
+//                                                                           ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+//   Map<int, String> map41 = <int, String>{if (oracle("foo")) 42: true else 42: 42};
+//                                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   Map<int, String> map41 = <int, String>{if (oracle("foo")) 42: true else 42: 42};
+//                                                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:230:14: Error: Can't assign to the final variable 'i'.
+//   <int>[for (i in <int>[1]) i];
+//              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:231:15: Error: Can't assign to the final variable 'i'.
+//   <int?>{for (i in <int>[1]) i, null};
+//               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:232:23: Error: Can't assign to the final variable 'i'.
+//   <String, int?>{for (i in <int>[1]) "bar": i, "baz": null};
+//                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:246:17: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// Try removing the keyword, or use a for-each statement.
+//   var list50 = [await for (;;) 42];
+//                 ^^^^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:247:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// Try removing the keyword, or use a for-each statement.
+//   var set50 = {await for (;;) 42, null};
+//                ^^^^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:248:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// Try removing the keyword, or use a for-each statement.
+//   var map50 = {await for (;;) "bar": 42, "baz": null};
+//                ^^^^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int>[for (int i = 0; oracle("foo"); i++) "bar"];
+//                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:211:46: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) "bar", null};
+//                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:51: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
+//                                                   ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:58: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
+//                                                          ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
+//                                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int>[for (int i = 0; oracle("foo"); i++) ...["bar"]];
+//                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:214:50: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) ...["bar"], null};
+//                                                  ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
+//                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:62: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
+//                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
+//                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[for (int i = 0; oracle("foo"); i++) ...map];
+//                                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:217:49: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) ...map, null};
+//                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:218:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) ...list, 42: null};
+//                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
+//                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+//   <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
+//                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:220:63: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+//   <String?>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
+//                                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:220:71: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+//   <String?>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
+//                                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:221:78: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+//   <String, String?>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
+//                                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:221:93: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+//   <String, String?>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
+//                                                                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42];
+//                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:223:63: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42, null};
+//                                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:224:71: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...list else "bar": 42, "baz": null};
+//                                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map];
+//                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:226:71: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map, null};
+//                                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:227:86: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else ...list, "baz": null};
+//                                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:234:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Iterable' is from 'dart:core'.
+//   var list10 = [for (var i in "not iterable") i];
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:235:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Iterable' is from 'dart:core'.
+//   var set10 = {for (var i in "not iterable") i, null};
+//                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:236:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Iterable' is from 'dart:core'.
+//   var map10 = {for (var i in "not iterable") "bar": i, "baz": null};
+//                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:237:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var list20 = [for (int i in ["not", "int"]) i];
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:237:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var list20 = [for (int i in ["not", "int"]) i];
+//                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:238:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var set20 = {for (int i in ["not", "int"]) i, null};
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:238:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var set20 = {for (int i in ["not", "int"]) i, null};
+//                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:239:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var map20 = {for (int i in ["not", "int"]) "bar": i, "baz": null};
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:239:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var map20 = {for (int i in ["not", "int"]) "bar": i, "baz": null};
+//                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:240:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+//  - 'Stream' is from 'dart:async'.
+//   var list30 = [await for (var i in "not stream") i];
+//                                     ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:241:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+//  - 'Stream' is from 'dart:async'.
+//   var set30 = {await for (var i in "not stream") i, null};
+//                                    ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:242:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+//  - 'Stream' is from 'dart:async'.
+//   var map30 = {await for (var i in "not stream") "bar": i, "baz": null};
+//                                    ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:243:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var list40 = [await for (int i in Stream.fromIterable(["not", "int"])) i];
+//                                                          ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:243:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var list40 = [await for (int i in Stream.fromIterable(["not", "int"])) i];
+//                                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:244:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var set40 = {await for (int i in Stream.fromIterable(["not", "int"])) i, null};
+//                                                         ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:244:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var set40 = {await for (int i in Stream.fromIterable(["not", "int"])) i, null};
+//                                                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:245:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var map40 = {await for (int i in Stream.fromIterable(["not", "int"])) "bar": i, "baz": null};
+//                                                         ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:245:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var map40 = {await for (int i in Stream.fromIterable(["not", "int"])) "bar": i, "baz": null};
+//                                                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+//   var list60 = [for (; "not bool";) 42];
+//                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:250:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+//   var set60 = {for (; "not bool";) 42, null};
+//                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:251:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+//   var map60 = {for (; "not bool";) "bar": 42, "baz": null};
+//                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:255:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
+//   <int>[await for (int i in stream) i];
+//                          ^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:256:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
+//   <int>{await for (int i in stream) i};
+//                          ^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:257:34: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
+//   <String, int>{await for (int i in stream) "bar": i};
+//                                  ^^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+import "dart:async" as asy;
+
+class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+}
+class B extends self::A {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+  get foo() → core::int
+    return 42;
+}
+static method oracle<T extends core::Object? = dynamic>([self::oracle::T? t = #C1]) → dynamic
+  return true;
+static method testIfElement(dynamic dynVar, core::List<core::int> listInt, core::List<core::double> listDouble, core::Map<core::String, core::int> mapToInt, core::Map<core::String, core::double> mapToDouble) → dynamic {
+  core::List<core::int> list10 = block {
+    final core::List<core::int> #t1 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t1.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t1;
+  core::Set<core::int?> set10 = block {
+    final core::Set<core::int?> #t2 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t2.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t2;
+  core::Map<core::String, core::int?> map10 = block {
+    final core::Map<core::String, core::int?> #t3 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t3.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int?) → void};
+    #t3.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t3;
+  core::List<dynamic> list11 = block {
+    final core::List<dynamic> #t4 = <dynamic>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t4.{core::List::add}{Invariant}(dynVar){(dynamic) → void};
+  } =>#t4;
+  core::Set<dynamic> set11 = block {
+    final core::Set<dynamic> #t5 = col::LinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t5.{core::Set::add}{Invariant}(dynVar){(dynamic) → core::bool};
+    #t5.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t5;
+  core::Map<core::String, dynamic> map11 = block {
+    final core::Map<core::String, dynamic> #t6 = <core::String, dynamic>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t6.{core::Map::[]=}{Invariant}("bar", dynVar){(core::String, dynamic) → void};
+    #t6.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t6;
+  core::List<core::List<core::int>> list12 = block {
+    final core::List<core::List<core::int>> #t7 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t7.{core::List::add}{Invariant}(<core::int>[42]){(core::List<core::int>) → void};
+  } =>#t7;
+  core::Set<core::List<core::int>?> set12 = block {
+    final core::Set<core::List<core::int>?> #t8 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t8.{core::Set::add}{Invariant}(<core::int>[42]){(core::List<core::int>?) → core::bool};
+    #t8.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t8;
+  core::Map<core::String, core::List<core::int>?> map12 = block {
+    final core::Map<core::String, core::List<core::int>?> #t9 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t9.{core::Map::[]=}{Invariant}("bar", <core::int>[42]){(core::String, core::List<core::int>?) → void};
+    #t9.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t9;
+  core::List<core::int> list20 = block {
+    final core::List<core::int> #t10 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t10.{core::List::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int>) → void};
+  } =>#t10;
+  core::Set<core::int?> set20 = block {
+    final core::Set<core::int?> #t11 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t11.{core::Set::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int?>) → void};
+    #t11.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t11;
+  core::Map<core::String, core::int?> map20 = block {
+    final core::Map<core::String, core::int?> #t12 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, core::int?> #t13 in <core::String, core::int>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+        #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{core::String}, #t13.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t12.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t12;
+  core::List<dynamic> list21 = block {
+    final core::List<dynamic> #t14 = <dynamic>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t14.{core::List::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+  } =>#t14;
+  core::Set<dynamic> set21 = block {
+    final core::Set<dynamic> #t15 = col::LinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t15.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+    #t15.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t15;
+  core::Map<core::String, dynamic> map21 = block {
+    final core::Map<core::String, dynamic> #t16 = <core::String, dynamic>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, dynamic> #t17 in <core::String, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, dynamic>>})
+        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}{core::String}, #t17.{core::MapEntry::value}{dynamic}){(core::String, dynamic) → void};
+    #t16.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t16;
+  core::List<core::List<core::int>> list22 = block {
+    final core::List<core::List<core::int>> #t18 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t18.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t18;
+  core::Set<core::List<core::int>?> set22 = block {
+    final core::Set<core::List<core::int>?> #t19 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t19.{core::Set::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t19.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t19;
+  core::Map<core::String, core::List<core::int>?> map22 = block {
+    final core::Map<core::String, core::List<core::int>?> #t20 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, core::List<core::int>?> #t21 in <core::String, core::List<core::int>>{"bar": <core::int>[42]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+        #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{core::String}, #t21.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t20.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t20;
+  core::List<core::int> list30 = block {
+    final core::List<core::int> #t22 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t22.{core::List::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int>) → void};
+  } =>#t22;
+  core::Set<core::int?> set30 = block {
+    final core::Set<core::int?> #t23 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t23.{core::Set::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int?>) → void};
+    #t23.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t23;
+  core::Map<core::String, core::int?> map30 = block {
+    final core::Map<core::String, core::int?> #t24 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::int?> #t25 in <core::String, core::int>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+          #t24.{core::Map::[]=}{Invariant}(#t25.{core::MapEntry::key}{core::String}, #t25.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t24.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t24;
+  core::List<dynamic> list31 = block {
+    final core::List<dynamic> #t26 = <dynamic>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t26.{core::List::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+  } =>#t26;
+  core::Set<dynamic> set31 = block {
+    final core::Set<dynamic> #t27 = col::LinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t27.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+    #t27.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t27;
+  core::Map<core::String, dynamic> map31 = block {
+    final core::Map<core::String, dynamic> #t28 = <core::String, dynamic>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, dynamic> #t29 in <core::String, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, dynamic>>})
+          #t28.{core::Map::[]=}{Invariant}(#t29.{core::MapEntry::key}{core::String}, #t29.{core::MapEntry::value}{dynamic}){(core::String, dynamic) → void};
+    #t28.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t28;
+  core::List<core::List<core::int>> list33 = block {
+    final core::List<core::List<core::int>> #t30 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t30.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t30;
+  core::Set<core::List<core::int>?> set33 = block {
+    final core::Set<core::List<core::int>?> #t31 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t31.{core::Set::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t31.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t31;
+  core::Map<core::String, core::List<core::int>?> map33 = block {
+    final core::Map<core::String, core::List<core::int>?> #t32 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::List<core::int>?> #t33 in <core::String, core::List<core::int>>{"bar": <core::int>[42]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+          #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}{core::String}, #t33.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t32.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t32;
+  core::List<core::List<core::int>> list40 = block {
+    final core::List<core::List<core::int>> #t34 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t34.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t34;
+  core::Set<core::List<core::int>?> set40 = block {
+    final core::Set<core::List<core::int>?> #t35 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t35.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t35.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t35;
+  core::Map<core::String, core::List<core::int>?> map40 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:39:35: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  Map<String, List<int>?> map40 = {if (oracle(\"foo\")) ...{\"bar\", []}, \"baz\": null};
+                                  ^";
+  core::List<core::List<core::int>> list41 = block {
+    final core::List<core::List<core::int>> #t36 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t36.{core::List::addAll}{Invariant}( block {
+        final core::Set<core::List<core::int>> #t37 = col::LinkedHashSet::•<core::List<core::int>>();
+        #t37.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>) → core::bool};
+      } =>#t37){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t36;
+  core::Set<core::List<core::int>?> set41 = block {
+    final core::Set<core::List<core::int>?> #t38 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t38.{core::Set::addAll}{Invariant}( block {
+        final core::Set<core::List<core::int>?> #t39 = col::LinkedHashSet::•<core::List<core::int>?>();
+        #t39.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>?) → core::bool};
+      } =>#t39){(core::Iterable<core::List<core::int>?>) → void};
+    #t38.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t38;
+  core::List<core::List<core::int>> list42 = block {
+    final core::List<core::List<core::int>> #t40 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t40.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t40;
+  core::Set<core::List<core::int>?> set42 = block {
+    final core::Set<core::List<core::int>?> #t41 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t41.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t41.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t41;
+  core::Map<core::String, core::List<core::int>?> map42 = block {
+    final core::Map<core::String, core::List<core::int>?> #t42 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::List<core::int>?> #t43 in <core::String, core::List<core::int>?>{"bar": <core::int>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+          #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}{core::String}, #t43.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t42.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t42;
+  core::List<core::int> list50 = block {
+    final core::List<core::int> #t44 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t44.{core::List::addAll}{Invariant}(<core::int>[]){(core::Iterable<core::int>) → void};
+  } =>#t44;
+  core::Set<core::int?> set50 = block {
+    final core::Set<core::int?> #t45 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t45.{core::Set::addAll}{Invariant}(<core::int?>[]){(core::Iterable<core::int?>) → void};
+    #t45.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t45;
+  core::Map<core::String, core::int?> map50 = block {
+    final core::Map<core::String, core::int?> #t46 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, core::int?> #t47 in <core::String, core::int?>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+        #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}{core::String}, #t47.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t46.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t46;
+  core::List<core::int> list51 = block {
+    final core::List<core::int> #t48 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t48.{core::List::addAll}{Invariant}( block {
+        final core::Set<core::int> #t49 = col::LinkedHashSet::•<core::int>();
+      } =>#t49){(core::Iterable<core::int>) → void};
+  } =>#t48;
+  core::Set<core::int?> set51 = block {
+    final core::Set<core::int?> #t50 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t50.{core::Set::addAll}{Invariant}( block {
+        final core::Set<core::int?> #t51 = col::LinkedHashSet::•<core::int?>();
+      } =>#t51){(core::Iterable<core::int?>) → void};
+    #t50.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t50;
+  core::List<core::int> list52 = block {
+    final core::List<core::int> #t52 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t52.{core::List::addAll}{Invariant}(<core::int>[]){(core::Iterable<core::int>) → void};
+  } =>#t52;
+  core::Set<core::int?> set52 = block {
+    final core::Set<core::int?> #t53 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t53.{core::Set::addAll}{Invariant}(<core::int?>[]){(core::Iterable<core::int?>) → void};
+    #t53.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t53;
+  core::Map<core::String, core::int?> map52 = block {
+    final core::Map<core::String, core::int?> #t54 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::int?> #t55 in <core::String, core::int?>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+          #t54.{core::Map::[]=}{Invariant}(#t55.{core::MapEntry::key}{core::String}, #t55.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t54.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t54;
+  core::List<core::List<core::int>> list60 = block {
+    final core::List<core::List<core::int>> #t56 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t56.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t56;
+  core::Set<core::List<core::int>?> set60 = block {
+    final core::Set<core::List<core::int>?> #t57 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t57.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t57.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t57;
+  core::Map<core::String, core::List<core::int>?> map60 = block {
+    final core::Map<core::String, core::List<core::int>?> #t58 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, core::List<core::int>?> #t59 in <core::String, core::List<core::int>?>{"bar": <core::int>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+        #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}{core::String}, #t59.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t58.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t58;
+  core::List<core::List<core::int>> list61 = block {
+    final core::List<core::List<core::int>> #t60 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t60.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t60;
+  core::Set<core::List<core::int>?> set61 = block {
+    final core::Set<core::List<core::int>?> #t61 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t61.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t61.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t61;
+  core::Map<core::String, core::List<core::int>?> map61 = block {
+    final core::Map<core::String, core::List<core::int>?> #t62 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::List<core::int>?> #t63 in <core::String, core::List<core::int>?>{"bar": <core::int>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+          #t62.{core::Map::[]=}{Invariant}(#t63.{core::MapEntry::key}{core::String}, #t63.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t62.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t62;
+  core::List<core::List<core::int>> list70 = block {
+    final core::List<core::List<core::int>> #t64 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t64.{core::List::add}{Invariant}(<core::int>[]){(core::List<core::int>) → void};
+  } =>#t64;
+  core::Set<core::List<core::int>?> set70 = block {
+    final core::Set<core::List<core::int>?> #t65 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t65.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>?) → core::bool};
+    #t65.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t65;
+  core::List<core::List<core::int>> list71 = block {
+    final core::List<core::List<core::int>> #t66 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t66.{core::List::add}{Invariant}(<core::int>[]){(core::List<core::int>) → void};
+  } =>#t66;
+  core::Set<core::List<core::int>?> set71 = block {
+    final core::Set<core::List<core::int>?> #t67 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t67.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>?) → core::bool};
+    #t67.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t67;
+  core::List<core::num> list80 = block {
+    final core::List<core::num> #t68 = <core::num>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t68.{core::List::add}{Invariant}(42){(core::num) → void};
+    else
+      #t68.{core::List::add}{Invariant}(3.14){(core::num) → void};
+  } =>#t68;
+  core::Set<core::num?> set80 = block {
+    final core::Set<core::num?> #t69 = col::LinkedHashSet::•<core::num?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t69.{core::Set::add}{Invariant}(42){(core::num?) → core::bool};
+    else
+      #t69.{core::Set::add}{Invariant}(3.14){(core::num?) → core::bool};
+    #t69.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t69;
+  core::Map<core::String, core::num?> map80 = block {
+    final core::Map<core::String, core::num?> #t70 = <core::String, core::num?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t70.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::num?) → void};
+    else
+      #t70.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String, core::num?) → void};
+    #t70.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t70;
+  core::List<core::num> list81 = block {
+    final core::List<core::num> #t71 = <core::num>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t71.{core::List::addAll}{Invariant}(listInt){(core::Iterable<core::num>) → void};
+    else
+      #t71.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num>) → void};
+  } =>#t71;
+  core::Set<core::num?> set81 = block {
+    final core::Set<core::num?> #t72 = col::LinkedHashSet::•<core::num?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t72.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num?>) → void};
+    else
+      #t72.{core::Set::addAll}{Invariant}(listDouble){(core::Iterable<core::num?>) → void};
+    #t72.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t72;
+  core::Map<core::String, core::num?> map81 = block {
+    final core::Map<core::String, core::num?> #t73 = <core::String, core::num?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, core::num?> #t74 in mapToInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>})
+        #t73.{core::Map::[]=}{Invariant}(#t74.{core::MapEntry::key}{core::String}, #t74.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+    else
+      for (final core::MapEntry<core::String, core::num?> #t75 in mapToDouble.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>})
+        #t73.{core::Map::[]=}{Invariant}(#t75.{core::MapEntry::key}{core::String}, #t75.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+    #t73.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t73;
+  core::List<dynamic> list82 = block {
+    final core::List<dynamic> #t76 = <dynamic>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t76.{core::List::addAll}{Invariant}(listInt){(core::Iterable<dynamic>) → void};
+    else
+      #t76.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+  } =>#t76;
+  core::Set<dynamic> set82 = block {
+    final core::Set<dynamic> #t77 = col::LinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t77.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<dynamic>) → void};
+    else
+      #t77.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+    #t77.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t77;
+  core::Set<dynamic> map82 = block {
+    final core::Set<dynamic> #t78 = col::LinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t78.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  var map82 = {if (oracle(\"foo\")) ...mapToInt else ...dynVar, null};
+                                     ^"){(dynamic) → core::bool};
+    else
+      #t78.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+    #t78.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t78;
+  core::List<core::num> list83 = block {
+    final core::List<core::num> #t79 = <core::num>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t79.{core::List::add}{Invariant}(42){(core::num) → void};
+    else
+      #t79.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num>) → void};
+  } =>#t79;
+  core::Set<core::num?> set83 = block {
+    final core::Set<core::num?> #t80 = col::LinkedHashSet::•<core::num?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t80.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num?>) → void};
+    else
+      #t80.{core::Set::add}{Invariant}(3.14){(core::num?) → core::bool};
+    #t80.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t80;
+  core::Map<core::String, core::num?> map83 = block {
+    final core::Map<core::String, core::num?> #t81 = <core::String, core::num?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, core::num?> #t82 in mapToInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>})
+        #t81.{core::Map::[]=}{Invariant}(#t82.{core::MapEntry::key}{core::String}, #t82.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+    else
+      #t81.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String, core::num?) → void};
+    #t81.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t81;
+  core::List<core::int> list90 = block {
+    final core::List<core::int> #t83 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t83.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+  } =>#t83;
+  core::Set<core::int?> set90 = block {
+    final core::Set<core::int?> #t84 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t84.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t84.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t84;
+  core::Map<core::String, core::int?> map90 = block {
+    final core::Map<core::String, core::int?> #t85 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t85.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::String, core::int?) → void};
+    #t85.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t85;
+  core::List<core::int> list91 = block {
+    final core::List<core::int> #t86 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final dynamic #t87 in dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+        final core::int #t88 = #t87 as{TypeError,ForNonNullableByDefault} core::int;
+        #t86.{core::List::add}{Invariant}(#t88){(core::int) → void};
+      }
+  } =>#t86;
+  core::Set<core::int?> set91 = block {
+    final core::Set<core::int?> #t89 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final dynamic #t90 in dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+        final core::int? #t91 = #t90 as{TypeError,ForNonNullableByDefault} core::int?;
+        #t89.{core::Set::add}{Invariant}(#t91){(core::int?) → core::bool};
+      }
+    #t89.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t89;
+  core::Map<core::String, core::int?> map91 = block {
+    final core::Map<core::String, core::int?> #t92 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<dynamic, dynamic> #t93 in (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>}) {
+        final core::String #t94 = #t93.{core::MapEntry::key}{dynamic} as{TypeError,ForNonNullableByDefault} core::String;
+        final core::int? #t95 = #t93.{core::MapEntry::value}{dynamic} as{TypeError,ForNonNullableByDefault} core::int?;
+        #t92.{core::Map::[]=}{Invariant}(#t94, #t95){(core::String, core::int?) → void};
+      }
+    #t92.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t92;
+  core::List<core::int> list100 = block {
+    final core::List<core::int> #t96 = <core::int>[];
+    if(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t96.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t96;
+  core::Set<core::int> set100 = block {
+    final core::Set<core::int> #t97 = col::LinkedHashSet::•<core::int>();
+    if(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t97.{core::Set::add}{Invariant}(42){(core::int) → core::bool};
+  } =>#t97;
+  core::Map<core::int, core::int> map100 = block {
+    final core::Map<core::int, core::int> #t98 = <core::int, core::int>{};
+    if(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t98.{core::Map::[]=}{Invariant}(42, 42){(core::int, core::int) → void};
+  } =>#t98;
+}
+static method testIfElementErrors(core::Map<core::int, core::int> map) → dynamic {
+  block {
+    final core::List<core::int> #t99 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t99.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int>[if (oracle(\"foo\")) \"bar\"];
+                           ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+  } =>#t99;
+  block {
+    final core::Set<core::int?> #t100 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t100.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:88:29: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int?>{if (oracle(\"foo\")) \"bar\", null};
+                            ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t100.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t100;
+  block {
+    final core::Map<core::String, core::int?> #t101 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t101.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:89:44: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <String, int?>{if (oracle(\"foo\")) \"bar\": \"bar\", \"baz\": null};
+                                           ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?){(core::String, core::int?) → void};
+    #t101.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t101;
+  block {
+    final core::List<core::int> #t102 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t102.{core::List::addAll}{Invariant}(<core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int>[if (oracle(\"foo\")) ...[\"bar\"]];
+                               ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int]){(core::Iterable<core::int>) → void};
+  } =>#t102;
+  block {
+    final core::Set<core::int?> #t103 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t103.{core::Set::addAll}{Invariant}(<core::int?>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:91:33: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int?>{if (oracle(\"foo\")) ...[\"bar\"], null};
+                                ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?]){(core::Iterable<core::int?>) → void};
+    #t103.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t103;
+  block {
+    final core::Map<core::String, core::int?> #t104 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, core::int?> #t105 in <core::String, core::int?>{"bar": invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:92:48: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <String, int?>{if (oracle(\"foo\")) ...{\"bar\": \"bar\"}, \"baz\": null};
+                                               ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+        #t104.{core::Map::[]=}{Invariant}(#t105.{core::MapEntry::key}{core::String}, #t105.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t104.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t104;
+  block {
+    final core::List<core::int> #t106 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t106.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[if (oracle(\"foo\")) ...map];
+                              ^"){(core::int) → void};
+  } =>#t106;
+  block {
+    final core::Set<core::int?> #t107 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t107.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:94:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{if (oracle(\"foo\")) ...map, null};
+                               ^"){(core::int?) → core::bool};
+    #t107.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t107;
+  <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:95:40: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
+                                       ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:95:40: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
+                                       ^": null};
+  block {
+    final core::List<core::String> #t108 = <core::String>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  <String>[if (oracle(\"foo\")) 42 else 3.14];
+                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+    else
+      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+  <String>[if (oracle(\"foo\")) 42 else 3.14];
+                                      ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+  } =>#t108;
+  block {
+    final core::Set<core::String?> #t109 = col::LinkedHashSet::•<core::String?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:97:32: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+  <String?>{if (oracle(\"foo\")) 42 else 3.14, null};
+                               ^" in 42 as{TypeError,ForNonNullableByDefault} core::String?){(core::String?) → core::bool};
+    else
+      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:97:40: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+  <String?>{if (oracle(\"foo\")) 42 else 3.14, null};
+                                       ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String?){(core::String?) → core::bool};
+    #t109.{core::Set::add}{Invariant}(null){(core::String?) → core::bool};
+  } =>#t109;
+  block {
+    final core::Map<core::String, core::String?> #t110 = <core::String, core::String?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t110.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:98:47: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+  <String, String?>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
+                                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String?){(core::String, core::String?) → void};
+    else
+      #t110.{core::Map::[]=}{Invariant}("baz", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:98:62: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+  <String, String?>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
+                                                             ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String?){(core::String, core::String?) → void};
+    #t110.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::String?) → void};
+  } =>#t110;
+  block {
+    final core::List<core::int> #t111 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t111.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[if (oracle(\"foo\")) ...map else 42];
+                              ^"){(core::int) → void};
+    else
+      #t111.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t111;
+  block {
+    final core::Set<core::int?> #t112 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t112.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:100:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{if (oracle(\"foo\")) ...map else 42, null};
+                               ^"){(core::int?) → core::bool};
+    else
+      #t112.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t112.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t112;
+  <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:101:40: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
+                                       ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:101:40: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
+                                       ^": null};
+  block {
+    final core::List<core::int> #t113 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t113.{core::List::add}{Invariant}(42){(core::int) → void};
+    else
+      #t113.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[if (oracle(\"foo\")) 42 else ...map];
+                                      ^"){(core::int) → void};
+  } =>#t113;
+  block {
+    final core::Set<core::int?> #t114 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t114.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:103:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{if (oracle(\"foo\")) ...map else 42, null};
+                               ^"){(core::int?) → core::bool};
+    else
+      #t114.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t114.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t114;
+  <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:104:55: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) \"bar\": 42 else ...[42], \"baz\": null};
+                                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:104:55: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) \"bar\": 42 else ...[42], \"baz\": null};
+                                                      ^": null};
+  core::Set<dynamic> set10 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:106:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  Set<dynamic> set10 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
+                       ^";
+  core::Map<dynamic, dynamic> map10 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:107:53: Error: Expected ':' after this.
+  Map<dynamic, dynamic> map10 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
+                                                    ^": null};
+  core::Set<dynamic> set11 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  Set<dynamic> set11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
+                       ^";
+  core::Map<dynamic, dynamic> map11 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:109:70: Error: Expected ':' after this.
+  Map<dynamic, dynamic> map11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
+                                                                     ^": null};
+  core::Map<dynamic, Null> map12 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:110:35: Error: Expected ':' after this.
+  var map12 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
+                                  ^": null};
+  core::Map<dynamic, Null> map13 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:111:52: Error: Expected ':' after this.
+  var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
+                                                   ^": null};
+  core::List<core::int> list20 = block {
+    final core::List<core::int> #t115 = <core::int>[];
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+  List<int> list20 = [if (42) 42];
+                          ^" in 42 as{TypeError,ForNonNullableByDefault} core::bool)
+      #t115.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t115;
+  core::Set<core::int> set20 = block {
+    final core::Set<core::int> #t116 = col::LinkedHashSet::•<core::int>();
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:113:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+  Set<int> set20 = {if (42) 42};
+                        ^" in 42 as{TypeError,ForNonNullableByDefault} core::bool)
+      #t116.{core::Set::add}{Invariant}(42){(core::int) → core::bool};
+  } =>#t116;
+  core::Map<core::int, core::int> map30 = block {
+    final core::Map<core::int, core::int> #t117 = <core::int, core::int>{};
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:114:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+  Map<int, int> map30 = {if (42) 42: 42};
+                             ^" in 42 as{TypeError,ForNonNullableByDefault} core::bool)
+      #t117.{core::Map::[]=}{Invariant}(42, 42){(core::int, core::int) → void};
+  } =>#t117;
+  core::List<core::String> list40 = block {
+    final core::List<core::String> #t118 = <core::String>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+  List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
+                                                    ^" in true as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+    else
+      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
+                                                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+  } =>#t118;
+  core::Set<core::String> set40 = block {
+    final core::Set<core::String> #t119 = col::LinkedHashSet::•<core::String>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+  Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
+                                                  ^" in true as{TypeError,ForNonNullableByDefault} core::String){(core::String) → core::bool};
+    else
+      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
+                                                            ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → core::bool};
+  } =>#t119;
+  core::Map<core::String, core::int> map40 = block {
+    final core::Map<core::String, core::int> #t120 = <core::String, core::int>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+  Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
+                                                            ^" in true as{TypeError,ForNonNullableByDefault} core::String, 42){(core::String, core::int) → void};
+    else
+      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
+                                                                          ^" in 42 as{TypeError,ForNonNullableByDefault} core::String, 42){(core::String, core::int) → void};
+  } =>#t120;
+  core::Map<core::int, core::String> map41 = block {
+    final core::Map<core::int, core::String> #t121 = <core::int, core::String>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+  Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
+                                                                ^" in true as{TypeError,ForNonNullableByDefault} core::String){(core::int, core::String) → void};
+    else
+      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
+                                                                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::int, core::String) → void};
+  } =>#t121;
+}
+static method testForElement(dynamic dynVar, core::List<core::int> listInt, core::List<core::double> listDouble, core::int index, core::Map<core::String, core::int> mapStringInt, core::Map<core::String, core::double> mapStringDouble) → dynamic {
+  core::List<core::int> list10 = block {
+    final core::List<core::int> #t122 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t122.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t122;
+  core::Set<core::int?> set10 = block {
+    final core::Set<core::int?> #t123 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t123.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t123.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t123;
+  core::Map<core::String, core::int?> map10 = block {
+    final core::Map<core::String, core::int?> #t124 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t124.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int?) → void};
+    #t124.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t124;
+  core::List<dynamic> list11 = block {
+    final core::List<dynamic> #t125 = <dynamic>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t125.{core::List::add}{Invariant}(dynVar){(dynamic) → void};
+  } =>#t125;
+  core::Set<dynamic> set11 = block {
+    final core::Set<dynamic> #t126 = col::LinkedHashSet::•<dynamic>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t126.{core::Set::add}{Invariant}(dynVar){(dynamic) → core::bool};
+    #t126.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t126;
+  core::Map<core::String, dynamic> map11 = block {
+    final core::Map<core::String, dynamic> #t127 = <core::String, dynamic>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t127.{core::Map::[]=}{Invariant}("bar", dynVar){(core::String, dynamic) → void};
+    #t127.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t127;
+  core::List<core::List<core::int>> list12 = block {
+    final core::List<core::List<core::int>> #t128 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t128.{core::List::add}{Invariant}(<core::int>[42]){(core::List<core::int>) → void};
+  } =>#t128;
+  core::Set<core::List<core::int>?> set12 = block {
+    final core::Set<core::List<core::int>?> #t129 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t129.{core::Set::add}{Invariant}(<core::int>[42]){(core::List<core::int>?) → core::bool};
+    #t129.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t129;
+  core::Map<core::String, core::List<core::int>?> map12 = block {
+    final core::Map<core::String, core::List<core::int>?> #t130 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t130.{core::Map::[]=}{Invariant}("bar", <core::int>[42]){(core::String, core::List<core::int>?) → void};
+    #t130.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t130;
+  core::List<core::int> list20 = block {
+    final core::List<core::int> #t131 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t131.{core::List::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int>) → void};
+  } =>#t131;
+  core::Set<core::int?> set20 = block {
+    final core::Set<core::int?> #t132 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t132.{core::Set::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int?>) → void};
+    #t132.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t132;
+  core::Map<core::String, core::int?> map20 = block {
+    final core::Map<core::String, core::int?> #t133 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<core::String, core::int?> #t134 in <core::String, core::int>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+        #t133.{core::Map::[]=}{Invariant}(#t134.{core::MapEntry::key}{core::String}, #t134.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t133.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t133;
+  core::List<dynamic> list21 = block {
+    final core::List<dynamic> #t135 = <dynamic>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t135.{core::List::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+  } =>#t135;
+  core::Set<dynamic> set21 = block {
+    final core::Set<dynamic> #t136 = col::LinkedHashSet::•<dynamic>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t136.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+    #t136.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t136;
+  core::Map<core::String, dynamic> map21 = block {
+    final core::Map<core::String, dynamic> #t137 = <core::String, dynamic>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<core::String, dynamic> #t138 in <core::String, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, dynamic>>})
+        #t137.{core::Map::[]=}{Invariant}(#t138.{core::MapEntry::key}{core::String}, #t138.{core::MapEntry::value}{dynamic}){(core::String, dynamic) → void};
+    #t137.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t137;
+  core::List<core::List<core::int>> list22 = block {
+    final core::List<core::List<core::int>> #t139 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t139.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t139;
+  core::Set<core::List<core::int>?> set22 = block {
+    final core::Set<core::List<core::int>?> #t140 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t140.{core::Set::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t140.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t140;
+  core::Map<core::String, core::List<core::int>?> map22 = block {
+    final core::Map<core::String, core::List<core::int>?> #t141 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<core::String, core::List<core::int>?> #t142 in <core::String, core::List<core::int>>{"bar": <core::int>[42]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+        #t141.{core::Map::[]=}{Invariant}(#t142.{core::MapEntry::key}{core::String}, #t142.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t141.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t141;
+  core::List<core::int> list30 = block {
+    final core::List<core::int> #t143 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t143.{core::List::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int>) → void};
+  } =>#t143;
+  core::Set<core::int?> set30 = block {
+    final core::Set<core::int?> #t144 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t144.{core::Set::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int?>) → void};
+    #t144.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t144;
+  core::Map<core::String, core::int?> map30 = block {
+    final core::Map<core::String, core::int?> #t145 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::int?> #t146 in <core::String, core::int>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+          #t145.{core::Map::[]=}{Invariant}(#t146.{core::MapEntry::key}{core::String}, #t146.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t145.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t145;
+  core::List<dynamic> list31 = block {
+    final core::List<dynamic> #t147 = <dynamic>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t147.{core::List::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+  } =>#t147;
+  core::Set<dynamic> set31 = block {
+    final core::Set<dynamic> #t148 = col::LinkedHashSet::•<dynamic>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t148.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+    #t148.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t148;
+  core::Map<core::String, dynamic> map31 = block {
+    final core::Map<core::String, dynamic> #t149 = <core::String, dynamic>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, dynamic> #t150 in <core::String, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, dynamic>>})
+          #t149.{core::Map::[]=}{Invariant}(#t150.{core::MapEntry::key}{core::String}, #t150.{core::MapEntry::value}{dynamic}){(core::String, dynamic) → void};
+    #t149.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t149;
+  core::List<core::List<core::int>> list33 = block {
+    final core::List<core::List<core::int>> #t151 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t151.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t151;
+  core::Set<core::List<core::int>?> set33 = block {
+    final core::Set<core::List<core::int>?> #t152 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t152.{core::Set::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t152.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t152;
+  core::Map<core::String, core::List<core::int>?> map33 = block {
+    final core::Map<core::String, core::List<core::int>?> #t153 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::List<core::int>?> #t154 in <core::String, core::List<core::int>>{"bar": <core::int>[42]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+          #t153.{core::Map::[]=}{Invariant}(#t154.{core::MapEntry::key}{core::String}, #t154.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t153.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t153;
+  core::List<core::List<core::int>> list40 = block {
+    final core::List<core::List<core::int>> #t155 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t155.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t155;
+  core::Set<core::List<core::int>?> set40 = block {
+    final core::Set<core::List<core::int>?> #t156 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t156.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t156.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t156;
+  core::Map<core::String, core::List<core::int>?> map40 = block {
+    final core::Map<core::String, core::List<core::int>?> #t157 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<core::String, core::List<core::int>?> #t158 in <core::String, core::List<core::int>?>{"bar": <core::int>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+        #t157.{core::Map::[]=}{Invariant}(#t158.{core::MapEntry::key}{core::String}, #t158.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t157.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t157;
+  core::List<core::List<core::int>> list41 = block {
+    final core::List<core::List<core::int>> #t159 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t159.{core::List::addAll}{Invariant}( block {
+        final core::Set<core::List<core::int>> #t160 = col::LinkedHashSet::•<core::List<core::int>>();
+        #t160.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>) → core::bool};
+      } =>#t160){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t159;
+  core::Set<core::List<core::int>?> set41 = block {
+    final core::Set<core::List<core::int>?> #t161 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t161.{core::Set::addAll}{Invariant}( block {
+        final core::Set<core::List<core::int>?> #t162 = col::LinkedHashSet::•<core::List<core::int>?>();
+        #t162.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>?) → core::bool};
+      } =>#t162){(core::Iterable<core::List<core::int>?>) → void};
+    #t161.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t161;
+  core::List<core::List<core::int>> list42 = block {
+    final core::List<core::List<core::int>> #t163 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t163.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t163;
+  core::Set<core::List<core::int>?> set42 = block {
+    final core::Set<core::List<core::int>?> #t164 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t164.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t164.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t164;
+  core::Map<core::String, core::List<core::int>?> map42 = block {
+    final core::Map<core::String, core::List<core::int>?> #t165 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::List<core::int>?> #t166 in <core::String, core::List<core::int>?>{"bar": <core::int>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+          #t165.{core::Map::[]=}{Invariant}(#t166.{core::MapEntry::key}{core::String}, #t166.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t165.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t165;
+  core::List<core::int> list50 = block {
+    final core::List<core::int> #t167 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t167.{core::List::addAll}{Invariant}(<core::int>[]){(core::Iterable<core::int>) → void};
+  } =>#t167;
+  core::Set<core::int?> set50 = block {
+    final core::Set<core::int?> #t168 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t168.{core::Set::addAll}{Invariant}(<core::int?>[]){(core::Iterable<core::int?>) → void};
+    #t168.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t168;
+  core::Map<core::String, core::int?> map50 = block {
+    final core::Map<core::String, core::int?> #t169 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<core::String, core::int?> #t170 in <core::String, core::int?>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+        #t169.{core::Map::[]=}{Invariant}(#t170.{core::MapEntry::key}{core::String}, #t170.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t169.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t169;
+  core::List<core::int> list51 = block {
+    final core::List<core::int> #t171 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t171.{core::List::addAll}{Invariant}( block {
+        final core::Set<core::int> #t172 = col::LinkedHashSet::•<core::int>();
+      } =>#t172){(core::Iterable<core::int>) → void};
+  } =>#t171;
+  core::Set<core::int?> set51 = block {
+    final core::Set<core::int?> #t173 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t173.{core::Set::addAll}{Invariant}( block {
+        final core::Set<core::int?> #t174 = col::LinkedHashSet::•<core::int?>();
+      } =>#t174){(core::Iterable<core::int?>) → void};
+    #t173.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t173;
+  core::List<core::int> list52 = block {
+    final core::List<core::int> #t175 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t175.{core::List::addAll}{Invariant}(<core::int>[]){(core::Iterable<core::int>) → void};
+  } =>#t175;
+  core::Set<core::int?> set52 = block {
+    final core::Set<core::int?> #t176 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t176.{core::Set::addAll}{Invariant}(<core::int?>[]){(core::Iterable<core::int?>) → void};
+    #t176.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t176;
+  core::List<core::List<core::int>> list60 = block {
+    final core::List<core::List<core::int>> #t177 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t177.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t177;
+  core::Set<core::List<core::int>?> set60 = block {
+    final core::Set<core::List<core::int>?> #t178 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t178.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t178.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t178;
+  core::Map<core::String, core::List<core::int>?> map60 = block {
+    final core::Map<core::String, core::List<core::int>?> #t179 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<core::String, core::List<core::int>?> #t180 in <core::String, core::List<core::int>?>{"bar": <core::int>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+        #t179.{core::Map::[]=}{Invariant}(#t180.{core::MapEntry::key}{core::String}, #t180.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t179.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t179;
+  core::List<core::List<core::int>> list61 = block {
+    final core::List<core::List<core::int>> #t181 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t181.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t181;
+  core::Set<core::List<core::int>?> set61 = block {
+    final core::Set<core::List<core::int>?> #t182 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t182.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t182.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t182;
+  core::Map<core::String, core::List<core::int>?> map61 = block {
+    final core::Map<core::String, core::List<core::int>?> #t183 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::List<core::int>?> #t184 in <core::String, core::List<core::int>?>{"bar": <core::int>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+          #t183.{core::Map::[]=}{Invariant}(#t184.{core::MapEntry::key}{core::String}, #t184.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t183.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t183;
+  core::List<core::List<core::int>> list70 = block {
+    final core::List<core::List<core::int>> #t185 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t185.{core::List::add}{Invariant}(<core::int>[]){(core::List<core::int>) → void};
+  } =>#t185;
+  core::Set<core::List<core::int>?> set70 = block {
+    final core::Set<core::List<core::int>?> #t186 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t186.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>?) → core::bool};
+    #t186.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t186;
+  core::Map<core::String, core::List<core::int>?> map70 = block {
+    final core::Map<core::String, core::List<core::int>?> #t187 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t187.{core::Map::[]=}{Invariant}("bar", <core::int>[]){(core::String, core::List<core::int>?) → void};
+    #t187.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t187;
+  core::List<core::List<core::int>> list71 = block {
+    final core::List<core::List<core::int>> #t188 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t188.{core::List::add}{Invariant}(<core::int>[]){(core::List<core::int>) → void};
+  } =>#t188;
+  core::Set<core::List<core::int>?> set71 = block {
+    final core::Set<core::List<core::int>?> #t189 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t189.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>?) → core::bool};
+    #t189.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t189;
+  core::Map<core::String, core::List<core::int>?> map71 = block {
+    final core::Map<core::String, core::List<core::int>?> #t190 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t190.{core::Map::[]=}{Invariant}("bar", <core::int>[]){(core::String, core::List<core::int>?) → void};
+    #t190.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t190;
+  core::List<core::num> list80 = block {
+    final core::List<core::num> #t191 = <core::num>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t191.{core::List::add}{Invariant}(42){(core::num) → void};
+      else
+        #t191.{core::List::add}{Invariant}(3.14){(core::num) → void};
+  } =>#t191;
+  core::Set<core::num?> set80 = block {
+    final core::Set<core::num?> #t192 = col::LinkedHashSet::•<core::num?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t192.{core::Set::add}{Invariant}(42){(core::num?) → core::bool};
+      else
+        #t192.{core::Set::add}{Invariant}(3.14){(core::num?) → core::bool};
+    #t192.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t192;
+  core::Map<core::String, core::num?> map80 = block {
+    final core::Map<core::String, core::num?> #t193 = <core::String, core::num?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t193.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::num?) → void};
+      else
+        #t193.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String, core::num?) → void};
+    #t193.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t193;
+  core::List<core::num> list81 = block {
+    final core::List<core::num> #t194 = <core::num>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t194.{core::List::addAll}{Invariant}(listInt){(core::Iterable<core::num>) → void};
+      else
+        #t194.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num>) → void};
+  } =>#t194;
+  core::Set<core::num?> set81 = block {
+    final core::Set<core::num?> #t195 = col::LinkedHashSet::•<core::num?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t195.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num?>) → void};
+      else
+        #t195.{core::Set::addAll}{Invariant}(listDouble){(core::Iterable<core::num?>) → void};
+    #t195.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t195;
+  core::Map<core::String, core::num?> map81 = block {
+    final core::Map<core::String, core::num?> #t196 = <core::String, core::num?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::num?> #t197 in mapStringInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>})
+          #t196.{core::Map::[]=}{Invariant}(#t197.{core::MapEntry::key}{core::String}, #t197.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+      else
+        for (final core::MapEntry<core::String, core::num?> #t198 in mapStringDouble.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>})
+          #t196.{core::Map::[]=}{Invariant}(#t198.{core::MapEntry::key}{core::String}, #t198.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+    #t196.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t196;
+  core::List<dynamic> list82 = block {
+    final core::List<dynamic> #t199 = <dynamic>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t199.{core::List::addAll}{Invariant}(listInt){(core::Iterable<dynamic>) → void};
+      else
+        #t199.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+  } =>#t199;
+  core::Set<dynamic> set82 = block {
+    final core::Set<dynamic> #t200 = col::LinkedHashSet::•<dynamic>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t200.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<dynamic>) → void};
+      else
+        #t200.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+    #t200.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t200;
+  core::Map<dynamic, dynamic> map82 = block {
+    final core::Map<dynamic, dynamic> #t201 = <dynamic, dynamic>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<dynamic, dynamic> #t202 in mapStringInt.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
+          #t201.{core::Map::[]=}{Invariant}(#t202.{core::MapEntry::key}{dynamic}, #t202.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+      else
+        for (final core::MapEntry<dynamic, dynamic> #t203 in (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
+          #t201.{core::Map::[]=}{Invariant}(#t203.{core::MapEntry::key}{dynamic}, #t203.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+    #t201.{core::Map::[]=}{Invariant}("baz", null){(dynamic, dynamic) → void};
+  } =>#t201;
+  core::List<core::num> list83 = block {
+    final core::List<core::num> #t204 = <core::num>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t204.{core::List::add}{Invariant}(42){(core::num) → void};
+      else
+        #t204.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num>) → void};
+  } =>#t204;
+  core::Set<core::num?> set83 = block {
+    final core::Set<core::num?> #t205 = col::LinkedHashSet::•<core::num?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t205.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num?>) → void};
+      else
+        #t205.{core::Set::add}{Invariant}(3.14){(core::num?) → core::bool};
+    #t205.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t205;
+  core::Map<core::String, core::num?> map83 = block {
+    final core::Map<core::String, core::num?> #t206 = <core::String, core::num?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::num?> #t207 in mapStringInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>})
+          #t206.{core::Map::[]=}{Invariant}(#t207.{core::MapEntry::key}{core::String}, #t207.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+      else
+        #t206.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String, core::num?) → void};
+    #t206.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t206;
+  core::List<core::int> list90 = block {
+    final core::List<core::int> #t208 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t208.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+  } =>#t208;
+  core::Set<core::int?> set90 = block {
+    final core::Set<core::int?> #t209 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t209.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t209.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t209;
+  core::Map<core::String, core::int?> map90 = block {
+    final core::Map<core::String, core::int?> #t210 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t210.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::String, core::int?) → void};
+    #t210.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t210;
+  core::List<core::int> list91 = block {
+    final core::List<core::int> #t211 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final dynamic #t212 in dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+        final core::int #t213 = #t212 as{TypeError,ForNonNullableByDefault} core::int;
+        #t211.{core::List::add}{Invariant}(#t213){(core::int) → void};
+      }
+  } =>#t211;
+  core::Set<core::int?> set91 = block {
+    final core::Set<core::int?> #t214 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final dynamic #t215 in dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+        final core::int? #t216 = #t215 as{TypeError,ForNonNullableByDefault} core::int?;
+        #t214.{core::Set::add}{Invariant}(#t216){(core::int?) → core::bool};
+      }
+    #t214.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t214;
+  core::Map<core::String, core::int?> map91 = block {
+    final core::Map<core::String, core::int?> #t217 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<dynamic, dynamic> #t218 in (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>}) {
+        final core::String #t219 = #t218.{core::MapEntry::key}{dynamic} as{TypeError,ForNonNullableByDefault} core::String;
+        final core::int? #t220 = #t218.{core::MapEntry::value}{dynamic} as{TypeError,ForNonNullableByDefault} core::int?;
+        #t217.{core::Map::[]=}{Invariant}(#t219, #t220){(core::String, core::int?) → void};
+      }
+    #t217.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t217;
+  core::List<core::int> list100 = block {
+    final core::List<core::int> #t221 = <core::int>[];
+    for (final core::int #t222 = index = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; index = index.{core::num::+}(1){(core::num) → core::int})
+      #t221.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t221;
+  core::Set<core::int> set100 = block {
+    final core::Set<core::int> #t223 = col::LinkedHashSet::•<core::int>();
+    for (final core::int #t224 = index = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; index = index.{core::num::+}(1){(core::num) → core::int})
+      #t223.{core::Set::add}{Invariant}(42){(core::int) → core::bool};
+  } =>#t223;
+  core::Map<core::String, core::int> map100 = block {
+    final core::Map<core::String, core::int> #t225 = <core::String, core::int>{};
+    for (final core::int #t226 = index = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; index = index.{core::num::+}(1){(core::num) → core::int})
+      #t225.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int) → void};
+  } =>#t225;
+  core::List<core::int> list110 = block {
+    final core::List<core::int> #t227 = <core::int>[];
+    for (core::int i in <core::int>[1, 2, 3])
+      #t227.{core::List::add}{Invariant}(i){(core::int) → void};
+  } =>#t227;
+  core::Set<core::int?> set110 = block {
+    final core::Set<core::int?> #t228 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i in <core::int>[1, 2, 3])
+      #t228.{core::Set::add}{Invariant}(i){(core::int?) → core::bool};
+    #t228.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t228;
+  core::Map<core::String, core::int?> map110 = block {
+    final core::Map<core::String, core::int?> #t229 = <core::String, core::int?>{};
+    for (core::int i in <core::int>[1, 2, 3])
+      #t229.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int?) → void};
+    #t229.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t229;
+  core::List<core::int> list120 = block {
+    final core::List<core::int> #t230 = <core::int>[];
+    for (dynamic i in dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t230.{core::List::add}{Invariant}(i as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+  } =>#t230;
+  core::Set<core::int?> set120 = block {
+    final core::Set<core::int?> #t231 = col::LinkedHashSet::•<core::int?>();
+    for (dynamic i in dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t231.{core::Set::add}{Invariant}(i as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t231.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t231;
+  core::Map<core::String, core::int?> map120 = block {
+    final core::Map<core::String, core::int?> #t232 = <core::String, core::int?>{};
+    for (dynamic i in dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t232.{core::Map::[]=}{Invariant}("bar", i as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::String, core::int?) → void};
+    #t232.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t232;
+  core::List<core::int> list130 = block {
+    final core::List<core::int> #t233 = <core::int>[];
+    for (core::int i = 1; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t233.{core::List::add}{Invariant}(i){(core::int) → void};
+  } =>#t233;
+  core::Set<core::int> set130 = block {
+    final core::Set<core::int> #t234 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 1; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t234.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
+  } =>#t234;
+  core::Map<core::int, core::int> map130 = block {
+    final core::Map<core::int, core::int> #t235 = <core::int, core::int>{};
+    for (core::int i = 1; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t235.{core::Map::[]=}{Invariant}(i, i){(core::int, core::int) → void};
+  } =>#t235;
+}
+static method testForElementErrors(core::Map<core::int, core::int> map, core::List<core::int> list) → dynamic async {
+  block {
+    final core::List<core::int> #t236 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t236.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) \"bar\"];
+                                            ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+  } =>#t236;
+  block {
+    final core::Set<core::int?> #t237 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t237.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:211:46: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) \"bar\", null};
+                                             ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t237.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t237;
+  block {
+    final core::Map<core::int, core::int?> #t238 = <core::int, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:51: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
+                                                  ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:58: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
+                                                         ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?){(core::int, core::int?) → void};
+    #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
+                                                                ^" in "baz" as{TypeError,ForNonNullableByDefault} core::int, null){(core::int, core::int?) → void};
+  } =>#t238;
+  block {
+    final core::List<core::int> #t239 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t239.{core::List::addAll}{Invariant}(<core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"]];
+                                                ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int]){(core::Iterable<core::int>) → void};
+  } =>#t239;
+  block {
+    final core::Set<core::int?> #t240 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t240.{core::Set::addAll}{Invariant}(<core::int?>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:214:50: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"], null};
+                                                 ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?]){(core::Iterable<core::int?>) → void};
+    #t240.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t240;
+  block {
+    final core::Map<core::int, core::int?> #t241 = <core::int, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<core::int, core::int?> #t242 in <core::int, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
+                                                      ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int: invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:62: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
+                                                             ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int?>>})
+        #t241.{core::Map::[]=}{Invariant}(#t242.{core::MapEntry::key}{core::int}, #t242.{core::MapEntry::value}{core::int?}){(core::int, core::int?) → void};
+    #t241.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
+                                                                     ^" in "baz" as{TypeError,ForNonNullableByDefault} core::int, null){(core::int, core::int?) → void};
+  } =>#t241;
+  block {
+    final core::List<core::int> #t243 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t243.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) ...map];
+                                               ^"){(core::int) → void};
+  } =>#t243;
+  block {
+    final core::Set<core::int?> #t244 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t244.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:217:49: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) ...map, null};
+                                                ^"){(core::int?) → core::bool};
+    #t244.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t244;
+  <core::int, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:218:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
+                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:218:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
+                                                     ^": null};
+  block {
+    final core::List<core::String> #t245 = <core::String>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
+                                                             ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+      else
+        #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+  <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
+                                                                     ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+  } =>#t245;
+  block {
+    final core::Set<core::String?> #t246 = col::LinkedHashSet::•<core::String?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:220:63: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+  <String?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
+                                                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String?){(core::String?) → core::bool};
+      else
+        #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:220:71: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+  <String?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
+                                                                      ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String?){(core::String?) → core::bool};
+    #t246.{core::Set::add}{Invariant}(null){(core::String?) → core::bool};
+  } =>#t246;
+  block {
+    final core::Map<core::String, core::String?> #t247 = <core::String, core::String?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:221:78: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+  <String, String?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
+                                                                             ^" in 42 as{TypeError,ForNonNullableByDefault} core::String?){(core::String, core::String?) → void};
+      else
+        #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:221:93: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+  <String, String?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
+                                                                                            ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String?){(core::String, core::String?) → void};
+    #t247.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::String?) → void};
+  } =>#t247;
+  block {
+    final core::List<core::int> #t248 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t248.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42];
+                                                             ^"){(core::int) → void};
+      else
+        #t248.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t248;
+  block {
+    final core::Set<core::int?> #t249 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t249.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:223:63: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42, null};
+                                                              ^"){(core::int?) → core::bool};
+      else
+        #t249.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t249.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t249;
+  <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:224:71: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
+                                                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:224:71: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
+                                                                      ^": null};
+  block {
+    final core::List<core::int> #t250 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t250.{core::List::add}{Invariant}(42){(core::int) → void};
+      else
+        #t250.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map];
+                                                                     ^"){(core::int) → void};
+  } =>#t250;
+  block {
+    final core::Set<core::int?> #t251 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t251.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+      else
+        #t251.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:226:71: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map, null};
+                                                                      ^"){(core::int?) → core::bool};
+    #t251.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t251;
+  <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:227:86: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else ...list, \"baz\": null};
+                                                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:227:86: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else ...list, \"baz\": null};
+                                                                                     ^": null};
+  final core::int i = 0;
+  block {
+    final core::List<core::int> #t252 = <core::int>[];
+    for (final core::int #t253 in <core::int>[1]) {
+      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:230:14: Error: Can't assign to the final variable 'i'.
+  <int>[for (i in <int>[1]) i];
+             ^";
+      #t252.{core::List::add}{Invariant}(i){(core::int) → void};
+    }
+  } =>#t252;
+  block {
+    final core::Set<core::int?> #t254 = col::LinkedHashSet::•<core::int?>();
+    for (final core::int #t255 in <core::int>[1]) {
+      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:231:15: Error: Can't assign to the final variable 'i'.
+  <int?>{for (i in <int>[1]) i, null};
+              ^";
+      #t254.{core::Set::add}{Invariant}(i){(core::int?) → core::bool};
+    }
+    #t254.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t254;
+  block {
+    final core::Map<core::String, core::int?> #t256 = <core::String, core::int?>{};
+    for (final core::int #t257 in <core::int>[1]) {
+      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:232:23: Error: Can't assign to the final variable 'i'.
+  <String, int?>{for (i in <int>[1]) \"bar\": i, \"baz\": null};
+                      ^";
+      #t256.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int?) → void};
+    }
+    #t256.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t256;
+  core::List<dynamic> list10 = block {
+    final core::List<dynamic> #t258 = <dynamic>[];
+    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:234:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Iterable' is from 'dart:core'.
+  var list10 = [for (var i in \"not iterable\") i];
+                              ^" in "not iterable" as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t258.{core::List::add}{Invariant}(i){(dynamic) → void};
+  } =>#t258;
+  core::Set<dynamic> set10 = block {
+    final core::Set<dynamic> #t259 = col::LinkedHashSet::•<dynamic>();
+    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:235:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Iterable' is from 'dart:core'.
+  var set10 = {for (var i in \"not iterable\") i, null};
+                             ^" in "not iterable" as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t259.{core::Set::add}{Invariant}(i){(dynamic) → core::bool};
+    #t259.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t259;
+  core::Map<core::String, dynamic> map10 = block {
+    final core::Map<core::String, dynamic> #t260 = <core::String, dynamic>{};
+    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:236:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Iterable' is from 'dart:core'.
+  var map10 = {for (var i in \"not iterable\") \"bar\": i, \"baz\": null};
+                             ^" in "not iterable" as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t260.{core::Map::[]=}{Invariant}("bar", i){(core::String, dynamic) → void};
+    #t260.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t260;
+  core::List<core::int> list20 = block {
+    final core::List<core::int> #t261 = <core::int>[];
+    for (core::int i in <core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:237:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var list20 = [for (int i in [\"not\", \"int\"]) i];
+                               ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:237:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var list20 = [for (int i in [\"not\", \"int\"]) i];
+                                      ^" in "int" as{TypeError,ForNonNullableByDefault} core::int])
+      #t261.{core::List::add}{Invariant}(i){(core::int) → void};
+  } =>#t261;
+  core::Set<core::int?> set20 = block {
+    final core::Set<core::int?> #t262 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i in <core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:238:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var set20 = {for (int i in [\"not\", \"int\"]) i, null};
+                              ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:238:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var set20 = {for (int i in [\"not\", \"int\"]) i, null};
+                                     ^" in "int" as{TypeError,ForNonNullableByDefault} core::int])
+      #t262.{core::Set::add}{Invariant}(i){(core::int?) → core::bool};
+    #t262.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t262;
+  core::Map<core::String, core::int?> map20 = block {
+    final core::Map<core::String, core::int?> #t263 = <core::String, core::int?>{};
+    for (core::int i in <core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:239:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
+                              ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:239:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
+                                     ^" in "int" as{TypeError,ForNonNullableByDefault} core::int])
+      #t263.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int?) → void};
+    #t263.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t263;
+  core::List<dynamic> list30 = block {
+    final core::List<dynamic> #t264 = <dynamic>[];
+    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:240:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ - 'Stream' is from 'dart:async'.
+  var list30 = [await for (var i in \"not stream\") i];
+                                    ^" in "not stream" as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>)
+      #t264.{core::List::add}{Invariant}(i){(dynamic) → void};
+  } =>#t264;
+  core::Set<dynamic> set30 = block {
+    final core::Set<dynamic> #t265 = col::LinkedHashSet::•<dynamic>();
+    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:241:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ - 'Stream' is from 'dart:async'.
+  var set30 = {await for (var i in \"not stream\") i, null};
+                                   ^" in "not stream" as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>)
+      #t265.{core::Set::add}{Invariant}(i){(dynamic) → core::bool};
+    #t265.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t265;
+  core::Map<core::String, dynamic> map30 = block {
+    final core::Map<core::String, dynamic> #t266 = <core::String, dynamic>{};
+    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:242:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ - 'Stream' is from 'dart:async'.
+  var map30 = {await for (var i in \"not stream\") \"bar\": i, \"baz\": null};
+                                   ^" in "not stream" as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>)
+      #t266.{core::Map::[]=}{Invariant}("bar", i){(core::String, dynamic) → void};
+    #t266.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t266;
+  core::List<core::int> list40 = block {
+    final core::List<core::int> #t267 = <core::int>[];
+    await for (core::int i in asy::Stream::fromIterable<core::int>(<core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:243:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
+                                                         ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:243:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
+                                                                ^" in "int" as{TypeError,ForNonNullableByDefault} core::int]))
+      #t267.{core::List::add}{Invariant}(i){(core::int) → void};
+  } =>#t267;
+  core::Set<core::int?> set40 = block {
+    final core::Set<core::int?> #t268 = col::LinkedHashSet::•<core::int?>();
+    await for (core::int i in asy::Stream::fromIterable<core::int>(<core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:244:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
+                                                        ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:244:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
+                                                               ^" in "int" as{TypeError,ForNonNullableByDefault} core::int]))
+      #t268.{core::Set::add}{Invariant}(i){(core::int?) → core::bool};
+    #t268.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t268;
+  core::Map<core::String, core::int?> map40 = block {
+    final core::Map<core::String, core::int?> #t269 = <core::String, core::int?>{};
+    await for (core::int i in asy::Stream::fromIterable<core::int>(<core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:245:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
+                                                        ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:245:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
+                                                               ^" in "int" as{TypeError,ForNonNullableByDefault} core::int]))
+      #t269.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int?) → void};
+    #t269.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t269;
+  core::List<core::int> list50 = block {
+    final core::List<core::int> #t270 = <core::int>[];
+    for (; ; )
+      #t270.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t270;
+  core::Set<core::int?> set50 = block {
+    final core::Set<core::int?> #t271 = col::LinkedHashSet::•<core::int?>();
+    for (; ; )
+      #t271.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t271.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t271;
+  core::Map<core::String, core::int?> map50 = block {
+    final core::Map<core::String, core::int?> #t272 = <core::String, core::int?>{};
+    for (; ; )
+      #t272.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int?) → void};
+    #t272.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t272;
+  core::List<core::int> list60 = block {
+    final core::List<core::int> #t273 = <core::int>[];
+    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+  var list60 = [for (; \"not bool\";) 42];
+                       ^" in "not bool" as{TypeError,ForNonNullableByDefault} core::bool; )
+      #t273.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t273;
+  core::Set<core::int?> set60 = block {
+    final core::Set<core::int?> #t274 = col::LinkedHashSet::•<core::int?>();
+    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:250:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+  var set60 = {for (; \"not bool\";) 42, null};
+                      ^" in "not bool" as{TypeError,ForNonNullableByDefault} core::bool; )
+      #t274.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t274.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t274;
+  core::Map<core::String, core::int?> map60 = block {
+    final core::Map<core::String, core::int?> #t275 = <core::String, core::int?>{};
+    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:251:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+  var map60 = {for (; \"not bool\";) \"bar\": 42, \"baz\": null};
+                      ^" in "not bool" as{TypeError,ForNonNullableByDefault} core::bool; )
+      #t275.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int?) → void};
+    #t275.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t275;
+}
+static method testForElementErrorsNotAsync(asy::Stream<core::int> stream) → dynamic {
+  block {
+    final core::List<core::int> #t276 = <core::int>[];
+    await for (core::int i in stream)
+      #t276.{core::List::add}{Invariant}(i){(core::int) → void};
+  } =>#t276;
+  block {
+    final core::Set<core::int> #t277 = col::LinkedHashSet::•<core::int>();
+    await for (core::int i in stream)
+      #t277.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
+  } =>#t277;
+  block {
+    final core::Map<core::String, core::int> #t278 = <core::String, core::int>{};
+    await for (core::int i in stream)
+      #t278.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int) → void};
+  } =>#t278;
+}
+static method testPromotion(self::A a) → dynamic {
+  core::List<core::int> list10 = block {
+    final core::List<core::int> #t279 = <core::int>[];
+    if(a is{ForNonNullableByDefault} self::B)
+      #t279.{core::List::add}{Invariant}(a{self::B}.{self::B::foo}{core::int}){(core::int) → void};
+  } =>#t279;
+  core::Set<core::int> set10 = block {
+    final core::Set<core::int> #t280 = col::LinkedHashSet::•<core::int>();
+    if(a is{ForNonNullableByDefault} self::B)
+      #t280.{core::Set::add}{Invariant}(a{self::B}.{self::B::foo}{core::int}){(core::int) → core::bool};
+  } =>#t280;
+  core::Map<core::int, core::int> map10 = block {
+    final core::Map<core::int, core::int> #t281 = <core::int, core::int>{};
+    if(a is{ForNonNullableByDefault} self::B)
+      #t281.{core::Map::[]=}{Invariant}(a{self::B}.{self::B::foo}{core::int}, a{self::B}.{self::B::foo}{core::int}){(core::int, core::int) → void};
+  } =>#t281;
+}
+static method main() → dynamic {}
+
+constants  {
+  #C1 = null
+}
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.weak.modular.expect b/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.weak.modular.expect
new file mode 100644
index 0000000..746e6cf
--- /dev/null
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.weak.modular.expect
@@ -0,0 +1,2148 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:39:35: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+//   Map<String, List<int>?> map40 = {if (oracle("foo")) ...{"bar", []}, "baz": null};
+//                                   ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   var map82 = {if (oracle("foo")) ...mapToInt else ...dynVar, null};
+//                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:106:44: Error: Expected ':' after this.
+//   Set<dynamic> set10 = {if (oracle("foo")) 42 else "bar": 3.14};
+//                                            ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:107:53: Error: Expected ':' after this.
+//   Map<dynamic, dynamic> map10 = {if (oracle("foo")) 42 else "bar": 3.14};
+//                                                     ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:108:61: Error: Expected ':' after this.
+//   Set<dynamic> set11 = {if (oracle("foo")) "bar": 3.14 else 42};
+//                                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:109:70: Error: Expected ':' after this.
+//   Map<dynamic, dynamic> map11 = {if (oracle("foo")) "bar": 3.14 else 42};
+//                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:110:35: Error: Expected ':' after this.
+//   var map12 = {if (oracle("foo")) 42 else "bar": 3.14};
+//                                   ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:111:52: Error: Expected ':' after this.
+//   var map13 = {if (oracle("foo")) "bar": 3.14 else 42};
+//                                                    ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int>[if (oracle("foo")) "bar"];
+//                            ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:88:29: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int?>{if (oracle("foo")) "bar", null};
+//                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:89:44: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <String, int?>{if (oracle("foo")) "bar": "bar", "baz": null};
+//                                            ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int>[if (oracle("foo")) ...["bar"]];
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:91:33: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int?>{if (oracle("foo")) ...["bar"], null};
+//                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:92:48: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <String, int?>{if (oracle("foo")) ...{"bar": "bar"}, "baz": null};
+//                                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[if (oracle("foo")) ...map];
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:94:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{if (oracle("foo")) ...map, null};
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:95:40: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{if (oracle("foo")) ...["bar"], "baz": null};
+//                                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   <String>[if (oracle("foo")) 42 else 3.14];
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+//   <String>[if (oracle("foo")) 42 else 3.14];
+//                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:97:32: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+//   <String?>{if (oracle("foo")) 42 else 3.14, null};
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:97:40: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+//   <String?>{if (oracle("foo")) 42 else 3.14, null};
+//                                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:98:47: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+//   <String, String?>{if (oracle("foo")) "bar": 42 else "baz": 3.14, "baz": null};
+//                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:98:62: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+//   <String, String?>{if (oracle("foo")) "bar": 42 else "baz": 3.14, "baz": null};
+//                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[if (oracle("foo")) ...map else 42];
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:100:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{if (oracle("foo")) ...map else 42, null};
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:101:40: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{if (oracle("foo")) ...[42] else "bar": 42, "baz": null};
+//                                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[if (oracle("foo")) 42 else ...map];
+//                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:103:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{if (oracle("foo")) ...map else 42, null};
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:104:55: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{if (oracle("foo")) "bar": 42 else ...[42], "baz": null};
+//                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:106:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+//   Set<dynamic> set10 = {if (oracle("foo")) 42 else "bar": 3.14};
+//                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+//   Set<dynamic> set11 = {if (oracle("foo")) "bar": 3.14 else 42};
+//                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+//   List<int> list20 = [if (42) 42];
+//                           ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:113:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+//   Set<int> set20 = {if (42) 42};
+//                         ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:114:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+//   Map<int, int> map30 = {if (42) 42: 42};
+//                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+//   List<String> list40 = <String>[if (oracle("foo")) true else 42];
+//                                                     ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   List<String> list40 = <String>[if (oracle("foo")) true else 42];
+//                                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+//   Set<String> set40 = <String>{if (oracle("foo")) true else 42};
+//                                                   ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   Set<String> set40 = <String>{if (oracle("foo")) true else 42};
+//                                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+//   Map<String, int> map40 = <String, int>{if (oracle("foo")) true: 42 else 42: 42};
+//                                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   Map<String, int> map40 = <String, int>{if (oracle("foo")) true: 42 else 42: 42};
+//                                                                           ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+//   Map<int, String> map41 = <int, String>{if (oracle("foo")) 42: true else 42: 42};
+//                                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   Map<int, String> map41 = <int, String>{if (oracle("foo")) 42: true else 42: 42};
+//                                                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:230:14: Error: Can't assign to the final variable 'i'.
+//   <int>[for (i in <int>[1]) i];
+//              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:231:15: Error: Can't assign to the final variable 'i'.
+//   <int?>{for (i in <int>[1]) i, null};
+//               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:232:23: Error: Can't assign to the final variable 'i'.
+//   <String, int?>{for (i in <int>[1]) "bar": i, "baz": null};
+//                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:246:17: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// Try removing the keyword, or use a for-each statement.
+//   var list50 = [await for (;;) 42];
+//                 ^^^^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:247:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// Try removing the keyword, or use a for-each statement.
+//   var set50 = {await for (;;) 42, null};
+//                ^^^^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:248:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// Try removing the keyword, or use a for-each statement.
+//   var map50 = {await for (;;) "bar": 42, "baz": null};
+//                ^^^^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int>[for (int i = 0; oracle("foo"); i++) "bar"];
+//                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:211:46: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) "bar", null};
+//                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:51: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
+//                                                   ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:58: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
+//                                                          ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
+//                                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int>[for (int i = 0; oracle("foo"); i++) ...["bar"]];
+//                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:214:50: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) ...["bar"], null};
+//                                                  ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
+//                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:62: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
+//                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
+//                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[for (int i = 0; oracle("foo"); i++) ...map];
+//                                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:217:49: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) ...map, null};
+//                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:218:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) ...list, 42: null};
+//                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
+//                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+//   <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
+//                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:220:63: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+//   <String?>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
+//                                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:220:71: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+//   <String?>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
+//                                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:221:78: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+//   <String, String?>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
+//                                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:221:93: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+//   <String, String?>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
+//                                                                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42];
+//                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:223:63: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42, null};
+//                                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:224:71: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...list else "bar": 42, "baz": null};
+//                                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map];
+//                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:226:71: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map, null};
+//                                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:227:86: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else ...list, "baz": null};
+//                                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:234:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Iterable' is from 'dart:core'.
+//   var list10 = [for (var i in "not iterable") i];
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:235:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Iterable' is from 'dart:core'.
+//   var set10 = {for (var i in "not iterable") i, null};
+//                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:236:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Iterable' is from 'dart:core'.
+//   var map10 = {for (var i in "not iterable") "bar": i, "baz": null};
+//                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:237:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var list20 = [for (int i in ["not", "int"]) i];
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:237:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var list20 = [for (int i in ["not", "int"]) i];
+//                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:238:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var set20 = {for (int i in ["not", "int"]) i, null};
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:238:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var set20 = {for (int i in ["not", "int"]) i, null};
+//                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:239:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var map20 = {for (int i in ["not", "int"]) "bar": i, "baz": null};
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:239:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var map20 = {for (int i in ["not", "int"]) "bar": i, "baz": null};
+//                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:240:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+//  - 'Stream' is from 'dart:async'.
+//   var list30 = [await for (var i in "not stream") i];
+//                                     ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:241:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+//  - 'Stream' is from 'dart:async'.
+//   var set30 = {await for (var i in "not stream") i, null};
+//                                    ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:242:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+//  - 'Stream' is from 'dart:async'.
+//   var map30 = {await for (var i in "not stream") "bar": i, "baz": null};
+//                                    ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:243:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var list40 = [await for (int i in Stream.fromIterable(["not", "int"])) i];
+//                                                          ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:243:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var list40 = [await for (int i in Stream.fromIterable(["not", "int"])) i];
+//                                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:244:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var set40 = {await for (int i in Stream.fromIterable(["not", "int"])) i, null};
+//                                                         ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:244:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var set40 = {await for (int i in Stream.fromIterable(["not", "int"])) i, null};
+//                                                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:245:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var map40 = {await for (int i in Stream.fromIterable(["not", "int"])) "bar": i, "baz": null};
+//                                                         ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:245:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var map40 = {await for (int i in Stream.fromIterable(["not", "int"])) "bar": i, "baz": null};
+//                                                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+//   var list60 = [for (; "not bool";) 42];
+//                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:250:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+//   var set60 = {for (; "not bool";) 42, null};
+//                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:251:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+//   var map60 = {for (; "not bool";) "bar": 42, "baz": null};
+//                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:255:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
+//   <int>[await for (int i in stream) i];
+//                          ^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:256:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
+//   <int>{await for (int i in stream) i};
+//                          ^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:257:34: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
+//   <String, int>{await for (int i in stream) "bar": i};
+//                                  ^^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+import "dart:async" as asy;
+
+class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+}
+class B extends self::A {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+  get foo() → core::int
+    return 42;
+}
+static method oracle<T extends core::Object? = dynamic>([self::oracle::T? t = #C1]) → dynamic
+  return true;
+static method testIfElement(dynamic dynVar, core::List<core::int> listInt, core::List<core::double> listDouble, core::Map<core::String, core::int> mapToInt, core::Map<core::String, core::double> mapToDouble) → dynamic {
+  core::List<core::int> list10 = block {
+    final core::List<core::int> #t1 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t1.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t1;
+  core::Set<core::int?> set10 = block {
+    final core::Set<core::int?> #t2 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t2.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t2;
+  core::Map<core::String, core::int?> map10 = block {
+    final core::Map<core::String, core::int?> #t3 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t3.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int?) → void};
+    #t3.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t3;
+  core::List<dynamic> list11 = block {
+    final core::List<dynamic> #t4 = <dynamic>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t4.{core::List::add}{Invariant}(dynVar){(dynamic) → void};
+  } =>#t4;
+  core::Set<dynamic> set11 = block {
+    final core::Set<dynamic> #t5 = col::LinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t5.{core::Set::add}{Invariant}(dynVar){(dynamic) → core::bool};
+    #t5.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t5;
+  core::Map<core::String, dynamic> map11 = block {
+    final core::Map<core::String, dynamic> #t6 = <core::String, dynamic>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t6.{core::Map::[]=}{Invariant}("bar", dynVar){(core::String, dynamic) → void};
+    #t6.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t6;
+  core::List<core::List<core::int>> list12 = block {
+    final core::List<core::List<core::int>> #t7 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t7.{core::List::add}{Invariant}(<core::int>[42]){(core::List<core::int>) → void};
+  } =>#t7;
+  core::Set<core::List<core::int>?> set12 = block {
+    final core::Set<core::List<core::int>?> #t8 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t8.{core::Set::add}{Invariant}(<core::int>[42]){(core::List<core::int>?) → core::bool};
+    #t8.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t8;
+  core::Map<core::String, core::List<core::int>?> map12 = block {
+    final core::Map<core::String, core::List<core::int>?> #t9 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t9.{core::Map::[]=}{Invariant}("bar", <core::int>[42]){(core::String, core::List<core::int>?) → void};
+    #t9.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t9;
+  core::List<core::int> list20 = block {
+    final core::List<core::int> #t10 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t10.{core::List::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int>) → void};
+  } =>#t10;
+  core::Set<core::int?> set20 = block {
+    final core::Set<core::int?> #t11 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t11.{core::Set::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int?>) → void};
+    #t11.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t11;
+  core::Map<core::String, core::int?> map20 = block {
+    final core::Map<core::String, core::int?> #t12 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, core::int?> #t13 in <core::String, core::int>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+        #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{core::String}, #t13.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t12.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t12;
+  core::List<dynamic> list21 = block {
+    final core::List<dynamic> #t14 = <dynamic>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t14.{core::List::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+  } =>#t14;
+  core::Set<dynamic> set21 = block {
+    final core::Set<dynamic> #t15 = col::LinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t15.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+    #t15.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t15;
+  core::Map<core::String, dynamic> map21 = block {
+    final core::Map<core::String, dynamic> #t16 = <core::String, dynamic>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, dynamic> #t17 in <core::String, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, dynamic>>})
+        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}{core::String}, #t17.{core::MapEntry::value}{dynamic}){(core::String, dynamic) → void};
+    #t16.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t16;
+  core::List<core::List<core::int>> list22 = block {
+    final core::List<core::List<core::int>> #t18 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t18.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t18;
+  core::Set<core::List<core::int>?> set22 = block {
+    final core::Set<core::List<core::int>?> #t19 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t19.{core::Set::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t19.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t19;
+  core::Map<core::String, core::List<core::int>?> map22 = block {
+    final core::Map<core::String, core::List<core::int>?> #t20 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, core::List<core::int>?> #t21 in <core::String, core::List<core::int>>{"bar": <core::int>[42]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+        #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{core::String}, #t21.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t20.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t20;
+  core::List<core::int> list30 = block {
+    final core::List<core::int> #t22 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t22.{core::List::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int>) → void};
+  } =>#t22;
+  core::Set<core::int?> set30 = block {
+    final core::Set<core::int?> #t23 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t23.{core::Set::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int?>) → void};
+    #t23.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t23;
+  core::Map<core::String, core::int?> map30 = block {
+    final core::Map<core::String, core::int?> #t24 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::int?> #t25 in <core::String, core::int>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+          #t24.{core::Map::[]=}{Invariant}(#t25.{core::MapEntry::key}{core::String}, #t25.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t24.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t24;
+  core::List<dynamic> list31 = block {
+    final core::List<dynamic> #t26 = <dynamic>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t26.{core::List::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+  } =>#t26;
+  core::Set<dynamic> set31 = block {
+    final core::Set<dynamic> #t27 = col::LinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t27.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+    #t27.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t27;
+  core::Map<core::String, dynamic> map31 = block {
+    final core::Map<core::String, dynamic> #t28 = <core::String, dynamic>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, dynamic> #t29 in <core::String, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, dynamic>>})
+          #t28.{core::Map::[]=}{Invariant}(#t29.{core::MapEntry::key}{core::String}, #t29.{core::MapEntry::value}{dynamic}){(core::String, dynamic) → void};
+    #t28.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t28;
+  core::List<core::List<core::int>> list33 = block {
+    final core::List<core::List<core::int>> #t30 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t30.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t30;
+  core::Set<core::List<core::int>?> set33 = block {
+    final core::Set<core::List<core::int>?> #t31 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t31.{core::Set::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t31.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t31;
+  core::Map<core::String, core::List<core::int>?> map33 = block {
+    final core::Map<core::String, core::List<core::int>?> #t32 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::List<core::int>?> #t33 in <core::String, core::List<core::int>>{"bar": <core::int>[42]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+          #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}{core::String}, #t33.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t32.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t32;
+  core::List<core::List<core::int>> list40 = block {
+    final core::List<core::List<core::int>> #t34 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t34.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t34;
+  core::Set<core::List<core::int>?> set40 = block {
+    final core::Set<core::List<core::int>?> #t35 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t35.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t35.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t35;
+  core::Map<core::String, core::List<core::int>?> map40 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:39:35: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  Map<String, List<int>?> map40 = {if (oracle(\"foo\")) ...{\"bar\", []}, \"baz\": null};
+                                  ^";
+  core::List<core::List<core::int>> list41 = block {
+    final core::List<core::List<core::int>> #t36 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t36.{core::List::addAll}{Invariant}( block {
+        final core::Set<core::List<core::int>> #t37 = col::LinkedHashSet::•<core::List<core::int>>();
+        #t37.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>) → core::bool};
+      } =>#t37){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t36;
+  core::Set<core::List<core::int>?> set41 = block {
+    final core::Set<core::List<core::int>?> #t38 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t38.{core::Set::addAll}{Invariant}( block {
+        final core::Set<core::List<core::int>?> #t39 = col::LinkedHashSet::•<core::List<core::int>?>();
+        #t39.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>?) → core::bool};
+      } =>#t39){(core::Iterable<core::List<core::int>?>) → void};
+    #t38.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t38;
+  core::List<core::List<core::int>> list42 = block {
+    final core::List<core::List<core::int>> #t40 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t40.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t40;
+  core::Set<core::List<core::int>?> set42 = block {
+    final core::Set<core::List<core::int>?> #t41 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t41.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t41.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t41;
+  core::Map<core::String, core::List<core::int>?> map42 = block {
+    final core::Map<core::String, core::List<core::int>?> #t42 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::List<core::int>?> #t43 in <core::String, core::List<core::int>?>{"bar": <core::int>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+          #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}{core::String}, #t43.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t42.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t42;
+  core::List<core::int> list50 = block {
+    final core::List<core::int> #t44 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t44.{core::List::addAll}{Invariant}(<core::int>[]){(core::Iterable<core::int>) → void};
+  } =>#t44;
+  core::Set<core::int?> set50 = block {
+    final core::Set<core::int?> #t45 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t45.{core::Set::addAll}{Invariant}(<core::int?>[]){(core::Iterable<core::int?>) → void};
+    #t45.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t45;
+  core::Map<core::String, core::int?> map50 = block {
+    final core::Map<core::String, core::int?> #t46 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, core::int?> #t47 in <core::String, core::int?>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+        #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}{core::String}, #t47.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t46.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t46;
+  core::List<core::int> list51 = block {
+    final core::List<core::int> #t48 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t48.{core::List::addAll}{Invariant}( block {
+        final core::Set<core::int> #t49 = col::LinkedHashSet::•<core::int>();
+      } =>#t49){(core::Iterable<core::int>) → void};
+  } =>#t48;
+  core::Set<core::int?> set51 = block {
+    final core::Set<core::int?> #t50 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t50.{core::Set::addAll}{Invariant}( block {
+        final core::Set<core::int?> #t51 = col::LinkedHashSet::•<core::int?>();
+      } =>#t51){(core::Iterable<core::int?>) → void};
+    #t50.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t50;
+  core::List<core::int> list52 = block {
+    final core::List<core::int> #t52 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t52.{core::List::addAll}{Invariant}(<core::int>[]){(core::Iterable<core::int>) → void};
+  } =>#t52;
+  core::Set<core::int?> set52 = block {
+    final core::Set<core::int?> #t53 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t53.{core::Set::addAll}{Invariant}(<core::int?>[]){(core::Iterable<core::int?>) → void};
+    #t53.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t53;
+  core::Map<core::String, core::int?> map52 = block {
+    final core::Map<core::String, core::int?> #t54 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::int?> #t55 in <core::String, core::int?>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+          #t54.{core::Map::[]=}{Invariant}(#t55.{core::MapEntry::key}{core::String}, #t55.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t54.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t54;
+  core::List<core::List<core::int>> list60 = block {
+    final core::List<core::List<core::int>> #t56 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t56.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t56;
+  core::Set<core::List<core::int>?> set60 = block {
+    final core::Set<core::List<core::int>?> #t57 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t57.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t57.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t57;
+  core::Map<core::String, core::List<core::int>?> map60 = block {
+    final core::Map<core::String, core::List<core::int>?> #t58 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, core::List<core::int>?> #t59 in <core::String, core::List<core::int>?>{"bar": <core::int>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+        #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}{core::String}, #t59.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t58.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t58;
+  core::List<core::List<core::int>> list61 = block {
+    final core::List<core::List<core::int>> #t60 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t60.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t60;
+  core::Set<core::List<core::int>?> set61 = block {
+    final core::Set<core::List<core::int>?> #t61 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t61.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t61.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t61;
+  core::Map<core::String, core::List<core::int>?> map61 = block {
+    final core::Map<core::String, core::List<core::int>?> #t62 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::List<core::int>?> #t63 in <core::String, core::List<core::int>?>{"bar": <core::int>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+          #t62.{core::Map::[]=}{Invariant}(#t63.{core::MapEntry::key}{core::String}, #t63.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t62.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t62;
+  core::List<core::List<core::int>> list70 = block {
+    final core::List<core::List<core::int>> #t64 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t64.{core::List::add}{Invariant}(<core::int>[]){(core::List<core::int>) → void};
+  } =>#t64;
+  core::Set<core::List<core::int>?> set70 = block {
+    final core::Set<core::List<core::int>?> #t65 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t65.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>?) → core::bool};
+    #t65.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t65;
+  core::List<core::List<core::int>> list71 = block {
+    final core::List<core::List<core::int>> #t66 = <core::List<core::int>>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t66.{core::List::add}{Invariant}(<core::int>[]){(core::List<core::int>) → void};
+  } =>#t66;
+  core::Set<core::List<core::int>?> set71 = block {
+    final core::Set<core::List<core::int>?> #t67 = col::LinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t67.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>?) → core::bool};
+    #t67.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t67;
+  core::List<core::num> list80 = block {
+    final core::List<core::num> #t68 = <core::num>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t68.{core::List::add}{Invariant}(42){(core::num) → void};
+    else
+      #t68.{core::List::add}{Invariant}(3.14){(core::num) → void};
+  } =>#t68;
+  core::Set<core::num?> set80 = block {
+    final core::Set<core::num?> #t69 = col::LinkedHashSet::•<core::num?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t69.{core::Set::add}{Invariant}(42){(core::num?) → core::bool};
+    else
+      #t69.{core::Set::add}{Invariant}(3.14){(core::num?) → core::bool};
+    #t69.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t69;
+  core::Map<core::String, core::num?> map80 = block {
+    final core::Map<core::String, core::num?> #t70 = <core::String, core::num?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t70.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::num?) → void};
+    else
+      #t70.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String, core::num?) → void};
+    #t70.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t70;
+  core::List<core::num> list81 = block {
+    final core::List<core::num> #t71 = <core::num>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t71.{core::List::addAll}{Invariant}(listInt){(core::Iterable<core::num>) → void};
+    else
+      #t71.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num>) → void};
+  } =>#t71;
+  core::Set<core::num?> set81 = block {
+    final core::Set<core::num?> #t72 = col::LinkedHashSet::•<core::num?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t72.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num?>) → void};
+    else
+      #t72.{core::Set::addAll}{Invariant}(listDouble){(core::Iterable<core::num?>) → void};
+    #t72.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t72;
+  core::Map<core::String, core::num?> map81 = block {
+    final core::Map<core::String, core::num?> #t73 = <core::String, core::num?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, core::num?> #t74 in mapToInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>})
+        #t73.{core::Map::[]=}{Invariant}(#t74.{core::MapEntry::key}{core::String}, #t74.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+    else
+      for (final core::MapEntry<core::String, core::num?> #t75 in mapToDouble.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>})
+        #t73.{core::Map::[]=}{Invariant}(#t75.{core::MapEntry::key}{core::String}, #t75.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+    #t73.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t73;
+  core::List<dynamic> list82 = block {
+    final core::List<dynamic> #t76 = <dynamic>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t76.{core::List::addAll}{Invariant}(listInt){(core::Iterable<dynamic>) → void};
+    else
+      #t76.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+  } =>#t76;
+  core::Set<dynamic> set82 = block {
+    final core::Set<dynamic> #t77 = col::LinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t77.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<dynamic>) → void};
+    else
+      #t77.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+    #t77.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t77;
+  core::Set<dynamic> map82 = block {
+    final core::Set<dynamic> #t78 = col::LinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t78.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  var map82 = {if (oracle(\"foo\")) ...mapToInt else ...dynVar, null};
+                                     ^"){(dynamic) → core::bool};
+    else
+      #t78.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+    #t78.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t78;
+  core::List<core::num> list83 = block {
+    final core::List<core::num> #t79 = <core::num>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t79.{core::List::add}{Invariant}(42){(core::num) → void};
+    else
+      #t79.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num>) → void};
+  } =>#t79;
+  core::Set<core::num?> set83 = block {
+    final core::Set<core::num?> #t80 = col::LinkedHashSet::•<core::num?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t80.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num?>) → void};
+    else
+      #t80.{core::Set::add}{Invariant}(3.14){(core::num?) → core::bool};
+    #t80.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t80;
+  core::Map<core::String, core::num?> map83 = block {
+    final core::Map<core::String, core::num?> #t81 = <core::String, core::num?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, core::num?> #t82 in mapToInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>})
+        #t81.{core::Map::[]=}{Invariant}(#t82.{core::MapEntry::key}{core::String}, #t82.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+    else
+      #t81.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String, core::num?) → void};
+    #t81.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t81;
+  core::List<core::int> list90 = block {
+    final core::List<core::int> #t83 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t83.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+  } =>#t83;
+  core::Set<core::int?> set90 = block {
+    final core::Set<core::int?> #t84 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t84.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t84.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t84;
+  core::Map<core::String, core::int?> map90 = block {
+    final core::Map<core::String, core::int?> #t85 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t85.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::String, core::int?) → void};
+    #t85.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t85;
+  core::List<core::int> list91 = block {
+    final core::List<core::int> #t86 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final dynamic #t87 in dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+        final core::int #t88 = #t87 as{TypeError,ForNonNullableByDefault} core::int;
+        #t86.{core::List::add}{Invariant}(#t88){(core::int) → void};
+      }
+  } =>#t86;
+  core::Set<core::int?> set91 = block {
+    final core::Set<core::int?> #t89 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final dynamic #t90 in dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+        final core::int? #t91 = #t90 as{TypeError,ForNonNullableByDefault} core::int?;
+        #t89.{core::Set::add}{Invariant}(#t91){(core::int?) → core::bool};
+      }
+    #t89.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t89;
+  core::Map<core::String, core::int?> map91 = block {
+    final core::Map<core::String, core::int?> #t92 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<dynamic, dynamic> #t93 in (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>}) {
+        final core::String #t94 = #t93.{core::MapEntry::key}{dynamic} as{TypeError,ForNonNullableByDefault} core::String;
+        final core::int? #t95 = #t93.{core::MapEntry::value}{dynamic} as{TypeError,ForNonNullableByDefault} core::int?;
+        #t92.{core::Map::[]=}{Invariant}(#t94, #t95){(core::String, core::int?) → void};
+      }
+    #t92.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t92;
+  core::List<core::int> list100 = block {
+    final core::List<core::int> #t96 = <core::int>[];
+    if(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t96.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t96;
+  core::Set<core::int> set100 = block {
+    final core::Set<core::int> #t97 = col::LinkedHashSet::•<core::int>();
+    if(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t97.{core::Set::add}{Invariant}(42){(core::int) → core::bool};
+  } =>#t97;
+  core::Map<core::int, core::int> map100 = block {
+    final core::Map<core::int, core::int> #t98 = <core::int, core::int>{};
+    if(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t98.{core::Map::[]=}{Invariant}(42, 42){(core::int, core::int) → void};
+  } =>#t98;
+}
+static method testIfElementErrors(core::Map<core::int, core::int> map) → dynamic {
+  block {
+    final core::List<core::int> #t99 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t99.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int>[if (oracle(\"foo\")) \"bar\"];
+                           ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+  } =>#t99;
+  block {
+    final core::Set<core::int?> #t100 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t100.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:88:29: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int?>{if (oracle(\"foo\")) \"bar\", null};
+                            ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t100.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t100;
+  block {
+    final core::Map<core::String, core::int?> #t101 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t101.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:89:44: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <String, int?>{if (oracle(\"foo\")) \"bar\": \"bar\", \"baz\": null};
+                                           ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?){(core::String, core::int?) → void};
+    #t101.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t101;
+  block {
+    final core::List<core::int> #t102 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t102.{core::List::addAll}{Invariant}(<core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int>[if (oracle(\"foo\")) ...[\"bar\"]];
+                               ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int]){(core::Iterable<core::int>) → void};
+  } =>#t102;
+  block {
+    final core::Set<core::int?> #t103 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t103.{core::Set::addAll}{Invariant}(<core::int?>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:91:33: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int?>{if (oracle(\"foo\")) ...[\"bar\"], null};
+                                ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?]){(core::Iterable<core::int?>) → void};
+    #t103.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t103;
+  block {
+    final core::Map<core::String, core::int?> #t104 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      for (final core::MapEntry<core::String, core::int?> #t105 in <core::String, core::int?>{"bar": invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:92:48: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <String, int?>{if (oracle(\"foo\")) ...{\"bar\": \"bar\"}, \"baz\": null};
+                                               ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+        #t104.{core::Map::[]=}{Invariant}(#t105.{core::MapEntry::key}{core::String}, #t105.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t104.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t104;
+  block {
+    final core::List<core::int> #t106 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t106.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[if (oracle(\"foo\")) ...map];
+                              ^"){(core::int) → void};
+  } =>#t106;
+  block {
+    final core::Set<core::int?> #t107 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t107.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:94:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{if (oracle(\"foo\")) ...map, null};
+                               ^"){(core::int?) → core::bool};
+    #t107.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t107;
+  <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:95:40: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
+                                       ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:95:40: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
+                                       ^": null};
+  block {
+    final core::List<core::String> #t108 = <core::String>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  <String>[if (oracle(\"foo\")) 42 else 3.14];
+                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+    else
+      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+  <String>[if (oracle(\"foo\")) 42 else 3.14];
+                                      ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+  } =>#t108;
+  block {
+    final core::Set<core::String?> #t109 = col::LinkedHashSet::•<core::String?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:97:32: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+  <String?>{if (oracle(\"foo\")) 42 else 3.14, null};
+                               ^" in 42 as{TypeError,ForNonNullableByDefault} core::String?){(core::String?) → core::bool};
+    else
+      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:97:40: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+  <String?>{if (oracle(\"foo\")) 42 else 3.14, null};
+                                       ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String?){(core::String?) → core::bool};
+    #t109.{core::Set::add}{Invariant}(null){(core::String?) → core::bool};
+  } =>#t109;
+  block {
+    final core::Map<core::String, core::String?> #t110 = <core::String, core::String?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t110.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:98:47: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+  <String, String?>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
+                                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String?){(core::String, core::String?) → void};
+    else
+      #t110.{core::Map::[]=}{Invariant}("baz", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:98:62: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+  <String, String?>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
+                                                             ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String?){(core::String, core::String?) → void};
+    #t110.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::String?) → void};
+  } =>#t110;
+  block {
+    final core::List<core::int> #t111 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t111.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[if (oracle(\"foo\")) ...map else 42];
+                              ^"){(core::int) → void};
+    else
+      #t111.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t111;
+  block {
+    final core::Set<core::int?> #t112 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t112.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:100:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{if (oracle(\"foo\")) ...map else 42, null};
+                               ^"){(core::int?) → core::bool};
+    else
+      #t112.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t112.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t112;
+  <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:101:40: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
+                                       ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:101:40: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
+                                       ^": null};
+  block {
+    final core::List<core::int> #t113 = <core::int>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t113.{core::List::add}{Invariant}(42){(core::int) → void};
+    else
+      #t113.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[if (oracle(\"foo\")) 42 else ...map];
+                                      ^"){(core::int) → void};
+  } =>#t113;
+  block {
+    final core::Set<core::int?> #t114 = col::LinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t114.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:103:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{if (oracle(\"foo\")) ...map else 42, null};
+                               ^"){(core::int?) → core::bool};
+    else
+      #t114.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t114.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t114;
+  <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:104:55: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) \"bar\": 42 else ...[42], \"baz\": null};
+                                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:104:55: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) \"bar\": 42 else ...[42], \"baz\": null};
+                                                      ^": null};
+  core::Set<dynamic> set10 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:106:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  Set<dynamic> set10 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
+                       ^";
+  core::Map<dynamic, dynamic> map10 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:107:53: Error: Expected ':' after this.
+  Map<dynamic, dynamic> map10 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
+                                                    ^": null};
+  core::Set<dynamic> set11 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  Set<dynamic> set11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
+                       ^";
+  core::Map<dynamic, dynamic> map11 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:109:70: Error: Expected ':' after this.
+  Map<dynamic, dynamic> map11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
+                                                                     ^": null};
+  core::Map<dynamic, Null> map12 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:110:35: Error: Expected ':' after this.
+  var map12 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
+                                  ^": null};
+  core::Map<dynamic, Null> map13 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:111:52: Error: Expected ':' after this.
+  var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
+                                                   ^": null};
+  core::List<core::int> list20 = block {
+    final core::List<core::int> #t115 = <core::int>[];
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+  List<int> list20 = [if (42) 42];
+                          ^" in 42 as{TypeError,ForNonNullableByDefault} core::bool)
+      #t115.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t115;
+  core::Set<core::int> set20 = block {
+    final core::Set<core::int> #t116 = col::LinkedHashSet::•<core::int>();
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:113:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+  Set<int> set20 = {if (42) 42};
+                        ^" in 42 as{TypeError,ForNonNullableByDefault} core::bool)
+      #t116.{core::Set::add}{Invariant}(42){(core::int) → core::bool};
+  } =>#t116;
+  core::Map<core::int, core::int> map30 = block {
+    final core::Map<core::int, core::int> #t117 = <core::int, core::int>{};
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:114:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+  Map<int, int> map30 = {if (42) 42: 42};
+                             ^" in 42 as{TypeError,ForNonNullableByDefault} core::bool)
+      #t117.{core::Map::[]=}{Invariant}(42, 42){(core::int, core::int) → void};
+  } =>#t117;
+  core::List<core::String> list40 = block {
+    final core::List<core::String> #t118 = <core::String>[];
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+  List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
+                                                    ^" in true as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+    else
+      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
+                                                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+  } =>#t118;
+  core::Set<core::String> set40 = block {
+    final core::Set<core::String> #t119 = col::LinkedHashSet::•<core::String>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+  Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
+                                                  ^" in true as{TypeError,ForNonNullableByDefault} core::String){(core::String) → core::bool};
+    else
+      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
+                                                            ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → core::bool};
+  } =>#t119;
+  core::Map<core::String, core::int> map40 = block {
+    final core::Map<core::String, core::int> #t120 = <core::String, core::int>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+  Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
+                                                            ^" in true as{TypeError,ForNonNullableByDefault} core::String, 42){(core::String, core::int) → void};
+    else
+      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
+                                                                          ^" in 42 as{TypeError,ForNonNullableByDefault} core::String, 42){(core::String, core::int) → void};
+  } =>#t120;
+  core::Map<core::int, core::String> map41 = block {
+    final core::Map<core::int, core::String> #t121 = <core::int, core::String>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+  Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
+                                                                ^" in true as{TypeError,ForNonNullableByDefault} core::String){(core::int, core::String) → void};
+    else
+      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
+                                                                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::int, core::String) → void};
+  } =>#t121;
+}
+static method testForElement(dynamic dynVar, core::List<core::int> listInt, core::List<core::double> listDouble, core::int index, core::Map<core::String, core::int> mapStringInt, core::Map<core::String, core::double> mapStringDouble) → dynamic {
+  core::List<core::int> list10 = block {
+    final core::List<core::int> #t122 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t122.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t122;
+  core::Set<core::int?> set10 = block {
+    final core::Set<core::int?> #t123 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t123.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t123.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t123;
+  core::Map<core::String, core::int?> map10 = block {
+    final core::Map<core::String, core::int?> #t124 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t124.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int?) → void};
+    #t124.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t124;
+  core::List<dynamic> list11 = block {
+    final core::List<dynamic> #t125 = <dynamic>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t125.{core::List::add}{Invariant}(dynVar){(dynamic) → void};
+  } =>#t125;
+  core::Set<dynamic> set11 = block {
+    final core::Set<dynamic> #t126 = col::LinkedHashSet::•<dynamic>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t126.{core::Set::add}{Invariant}(dynVar){(dynamic) → core::bool};
+    #t126.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t126;
+  core::Map<core::String, dynamic> map11 = block {
+    final core::Map<core::String, dynamic> #t127 = <core::String, dynamic>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t127.{core::Map::[]=}{Invariant}("bar", dynVar){(core::String, dynamic) → void};
+    #t127.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t127;
+  core::List<core::List<core::int>> list12 = block {
+    final core::List<core::List<core::int>> #t128 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t128.{core::List::add}{Invariant}(<core::int>[42]){(core::List<core::int>) → void};
+  } =>#t128;
+  core::Set<core::List<core::int>?> set12 = block {
+    final core::Set<core::List<core::int>?> #t129 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t129.{core::Set::add}{Invariant}(<core::int>[42]){(core::List<core::int>?) → core::bool};
+    #t129.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t129;
+  core::Map<core::String, core::List<core::int>?> map12 = block {
+    final core::Map<core::String, core::List<core::int>?> #t130 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t130.{core::Map::[]=}{Invariant}("bar", <core::int>[42]){(core::String, core::List<core::int>?) → void};
+    #t130.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t130;
+  core::List<core::int> list20 = block {
+    final core::List<core::int> #t131 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t131.{core::List::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int>) → void};
+  } =>#t131;
+  core::Set<core::int?> set20 = block {
+    final core::Set<core::int?> #t132 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t132.{core::Set::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int?>) → void};
+    #t132.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t132;
+  core::Map<core::String, core::int?> map20 = block {
+    final core::Map<core::String, core::int?> #t133 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<core::String, core::int?> #t134 in <core::String, core::int>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+        #t133.{core::Map::[]=}{Invariant}(#t134.{core::MapEntry::key}{core::String}, #t134.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t133.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t133;
+  core::List<dynamic> list21 = block {
+    final core::List<dynamic> #t135 = <dynamic>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t135.{core::List::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+  } =>#t135;
+  core::Set<dynamic> set21 = block {
+    final core::Set<dynamic> #t136 = col::LinkedHashSet::•<dynamic>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t136.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+    #t136.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t136;
+  core::Map<core::String, dynamic> map21 = block {
+    final core::Map<core::String, dynamic> #t137 = <core::String, dynamic>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<core::String, dynamic> #t138 in <core::String, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, dynamic>>})
+        #t137.{core::Map::[]=}{Invariant}(#t138.{core::MapEntry::key}{core::String}, #t138.{core::MapEntry::value}{dynamic}){(core::String, dynamic) → void};
+    #t137.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t137;
+  core::List<core::List<core::int>> list22 = block {
+    final core::List<core::List<core::int>> #t139 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t139.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t139;
+  core::Set<core::List<core::int>?> set22 = block {
+    final core::Set<core::List<core::int>?> #t140 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t140.{core::Set::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t140.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t140;
+  core::Map<core::String, core::List<core::int>?> map22 = block {
+    final core::Map<core::String, core::List<core::int>?> #t141 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<core::String, core::List<core::int>?> #t142 in <core::String, core::List<core::int>>{"bar": <core::int>[42]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+        #t141.{core::Map::[]=}{Invariant}(#t142.{core::MapEntry::key}{core::String}, #t142.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t141.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t141;
+  core::List<core::int> list30 = block {
+    final core::List<core::int> #t143 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t143.{core::List::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int>) → void};
+  } =>#t143;
+  core::Set<core::int?> set30 = block {
+    final core::Set<core::int?> #t144 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t144.{core::Set::addAll}{Invariant}(<core::int>[42]){(core::Iterable<core::int?>) → void};
+    #t144.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t144;
+  core::Map<core::String, core::int?> map30 = block {
+    final core::Map<core::String, core::int?> #t145 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::int?> #t146 in <core::String, core::int>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+          #t145.{core::Map::[]=}{Invariant}(#t146.{core::MapEntry::key}{core::String}, #t146.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t145.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t145;
+  core::List<dynamic> list31 = block {
+    final core::List<dynamic> #t147 = <dynamic>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t147.{core::List::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+  } =>#t147;
+  core::Set<dynamic> set31 = block {
+    final core::Set<dynamic> #t148 = col::LinkedHashSet::•<dynamic>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t148.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>) → void};
+    #t148.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t148;
+  core::Map<core::String, dynamic> map31 = block {
+    final core::Map<core::String, dynamic> #t149 = <core::String, dynamic>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, dynamic> #t150 in <core::String, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, dynamic>>})
+          #t149.{core::Map::[]=}{Invariant}(#t150.{core::MapEntry::key}{core::String}, #t150.{core::MapEntry::value}{dynamic}){(core::String, dynamic) → void};
+    #t149.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t149;
+  core::List<core::List<core::int>> list33 = block {
+    final core::List<core::List<core::int>> #t151 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t151.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t151;
+  core::Set<core::List<core::int>?> set33 = block {
+    final core::Set<core::List<core::int>?> #t152 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t152.{core::Set::addAll}{Invariant}(<core::List<core::int>>[<core::int>[42]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t152.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t152;
+  core::Map<core::String, core::List<core::int>?> map33 = block {
+    final core::Map<core::String, core::List<core::int>?> #t153 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::List<core::int>?> #t154 in <core::String, core::List<core::int>>{"bar": <core::int>[42]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+          #t153.{core::Map::[]=}{Invariant}(#t154.{core::MapEntry::key}{core::String}, #t154.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t153.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t153;
+  core::List<core::List<core::int>> list40 = block {
+    final core::List<core::List<core::int>> #t155 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t155.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t155;
+  core::Set<core::List<core::int>?> set40 = block {
+    final core::Set<core::List<core::int>?> #t156 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t156.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t156.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t156;
+  core::Map<core::String, core::List<core::int>?> map40 = block {
+    final core::Map<core::String, core::List<core::int>?> #t157 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<core::String, core::List<core::int>?> #t158 in <core::String, core::List<core::int>?>{"bar": <core::int>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+        #t157.{core::Map::[]=}{Invariant}(#t158.{core::MapEntry::key}{core::String}, #t158.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t157.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t157;
+  core::List<core::List<core::int>> list41 = block {
+    final core::List<core::List<core::int>> #t159 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t159.{core::List::addAll}{Invariant}( block {
+        final core::Set<core::List<core::int>> #t160 = col::LinkedHashSet::•<core::List<core::int>>();
+        #t160.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>) → core::bool};
+      } =>#t160){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t159;
+  core::Set<core::List<core::int>?> set41 = block {
+    final core::Set<core::List<core::int>?> #t161 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t161.{core::Set::addAll}{Invariant}( block {
+        final core::Set<core::List<core::int>?> #t162 = col::LinkedHashSet::•<core::List<core::int>?>();
+        #t162.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>?) → core::bool};
+      } =>#t162){(core::Iterable<core::List<core::int>?>) → void};
+    #t161.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t161;
+  core::List<core::List<core::int>> list42 = block {
+    final core::List<core::List<core::int>> #t163 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t163.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t163;
+  core::Set<core::List<core::int>?> set42 = block {
+    final core::Set<core::List<core::int>?> #t164 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t164.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t164.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t164;
+  core::Map<core::String, core::List<core::int>?> map42 = block {
+    final core::Map<core::String, core::List<core::int>?> #t165 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::List<core::int>?> #t166 in <core::String, core::List<core::int>?>{"bar": <core::int>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+          #t165.{core::Map::[]=}{Invariant}(#t166.{core::MapEntry::key}{core::String}, #t166.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t165.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t165;
+  core::List<core::int> list50 = block {
+    final core::List<core::int> #t167 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t167.{core::List::addAll}{Invariant}(<core::int>[]){(core::Iterable<core::int>) → void};
+  } =>#t167;
+  core::Set<core::int?> set50 = block {
+    final core::Set<core::int?> #t168 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t168.{core::Set::addAll}{Invariant}(<core::int?>[]){(core::Iterable<core::int?>) → void};
+    #t168.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t168;
+  core::Map<core::String, core::int?> map50 = block {
+    final core::Map<core::String, core::int?> #t169 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<core::String, core::int?> #t170 in <core::String, core::int?>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>})
+        #t169.{core::Map::[]=}{Invariant}(#t170.{core::MapEntry::key}{core::String}, #t170.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+    #t169.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t169;
+  core::List<core::int> list51 = block {
+    final core::List<core::int> #t171 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t171.{core::List::addAll}{Invariant}( block {
+        final core::Set<core::int> #t172 = col::LinkedHashSet::•<core::int>();
+      } =>#t172){(core::Iterable<core::int>) → void};
+  } =>#t171;
+  core::Set<core::int?> set51 = block {
+    final core::Set<core::int?> #t173 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t173.{core::Set::addAll}{Invariant}( block {
+        final core::Set<core::int?> #t174 = col::LinkedHashSet::•<core::int?>();
+      } =>#t174){(core::Iterable<core::int?>) → void};
+    #t173.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t173;
+  core::List<core::int> list52 = block {
+    final core::List<core::int> #t175 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t175.{core::List::addAll}{Invariant}(<core::int>[]){(core::Iterable<core::int>) → void};
+  } =>#t175;
+  core::Set<core::int?> set52 = block {
+    final core::Set<core::int?> #t176 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t176.{core::Set::addAll}{Invariant}(<core::int?>[]){(core::Iterable<core::int?>) → void};
+    #t176.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t176;
+  core::List<core::List<core::int>> list60 = block {
+    final core::List<core::List<core::int>> #t177 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t177.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t177;
+  core::Set<core::List<core::int>?> set60 = block {
+    final core::Set<core::List<core::int>?> #t178 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t178.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t178.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t178;
+  core::Map<core::String, core::List<core::int>?> map60 = block {
+    final core::Map<core::String, core::List<core::int>?> #t179 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<core::String, core::List<core::int>?> #t180 in <core::String, core::List<core::int>?>{"bar": <core::int>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+        #t179.{core::Map::[]=}{Invariant}(#t180.{core::MapEntry::key}{core::String}, #t180.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t179.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t179;
+  core::List<core::List<core::int>> list61 = block {
+    final core::List<core::List<core::int>> #t181 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t181.{core::List::addAll}{Invariant}(<core::List<core::int>>[<core::int>[]]){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t181;
+  core::Set<core::List<core::int>?> set61 = block {
+    final core::Set<core::List<core::int>?> #t182 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t182.{core::Set::addAll}{Invariant}(<core::List<core::int>?>[<core::int>[]]){(core::Iterable<core::List<core::int>?>) → void};
+    #t182.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t182;
+  core::Map<core::String, core::List<core::int>?> map61 = block {
+    final core::Map<core::String, core::List<core::int>?> #t183 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::List<core::int>?> #t184 in <core::String, core::List<core::int>?>{"bar": <core::int>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>})
+          #t183.{core::Map::[]=}{Invariant}(#t184.{core::MapEntry::key}{core::String}, #t184.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+    #t183.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t183;
+  core::List<core::List<core::int>> list70 = block {
+    final core::List<core::List<core::int>> #t185 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t185.{core::List::add}{Invariant}(<core::int>[]){(core::List<core::int>) → void};
+  } =>#t185;
+  core::Set<core::List<core::int>?> set70 = block {
+    final core::Set<core::List<core::int>?> #t186 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t186.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>?) → core::bool};
+    #t186.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t186;
+  core::Map<core::String, core::List<core::int>?> map70 = block {
+    final core::Map<core::String, core::List<core::int>?> #t187 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t187.{core::Map::[]=}{Invariant}("bar", <core::int>[]){(core::String, core::List<core::int>?) → void};
+    #t187.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t187;
+  core::List<core::List<core::int>> list71 = block {
+    final core::List<core::List<core::int>> #t188 = <core::List<core::int>>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t188.{core::List::add}{Invariant}(<core::int>[]){(core::List<core::int>) → void};
+  } =>#t188;
+  core::Set<core::List<core::int>?> set71 = block {
+    final core::Set<core::List<core::int>?> #t189 = col::LinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t189.{core::Set::add}{Invariant}(<core::int>[]){(core::List<core::int>?) → core::bool};
+    #t189.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t189;
+  core::Map<core::String, core::List<core::int>?> map71 = block {
+    final core::Map<core::String, core::List<core::int>?> #t190 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t190.{core::Map::[]=}{Invariant}("bar", <core::int>[]){(core::String, core::List<core::int>?) → void};
+    #t190.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t190;
+  core::List<core::num> list80 = block {
+    final core::List<core::num> #t191 = <core::num>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t191.{core::List::add}{Invariant}(42){(core::num) → void};
+      else
+        #t191.{core::List::add}{Invariant}(3.14){(core::num) → void};
+  } =>#t191;
+  core::Set<core::num?> set80 = block {
+    final core::Set<core::num?> #t192 = col::LinkedHashSet::•<core::num?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t192.{core::Set::add}{Invariant}(42){(core::num?) → core::bool};
+      else
+        #t192.{core::Set::add}{Invariant}(3.14){(core::num?) → core::bool};
+    #t192.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t192;
+  core::Map<core::String, core::num?> map80 = block {
+    final core::Map<core::String, core::num?> #t193 = <core::String, core::num?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t193.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::num?) → void};
+      else
+        #t193.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String, core::num?) → void};
+    #t193.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t193;
+  core::List<core::num> list81 = block {
+    final core::List<core::num> #t194 = <core::num>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t194.{core::List::addAll}{Invariant}(listInt){(core::Iterable<core::num>) → void};
+      else
+        #t194.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num>) → void};
+  } =>#t194;
+  core::Set<core::num?> set81 = block {
+    final core::Set<core::num?> #t195 = col::LinkedHashSet::•<core::num?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t195.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num?>) → void};
+      else
+        #t195.{core::Set::addAll}{Invariant}(listDouble){(core::Iterable<core::num?>) → void};
+    #t195.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t195;
+  core::Map<core::String, core::num?> map81 = block {
+    final core::Map<core::String, core::num?> #t196 = <core::String, core::num?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::num?> #t197 in mapStringInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>})
+          #t196.{core::Map::[]=}{Invariant}(#t197.{core::MapEntry::key}{core::String}, #t197.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+      else
+        for (final core::MapEntry<core::String, core::num?> #t198 in mapStringDouble.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>})
+          #t196.{core::Map::[]=}{Invariant}(#t198.{core::MapEntry::key}{core::String}, #t198.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+    #t196.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t196;
+  core::List<dynamic> list82 = block {
+    final core::List<dynamic> #t199 = <dynamic>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t199.{core::List::addAll}{Invariant}(listInt){(core::Iterable<dynamic>) → void};
+      else
+        #t199.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+  } =>#t199;
+  core::Set<dynamic> set82 = block {
+    final core::Set<dynamic> #t200 = col::LinkedHashSet::•<dynamic>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t200.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<dynamic>) → void};
+      else
+        #t200.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+    #t200.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t200;
+  core::Map<dynamic, dynamic> map82 = block {
+    final core::Map<dynamic, dynamic> #t201 = <dynamic, dynamic>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<dynamic, dynamic> #t202 in mapStringInt.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
+          #t201.{core::Map::[]=}{Invariant}(#t202.{core::MapEntry::key}{dynamic}, #t202.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+      else
+        for (final core::MapEntry<dynamic, dynamic> #t203 in (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
+          #t201.{core::Map::[]=}{Invariant}(#t203.{core::MapEntry::key}{dynamic}, #t203.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+    #t201.{core::Map::[]=}{Invariant}("baz", null){(dynamic, dynamic) → void};
+  } =>#t201;
+  core::List<core::num> list83 = block {
+    final core::List<core::num> #t204 = <core::num>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t204.{core::List::add}{Invariant}(42){(core::num) → void};
+      else
+        #t204.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num>) → void};
+  } =>#t204;
+  core::Set<core::num?> set83 = block {
+    final core::Set<core::num?> #t205 = col::LinkedHashSet::•<core::num?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t205.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num?>) → void};
+      else
+        #t205.{core::Set::add}{Invariant}(3.14){(core::num?) → core::bool};
+    #t205.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t205;
+  core::Map<core::String, core::num?> map83 = block {
+    final core::Map<core::String, core::num?> #t206 = <core::String, core::num?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        for (final core::MapEntry<core::String, core::num?> #t207 in mapStringInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>})
+          #t206.{core::Map::[]=}{Invariant}(#t207.{core::MapEntry::key}{core::String}, #t207.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+      else
+        #t206.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String, core::num?) → void};
+    #t206.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t206;
+  core::List<core::int> list90 = block {
+    final core::List<core::int> #t208 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t208.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+  } =>#t208;
+  core::Set<core::int?> set90 = block {
+    final core::Set<core::int?> #t209 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t209.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t209.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t209;
+  core::Map<core::String, core::int?> map90 = block {
+    final core::Map<core::String, core::int?> #t210 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t210.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::String, core::int?) → void};
+    #t210.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t210;
+  core::List<core::int> list91 = block {
+    final core::List<core::int> #t211 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final dynamic #t212 in dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+        final core::int #t213 = #t212 as{TypeError,ForNonNullableByDefault} core::int;
+        #t211.{core::List::add}{Invariant}(#t213){(core::int) → void};
+      }
+  } =>#t211;
+  core::Set<core::int?> set91 = block {
+    final core::Set<core::int?> #t214 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final dynamic #t215 in dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+        final core::int? #t216 = #t215 as{TypeError,ForNonNullableByDefault} core::int?;
+        #t214.{core::Set::add}{Invariant}(#t216){(core::int?) → core::bool};
+      }
+    #t214.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t214;
+  core::Map<core::String, core::int?> map91 = block {
+    final core::Map<core::String, core::int?> #t217 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<dynamic, dynamic> #t218 in (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>}) {
+        final core::String #t219 = #t218.{core::MapEntry::key}{dynamic} as{TypeError,ForNonNullableByDefault} core::String;
+        final core::int? #t220 = #t218.{core::MapEntry::value}{dynamic} as{TypeError,ForNonNullableByDefault} core::int?;
+        #t217.{core::Map::[]=}{Invariant}(#t219, #t220){(core::String, core::int?) → void};
+      }
+    #t217.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t217;
+  core::List<core::int> list100 = block {
+    final core::List<core::int> #t221 = <core::int>[];
+    for (final core::int #t222 = index = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; index = index.{core::num::+}(1){(core::num) → core::int})
+      #t221.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t221;
+  core::Set<core::int> set100 = block {
+    final core::Set<core::int> #t223 = col::LinkedHashSet::•<core::int>();
+    for (final core::int #t224 = index = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; index = index.{core::num::+}(1){(core::num) → core::int})
+      #t223.{core::Set::add}{Invariant}(42){(core::int) → core::bool};
+  } =>#t223;
+  core::Map<core::String, core::int> map100 = block {
+    final core::Map<core::String, core::int> #t225 = <core::String, core::int>{};
+    for (final core::int #t226 = index = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; index = index.{core::num::+}(1){(core::num) → core::int})
+      #t225.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int) → void};
+  } =>#t225;
+  core::List<core::int> list110 = block {
+    final core::List<core::int> #t227 = <core::int>[];
+    for (core::int i in <core::int>[1, 2, 3])
+      #t227.{core::List::add}{Invariant}(i){(core::int) → void};
+  } =>#t227;
+  core::Set<core::int?> set110 = block {
+    final core::Set<core::int?> #t228 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i in <core::int>[1, 2, 3])
+      #t228.{core::Set::add}{Invariant}(i){(core::int?) → core::bool};
+    #t228.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t228;
+  core::Map<core::String, core::int?> map110 = block {
+    final core::Map<core::String, core::int?> #t229 = <core::String, core::int?>{};
+    for (core::int i in <core::int>[1, 2, 3])
+      #t229.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int?) → void};
+    #t229.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t229;
+  core::List<core::int> list120 = block {
+    final core::List<core::int> #t230 = <core::int>[];
+    for (dynamic i in dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t230.{core::List::add}{Invariant}(i as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+  } =>#t230;
+  core::Set<core::int?> set120 = block {
+    final core::Set<core::int?> #t231 = col::LinkedHashSet::•<core::int?>();
+    for (dynamic i in dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t231.{core::Set::add}{Invariant}(i as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t231.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t231;
+  core::Map<core::String, core::int?> map120 = block {
+    final core::Map<core::String, core::int?> #t232 = <core::String, core::int?>{};
+    for (dynamic i in dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t232.{core::Map::[]=}{Invariant}("bar", i as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::String, core::int?) → void};
+    #t232.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t232;
+  core::List<core::int> list130 = block {
+    final core::List<core::int> #t233 = <core::int>[];
+    for (core::int i = 1; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t233.{core::List::add}{Invariant}(i){(core::int) → void};
+  } =>#t233;
+  core::Set<core::int> set130 = block {
+    final core::Set<core::int> #t234 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 1; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t234.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
+  } =>#t234;
+  core::Map<core::int, core::int> map130 = block {
+    final core::Map<core::int, core::int> #t235 = <core::int, core::int>{};
+    for (core::int i = 1; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t235.{core::Map::[]=}{Invariant}(i, i){(core::int, core::int) → void};
+  } =>#t235;
+}
+static method testForElementErrors(core::Map<core::int, core::int> map, core::List<core::int> list) → dynamic async {
+  block {
+    final core::List<core::int> #t236 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t236.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) \"bar\"];
+                                            ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+  } =>#t236;
+  block {
+    final core::Set<core::int?> #t237 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t237.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:211:46: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) \"bar\", null};
+                                             ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t237.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t237;
+  block {
+    final core::Map<core::int, core::int?> #t238 = <core::int, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:51: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
+                                                  ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:58: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
+                                                         ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?){(core::int, core::int?) → void};
+    #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
+                                                                ^" in "baz" as{TypeError,ForNonNullableByDefault} core::int, null){(core::int, core::int?) → void};
+  } =>#t238;
+  block {
+    final core::List<core::int> #t239 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t239.{core::List::addAll}{Invariant}(<core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"]];
+                                                ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int]){(core::Iterable<core::int>) → void};
+  } =>#t239;
+  block {
+    final core::Set<core::int?> #t240 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t240.{core::Set::addAll}{Invariant}(<core::int?>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:214:50: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"], null};
+                                                 ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?]){(core::Iterable<core::int?>) → void};
+    #t240.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t240;
+  block {
+    final core::Map<core::int, core::int?> #t241 = <core::int, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      for (final core::MapEntry<core::int, core::int?> #t242 in <core::int, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
+                                                      ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int: invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:62: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
+                                                             ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int?>>})
+        #t241.{core::Map::[]=}{Invariant}(#t242.{core::MapEntry::key}{core::int}, #t242.{core::MapEntry::value}{core::int?}){(core::int, core::int?) → void};
+    #t241.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
+                                                                     ^" in "baz" as{TypeError,ForNonNullableByDefault} core::int, null){(core::int, core::int?) → void};
+  } =>#t241;
+  block {
+    final core::List<core::int> #t243 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t243.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) ...map];
+                                               ^"){(core::int) → void};
+  } =>#t243;
+  block {
+    final core::Set<core::int?> #t244 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t244.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:217:49: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) ...map, null};
+                                                ^"){(core::int?) → core::bool};
+    #t244.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t244;
+  <core::int, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:218:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
+                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:218:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
+                                                     ^": null};
+  block {
+    final core::List<core::String> #t245 = <core::String>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
+                                                             ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+      else
+        #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+  <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
+                                                                     ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+  } =>#t245;
+  block {
+    final core::Set<core::String?> #t246 = col::LinkedHashSet::•<core::String?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:220:63: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+  <String?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
+                                                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String?){(core::String?) → core::bool};
+      else
+        #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:220:71: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+  <String?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
+                                                                      ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String?){(core::String?) → core::bool};
+    #t246.{core::Set::add}{Invariant}(null){(core::String?) → core::bool};
+  } =>#t246;
+  block {
+    final core::Map<core::String, core::String?> #t247 = <core::String, core::String?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:221:78: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+  <String, String?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
+                                                                             ^" in 42 as{TypeError,ForNonNullableByDefault} core::String?){(core::String, core::String?) → void};
+      else
+        #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:221:93: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+  <String, String?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
+                                                                                            ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String?){(core::String, core::String?) → void};
+    #t247.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::String?) → void};
+  } =>#t247;
+  block {
+    final core::List<core::int> #t248 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t248.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42];
+                                                             ^"){(core::int) → void};
+      else
+        #t248.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t248;
+  block {
+    final core::Set<core::int?> #t249 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t249.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:223:63: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42, null};
+                                                              ^"){(core::int?) → core::bool};
+      else
+        #t249.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t249.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t249;
+  <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:224:71: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
+                                                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:224:71: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
+                                                                      ^": null};
+  block {
+    final core::List<core::int> #t250 = <core::int>[];
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t250.{core::List::add}{Invariant}(42){(core::int) → void};
+      else
+        #t250.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map];
+                                                                     ^"){(core::int) → void};
+  } =>#t250;
+  block {
+    final core::Set<core::int?> #t251 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t251.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+      else
+        #t251.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:226:71: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map, null};
+                                                                      ^"){(core::int?) → core::bool};
+    #t251.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t251;
+  <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:227:86: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else ...list, \"baz\": null};
+                                                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:227:86: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else ...list, \"baz\": null};
+                                                                                     ^": null};
+  final core::int i = 0;
+  block {
+    final core::List<core::int> #t252 = <core::int>[];
+    for (final core::int #t253 in <core::int>[1]) {
+      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:230:14: Error: Can't assign to the final variable 'i'.
+  <int>[for (i in <int>[1]) i];
+             ^";
+      #t252.{core::List::add}{Invariant}(i){(core::int) → void};
+    }
+  } =>#t252;
+  block {
+    final core::Set<core::int?> #t254 = col::LinkedHashSet::•<core::int?>();
+    for (final core::int #t255 in <core::int>[1]) {
+      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:231:15: Error: Can't assign to the final variable 'i'.
+  <int?>{for (i in <int>[1]) i, null};
+              ^";
+      #t254.{core::Set::add}{Invariant}(i){(core::int?) → core::bool};
+    }
+    #t254.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t254;
+  block {
+    final core::Map<core::String, core::int?> #t256 = <core::String, core::int?>{};
+    for (final core::int #t257 in <core::int>[1]) {
+      invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:232:23: Error: Can't assign to the final variable 'i'.
+  <String, int?>{for (i in <int>[1]) \"bar\": i, \"baz\": null};
+                      ^";
+      #t256.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int?) → void};
+    }
+    #t256.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t256;
+  core::List<dynamic> list10 = block {
+    final core::List<dynamic> #t258 = <dynamic>[];
+    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:234:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Iterable' is from 'dart:core'.
+  var list10 = [for (var i in \"not iterable\") i];
+                              ^" in "not iterable" as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t258.{core::List::add}{Invariant}(i){(dynamic) → void};
+  } =>#t258;
+  core::Set<dynamic> set10 = block {
+    final core::Set<dynamic> #t259 = col::LinkedHashSet::•<dynamic>();
+    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:235:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Iterable' is from 'dart:core'.
+  var set10 = {for (var i in \"not iterable\") i, null};
+                             ^" in "not iterable" as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t259.{core::Set::add}{Invariant}(i){(dynamic) → core::bool};
+    #t259.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t259;
+  core::Map<core::String, dynamic> map10 = block {
+    final core::Map<core::String, dynamic> #t260 = <core::String, dynamic>{};
+    for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:236:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Iterable' is from 'dart:core'.
+  var map10 = {for (var i in \"not iterable\") \"bar\": i, \"baz\": null};
+                             ^" in "not iterable" as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t260.{core::Map::[]=}{Invariant}("bar", i){(core::String, dynamic) → void};
+    #t260.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t260;
+  core::List<core::int> list20 = block {
+    final core::List<core::int> #t261 = <core::int>[];
+    for (core::int i in <core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:237:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var list20 = [for (int i in [\"not\", \"int\"]) i];
+                               ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:237:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var list20 = [for (int i in [\"not\", \"int\"]) i];
+                                      ^" in "int" as{TypeError,ForNonNullableByDefault} core::int])
+      #t261.{core::List::add}{Invariant}(i){(core::int) → void};
+  } =>#t261;
+  core::Set<core::int?> set20 = block {
+    final core::Set<core::int?> #t262 = col::LinkedHashSet::•<core::int?>();
+    for (core::int i in <core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:238:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var set20 = {for (int i in [\"not\", \"int\"]) i, null};
+                              ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:238:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var set20 = {for (int i in [\"not\", \"int\"]) i, null};
+                                     ^" in "int" as{TypeError,ForNonNullableByDefault} core::int])
+      #t262.{core::Set::add}{Invariant}(i){(core::int?) → core::bool};
+    #t262.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t262;
+  core::Map<core::String, core::int?> map20 = block {
+    final core::Map<core::String, core::int?> #t263 = <core::String, core::int?>{};
+    for (core::int i in <core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:239:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
+                              ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:239:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
+                                     ^" in "int" as{TypeError,ForNonNullableByDefault} core::int])
+      #t263.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int?) → void};
+    #t263.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t263;
+  core::List<dynamic> list30 = block {
+    final core::List<dynamic> #t264 = <dynamic>[];
+    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:240:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ - 'Stream' is from 'dart:async'.
+  var list30 = [await for (var i in \"not stream\") i];
+                                    ^" in "not stream" as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>)
+      #t264.{core::List::add}{Invariant}(i){(dynamic) → void};
+  } =>#t264;
+  core::Set<dynamic> set30 = block {
+    final core::Set<dynamic> #t265 = col::LinkedHashSet::•<dynamic>();
+    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:241:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ - 'Stream' is from 'dart:async'.
+  var set30 = {await for (var i in \"not stream\") i, null};
+                                   ^" in "not stream" as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>)
+      #t265.{core::Set::add}{Invariant}(i){(dynamic) → core::bool};
+    #t265.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t265;
+  core::Map<core::String, dynamic> map30 = block {
+    final core::Map<core::String, dynamic> #t266 = <core::String, dynamic>{};
+    await for (dynamic i in invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:242:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ - 'Stream' is from 'dart:async'.
+  var map30 = {await for (var i in \"not stream\") \"bar\": i, \"baz\": null};
+                                   ^" in "not stream" as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>)
+      #t266.{core::Map::[]=}{Invariant}("bar", i){(core::String, dynamic) → void};
+    #t266.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t266;
+  core::List<core::int> list40 = block {
+    final core::List<core::int> #t267 = <core::int>[];
+    await for (core::int i in asy::Stream::fromIterable<core::int>(<core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:243:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
+                                                         ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:243:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
+                                                                ^" in "int" as{TypeError,ForNonNullableByDefault} core::int]))
+      #t267.{core::List::add}{Invariant}(i){(core::int) → void};
+  } =>#t267;
+  core::Set<core::int?> set40 = block {
+    final core::Set<core::int?> #t268 = col::LinkedHashSet::•<core::int?>();
+    await for (core::int i in asy::Stream::fromIterable<core::int>(<core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:244:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
+                                                        ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:244:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
+                                                               ^" in "int" as{TypeError,ForNonNullableByDefault} core::int]))
+      #t268.{core::Set::add}{Invariant}(i){(core::int?) → core::bool};
+    #t268.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t268;
+  core::Map<core::String, core::int?> map40 = block {
+    final core::Map<core::String, core::int?> #t269 = <core::String, core::int?>{};
+    await for (core::int i in asy::Stream::fromIterable<core::int>(<core::int>[invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:245:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
+                                                        ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:245:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
+                                                               ^" in "int" as{TypeError,ForNonNullableByDefault} core::int]))
+      #t269.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int?) → void};
+    #t269.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t269;
+  core::List<core::int> list50 = block {
+    final core::List<core::int> #t270 = <core::int>[];
+    for (; ; )
+      #t270.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t270;
+  core::Set<core::int?> set50 = block {
+    final core::Set<core::int?> #t271 = col::LinkedHashSet::•<core::int?>();
+    for (; ; )
+      #t271.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t271.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t271;
+  core::Map<core::String, core::int?> map50 = block {
+    final core::Map<core::String, core::int?> #t272 = <core::String, core::int?>{};
+    for (; ; )
+      #t272.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int?) → void};
+    #t272.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t272;
+  core::List<core::int> list60 = block {
+    final core::List<core::int> #t273 = <core::int>[];
+    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+  var list60 = [for (; \"not bool\";) 42];
+                       ^" in "not bool" as{TypeError,ForNonNullableByDefault} core::bool; )
+      #t273.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t273;
+  core::Set<core::int?> set60 = block {
+    final core::Set<core::int?> #t274 = col::LinkedHashSet::•<core::int?>();
+    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:250:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+  var set60 = {for (; \"not bool\";) 42, null};
+                      ^" in "not bool" as{TypeError,ForNonNullableByDefault} core::bool; )
+      #t274.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t274.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t274;
+  core::Map<core::String, core::int?> map60 = block {
+    final core::Map<core::String, core::int?> #t275 = <core::String, core::int?>{};
+    for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:251:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+  var map60 = {for (; \"not bool\";) \"bar\": 42, \"baz\": null};
+                      ^" in "not bool" as{TypeError,ForNonNullableByDefault} core::bool; )
+      #t275.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int?) → void};
+    #t275.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t275;
+}
+static method testForElementErrorsNotAsync(asy::Stream<core::int> stream) → dynamic {
+  block {
+    final core::List<core::int> #t276 = <core::int>[];
+    await for (core::int i in stream)
+      #t276.{core::List::add}{Invariant}(i){(core::int) → void};
+  } =>#t276;
+  block {
+    final core::Set<core::int> #t277 = col::LinkedHashSet::•<core::int>();
+    await for (core::int i in stream)
+      #t277.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
+  } =>#t277;
+  block {
+    final core::Map<core::String, core::int> #t278 = <core::String, core::int>{};
+    await for (core::int i in stream)
+      #t278.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int) → void};
+  } =>#t278;
+}
+static method testPromotion(self::A a) → dynamic {
+  core::List<core::int> list10 = block {
+    final core::List<core::int> #t279 = <core::int>[];
+    if(a is{ForNonNullableByDefault} self::B)
+      #t279.{core::List::add}{Invariant}(a{self::B}.{self::B::foo}{core::int}){(core::int) → void};
+  } =>#t279;
+  core::Set<core::int> set10 = block {
+    final core::Set<core::int> #t280 = col::LinkedHashSet::•<core::int>();
+    if(a is{ForNonNullableByDefault} self::B)
+      #t280.{core::Set::add}{Invariant}(a{self::B}.{self::B::foo}{core::int}){(core::int) → core::bool};
+  } =>#t280;
+  core::Map<core::int, core::int> map10 = block {
+    final core::Map<core::int, core::int> #t281 = <core::int, core::int>{};
+    if(a is{ForNonNullableByDefault} self::B)
+      #t281.{core::Map::[]=}{Invariant}(a{self::B}.{self::B::foo}{core::int}, a{self::B}.{self::B::foo}{core::int}){(core::int, core::int) → void};
+  } =>#t281;
+}
+static method main() → dynamic {}
+
+constants  {
+  #C1 = null
+}
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.weak.outline.expect b/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.weak.outline.expect
new file mode 100644
index 0000000..8c92e9b
--- /dev/null
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.weak.outline.expect
@@ -0,0 +1,31 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+class A extends core::Object {
+  synthetic constructor •() → self::A
+    ;
+}
+class B extends self::A {
+  synthetic constructor •() → self::B
+    ;
+  get foo() → core::int
+    ;
+}
+static method oracle<T extends core::Object? = dynamic>([self::oracle::T? t]) → dynamic
+  ;
+static method testIfElement(dynamic dynVar, core::List<core::int> listInt, core::List<core::double> listDouble, core::Map<core::String, core::int> mapToInt, core::Map<core::String, core::double> mapToDouble) → dynamic
+  ;
+static method testIfElementErrors(core::Map<core::int, core::int> map) → dynamic
+  ;
+static method testForElement(dynamic dynVar, core::List<core::int> listInt, core::List<core::double> listDouble, core::int index, core::Map<core::String, core::int> mapStringInt, core::Map<core::String, core::double> mapStringDouble) → dynamic
+  ;
+static method testForElementErrors(core::Map<core::int, core::int> map, core::List<core::int> list) → dynamic async 
+  ;
+static method testForElementErrorsNotAsync(asy::Stream<core::int> stream) → dynamic
+  ;
+static method testPromotion(self::A a) → dynamic
+  ;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.weak.transformed.expect
new file mode 100644
index 0000000..c300adc
--- /dev/null
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference2.dart.weak.transformed.expect
@@ -0,0 +1,2524 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:39:35: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+//   Map<String, List<int>?> map40 = {if (oracle("foo")) ...{"bar", []}, "baz": null};
+//                                   ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   var map82 = {if (oracle("foo")) ...mapToInt else ...dynVar, null};
+//                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:106:44: Error: Expected ':' after this.
+//   Set<dynamic> set10 = {if (oracle("foo")) 42 else "bar": 3.14};
+//                                            ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:107:53: Error: Expected ':' after this.
+//   Map<dynamic, dynamic> map10 = {if (oracle("foo")) 42 else "bar": 3.14};
+//                                                     ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:108:61: Error: Expected ':' after this.
+//   Set<dynamic> set11 = {if (oracle("foo")) "bar": 3.14 else 42};
+//                                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:109:70: Error: Expected ':' after this.
+//   Map<dynamic, dynamic> map11 = {if (oracle("foo")) "bar": 3.14 else 42};
+//                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:110:35: Error: Expected ':' after this.
+//   var map12 = {if (oracle("foo")) 42 else "bar": 3.14};
+//                                   ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:111:52: Error: Expected ':' after this.
+//   var map13 = {if (oracle("foo")) "bar": 3.14 else 42};
+//                                                    ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int>[if (oracle("foo")) "bar"];
+//                            ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:88:29: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int?>{if (oracle("foo")) "bar", null};
+//                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:89:44: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <String, int?>{if (oracle("foo")) "bar": "bar", "baz": null};
+//                                            ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int>[if (oracle("foo")) ...["bar"]];
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:91:33: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int?>{if (oracle("foo")) ...["bar"], null};
+//                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:92:48: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <String, int?>{if (oracle("foo")) ...{"bar": "bar"}, "baz": null};
+//                                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[if (oracle("foo")) ...map];
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:94:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{if (oracle("foo")) ...map, null};
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:95:40: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{if (oracle("foo")) ...["bar"], "baz": null};
+//                                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   <String>[if (oracle("foo")) 42 else 3.14];
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+//   <String>[if (oracle("foo")) 42 else 3.14];
+//                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:97:32: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+//   <String?>{if (oracle("foo")) 42 else 3.14, null};
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:97:40: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+//   <String?>{if (oracle("foo")) 42 else 3.14, null};
+//                                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:98:47: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+//   <String, String?>{if (oracle("foo")) "bar": 42 else "baz": 3.14, "baz": null};
+//                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:98:62: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+//   <String, String?>{if (oracle("foo")) "bar": 42 else "baz": 3.14, "baz": null};
+//                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[if (oracle("foo")) ...map else 42];
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:100:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{if (oracle("foo")) ...map else 42, null};
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:101:40: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{if (oracle("foo")) ...[42] else "bar": 42, "baz": null};
+//                                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[if (oracle("foo")) 42 else ...map];
+//                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:103:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{if (oracle("foo")) ...map else 42, null};
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:104:55: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{if (oracle("foo")) "bar": 42 else ...[42], "baz": null};
+//                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:106:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+//   Set<dynamic> set10 = {if (oracle("foo")) 42 else "bar": 3.14};
+//                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+//   Set<dynamic> set11 = {if (oracle("foo")) "bar": 3.14 else 42};
+//                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+//   List<int> list20 = [if (42) 42];
+//                           ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:113:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+//   Set<int> set20 = {if (42) 42};
+//                         ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:114:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+//   Map<int, int> map30 = {if (42) 42: 42};
+//                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+//   List<String> list40 = <String>[if (oracle("foo")) true else 42];
+//                                                     ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   List<String> list40 = <String>[if (oracle("foo")) true else 42];
+//                                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+//   Set<String> set40 = <String>{if (oracle("foo")) true else 42};
+//                                                   ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   Set<String> set40 = <String>{if (oracle("foo")) true else 42};
+//                                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+//   Map<String, int> map40 = <String, int>{if (oracle("foo")) true: 42 else 42: 42};
+//                                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   Map<String, int> map40 = <String, int>{if (oracle("foo")) true: 42 else 42: 42};
+//                                                                           ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+//   Map<int, String> map41 = <int, String>{if (oracle("foo")) 42: true else 42: 42};
+//                                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   Map<int, String> map41 = <int, String>{if (oracle("foo")) 42: true else 42: 42};
+//                                                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:230:14: Error: Can't assign to the final variable 'i'.
+//   <int>[for (i in <int>[1]) i];
+//              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:231:15: Error: Can't assign to the final variable 'i'.
+//   <int?>{for (i in <int>[1]) i, null};
+//               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:232:23: Error: Can't assign to the final variable 'i'.
+//   <String, int?>{for (i in <int>[1]) "bar": i, "baz": null};
+//                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:246:17: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// Try removing the keyword, or use a for-each statement.
+//   var list50 = [await for (;;) 42];
+//                 ^^^^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:247:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// Try removing the keyword, or use a for-each statement.
+//   var set50 = {await for (;;) 42, null};
+//                ^^^^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:248:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
+// Try removing the keyword, or use a for-each statement.
+//   var map50 = {await for (;;) "bar": 42, "baz": null};
+//                ^^^^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int>[for (int i = 0; oracle("foo"); i++) "bar"];
+//                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:211:46: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) "bar", null};
+//                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:51: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
+//                                                   ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:58: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
+//                                                          ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
+//                                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int>[for (int i = 0; oracle("foo"); i++) ...["bar"]];
+//                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:214:50: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) ...["bar"], null};
+//                                                  ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
+//                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:62: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
+//                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
+//                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[for (int i = 0; oracle("foo"); i++) ...map];
+//                                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:217:49: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) ...map, null};
+//                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:218:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <int, int?>{for (int i = 0; oracle("foo"); i++) ...list, 42: null};
+//                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+//   <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
+//                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+//   <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
+//                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:220:63: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+//   <String?>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
+//                                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:220:71: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+//   <String?>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
+//                                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:221:78: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+//   <String, String?>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
+//                                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:221:93: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+//   <String, String?>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
+//                                                                                             ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42];
+//                                                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:223:63: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42, null};
+//                                                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:224:71: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...list else "bar": 42, "baz": null};
+//                                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map];
+//                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:226:71: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//   <int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map, null};
+//                                                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:227:86: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//   <String, int?>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else ...list, "baz": null};
+//                                                                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:234:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Iterable' is from 'dart:core'.
+//   var list10 = [for (var i in "not iterable") i];
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:235:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Iterable' is from 'dart:core'.
+//   var set10 = {for (var i in "not iterable") i, null};
+//                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:236:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+//  - 'Iterable' is from 'dart:core'.
+//   var map10 = {for (var i in "not iterable") "bar": i, "baz": null};
+//                              ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:237:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var list20 = [for (int i in ["not", "int"]) i];
+//                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:237:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var list20 = [for (int i in ["not", "int"]) i];
+//                                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:238:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var set20 = {for (int i in ["not", "int"]) i, null};
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:238:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var set20 = {for (int i in ["not", "int"]) i, null};
+//                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:239:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var map20 = {for (int i in ["not", "int"]) "bar": i, "baz": null};
+//                               ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:239:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var map20 = {for (int i in ["not", "int"]) "bar": i, "baz": null};
+//                                      ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:240:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+//  - 'Stream' is from 'dart:async'.
+//   var list30 = [await for (var i in "not stream") i];
+//                                     ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:241:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+//  - 'Stream' is from 'dart:async'.
+//   var set30 = {await for (var i in "not stream") i, null};
+//                                    ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:242:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+//  - 'Stream' is from 'dart:async'.
+//   var map30 = {await for (var i in "not stream") "bar": i, "baz": null};
+//                                    ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:243:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var list40 = [await for (int i in Stream.fromIterable(["not", "int"])) i];
+//                                                          ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:243:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var list40 = [await for (int i in Stream.fromIterable(["not", "int"])) i];
+//                                                                 ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:244:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var set40 = {await for (int i in Stream.fromIterable(["not", "int"])) i, null};
+//                                                         ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:244:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var set40 = {await for (int i in Stream.fromIterable(["not", "int"])) i, null};
+//                                                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:245:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var map40 = {await for (int i in Stream.fromIterable(["not", "int"])) "bar": i, "baz": null};
+//                                                         ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:245:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   var map40 = {await for (int i in Stream.fromIterable(["not", "int"])) "bar": i, "baz": null};
+//                                                                ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+//   var list60 = [for (; "not bool";) 42];
+//                        ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:250:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+//   var set60 = {for (; "not bool";) 42, null};
+//                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:251:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+//   var map60 = {for (; "not bool";) "bar": 42, "baz": null};
+//                       ^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:255:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
+//   <int>[await for (int i in stream) i];
+//                          ^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:256:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
+//   <int>{await for (int i in stream) i};
+//                          ^^
+//
+// pkg/front_end/testcases/general/control_flow_collection_inference2.dart:257:34: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
+// Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
+//   <String, int>{await for (int i in stream) "bar": i};
+//                                  ^^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+import "dart:async" as asy;
+import "dart:_internal" as _in;
+
+class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+}
+class B extends self::A {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+  get foo() → core::int
+    return 42;
+}
+static method oracle<T extends core::Object? = dynamic>([self::oracle::T? t = #C1]) → dynamic
+  return true;
+static method testIfElement(dynamic dynVar, core::List<core::int> listInt, core::List<core::double> listDouble, core::Map<core::String, core::int> mapToInt, core::Map<core::String, core::double> mapToDouble) → dynamic {
+  core::List<core::int> list10 = block {
+    final core::List<core::int> #t1 = core::_GrowableList::•<core::int>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t1.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t1;
+  core::Set<core::int?> set10 = block {
+    final core::Set<core::int?> #t2 = new col::_CompactLinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t2.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t2.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t2;
+  core::Map<core::String, core::int?> map10 = block {
+    final core::Map<core::String, core::int?> #t3 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t3.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int?) → void};
+    #t3.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t3;
+  core::List<dynamic> list11 = block {
+    final core::List<dynamic> #t4 = core::_GrowableList::•<dynamic>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t4.{core::List::add}{Invariant}(dynVar){(dynamic) → void};
+  } =>#t4;
+  core::Set<dynamic> set11 = block {
+    final core::Set<dynamic> #t5 = new col::_CompactLinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t5.{core::Set::add}{Invariant}(dynVar){(dynamic) → core::bool};
+    #t5.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t5;
+  core::Map<core::String, dynamic> map11 = block {
+    final core::Map<core::String, dynamic> #t6 = <core::String, dynamic>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t6.{core::Map::[]=}{Invariant}("bar", dynVar){(core::String, dynamic) → void};
+    #t6.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t6;
+  core::List<core::List<core::int>> list12 = block {
+    final core::List<core::List<core::int>> #t7 = core::_GrowableList::•<core::List<core::int>>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t7.{core::List::add}{Invariant}(core::_GrowableList::_literal1<core::int>(42)){(core::List<core::int>) → void};
+  } =>#t7;
+  core::Set<core::List<core::int>?> set12 = block {
+    final core::Set<core::List<core::int>?> #t8 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t8.{core::Set::add}{Invariant}(core::_GrowableList::_literal1<core::int>(42)){(core::List<core::int>?) → core::bool};
+    #t8.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t8;
+  core::Map<core::String, core::List<core::int>?> map12 = block {
+    final core::Map<core::String, core::List<core::int>?> #t9 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t9.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::_literal1<core::int>(42)){(core::String, core::List<core::int>?) → void};
+    #t9.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t9;
+  core::List<core::int> list20 = block {
+    final core::List<core::int> #t10 = core::_GrowableList::•<core::int>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t10.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int>(42)){(core::Iterable<core::int>) → void};
+  } =>#t10;
+  core::Set<core::int?> set20 = block {
+    final core::Set<core::int?> #t11 = new col::_CompactLinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t11.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int>(42)){(core::Iterable<core::int?>) → void};
+    #t11.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t11;
+  core::Map<core::String, core::int?> map20 = block {
+    final core::Map<core::String, core::int?> #t12 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+      core::Iterator<core::MapEntry<core::String, core::int?>> :sync-for-iterator = <core::String, core::int>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::int?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, core::int?> #t13 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::int?>};
+        #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{core::String}, #t13.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+      }
+    }
+    #t12.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t12;
+  core::List<dynamic> list21 = block {
+    final core::List<dynamic> #t14 = core::_GrowableList::•<dynamic>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t14.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>) → void};
+  } =>#t14;
+  core::Set<dynamic> set21 = block {
+    final core::Set<dynamic> #t15 = new col::_CompactLinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t15.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>) → void};
+    #t15.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t15;
+  core::Map<core::String, dynamic> map21 = block {
+    final core::Map<core::String, dynamic> #t16 = <core::String, dynamic>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+      core::Iterator<core::MapEntry<core::String, dynamic>> :sync-for-iterator = <core::String, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, dynamic>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, dynamic> #t17 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, dynamic>};
+        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}{core::String}, #t17.{core::MapEntry::value}{dynamic}){(core::String, dynamic) → void};
+      }
+    }
+    #t16.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t16;
+  core::List<core::List<core::int>> list22 = block {
+    final core::List<core::List<core::int>> #t18 = core::_GrowableList::•<core::List<core::int>>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t18.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(42))){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t18;
+  core::Set<core::List<core::int>?> set22 = block {
+    final core::Set<core::List<core::int>?> #t19 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t19.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(42))){(core::Iterable<core::List<core::int>?>) → void};
+    #t19.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t19;
+  core::Map<core::String, core::List<core::int>?> map22 = block {
+    final core::Map<core::String, core::List<core::int>?> #t20 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+      core::Iterator<core::MapEntry<core::String, core::List<core::int>?>> :sync-for-iterator = <core::String, core::List<core::int>>{"bar": core::_GrowableList::_literal1<core::int>(42)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::List<core::int>?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, core::List<core::int>?> #t21 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::List<core::int>?>};
+        #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{core::String}, #t21.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+      }
+    }
+    #t20.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t20;
+  core::List<core::int> list30 = block {
+    final core::List<core::int> #t22 = core::_GrowableList::•<core::int>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t22.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int>(42)){(core::Iterable<core::int>) → void};
+  } =>#t22;
+  core::Set<core::int?> set30 = block {
+    final core::Set<core::int?> #t23 = new col::_CompactLinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t23.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int>(42)){(core::Iterable<core::int?>) → void};
+    #t23.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t23;
+  core::Map<core::String, core::int?> map30 = block {
+    final core::Map<core::String, core::int?> #t24 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+        core::Iterator<core::MapEntry<core::String, core::int?>> :sync-for-iterator = <core::String, core::int>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::int?>>};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+          final core::MapEntry<core::String, core::int?> #t25 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::int?>};
+          #t24.{core::Map::[]=}{Invariant}(#t25.{core::MapEntry::key}{core::String}, #t25.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+        }
+      }
+    #t24.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t24;
+  core::List<dynamic> list31 = block {
+    final core::List<dynamic> #t26 = core::_GrowableList::•<dynamic>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t26.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>) → void};
+  } =>#t26;
+  core::Set<dynamic> set31 = block {
+    final core::Set<dynamic> #t27 = new col::_CompactLinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t27.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>) → void};
+    #t27.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t27;
+  core::Map<core::String, dynamic> map31 = block {
+    final core::Map<core::String, dynamic> #t28 = <core::String, dynamic>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+        core::Iterator<core::MapEntry<core::String, dynamic>> :sync-for-iterator = <core::String, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, dynamic>>};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+          final core::MapEntry<core::String, dynamic> #t29 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, dynamic>};
+          #t28.{core::Map::[]=}{Invariant}(#t29.{core::MapEntry::key}{core::String}, #t29.{core::MapEntry::value}{dynamic}){(core::String, dynamic) → void};
+        }
+      }
+    #t28.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t28;
+  core::List<core::List<core::int>> list33 = block {
+    final core::List<core::List<core::int>> #t30 = core::_GrowableList::•<core::List<core::int>>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t30.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(42))){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t30;
+  core::Set<core::List<core::int>?> set33 = block {
+    final core::Set<core::List<core::int>?> #t31 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t31.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(42))){(core::Iterable<core::List<core::int>?>) → void};
+    #t31.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t31;
+  core::Map<core::String, core::List<core::int>?> map33 = block {
+    final core::Map<core::String, core::List<core::int>?> #t32 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+        core::Iterator<core::MapEntry<core::String, core::List<core::int>?>> :sync-for-iterator = <core::String, core::List<core::int>>{"bar": core::_GrowableList::_literal1<core::int>(42)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::List<core::int>?>>};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+          final core::MapEntry<core::String, core::List<core::int>?> #t33 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::List<core::int>?>};
+          #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}{core::String}, #t33.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+        }
+      }
+    #t32.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t32;
+  core::List<core::List<core::int>> list40 = block {
+    final core::List<core::List<core::int>> #t34 = core::_GrowableList::•<core::List<core::int>>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t34.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t34;
+  core::Set<core::List<core::int>?> set40 = block {
+    final core::Set<core::List<core::int>?> #t35 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t35.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>?>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>?>) → void};
+    #t35.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t35;
+  core::Map<core::String, core::List<core::int>?> map40 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:39:35: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  Map<String, List<int>?> map40 = {if (oracle(\"foo\")) ...{\"bar\", []}, \"baz\": null};
+                                  ^";
+  core::List<core::List<core::int>> list41 = block {
+    final core::List<core::List<core::int>> #t36 = core::_GrowableList::•<core::List<core::int>>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t36.{core::List::addAll}{Invariant}( block {
+        final core::Set<core::List<core::int>> #t37 = new col::_CompactLinkedHashSet::•<core::List<core::int>>();
+        #t37.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::List<core::int>) → core::bool};
+      } =>#t37){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t36;
+  core::Set<core::List<core::int>?> set41 = block {
+    final core::Set<core::List<core::int>?> #t38 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t38.{core::Set::addAll}{Invariant}( block {
+        final core::Set<core::List<core::int>?> #t39 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+        #t39.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::List<core::int>?) → core::bool};
+      } =>#t39){(core::Iterable<core::List<core::int>?>) → void};
+    #t38.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t38;
+  core::List<core::List<core::int>> list42 = block {
+    final core::List<core::List<core::int>> #t40 = core::_GrowableList::•<core::List<core::int>>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t40.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t40;
+  core::Set<core::List<core::int>?> set42 = block {
+    final core::Set<core::List<core::int>?> #t41 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t41.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>?>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>?>) → void};
+    #t41.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t41;
+  core::Map<core::String, core::List<core::int>?> map42 = block {
+    final core::Map<core::String, core::List<core::int>?> #t42 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+        core::Iterator<core::MapEntry<core::String, core::List<core::int>?>> :sync-for-iterator = <core::String, core::List<core::int>?>{"bar": core::_GrowableList::•<core::int>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::List<core::int>?>>};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+          final core::MapEntry<core::String, core::List<core::int>?> #t43 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::List<core::int>?>};
+          #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}{core::String}, #t43.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+        }
+      }
+    #t42.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t42;
+  core::List<core::int> list50 = block {
+    final core::List<core::int> #t44 = core::_GrowableList::•<core::int>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t44.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::Iterable<core::int>) → void};
+  } =>#t44;
+  core::Set<core::int?> set50 = block {
+    final core::Set<core::int?> #t45 = new col::_CompactLinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t45.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int?>(0)){(core::Iterable<core::int?>) → void};
+    #t45.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t45;
+  core::Map<core::String, core::int?> map50 = block {
+    final core::Map<core::String, core::int?> #t46 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+      core::Iterator<core::MapEntry<core::String, core::int?>> :sync-for-iterator = <core::String, core::int?>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::int?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, core::int?> #t47 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::int?>};
+        #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}{core::String}, #t47.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+      }
+    }
+    #t46.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t46;
+  core::List<core::int> list51 = block {
+    final core::List<core::int> #t48 = core::_GrowableList::•<core::int>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t48.{core::List::addAll}{Invariant}( block {
+        final core::Set<core::int> #t49 = new col::_CompactLinkedHashSet::•<core::int>();
+      } =>#t49){(core::Iterable<core::int>) → void};
+  } =>#t48;
+  core::Set<core::int?> set51 = block {
+    final core::Set<core::int?> #t50 = new col::_CompactLinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t50.{core::Set::addAll}{Invariant}( block {
+        final core::Set<core::int?> #t51 = new col::_CompactLinkedHashSet::•<core::int?>();
+      } =>#t51){(core::Iterable<core::int?>) → void};
+    #t50.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t50;
+  core::List<core::int> list52 = block {
+    final core::List<core::int> #t52 = core::_GrowableList::•<core::int>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t52.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::Iterable<core::int>) → void};
+  } =>#t52;
+  core::Set<core::int?> set52 = block {
+    final core::Set<core::int?> #t53 = new col::_CompactLinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t53.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int?>(0)){(core::Iterable<core::int?>) → void};
+    #t53.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t53;
+  core::Map<core::String, core::int?> map52 = block {
+    final core::Map<core::String, core::int?> #t54 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+        core::Iterator<core::MapEntry<core::String, core::int?>> :sync-for-iterator = <core::String, core::int?>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::int?>>};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+          final core::MapEntry<core::String, core::int?> #t55 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::int?>};
+          #t54.{core::Map::[]=}{Invariant}(#t55.{core::MapEntry::key}{core::String}, #t55.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+        }
+      }
+    #t54.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t54;
+  core::List<core::List<core::int>> list60 = block {
+    final core::List<core::List<core::int>> #t56 = core::_GrowableList::•<core::List<core::int>>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t56.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t56;
+  core::Set<core::List<core::int>?> set60 = block {
+    final core::Set<core::List<core::int>?> #t57 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t57.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>?>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>?>) → void};
+    #t57.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t57;
+  core::Map<core::String, core::List<core::int>?> map60 = block {
+    final core::Map<core::String, core::List<core::int>?> #t58 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+      core::Iterator<core::MapEntry<core::String, core::List<core::int>?>> :sync-for-iterator = <core::String, core::List<core::int>?>{"bar": core::_GrowableList::•<core::int>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::List<core::int>?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, core::List<core::int>?> #t59 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::List<core::int>?>};
+        #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}{core::String}, #t59.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+      }
+    }
+    #t58.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t58;
+  core::List<core::List<core::int>> list61 = block {
+    final core::List<core::List<core::int>> #t60 = core::_GrowableList::•<core::List<core::int>>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t60.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t60;
+  core::Set<core::List<core::int>?> set61 = block {
+    final core::Set<core::List<core::int>?> #t61 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t61.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>?>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>?>) → void};
+    #t61.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t61;
+  core::Map<core::String, core::List<core::int>?> map61 = block {
+    final core::Map<core::String, core::List<core::int>?> #t62 = <core::String, core::List<core::int>?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+        core::Iterator<core::MapEntry<core::String, core::List<core::int>?>> :sync-for-iterator = <core::String, core::List<core::int>?>{"bar": core::_GrowableList::•<core::int>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::List<core::int>?>>};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+          final core::MapEntry<core::String, core::List<core::int>?> #t63 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::List<core::int>?>};
+          #t62.{core::Map::[]=}{Invariant}(#t63.{core::MapEntry::key}{core::String}, #t63.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+        }
+      }
+    #t62.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t62;
+  core::List<core::List<core::int>> list70 = block {
+    final core::List<core::List<core::int>> #t64 = core::_GrowableList::•<core::List<core::int>>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t64.{core::List::add}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::List<core::int>) → void};
+  } =>#t64;
+  core::Set<core::List<core::int>?> set70 = block {
+    final core::Set<core::List<core::int>?> #t65 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t65.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::List<core::int>?) → core::bool};
+    #t65.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t65;
+  core::List<core::List<core::int>> list71 = block {
+    final core::List<core::List<core::int>> #t66 = core::_GrowableList::•<core::List<core::int>>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t66.{core::List::add}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::List<core::int>) → void};
+  } =>#t66;
+  core::Set<core::List<core::int>?> set71 = block {
+    final core::Set<core::List<core::int>?> #t67 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t67.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::List<core::int>?) → core::bool};
+    #t67.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t67;
+  core::List<core::num> list80 = block {
+    final core::List<core::num> #t68 = core::_GrowableList::•<core::num>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t68.{core::List::add}{Invariant}(42){(core::num) → void};
+    else
+      #t68.{core::List::add}{Invariant}(3.14){(core::num) → void};
+  } =>#t68;
+  core::Set<core::num?> set80 = block {
+    final core::Set<core::num?> #t69 = new col::_CompactLinkedHashSet::•<core::num?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t69.{core::Set::add}{Invariant}(42){(core::num?) → core::bool};
+    else
+      #t69.{core::Set::add}{Invariant}(3.14){(core::num?) → core::bool};
+    #t69.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t69;
+  core::Map<core::String, core::num?> map80 = block {
+    final core::Map<core::String, core::num?> #t70 = <core::String, core::num?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t70.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::num?) → void};
+    else
+      #t70.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String, core::num?) → void};
+    #t70.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t70;
+  core::List<core::num> list81 = block {
+    final core::List<core::num> #t71 = core::_GrowableList::•<core::num>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t71.{core::List::addAll}{Invariant}(listInt){(core::Iterable<core::num>) → void};
+    else
+      #t71.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num>) → void};
+  } =>#t71;
+  core::Set<core::num?> set81 = block {
+    final core::Set<core::num?> #t72 = new col::_CompactLinkedHashSet::•<core::num?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t72.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num?>) → void};
+    else
+      #t72.{core::Set::addAll}{Invariant}(listDouble){(core::Iterable<core::num?>) → void};
+    #t72.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t72;
+  core::Map<core::String, core::num?> map81 = block {
+    final core::Map<core::String, core::num?> #t73 = <core::String, core::num?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+      core::Iterator<core::MapEntry<core::String, core::num?>> :sync-for-iterator = mapToInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::num?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, core::num?> #t74 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::num?>};
+        #t73.{core::Map::[]=}{Invariant}(#t74.{core::MapEntry::key}{core::String}, #t74.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+      }
+    }
+    else {
+      core::Iterator<core::MapEntry<core::String, core::num?>> :sync-for-iterator = mapToDouble.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::num?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, core::num?> #t75 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::num?>};
+        #t73.{core::Map::[]=}{Invariant}(#t75.{core::MapEntry::key}{core::String}, #t75.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+      }
+    }
+    #t73.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t73;
+  core::List<dynamic> list82 = block {
+    final core::List<dynamic> #t76 = core::_GrowableList::•<dynamic>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t76.{core::List::addAll}{Invariant}(listInt){(core::Iterable<dynamic>) → void};
+    else
+      #t76.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+  } =>#t76;
+  core::Set<dynamic> set82 = block {
+    final core::Set<dynamic> #t77 = new col::_CompactLinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t77.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<dynamic>) → void};
+    else
+      #t77.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+    #t77.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t77;
+  core::Set<dynamic> map82 = block {
+    final core::Set<dynamic> #t78 = new col::_CompactLinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t78.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  var map82 = {if (oracle(\"foo\")) ...mapToInt else ...dynVar, null};
+                                     ^"){(dynamic) → core::bool};
+    else
+      #t78.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+    #t78.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t78;
+  core::List<core::num> list83 = block {
+    final core::List<core::num> #t79 = core::_GrowableList::•<core::num>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t79.{core::List::add}{Invariant}(42){(core::num) → void};
+    else
+      #t79.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num>) → void};
+  } =>#t79;
+  core::Set<core::num?> set83 = block {
+    final core::Set<core::num?> #t80 = new col::_CompactLinkedHashSet::•<core::num?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t80.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num?>) → void};
+    else
+      #t80.{core::Set::add}{Invariant}(3.14){(core::num?) → core::bool};
+    #t80.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t80;
+  core::Map<core::String, core::num?> map83 = block {
+    final core::Map<core::String, core::num?> #t81 = <core::String, core::num?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+      core::Iterator<core::MapEntry<core::String, core::num?>> :sync-for-iterator = mapToInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::num?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, core::num?> #t82 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::num?>};
+        #t81.{core::Map::[]=}{Invariant}(#t82.{core::MapEntry::key}{core::String}, #t82.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+      }
+    }
+    else
+      #t81.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String, core::num?) → void};
+    #t81.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t81;
+  core::List<core::int> list90 = block {
+    final core::List<core::int> #t83 = core::_GrowableList::•<core::int>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t83.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+  } =>#t83;
+  core::Set<core::int?> set90 = block {
+    final core::Set<core::int?> #t84 = new col::_CompactLinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t84.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t84.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t84;
+  core::Map<core::String, core::int?> map90 = block {
+    final core::Map<core::String, core::int?> #t85 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t85.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::String, core::int?) → void};
+    #t85.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t85;
+  core::List<core::int> list91 = block {
+    final core::List<core::int> #t86 = core::_GrowableList::•<core::int>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+      core::Iterator<dynamic> :sync-for-iterator = (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final dynamic #t87 = :sync-for-iterator.{core::Iterator::current}{dynamic};
+        {
+          final core::int #t88 = #t87 as{TypeError,ForNonNullableByDefault} core::int;
+          #t86.{core::List::add}{Invariant}(#t88){(core::int) → void};
+        }
+      }
+    }
+  } =>#t86;
+  core::Set<core::int?> set91 = block {
+    final core::Set<core::int?> #t89 = new col::_CompactLinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+      core::Iterator<dynamic> :sync-for-iterator = (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final dynamic #t90 = :sync-for-iterator.{core::Iterator::current}{dynamic};
+        {
+          final core::int? #t91 = #t90 as{TypeError,ForNonNullableByDefault} core::int?;
+          #t89.{core::Set::add}{Invariant}(#t91){(core::int?) → core::bool};
+        }
+      }
+    }
+    #t89.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t89;
+  core::Map<core::String, core::int?> map91 = block {
+    final core::Map<core::String, core::int?> #t92 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+      core::Iterator<core::MapEntry<core::String, core::int?>> :sync-for-iterator = (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::int?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<dynamic, dynamic> #t93 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::int?>};
+        {
+          final core::String #t94 = #t93.{core::MapEntry::key}{dynamic} as{TypeError,ForNonNullableByDefault} core::String;
+          final core::int? #t95 = #t93.{core::MapEntry::value}{dynamic} as{TypeError,ForNonNullableByDefault} core::int?;
+          #t92.{core::Map::[]=}{Invariant}(#t94, #t95){(core::String, core::int?) → void};
+        }
+      }
+    }
+    #t92.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t92;
+  core::List<core::int> list100 = block {
+    final core::List<core::int> #t96 = core::_GrowableList::•<core::int>(0);
+    if(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t96.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t96;
+  core::Set<core::int> set100 = block {
+    final core::Set<core::int> #t97 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t97.{core::Set::add}{Invariant}(42){(core::int) → core::bool};
+  } =>#t97;
+  core::Map<core::int, core::int> map100 = block {
+    final core::Map<core::int, core::int> #t98 = <core::int, core::int>{};
+    if(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t98.{core::Map::[]=}{Invariant}(42, 42){(core::int, core::int) → void};
+  } =>#t98;
+}
+static method testIfElementErrors(core::Map<core::int, core::int> map) → dynamic {
+  block {
+    final core::List<core::int> #t99 = core::_GrowableList::•<core::int>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t99.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int>[if (oracle(\"foo\")) \"bar\"];
+                           ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+  } =>#t99;
+  block {
+    final core::Set<core::int?> #t100 = new col::_CompactLinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t100.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:88:29: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int?>{if (oracle(\"foo\")) \"bar\", null};
+                            ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t100.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t100;
+  block {
+    final core::Map<core::String, core::int?> #t101 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t101.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:89:44: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <String, int?>{if (oracle(\"foo\")) \"bar\": \"bar\", \"baz\": null};
+                                           ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?){(core::String, core::int?) → void};
+    #t101.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t101;
+  block {
+    final core::List<core::int> #t102 = core::_GrowableList::•<core::int>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t102.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int>[if (oracle(\"foo\")) ...[\"bar\"]];
+                               ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int)){(core::Iterable<core::int>) → void};
+  } =>#t102;
+  block {
+    final core::Set<core::int?> #t103 = new col::_CompactLinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t103.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int?>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:91:33: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int?>{if (oracle(\"foo\")) ...[\"bar\"], null};
+                                ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?)){(core::Iterable<core::int?>) → void};
+    #t103.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t103;
+  block {
+    final core::Map<core::String, core::int?> #t104 = <core::String, core::int?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+      core::Iterator<core::MapEntry<core::String, core::int?>> :sync-for-iterator = <core::String, core::int?>{"bar": invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:92:48: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <String, int?>{if (oracle(\"foo\")) ...{\"bar\": \"bar\"}, \"baz\": null};
+                                               ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::int?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, core::int?> #t105 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::int?>};
+        #t104.{core::Map::[]=}{Invariant}(#t105.{core::MapEntry::key}{core::String}, #t105.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+      }
+    }
+    #t104.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t104;
+  block {
+    final core::List<core::int> #t106 = core::_GrowableList::•<core::int>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t106.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[if (oracle(\"foo\")) ...map];
+                              ^"){(core::int) → void};
+  } =>#t106;
+  block {
+    final core::Set<core::int?> #t107 = new col::_CompactLinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t107.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:94:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{if (oracle(\"foo\")) ...map, null};
+                               ^"){(core::int?) → core::bool};
+    #t107.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t107;
+  <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:95:40: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
+                                       ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:95:40: Error: Unexpected type 'List<String>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
+                                       ^": null};
+  block {
+    final core::List<core::String> #t108 = core::_GrowableList::•<core::String>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  <String>[if (oracle(\"foo\")) 42 else 3.14];
+                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+    else
+      #t108.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+  <String>[if (oracle(\"foo\")) 42 else 3.14];
+                                      ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+  } =>#t108;
+  block {
+    final core::Set<core::String?> #t109 = new col::_CompactLinkedHashSet::•<core::String?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:97:32: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+  <String?>{if (oracle(\"foo\")) 42 else 3.14, null};
+                               ^" in 42 as{TypeError,ForNonNullableByDefault} core::String?){(core::String?) → core::bool};
+    else
+      #t109.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:97:40: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+  <String?>{if (oracle(\"foo\")) 42 else 3.14, null};
+                                       ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String?){(core::String?) → core::bool};
+    #t109.{core::Set::add}{Invariant}(null){(core::String?) → core::bool};
+  } =>#t109;
+  block {
+    final core::Map<core::String, core::String?> #t110 = <core::String, core::String?>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t110.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:98:47: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+  <String, String?>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
+                                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String?){(core::String, core::String?) → void};
+    else
+      #t110.{core::Map::[]=}{Invariant}("baz", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:98:62: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+  <String, String?>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
+                                                             ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String?){(core::String, core::String?) → void};
+    #t110.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::String?) → void};
+  } =>#t110;
+  block {
+    final core::List<core::int> #t111 = core::_GrowableList::•<core::int>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t111.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[if (oracle(\"foo\")) ...map else 42];
+                              ^"){(core::int) → void};
+    else
+      #t111.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t111;
+  block {
+    final core::Set<core::int?> #t112 = new col::_CompactLinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t112.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:100:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{if (oracle(\"foo\")) ...map else 42, null};
+                               ^"){(core::int?) → core::bool};
+    else
+      #t112.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t112.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t112;
+  <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:101:40: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
+                                       ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:101:40: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
+                                       ^": null};
+  block {
+    final core::List<core::int> #t113 = core::_GrowableList::•<core::int>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t113.{core::List::add}{Invariant}(42){(core::int) → void};
+    else
+      #t113.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[if (oracle(\"foo\")) 42 else ...map];
+                                      ^"){(core::int) → void};
+  } =>#t113;
+  block {
+    final core::Set<core::int?> #t114 = new col::_CompactLinkedHashSet::•<core::int?>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t114.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:103:32: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{if (oracle(\"foo\")) ...map else 42, null};
+                               ^"){(core::int?) → core::bool};
+    else
+      #t114.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t114.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t114;
+  <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:104:55: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) \"bar\": 42 else ...[42], \"baz\": null};
+                                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:104:55: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{if (oracle(\"foo\")) \"bar\": 42 else ...[42], \"baz\": null};
+                                                      ^": null};
+  core::Set<dynamic> set10 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:106:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  Set<dynamic> set10 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
+                       ^";
+  core::Map<dynamic, dynamic> map10 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:107:53: Error: Expected ':' after this.
+  Map<dynamic, dynamic> map10 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
+                                                    ^": null};
+  core::Set<dynamic> set11 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:108:24: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  Set<dynamic> set11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
+                       ^";
+  core::Map<dynamic, dynamic> map11 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:109:70: Error: Expected ':' after this.
+  Map<dynamic, dynamic> map11 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
+                                                                     ^": null};
+  core::Map<dynamic, Null> map12 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:110:35: Error: Expected ':' after this.
+  var map12 = {if (oracle(\"foo\")) 42 else \"bar\": 3.14};
+                                  ^": null};
+  core::Map<dynamic, Null> map13 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:111:52: Error: Expected ':' after this.
+  var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
+                                                   ^": null};
+  core::List<core::int> list20 = block {
+    final core::List<core::int> #t115 = core::_GrowableList::•<core::int>(0);
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+  List<int> list20 = [if (42) 42];
+                          ^" in 42 as{TypeError,ForNonNullableByDefault} core::bool)
+      #t115.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t115;
+  core::Set<core::int> set20 = block {
+    final core::Set<core::int> #t116 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:113:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+  Set<int> set20 = {if (42) 42};
+                        ^" in 42 as{TypeError,ForNonNullableByDefault} core::bool)
+      #t116.{core::Set::add}{Invariant}(42){(core::int) → core::bool};
+  } =>#t116;
+  core::Map<core::int, core::int> map30 = block {
+    final core::Map<core::int, core::int> #t117 = <core::int, core::int>{};
+    if(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:114:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+  Map<int, int> map30 = {if (42) 42: 42};
+                             ^" in 42 as{TypeError,ForNonNullableByDefault} core::bool)
+      #t117.{core::Map::[]=}{Invariant}(42, 42){(core::int, core::int) → void};
+  } =>#t117;
+  core::List<core::String> list40 = block {
+    final core::List<core::String> #t118 = core::_GrowableList::•<core::String>(0);
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+  List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
+                                                    ^" in true as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+    else
+      #t118.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
+                                                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+  } =>#t118;
+  core::Set<core::String> set40 = block {
+    final core::Set<core::String> #t119 = new col::_CompactLinkedHashSet::•<core::String>();
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+  Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
+                                                  ^" in true as{TypeError,ForNonNullableByDefault} core::String){(core::String) → core::bool};
+    else
+      #t119.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
+                                                            ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → core::bool};
+  } =>#t119;
+  core::Map<core::String, core::int> map40 = block {
+    final core::Map<core::String, core::int> #t120 = <core::String, core::int>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+  Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
+                                                            ^" in true as{TypeError,ForNonNullableByDefault} core::String, 42){(core::String, core::int) → void};
+    else
+      #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
+                                                                          ^" in 42 as{TypeError,ForNonNullableByDefault} core::String, 42){(core::String, core::int) → void};
+  } =>#t120;
+  core::Map<core::int, core::String> map41 = block {
+    final core::Map<core::int, core::String> #t121 = <core::int, core::String>{};
+    if(self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+  Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
+                                                                ^" in true as{TypeError,ForNonNullableByDefault} core::String){(core::int, core::String) → void};
+    else
+      #t121.{core::Map::[]=}{Invariant}(42, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
+                                                                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::int, core::String) → void};
+  } =>#t121;
+}
+static method testForElement(dynamic dynVar, core::List<core::int> listInt, core::List<core::double> listDouble, core::int index, core::Map<core::String, core::int> mapStringInt, core::Map<core::String, core::double> mapStringDouble) → dynamic {
+  core::List<core::int> list10 = block {
+    final core::List<core::int> #t122 = core::_GrowableList::•<core::int>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t122.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t122;
+  core::Set<core::int?> set10 = block {
+    final core::Set<core::int?> #t123 = new col::_CompactLinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t123.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+    #t123.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t123;
+  core::Map<core::String, core::int?> map10 = block {
+    final core::Map<core::String, core::int?> #t124 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t124.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int?) → void};
+    #t124.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t124;
+  core::List<dynamic> list11 = block {
+    final core::List<dynamic> #t125 = core::_GrowableList::•<dynamic>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t125.{core::List::add}{Invariant}(dynVar){(dynamic) → void};
+  } =>#t125;
+  core::Set<dynamic> set11 = block {
+    final core::Set<dynamic> #t126 = new col::_CompactLinkedHashSet::•<dynamic>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t126.{core::Set::add}{Invariant}(dynVar){(dynamic) → core::bool};
+    #t126.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t126;
+  core::Map<core::String, dynamic> map11 = block {
+    final core::Map<core::String, dynamic> #t127 = <core::String, dynamic>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t127.{core::Map::[]=}{Invariant}("bar", dynVar){(core::String, dynamic) → void};
+    #t127.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t127;
+  core::List<core::List<core::int>> list12 = block {
+    final core::List<core::List<core::int>> #t128 = core::_GrowableList::•<core::List<core::int>>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t128.{core::List::add}{Invariant}(core::_GrowableList::_literal1<core::int>(42)){(core::List<core::int>) → void};
+  } =>#t128;
+  core::Set<core::List<core::int>?> set12 = block {
+    final core::Set<core::List<core::int>?> #t129 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t129.{core::Set::add}{Invariant}(core::_GrowableList::_literal1<core::int>(42)){(core::List<core::int>?) → core::bool};
+    #t129.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t129;
+  core::Map<core::String, core::List<core::int>?> map12 = block {
+    final core::Map<core::String, core::List<core::int>?> #t130 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t130.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::_literal1<core::int>(42)){(core::String, core::List<core::int>?) → void};
+    #t130.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t130;
+  core::List<core::int> list20 = block {
+    final core::List<core::int> #t131 = core::_GrowableList::•<core::int>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t131.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int>(42)){(core::Iterable<core::int>) → void};
+  } =>#t131;
+  core::Set<core::int?> set20 = block {
+    final core::Set<core::int?> #t132 = new col::_CompactLinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t132.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int>(42)){(core::Iterable<core::int?>) → void};
+    #t132.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t132;
+  core::Map<core::String, core::int?> map20 = block {
+    final core::Map<core::String, core::int?> #t133 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      core::Iterator<core::MapEntry<core::String, core::int?>> :sync-for-iterator = <core::String, core::int>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::int?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, core::int?> #t134 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::int?>};
+        #t133.{core::Map::[]=}{Invariant}(#t134.{core::MapEntry::key}{core::String}, #t134.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+      }
+    }
+    #t133.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t133;
+  core::List<dynamic> list21 = block {
+    final core::List<dynamic> #t135 = core::_GrowableList::•<dynamic>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t135.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>) → void};
+  } =>#t135;
+  core::Set<dynamic> set21 = block {
+    final core::Set<dynamic> #t136 = new col::_CompactLinkedHashSet::•<dynamic>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t136.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>) → void};
+    #t136.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t136;
+  core::Map<core::String, dynamic> map21 = block {
+    final core::Map<core::String, dynamic> #t137 = <core::String, dynamic>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      core::Iterator<core::MapEntry<core::String, dynamic>> :sync-for-iterator = <core::String, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, dynamic>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, dynamic> #t138 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, dynamic>};
+        #t137.{core::Map::[]=}{Invariant}(#t138.{core::MapEntry::key}{core::String}, #t138.{core::MapEntry::value}{dynamic}){(core::String, dynamic) → void};
+      }
+    }
+    #t137.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t137;
+  core::List<core::List<core::int>> list22 = block {
+    final core::List<core::List<core::int>> #t139 = core::_GrowableList::•<core::List<core::int>>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t139.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(42))){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t139;
+  core::Set<core::List<core::int>?> set22 = block {
+    final core::Set<core::List<core::int>?> #t140 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t140.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(42))){(core::Iterable<core::List<core::int>?>) → void};
+    #t140.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t140;
+  core::Map<core::String, core::List<core::int>?> map22 = block {
+    final core::Map<core::String, core::List<core::int>?> #t141 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      core::Iterator<core::MapEntry<core::String, core::List<core::int>?>> :sync-for-iterator = <core::String, core::List<core::int>>{"bar": core::_GrowableList::_literal1<core::int>(42)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::List<core::int>?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, core::List<core::int>?> #t142 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::List<core::int>?>};
+        #t141.{core::Map::[]=}{Invariant}(#t142.{core::MapEntry::key}{core::String}, #t142.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+      }
+    }
+    #t141.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t141;
+  core::List<core::int> list30 = block {
+    final core::List<core::int> #t143 = core::_GrowableList::•<core::int>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t143.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int>(42)){(core::Iterable<core::int>) → void};
+  } =>#t143;
+  core::Set<core::int?> set30 = block {
+    final core::Set<core::int?> #t144 = new col::_CompactLinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t144.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int>(42)){(core::Iterable<core::int?>) → void};
+    #t144.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t144;
+  core::Map<core::String, core::int?> map30 = block {
+    final core::Map<core::String, core::int?> #t145 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+        core::Iterator<core::MapEntry<core::String, core::int?>> :sync-for-iterator = <core::String, core::int>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::int?>>};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+          final core::MapEntry<core::String, core::int?> #t146 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::int?>};
+          #t145.{core::Map::[]=}{Invariant}(#t146.{core::MapEntry::key}{core::String}, #t146.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+        }
+      }
+    #t145.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t145;
+  core::List<dynamic> list31 = block {
+    final core::List<dynamic> #t147 = core::_GrowableList::•<dynamic>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t147.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>) → void};
+  } =>#t147;
+  core::Set<dynamic> set31 = block {
+    final core::Set<dynamic> #t148 = new col::_CompactLinkedHashSet::•<dynamic>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t148.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>) → void};
+    #t148.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t148;
+  core::Map<core::String, dynamic> map31 = block {
+    final core::Map<core::String, dynamic> #t149 = <core::String, dynamic>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+        core::Iterator<core::MapEntry<core::String, dynamic>> :sync-for-iterator = <core::String, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, dynamic>>};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+          final core::MapEntry<core::String, dynamic> #t150 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, dynamic>};
+          #t149.{core::Map::[]=}{Invariant}(#t150.{core::MapEntry::key}{core::String}, #t150.{core::MapEntry::value}{dynamic}){(core::String, dynamic) → void};
+        }
+      }
+    #t149.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+  } =>#t149;
+  core::List<core::List<core::int>> list33 = block {
+    final core::List<core::List<core::int>> #t151 = core::_GrowableList::•<core::List<core::int>>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t151.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(42))){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t151;
+  core::Set<core::List<core::int>?> set33 = block {
+    final core::Set<core::List<core::int>?> #t152 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t152.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(42))){(core::Iterable<core::List<core::int>?>) → void};
+    #t152.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t152;
+  core::Map<core::String, core::List<core::int>?> map33 = block {
+    final core::Map<core::String, core::List<core::int>?> #t153 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+        core::Iterator<core::MapEntry<core::String, core::List<core::int>?>> :sync-for-iterator = <core::String, core::List<core::int>>{"bar": core::_GrowableList::_literal1<core::int>(42)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::List<core::int>?>>};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+          final core::MapEntry<core::String, core::List<core::int>?> #t154 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::List<core::int>?>};
+          #t153.{core::Map::[]=}{Invariant}(#t154.{core::MapEntry::key}{core::String}, #t154.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+        }
+      }
+    #t153.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t153;
+  core::List<core::List<core::int>> list40 = block {
+    final core::List<core::List<core::int>> #t155 = core::_GrowableList::•<core::List<core::int>>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t155.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t155;
+  core::Set<core::List<core::int>?> set40 = block {
+    final core::Set<core::List<core::int>?> #t156 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t156.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>?>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>?>) → void};
+    #t156.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t156;
+  core::Map<core::String, core::List<core::int>?> map40 = block {
+    final core::Map<core::String, core::List<core::int>?> #t157 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      core::Iterator<core::MapEntry<core::String, core::List<core::int>?>> :sync-for-iterator = <core::String, core::List<core::int>?>{"bar": core::_GrowableList::•<core::int>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::List<core::int>?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, core::List<core::int>?> #t158 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::List<core::int>?>};
+        #t157.{core::Map::[]=}{Invariant}(#t158.{core::MapEntry::key}{core::String}, #t158.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+      }
+    }
+    #t157.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t157;
+  core::List<core::List<core::int>> list41 = block {
+    final core::List<core::List<core::int>> #t159 = core::_GrowableList::•<core::List<core::int>>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t159.{core::List::addAll}{Invariant}( block {
+        final core::Set<core::List<core::int>> #t160 = new col::_CompactLinkedHashSet::•<core::List<core::int>>();
+        #t160.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::List<core::int>) → core::bool};
+      } =>#t160){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t159;
+  core::Set<core::List<core::int>?> set41 = block {
+    final core::Set<core::List<core::int>?> #t161 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t161.{core::Set::addAll}{Invariant}( block {
+        final core::Set<core::List<core::int>?> #t162 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+        #t162.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::List<core::int>?) → core::bool};
+      } =>#t162){(core::Iterable<core::List<core::int>?>) → void};
+    #t161.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t161;
+  core::List<core::List<core::int>> list42 = block {
+    final core::List<core::List<core::int>> #t163 = core::_GrowableList::•<core::List<core::int>>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t163.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t163;
+  core::Set<core::List<core::int>?> set42 = block {
+    final core::Set<core::List<core::int>?> #t164 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t164.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>?>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>?>) → void};
+    #t164.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t164;
+  core::Map<core::String, core::List<core::int>?> map42 = block {
+    final core::Map<core::String, core::List<core::int>?> #t165 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+        core::Iterator<core::MapEntry<core::String, core::List<core::int>?>> :sync-for-iterator = <core::String, core::List<core::int>?>{"bar": core::_GrowableList::•<core::int>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::List<core::int>?>>};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+          final core::MapEntry<core::String, core::List<core::int>?> #t166 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::List<core::int>?>};
+          #t165.{core::Map::[]=}{Invariant}(#t166.{core::MapEntry::key}{core::String}, #t166.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+        }
+      }
+    #t165.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t165;
+  core::List<core::int> list50 = block {
+    final core::List<core::int> #t167 = core::_GrowableList::•<core::int>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t167.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::Iterable<core::int>) → void};
+  } =>#t167;
+  core::Set<core::int?> set50 = block {
+    final core::Set<core::int?> #t168 = new col::_CompactLinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t168.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int?>(0)){(core::Iterable<core::int?>) → void};
+    #t168.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t168;
+  core::Map<core::String, core::int?> map50 = block {
+    final core::Map<core::String, core::int?> #t169 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      core::Iterator<core::MapEntry<core::String, core::int?>> :sync-for-iterator = <core::String, core::int?>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::int?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, core::int?> #t170 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::int?>};
+        #t169.{core::Map::[]=}{Invariant}(#t170.{core::MapEntry::key}{core::String}, #t170.{core::MapEntry::value}{core::int?}){(core::String, core::int?) → void};
+      }
+    }
+    #t169.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t169;
+  core::List<core::int> list51 = block {
+    final core::List<core::int> #t171 = core::_GrowableList::•<core::int>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t171.{core::List::addAll}{Invariant}( block {
+        final core::Set<core::int> #t172 = new col::_CompactLinkedHashSet::•<core::int>();
+      } =>#t172){(core::Iterable<core::int>) → void};
+  } =>#t171;
+  core::Set<core::int?> set51 = block {
+    final core::Set<core::int?> #t173 = new col::_CompactLinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t173.{core::Set::addAll}{Invariant}( block {
+        final core::Set<core::int?> #t174 = new col::_CompactLinkedHashSet::•<core::int?>();
+      } =>#t174){(core::Iterable<core::int?>) → void};
+    #t173.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t173;
+  core::List<core::int> list52 = block {
+    final core::List<core::int> #t175 = core::_GrowableList::•<core::int>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t175.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::Iterable<core::int>) → void};
+  } =>#t175;
+  core::Set<core::int?> set52 = block {
+    final core::Set<core::int?> #t176 = new col::_CompactLinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t176.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int?>(0)){(core::Iterable<core::int?>) → void};
+    #t176.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t176;
+  core::List<core::List<core::int>> list60 = block {
+    final core::List<core::List<core::int>> #t177 = core::_GrowableList::•<core::List<core::int>>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t177.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t177;
+  core::Set<core::List<core::int>?> set60 = block {
+    final core::Set<core::List<core::int>?> #t178 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t178.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>?>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>?>) → void};
+    #t178.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t178;
+  core::Map<core::String, core::List<core::int>?> map60 = block {
+    final core::Map<core::String, core::List<core::int>?> #t179 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      core::Iterator<core::MapEntry<core::String, core::List<core::int>?>> :sync-for-iterator = <core::String, core::List<core::int>?>{"bar": core::_GrowableList::•<core::int>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::List<core::int>?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<core::String, core::List<core::int>?> #t180 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::List<core::int>?>};
+        #t179.{core::Map::[]=}{Invariant}(#t180.{core::MapEntry::key}{core::String}, #t180.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+      }
+    }
+    #t179.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t179;
+  core::List<core::List<core::int>> list61 = block {
+    final core::List<core::List<core::int>> #t181 = core::_GrowableList::•<core::List<core::int>>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t181.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>>) → void};
+  } =>#t181;
+  core::Set<core::List<core::int>?> set61 = block {
+    final core::Set<core::List<core::int>?> #t182 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t182.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int>?>(core::_GrowableList::•<core::int>(0))){(core::Iterable<core::List<core::int>?>) → void};
+    #t182.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t182;
+  core::Map<core::String, core::List<core::int>?> map61 = block {
+    final core::Map<core::String, core::List<core::int>?> #t183 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+        core::Iterator<core::MapEntry<core::String, core::List<core::int>?>> :sync-for-iterator = <core::String, core::List<core::int>?>{"bar": core::_GrowableList::•<core::int>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::List<core::int>?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::List<core::int>?>>};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+          final core::MapEntry<core::String, core::List<core::int>?> #t184 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::List<core::int>?>};
+          #t183.{core::Map::[]=}{Invariant}(#t184.{core::MapEntry::key}{core::String}, #t184.{core::MapEntry::value}{core::List<core::int>?}){(core::String, core::List<core::int>?) → void};
+        }
+      }
+    #t183.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t183;
+  core::List<core::List<core::int>> list70 = block {
+    final core::List<core::List<core::int>> #t185 = core::_GrowableList::•<core::List<core::int>>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t185.{core::List::add}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::List<core::int>) → void};
+  } =>#t185;
+  core::Set<core::List<core::int>?> set70 = block {
+    final core::Set<core::List<core::int>?> #t186 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t186.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::List<core::int>?) → core::bool};
+    #t186.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t186;
+  core::Map<core::String, core::List<core::int>?> map70 = block {
+    final core::Map<core::String, core::List<core::int>?> #t187 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t187.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::•<core::int>(0)){(core::String, core::List<core::int>?) → void};
+    #t187.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t187;
+  core::List<core::List<core::int>> list71 = block {
+    final core::List<core::List<core::int>> #t188 = core::_GrowableList::•<core::List<core::int>>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t188.{core::List::add}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::List<core::int>) → void};
+  } =>#t188;
+  core::Set<core::List<core::int>?> set71 = block {
+    final core::Set<core::List<core::int>?> #t189 = new col::_CompactLinkedHashSet::•<core::List<core::int>?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t189.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int>(0)){(core::List<core::int>?) → core::bool};
+    #t189.{core::Set::add}{Invariant}(null){(core::List<core::int>?) → core::bool};
+  } =>#t189;
+  core::Map<core::String, core::List<core::int>?> map71 = block {
+    final core::Map<core::String, core::List<core::int>?> #t190 = <core::String, core::List<core::int>?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t190.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::•<core::int>(0)){(core::String, core::List<core::int>?) → void};
+    #t190.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::List<core::int>?) → void};
+  } =>#t190;
+  core::List<core::num> list80 = block {
+    final core::List<core::num> #t191 = core::_GrowableList::•<core::num>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t191.{core::List::add}{Invariant}(42){(core::num) → void};
+      else
+        #t191.{core::List::add}{Invariant}(3.14){(core::num) → void};
+  } =>#t191;
+  core::Set<core::num?> set80 = block {
+    final core::Set<core::num?> #t192 = new col::_CompactLinkedHashSet::•<core::num?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t192.{core::Set::add}{Invariant}(42){(core::num?) → core::bool};
+      else
+        #t192.{core::Set::add}{Invariant}(3.14){(core::num?) → core::bool};
+    #t192.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t192;
+  core::Map<core::String, core::num?> map80 = block {
+    final core::Map<core::String, core::num?> #t193 = <core::String, core::num?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t193.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::num?) → void};
+      else
+        #t193.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String, core::num?) → void};
+    #t193.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t193;
+  core::List<core::num> list81 = block {
+    final core::List<core::num> #t194 = core::_GrowableList::•<core::num>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t194.{core::List::addAll}{Invariant}(listInt){(core::Iterable<core::num>) → void};
+      else
+        #t194.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num>) → void};
+  } =>#t194;
+  core::Set<core::num?> set81 = block {
+    final core::Set<core::num?> #t195 = new col::_CompactLinkedHashSet::•<core::num?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t195.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num?>) → void};
+      else
+        #t195.{core::Set::addAll}{Invariant}(listDouble){(core::Iterable<core::num?>) → void};
+    #t195.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t195;
+  core::Map<core::String, core::num?> map81 = block {
+    final core::Map<core::String, core::num?> #t196 = <core::String, core::num?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+        core::Iterator<core::MapEntry<core::String, core::num?>> :sync-for-iterator = mapStringInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::num?>>};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+          final core::MapEntry<core::String, core::num?> #t197 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::num?>};
+          #t196.{core::Map::[]=}{Invariant}(#t197.{core::MapEntry::key}{core::String}, #t197.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+        }
+      }
+      else {
+        core::Iterator<core::MapEntry<core::String, core::num?>> :sync-for-iterator = mapStringDouble.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::num?>>};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+          final core::MapEntry<core::String, core::num?> #t198 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::num?>};
+          #t196.{core::Map::[]=}{Invariant}(#t198.{core::MapEntry::key}{core::String}, #t198.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+        }
+      }
+    #t196.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t196;
+  core::List<dynamic> list82 = block {
+    final core::List<dynamic> #t199 = core::_GrowableList::•<dynamic>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t199.{core::List::addAll}{Invariant}(listInt){(core::Iterable<dynamic>) → void};
+      else
+        #t199.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+  } =>#t199;
+  core::Set<dynamic> set82 = block {
+    final core::Set<dynamic> #t200 = new col::_CompactLinkedHashSet::•<dynamic>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t200.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<dynamic>) → void};
+      else
+        #t200.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+    #t200.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+  } =>#t200;
+  core::Map<dynamic, dynamic> map82 = block {
+    final core::Map<dynamic, dynamic> #t201 = <dynamic, dynamic>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+        core::Iterator<core::MapEntry<dynamic, dynamic>> :sync-for-iterator = mapStringInt.{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> #t202 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
+          #t201.{core::Map::[]=}{Invariant}(#t202.{core::MapEntry::key}{dynamic}, #t202.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+        }
+      }
+      else {
+        core::Iterator<core::MapEntry<dynamic, dynamic>> :sync-for-iterator = (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{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> #t203 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
+          #t201.{core::Map::[]=}{Invariant}(#t203.{core::MapEntry::key}{dynamic}, #t203.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+        }
+      }
+    #t201.{core::Map::[]=}{Invariant}("baz", null){(dynamic, dynamic) → void};
+  } =>#t201;
+  core::List<core::num> list83 = block {
+    final core::List<core::num> #t204 = core::_GrowableList::•<core::num>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t204.{core::List::add}{Invariant}(42){(core::num) → void};
+      else
+        #t204.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num>) → void};
+  } =>#t204;
+  core::Set<core::num?> set83 = block {
+    final core::Set<core::num?> #t205 = new col::_CompactLinkedHashSet::•<core::num?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+        #t205.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num?>) → void};
+      else
+        #t205.{core::Set::add}{Invariant}(3.14){(core::num?) → core::bool};
+    #t205.{core::Set::add}{Invariant}(null){(core::num?) → core::bool};
+  } =>#t205;
+  core::Map<core::String, core::num?> map83 = block {
+    final core::Map<core::String, core::num?> #t206 = <core::String, core::num?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool) {
+        core::Iterator<core::MapEntry<core::String, core::num?>> :sync-for-iterator = mapStringInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::num?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::num?>>};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+          final core::MapEntry<core::String, core::num?> #t207 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::num?>};
+          #t206.{core::Map::[]=}{Invariant}(#t207.{core::MapEntry::key}{core::String}, #t207.{core::MapEntry::value}{core::num?}){(core::String, core::num?) → void};
+        }
+      }
+      else
+        #t206.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String, core::num?) → void};
+    #t206.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::num?) → void};
+  } =>#t206;
+  core::List<core::int> list90 = block {
+    final core::List<core::int> #t208 = core::_GrowableList::•<core::int>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t208.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+  } =>#t208;
+  core::Set<core::int?> set90 = block {
+    final core::Set<core::int?> #t209 = new col::_CompactLinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t209.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+    #t209.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t209;
+  core::Map<core::String, core::int?> map90 = block {
+    final core::Map<core::String, core::int?> #t210 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t210.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::String, core::int?) → void};
+    #t210.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t210;
+  core::List<core::int> list91 = block {
+    final core::List<core::int> #t211 = core::_GrowableList::•<core::int>(0);
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      core::Iterator<dynamic> :sync-for-iterator = (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final dynamic #t212 = :sync-for-iterator.{core::Iterator::current}{dynamic};
+        {
+          final core::int #t213 = #t212 as{TypeError,ForNonNullableByDefault} core::int;
+          #t211.{core::List::add}{Invariant}(#t213){(core::int) → void};
+        }
+      }
+    }
+  } =>#t211;
+  core::Set<core::int?> set91 = block {
+    final core::Set<core::int?> #t214 = new col::_CompactLinkedHashSet::•<core::int?>();
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      core::Iterator<dynamic> :sync-for-iterator = (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final dynamic #t215 = :sync-for-iterator.{core::Iterator::current}{dynamic};
+        {
+          final core::int? #t216 = #t215 as{TypeError,ForNonNullableByDefault} core::int?;
+          #t214.{core::Set::add}{Invariant}(#t216){(core::int?) → core::bool};
+        }
+      }
+    }
+    #t214.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t214;
+  core::Map<core::String, core::int?> map91 = block {
+    final core::Map<core::String, core::int?> #t217 = <core::String, core::int?>{};
+    for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int}) {
+      core::Iterator<core::MapEntry<core::String, core::int?>> :sync-for-iterator = (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int?>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::int?>>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        final core::MapEntry<dynamic, dynamic> #t218 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::int?>};
+        {
+          final core::String #t219 = #t218.{core::MapEntry::key}{dynamic} as{TypeError,ForNonNullableByDefault} core::String;
+          final core::int? #t220 = #t218.{core::MapEntry::value}{dynamic} as{TypeError,ForNonNullableByDefault} core::int?;
+          #t217.{core::Map::[]=}{Invariant}(#t219, #t220){(core::String, core::int?) → void};
+        }
+      }
+    }
+    #t217.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t217;
+  core::List<core::int> list100 = block {
+    final core::List<core::int> #t221 = core::_GrowableList::•<core::int>(0);
+    for (final core::int #t222 = index = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; index = index.{core::num::+}(1){(core::num) → core::int})
+      #t221.{core::List::add}{Invariant}(42){(core::int) → void};
+  } =>#t221;
+  core::Set<core::int> set100 = block {
+    final core::Set<core::int> #t223 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (final core::int #t224 = index = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; index = index.{core::num::+}(1){(core::num) → core::int})
+      #t223.{core::Set::add}{Invariant}(42){(core::int) → core::bool};
+  } =>#t223;
+  core::Map<core::String, core::int> map100 = block {
+    final core::Map<core::String, core::int> #t225 = <core::String, core::int>{};
+    for (final core::int #t226 = index = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; index = index.{core::num::+}(1){(core::num) → core::int})
+      #t225.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int) → void};
+  } =>#t225;
+  core::List<core::int> list110 = block {
+    final core::List<core::int> #t227 = core::_GrowableList::•<core::int>(0);
+    {
+      core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::int>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        core::int i = :sync-for-iterator.{core::Iterator::current}{core::int};
+        #t227.{core::List::add}{Invariant}(i){(core::int) → void};
+      }
+    }
+  } =>#t227;
+  core::Set<core::int?> set110 = block {
+    final core::Set<core::int?> #t228 = new col::_CompactLinkedHashSet::•<core::int?>();
+    {
+      core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::int>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        core::int i = :sync-for-iterator.{core::Iterator::current}{core::int};
+        #t228.{core::Set::add}{Invariant}(i){(core::int?) → core::bool};
+      }
+    }
+    #t228.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t228;
+  core::Map<core::String, core::int?> map110 = block {
+    final core::Map<core::String, core::int?> #t229 = <core::String, core::int?>{};
+    {
+      core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::int>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        core::int i = :sync-for-iterator.{core::Iterator::current}{core::int};
+        #t229.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int?) → void};
+      }
+    }
+    #t229.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t229;
+  core::List<core::int> list120 = block {
+    final core::List<core::int> #t230 = core::_GrowableList::•<core::int>(0);
+    {
+      core::Iterator<dynamic> :sync-for-iterator = (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        dynamic i = :sync-for-iterator.{core::Iterator::current}{dynamic};
+        #t230.{core::List::add}{Invariant}(i as{TypeError,ForDynamic,ForNonNullableByDefault} core::int){(core::int) → void};
+      }
+    }
+  } =>#t230;
+  core::Set<core::int?> set120 = block {
+    final core::Set<core::int?> #t231 = new col::_CompactLinkedHashSet::•<core::int?>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        dynamic i = :sync-for-iterator.{core::Iterator::current}{dynamic};
+        #t231.{core::Set::add}{Invariant}(i as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+      }
+    }
+    #t231.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+  } =>#t231;
+  core::Map<core::String, core::int?> map120 = block {
+    final core::Map<core::String, core::int?> #t232 = <core::String, core::int?>{};
+    {
+      core::Iterator<dynamic> :sync-for-iterator = (dynVar as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+        dynamic i = :sync-for-iterator.{core::Iterator::current}{dynamic};
+        #t232.{core::Map::[]=}{Invariant}("bar", i as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?){(core::String, core::int?) → void};
+      }
+    }
+    #t232.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+  } =>#t232;
+  core::List<core::int> list130 = block {
+    final core::List<core::int> #t233 = core::_GrowableList::•<core::int>(0);
+    for (core::int i = 1; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t233.{core::List::add}{Invariant}(i){(core::int) → void};
+  } =>#t233;
+  core::Set<core::int> set130 = block {
+    final core::Set<core::int> #t234 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 1; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t234.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
+  } =>#t234;
+  core::Map<core::int, core::int> map130 = block {
+    final core::Map<core::int, core::int> #t235 = <core::int, core::int>{};
+    for (core::int i = 1; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
+      #t235.{core::Map::[]=}{Invariant}(i, i){(core::int, core::int) → void};
+  } =>#t235;
+}
+static method testForElementErrors(core::Map<core::int, core::int> map, core::List<core::int> list) → 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;
+  dynamic :saved_try_context_var1;
+  dynamic :exception0;
+  dynamic :stack_trace0;
+  function :async_op(dynamic :result_or_exception, dynamic :stack_trace) → dynamic yielding 
+    try {
+      #L1:
+      {
+        block {
+          final core::List<core::int> #t236 = core::_GrowableList::•<core::int>(0);
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+            #t236.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) \"bar\"];
+                                            ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+        } =>#t236;
+        block {
+          final core::Set<core::int?> #t237 = new col::_CompactLinkedHashSet::•<core::int?>();
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+            #t237.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:211:46: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) \"bar\", null};
+                                             ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?){(core::int?) → core::bool};
+          #t237.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+        } =>#t237;
+        block {
+          final core::Map<core::int, core::int?> #t238 = <core::int, core::int?>{};
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+            #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:51: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
+                                                  ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:58: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
+                                                         ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?){(core::int, core::int?) → void};
+          #t238.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:212:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
+                                                                ^" in "baz" as{TypeError,ForNonNullableByDefault} core::int, null){(core::int, core::int?) → void};
+        } =>#t238;
+        block {
+          final core::List<core::int> #t239 = core::_GrowableList::•<core::int>(0);
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+            #t239.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"]];
+                                                ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int)){(core::Iterable<core::int>) → void};
+        } =>#t239;
+        block {
+          final core::Set<core::int?> #t240 = new col::_CompactLinkedHashSet::•<core::int?>();
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+            #t240.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int?>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:214:50: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"], null};
+                                                 ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?)){(core::Iterable<core::int?>) → void};
+          #t240.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+        } =>#t240;
+        block {
+          final core::Map<core::int, core::int?> #t241 = <core::int, core::int?>{};
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int}) {
+            core::Iterator<core::MapEntry<core::int, core::int?>> :sync-for-iterator = <core::int, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
+                                                      ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int: invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:62: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
+                                                             ^" in "bar" as{TypeError,ForNonNullableByDefault} core::int?}.{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?> #t242 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int?>};
+              #t241.{core::Map::[]=}{Invariant}(#t242.{core::MapEntry::key}{core::int}, #t242.{core::MapEntry::value}{core::int?}){(core::int, core::int?) → void};
+            }
+          }
+          #t241.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:215:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
+                                                                     ^" in "baz" as{TypeError,ForNonNullableByDefault} core::int, null){(core::int, core::int?) → void};
+        } =>#t241;
+        block {
+          final core::List<core::int> #t243 = core::_GrowableList::•<core::int>(0);
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+            #t243.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) ...map];
+                                               ^"){(core::int) → void};
+        } =>#t243;
+        block {
+          final core::Set<core::int?> #t244 = new col::_CompactLinkedHashSet::•<core::int?>();
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+            #t244.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:217:49: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) ...map, null};
+                                                ^"){(core::int?) → core::bool};
+          #t244.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+        } =>#t244;
+        <core::int, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:218:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
+                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:218:54: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <int, int?>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
+                                                     ^": null};
+        block {
+          final core::List<core::String> #t245 = core::_GrowableList::•<core::String>(0);
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+            if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+              #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
+                                                             ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+            else
+              #t245.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+  <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
+                                                                     ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String){(core::String) → void};
+        } =>#t245;
+        block {
+          final core::Set<core::String?> #t246 = new col::_CompactLinkedHashSet::•<core::String?>();
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+            if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+              #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:220:63: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+  <String?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
+                                                              ^" in 42 as{TypeError,ForNonNullableByDefault} core::String?){(core::String?) → core::bool};
+            else
+              #t246.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:220:71: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+  <String?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
+                                                                      ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String?){(core::String?) → core::bool};
+          #t246.{core::Set::add}{Invariant}(null){(core::String?) → core::bool};
+        } =>#t246;
+        block {
+          final core::Map<core::String, core::String?> #t247 = <core::String, core::String?>{};
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+            if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+              #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:221:78: Error: A value of type 'int' can't be assigned to a variable of type 'String?'.
+  <String, String?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
+                                                                             ^" in 42 as{TypeError,ForNonNullableByDefault} core::String?){(core::String, core::String?) → void};
+            else
+              #t247.{core::Map::[]=}{Invariant}("bar", invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:221:93: Error: A value of type 'double' can't be assigned to a variable of type 'String?'.
+  <String, String?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
+                                                                                            ^" in 3.14 as{TypeError,ForNonNullableByDefault} core::String?){(core::String, core::String?) → void};
+          #t247.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::String?) → void};
+        } =>#t247;
+        block {
+          final core::List<core::int> #t248 = core::_GrowableList::•<core::int>(0);
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+            if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+              #t248.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42];
+                                                             ^"){(core::int) → void};
+            else
+              #t248.{core::List::add}{Invariant}(42){(core::int) → void};
+        } =>#t248;
+        block {
+          final core::Set<core::int?> #t249 = new col::_CompactLinkedHashSet::•<core::int?>();
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+            if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+              #t249.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:223:63: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42, null};
+                                                              ^"){(core::int?) → core::bool};
+            else
+              #t249.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+          #t249.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+        } =>#t249;
+        <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:224:71: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
+                                                                      ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:224:71: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
+                                                                      ^": null};
+        block {
+          final core::List<core::int> #t250 = core::_GrowableList::•<core::int>(0);
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+            if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+              #t250.{core::List::add}{Invariant}(42){(core::int) → void};
+            else
+              #t250.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map];
+                                                                     ^"){(core::int) → void};
+        } =>#t250;
+        block {
+          final core::Set<core::int?> #t251 = new col::_CompactLinkedHashSet::•<core::int?>();
+          for (core::int i = 0; self::oracle<core::String>("foo") as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool; i = i.{core::num::+}(1){(core::num) → core::int})
+            if(self::oracle<dynamic>() as{TypeError,ForDynamic,ForNonNullableByDefault} core::bool)
+              #t251.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+            else
+              #t251.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:226:71: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+  <int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map, null};
+                                                                      ^"){(core::int?) → core::bool};
+          #t251.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+        } =>#t251;
+        <core::String, core::int?>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:227:86: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else ...list, \"baz\": null};
+                                                                                     ^": null, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:227:86: Error: Unexpected type 'List<int>' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+  <String, int?>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else ...list, \"baz\": null};
+                                                                                     ^": null};
+        final core::int i = 0;
+        block {
+          final core::List<core::int> #t252 = core::_GrowableList::•<core::int>(0);
+          {
+            core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal1<core::int>(1).{core::Iterable::iterator}{core::Iterator<core::int>};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+              final core::int #t253 = :sync-for-iterator.{core::Iterator::current}{core::int};
+              {
+                invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:230:14: Error: Can't assign to the final variable 'i'.
+  <int>[for (i in <int>[1]) i];
+             ^";
+                #t252.{core::List::add}{Invariant}(i){(core::int) → void};
+              }
+            }
+          }
+        } =>#t252;
+        block {
+          final core::Set<core::int?> #t254 = new col::_CompactLinkedHashSet::•<core::int?>();
+          {
+            core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal1<core::int>(1).{core::Iterable::iterator}{core::Iterator<core::int>};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+              final core::int #t255 = :sync-for-iterator.{core::Iterator::current}{core::int};
+              {
+                invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:231:15: Error: Can't assign to the final variable 'i'.
+  <int?>{for (i in <int>[1]) i, null};
+              ^";
+                #t254.{core::Set::add}{Invariant}(i){(core::int?) → core::bool};
+              }
+            }
+          }
+          #t254.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+        } =>#t254;
+        block {
+          final core::Map<core::String, core::int?> #t256 = <core::String, core::int?>{};
+          {
+            core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal1<core::int>(1).{core::Iterable::iterator}{core::Iterator<core::int>};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+              final core::int #t257 = :sync-for-iterator.{core::Iterator::current}{core::int};
+              {
+                invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:232:23: Error: Can't assign to the final variable 'i'.
+  <String, int?>{for (i in <int>[1]) \"bar\": i, \"baz\": null};
+                      ^";
+                #t256.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int?) → void};
+              }
+            }
+          }
+          #t256.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+        } =>#t256;
+        core::List<dynamic> list10 = block {
+          final core::List<dynamic> #t258 = core::_GrowableList::•<dynamic>(0);
+          {
+            core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:234:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Iterable' is from 'dart:core'.
+  var list10 = [for (var i in \"not iterable\") i];
+                              ^" in "not iterable" as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+              dynamic i = :sync-for-iterator.{core::Iterator::current}{Never};
+              #t258.{core::List::add}{Invariant}(i){(dynamic) → void};
+            }
+          }
+        } =>#t258;
+        core::Set<dynamic> set10 = block {
+          final core::Set<dynamic> #t259 = new col::_CompactLinkedHashSet::•<dynamic>();
+          {
+            core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:235:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Iterable' is from 'dart:core'.
+  var set10 = {for (var i in \"not iterable\") i, null};
+                             ^" in "not iterable" as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+              dynamic i = :sync-for-iterator.{core::Iterator::current}{Never};
+              #t259.{core::Set::add}{Invariant}(i){(dynamic) → core::bool};
+            }
+          }
+          #t259.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+        } =>#t259;
+        core::Map<core::String, dynamic> map10 = block {
+          final core::Map<core::String, dynamic> #t260 = <core::String, dynamic>{};
+          {
+            core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:236:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ - 'Iterable' is from 'dart:core'.
+  var map10 = {for (var i in \"not iterable\") \"bar\": i, \"baz\": null};
+                             ^" in "not iterable" as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+              dynamic i = :sync-for-iterator.{core::Iterator::current}{Never};
+              #t260.{core::Map::[]=}{Invariant}("bar", i){(core::String, dynamic) → void};
+            }
+          }
+          #t260.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+        } =>#t260;
+        core::List<core::int> list20 = block {
+          final core::List<core::int> #t261 = core::_GrowableList::•<core::int>(0);
+          {
+            core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:237:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var list20 = [for (int i in [\"not\", \"int\"]) i];
+                               ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:237:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var list20 = [for (int i in [\"not\", \"int\"]) i];
+                                      ^" in "int" as{TypeError,ForNonNullableByDefault} core::int).{core::Iterable::iterator}{core::Iterator<core::int>};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+              core::int i = :sync-for-iterator.{core::Iterator::current}{core::int};
+              #t261.{core::List::add}{Invariant}(i){(core::int) → void};
+            }
+          }
+        } =>#t261;
+        core::Set<core::int?> set20 = block {
+          final core::Set<core::int?> #t262 = new col::_CompactLinkedHashSet::•<core::int?>();
+          {
+            core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:238:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var set20 = {for (int i in [\"not\", \"int\"]) i, null};
+                              ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:238:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var set20 = {for (int i in [\"not\", \"int\"]) i, null};
+                                     ^" in "int" as{TypeError,ForNonNullableByDefault} core::int).{core::Iterable::iterator}{core::Iterator<core::int>};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+              core::int i = :sync-for-iterator.{core::Iterator::current}{core::int};
+              #t262.{core::Set::add}{Invariant}(i){(core::int?) → core::bool};
+            }
+          }
+          #t262.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+        } =>#t262;
+        core::Map<core::String, core::int?> map20 = block {
+          final core::Map<core::String, core::int?> #t263 = <core::String, core::int?>{};
+          {
+            core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:239:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
+                              ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:239:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
+                                     ^" in "int" as{TypeError,ForNonNullableByDefault} core::int).{core::Iterable::iterator}{core::Iterator<core::int>};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+              core::int i = :sync-for-iterator.{core::Iterator::current}{core::int};
+              #t263.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int?) → void};
+            }
+          }
+          #t263.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+        } =>#t263;
+        final core::List<dynamic> #t264 = core::_GrowableList::•<dynamic>(0);
+        {
+          Never :stream = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:240:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ - 'Stream' is from 'dart:async'.
+  var list30 = [await for (var i in \"not stream\") i];
+                                    ^" in "not stream" as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>;
+          asy::_StreamIterator<dynamic>? :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+          try
+            #L2:
+            while (true) {
+              dynamic #t265 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t266 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}, :async_op_then, :async_op_error) in null;
+              if(_in::unsafeCast<core::bool>(:result_or_exception)) {
+                dynamic i = :for-iterator.{asy::_StreamIterator::current}{dynamic};
+                #t264.{core::List::add}{Invariant}(i){(dynamic) → void};
+              }
+              else
+                break #L2;
+            }
+          finally
+            if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<dynamic>?} == null)) {
+              [yield] let dynamic #t267 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>}, :async_op_then, :async_op_error) in null;
+              :result_or_exception;
+            }
+        }
+        core::List<dynamic> list30 = block {} =>#t264;
+        final core::Set<dynamic> #t268 = new col::_CompactLinkedHashSet::•<dynamic>();
+        {
+          Never :stream = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:241:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ - 'Stream' is from 'dart:async'.
+  var set30 = {await for (var i in \"not stream\") i, null};
+                                   ^" in "not stream" as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>;
+          asy::_StreamIterator<dynamic>? :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+          try
+            #L3:
+            while (true) {
+              dynamic #t269 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t270 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}, :async_op_then, :async_op_error) in null;
+              if(_in::unsafeCast<core::bool>(:result_or_exception)) {
+                dynamic i = :for-iterator.{asy::_StreamIterator::current}{dynamic};
+                #t268.{core::Set::add}{Invariant}(i){(dynamic) → core::bool};
+              }
+              else
+                break #L3;
+            }
+          finally
+            if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<dynamic>?} == null)) {
+              [yield] let dynamic #t271 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>}, :async_op_then, :async_op_error) in null;
+              :result_or_exception;
+            }
+        }
+        core::Set<dynamic> set30 = block {
+          #t268.{core::Set::add}{Invariant}(null){(dynamic) → core::bool};
+        } =>#t268;
+        final core::Map<core::String, dynamic> #t272 = <core::String, dynamic>{};
+        {
+          Never :stream = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:242:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ - 'Stream' is from 'dart:async'.
+  var map30 = {await for (var i in \"not stream\") \"bar\": i, \"baz\": null};
+                                   ^" in "not stream" as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>;
+          asy::_StreamIterator<dynamic>? :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+          try
+            #L4:
+            while (true) {
+              dynamic #t273 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t274 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}, :async_op_then, :async_op_error) in null;
+              if(_in::unsafeCast<core::bool>(:result_or_exception)) {
+                dynamic i = :for-iterator.{asy::_StreamIterator::current}{dynamic};
+                #t272.{core::Map::[]=}{Invariant}("bar", i){(core::String, dynamic) → void};
+              }
+              else
+                break #L4;
+            }
+          finally
+            if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<dynamic>?} == null)) {
+              [yield] let dynamic #t275 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>}, :async_op_then, :async_op_error) in null;
+              :result_or_exception;
+            }
+        }
+        core::Map<core::String, dynamic> map30 = block {
+          #t272.{core::Map::[]=}{Invariant}("baz", null){(core::String, dynamic) → void};
+        } =>#t272;
+        final core::List<core::int> #t276 = core::_GrowableList::•<core::int>(0);
+        {
+          asy::Stream<core::int> :stream = asy::Stream::fromIterable<core::int>(core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:243:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
+                                                         ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:243:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
+                                                                ^" in "int" as{TypeError,ForNonNullableByDefault} core::int));
+          asy::_StreamIterator<core::int>? :for-iterator = new asy::_StreamIterator::•<core::int>(:stream);
+          try
+            #L5:
+            while (true) {
+              dynamic #t277 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t278 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}, :async_op_then, :async_op_error) in null;
+              if(_in::unsafeCast<core::bool>(:result_or_exception)) {
+                core::int i = :for-iterator.{asy::_StreamIterator::current}{core::int};
+                #t276.{core::List::add}{Invariant}(i){(core::int) → void};
+              }
+              else
+                break #L5;
+            }
+          finally
+            if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::int>?} == null)) {
+              [yield] let dynamic #t279 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>}, :async_op_then, :async_op_error) in null;
+              :result_or_exception;
+            }
+        }
+        core::List<core::int> list40 = block {} =>#t276;
+        final core::Set<core::int?> #t280 = new col::_CompactLinkedHashSet::•<core::int?>();
+        {
+          asy::Stream<core::int> :stream = asy::Stream::fromIterable<core::int>(core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:244:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
+                                                        ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:244:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
+                                                               ^" in "int" as{TypeError,ForNonNullableByDefault} core::int));
+          asy::_StreamIterator<core::int>? :for-iterator = new asy::_StreamIterator::•<core::int>(:stream);
+          try
+            #L6:
+            while (true) {
+              dynamic #t281 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t282 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}, :async_op_then, :async_op_error) in null;
+              if(_in::unsafeCast<core::bool>(:result_or_exception)) {
+                core::int i = :for-iterator.{asy::_StreamIterator::current}{core::int};
+                #t280.{core::Set::add}{Invariant}(i){(core::int?) → core::bool};
+              }
+              else
+                break #L6;
+            }
+          finally
+            if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::int>?} == null)) {
+              [yield] let dynamic #t283 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>}, :async_op_then, :async_op_error) in null;
+              :result_or_exception;
+            }
+        }
+        core::Set<core::int?> set40 = block {
+          #t280.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+        } =>#t280;
+        final core::Map<core::String, core::int?> #t284 = <core::String, core::int?>{};
+        {
+          asy::Stream<core::int> :stream = asy::Stream::fromIterable<core::int>(core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:245:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
+                                                        ^" in "not" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:245:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
+                                                               ^" in "int" as{TypeError,ForNonNullableByDefault} core::int));
+          asy::_StreamIterator<core::int>? :for-iterator = new asy::_StreamIterator::•<core::int>(:stream);
+          try
+            #L7:
+            while (true) {
+              dynamic #t285 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t286 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}, :async_op_then, :async_op_error) in null;
+              if(_in::unsafeCast<core::bool>(:result_or_exception)) {
+                core::int i = :for-iterator.{asy::_StreamIterator::current}{core::int};
+                #t284.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int?) → void};
+              }
+              else
+                break #L7;
+            }
+          finally
+            if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::int>?} == null)) {
+              [yield] let dynamic #t287 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>}, :async_op_then, :async_op_error) in null;
+              :result_or_exception;
+            }
+        }
+        core::Map<core::String, core::int?> map40 = block {
+          #t284.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+        } =>#t284;
+        core::List<core::int> list50 = block {
+          final core::List<core::int> #t288 = core::_GrowableList::•<core::int>(0);
+          for (; ; )
+            #t288.{core::List::add}{Invariant}(42){(core::int) → void};
+        } =>#t288;
+        core::Set<core::int?> set50 = block {
+          final core::Set<core::int?> #t289 = new col::_CompactLinkedHashSet::•<core::int?>();
+          for (; ; )
+            #t289.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+          #t289.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+        } =>#t289;
+        core::Map<core::String, core::int?> map50 = block {
+          final core::Map<core::String, core::int?> #t290 = <core::String, core::int?>{};
+          for (; ; )
+            #t290.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int?) → void};
+          #t290.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+        } =>#t290;
+        core::List<core::int> list60 = block {
+          final core::List<core::int> #t291 = core::_GrowableList::•<core::int>(0);
+          for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+  var list60 = [for (; \"not bool\";) 42];
+                       ^" in "not bool" as{TypeError,ForNonNullableByDefault} core::bool; )
+            #t291.{core::List::add}{Invariant}(42){(core::int) → void};
+        } =>#t291;
+        core::Set<core::int?> set60 = block {
+          final core::Set<core::int?> #t292 = new col::_CompactLinkedHashSet::•<core::int?>();
+          for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:250:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+  var set60 = {for (; \"not bool\";) 42, null};
+                      ^" in "not bool" as{TypeError,ForNonNullableByDefault} core::bool; )
+            #t292.{core::Set::add}{Invariant}(42){(core::int?) → core::bool};
+          #t292.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+        } =>#t292;
+        core::Map<core::String, core::int?> map60 = block {
+          final core::Map<core::String, core::int?> #t293 = <core::String, core::int?>{};
+          for (; invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference2.dart:251:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+  var map60 = {for (; \"not bool\";) \"bar\": 42, \"baz\": null};
+                      ^" in "not bool" as{TypeError,ForNonNullableByDefault} core::bool; )
+            #t293.{core::Map::[]=}{Invariant}("bar", 42){(core::String, core::int?) → void};
+          #t293.{core::Map::[]=}{Invariant}("baz", null){(core::String, core::int?) → void};
+        } =>#t293;
+      }
+      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 testForElementErrorsNotAsync(asy::Stream<core::int> stream) → dynamic {
+  block {
+    final core::List<core::int> #t294 = core::_GrowableList::•<core::int>(0);
+    await for (core::int i in stream)
+      #t294.{core::List::add}{Invariant}(i){(core::int) → void};
+  } =>#t294;
+  block {
+    final core::Set<core::int> #t295 = new col::_CompactLinkedHashSet::•<core::int>();
+    await for (core::int i in stream)
+      #t295.{core::Set::add}{Invariant}(i){(core::int) → core::bool};
+  } =>#t295;
+  block {
+    final core::Map<core::String, core::int> #t296 = <core::String, core::int>{};
+    await for (core::int i in stream)
+      #t296.{core::Map::[]=}{Invariant}("bar", i){(core::String, core::int) → void};
+  } =>#t296;
+}
+static method testPromotion(self::A a) → dynamic {
+  core::List<core::int> list10 = block {
+    final core::List<core::int> #t297 = core::_GrowableList::•<core::int>(0);
+    if(a is{ForNonNullableByDefault} self::B)
+      #t297.{core::List::add}{Invariant}(a{self::B}.{self::B::foo}{core::int}){(core::int) → void};
+  } =>#t297;
+  core::Set<core::int> set10 = block {
+    final core::Set<core::int> #t298 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(a is{ForNonNullableByDefault} self::B)
+      #t298.{core::Set::add}{Invariant}(a{self::B}.{self::B::foo}{core::int}){(core::int) → core::bool};
+  } =>#t298;
+  core::Map<core::int, core::int> map10 = block {
+    final core::Map<core::int, core::int> #t299 = <core::int, core::int>{};
+    if(a is{ForNonNullableByDefault} self::B)
+      #t299.{core::Map::[]=}{Invariant}(a{self::B}.{self::B::foo}{core::int}, a{self::B}.{self::B::foo}{core::int}){(core::int, core::int) → void};
+  } =>#t299;
+}
+static method main() → dynamic {}
+
+constants  {
+  #C1 = null
+}
diff --git a/pkg/front_end/testcases/general/covariant_equals.dart b/pkg/front_end/testcases/general/covariant_equals.dart
index cb74c87..474dfbd 100644
--- a/pkg/front_end/testcases/general/covariant_equals.dart
+++ b/pkg/front_end/testcases/general/covariant_equals.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 {
   bool operator ==(covariant A other) => true;
 }
diff --git a/pkg/front_end/testcases/general/covariant_equals.dart.textual_outline.expect b/pkg/front_end/testcases/general/covariant_equals.dart.textual_outline.expect
index 4f87fb0..cfe571a 100644
--- a/pkg/front_end/testcases/general/covariant_equals.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/covariant_equals.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   bool operator ==(covariant A other) => true;
 }
diff --git a/pkg/front_end/testcases/general/covariant_equals.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/covariant_equals.dart.textual_outline_modelled.expect
index 4f87fb0..cfe571a 100644
--- a/pkg/front_end/testcases/general/covariant_equals.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/covariant_equals.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   bool operator ==(covariant A other) => true;
 }
diff --git a/pkg/front_end/testcases/general/covariant_equals.dart.weak.expect b/pkg/front_end/testcases/general/covariant_equals.dart.weak.expect
index 3f1296f..71a06c5 100644
--- a/pkg/front_end/testcases/general/covariant_equals.dart.weak.expect
+++ b/pkg/front_end/testcases/general/covariant_equals.dart.weak.expect
@@ -1,120 +1,135 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:24:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:24:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   a == c_dynamic; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:25:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:25:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   a == c_int; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:26:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:26:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   a == c_string; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:27:8: Error: The argument type 'D' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:27:8: Error: The argument type 'D' can't be assigned to the parameter type 'A?'.
 //  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   a == d; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:31:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:31:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   b == c_dynamic; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:32:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:32:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   b == c_int; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:33:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:33:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   b == c_string; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:34:8: Error: The argument type 'D' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:34:8: Error: The argument type 'D' can't be assigned to the parameter type 'A?'.
 //  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   b == d; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:36:16: Error: The argument type 'A' can't be assigned to the parameter type 'C<dynamic>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:36:16: Error: The argument type 'A' can't be assigned to the parameter type 'C<dynamic>?'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_dynamic == a; // error
 //                ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:37:16: Error: The argument type 'B' can't be assigned to the parameter type 'C<dynamic>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:37:16: Error: The argument type 'B' can't be assigned to the parameter type 'C<dynamic>?'.
 //  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_dynamic == b; // error
 //                ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:43:12: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:43:12: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>?'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_int == a; // error
 //            ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:44:12: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:44:12: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>?'.
 //  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_int == b; // error
 //            ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:47:12: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:45:12: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<int>?'.
+//  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+//   c_int == c_dynamic; // ok
+//            ^
+//
+// pkg/front_end/testcases/general/covariant_equals.dart:47:12: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_int == c_string; // error
 //            ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:50:15: Error: The argument type 'A' can't be assigned to the parameter type 'C<String>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:50:15: Error: The argument type 'A' can't be assigned to the parameter type 'C<String>?'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_string == a; // error
 //               ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:51:15: Error: The argument type 'B' can't be assigned to the parameter type 'C<String>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:51:15: Error: The argument type 'B' can't be assigned to the parameter type 'C<String>?'.
 //  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_string == b; // error
 //               ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:53:15: Error: The argument type 'C<int>' can't be assigned to the parameter type 'C<String>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:52:15: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<String>?'.
+//  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+//   c_string == c_dynamic; // ok
+//               ^
+//
+// pkg/front_end/testcases/general/covariant_equals.dart:53:15: Error: The argument type 'C<int>' can't be assigned to the parameter type 'C<String>?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_string == c_int; // error
 //               ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:55:15: Error: The argument type 'D' can't be assigned to the parameter type 'C<String>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:55:15: Error: The argument type 'D' can't be assigned to the parameter type 'C<String>?'.
 //  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_string == d; // error
 //               ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:57:8: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:57:8: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>?'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   d == a; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:58:8: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:58:8: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>?'.
 //  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   d == b; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:61:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:59:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<int>?'.
+//  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+//   d == c_dynamic; // ok
+//        ^
+//
+// pkg/front_end/testcases/general/covariant_equals.dart:61:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   d == c_string; // error
 //        ^
@@ -123,162 +138,153 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator ==(covariant-by-declaration self::A* other) → core::bool*
+  operator ==(covariant-by-declaration self::A other) → core::bool
     return true;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  operator ==(covariant-by-declaration self::A* other) → core::bool*
+  operator ==(covariant-by-declaration self::A other) → core::bool
     return true;
 }
-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 ==(covariant-by-declaration covariant-by-class self::C<self::C::T*>* other) → core::bool*
+  operator ==(covariant-by-declaration covariant-by-class self::C<self::C::T%> other) → core::bool
     return true;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class D extends self::C<core::int*> {
-  synthetic constructor •() → self::D*
+class D extends self::C<core::int> {
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
 }
 static method main() → dynamic {}
-static method test(self::A* a, self::B* b, self::C<dynamic>* c_dynamic, self::C<core::int*>* c_int, self::C<core::String*>* c_string, self::D* d) → dynamic {
-  a =={self::A::==}{(self::A*) →* core::bool*} a;
-  a =={self::A::==}{(self::A*) →* core::bool*} b;
-  a =={self::A::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:24:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A'.
+static method test(self::A a, self::B b, self::C<dynamic> c_dynamic, self::C<core::int> c_int, self::C<core::String> c_string, self::D d) → dynamic {
+  a =={self::A::==}{(self::A) → core::bool} a;
+  a =={self::A::==}{(self::A) → core::bool} b;
+  a =={self::A::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:24:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   a == c_dynamic; // error
-       ^" in c_dynamic as{TypeError} self::A*;
-  a =={self::A::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:25:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A'.
+       ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::A?;
+  a =={self::A::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:25:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   a == c_int; // error
-       ^" in c_int as{TypeError} self::A*;
-  a =={self::A::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:26:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A'.
+       ^" in c_int as{TypeError,ForNonNullableByDefault} self::A?;
+  a =={self::A::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:26:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   a == c_string; // error
-       ^" in c_string as{TypeError} self::A*;
-  a =={self::A::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:27:8: Error: The argument type 'D' can't be assigned to the parameter type 'A'.
+       ^" in c_string as{TypeError,ForNonNullableByDefault} self::A?;
+  a =={self::A::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:27:8: Error: The argument type 'D' can't be assigned to the parameter type 'A?'.
  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   a == d; // error
-       ^" in d as{TypeError} self::A*;
-  b =={self::B::==}{(self::A*) →* core::bool*} a;
-  b =={self::B::==}{(self::A*) →* core::bool*} b;
-  b =={self::B::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:31:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A'.
+       ^" in d as{TypeError,ForNonNullableByDefault} self::A?;
+  b =={self::B::==}{(self::A) → core::bool} a;
+  b =={self::B::==}{(self::A) → core::bool} b;
+  b =={self::B::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:31:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   b == c_dynamic; // error
-       ^" in c_dynamic as{TypeError} self::A*;
-  b =={self::B::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:32:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A'.
+       ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::A?;
+  b =={self::B::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:32:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   b == c_int; // error
-       ^" in c_int as{TypeError} self::A*;
-  b =={self::B::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:33:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A'.
+       ^" in c_int as{TypeError,ForNonNullableByDefault} self::A?;
+  b =={self::B::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:33:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   b == c_string; // error
-       ^" in c_string as{TypeError} self::A*;
-  b =={self::B::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:34:8: Error: The argument type 'D' can't be assigned to the parameter type 'A'.
+       ^" in c_string as{TypeError,ForNonNullableByDefault} self::A?;
+  b =={self::B::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:34:8: Error: The argument type 'D' can't be assigned to the parameter type 'A?'.
  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   b == d; // error
-       ^" in d as{TypeError} self::A*;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:36:16: Error: The argument type 'A' can't be assigned to the parameter type 'C<dynamic>'.
+       ^" in d as{TypeError,ForNonNullableByDefault} self::A?;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:36:16: Error: The argument type 'A' can't be assigned to the parameter type 'C<dynamic>?'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_dynamic == a; // error
-               ^" in a as{TypeError} self::C<dynamic>*;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:37:16: Error: The argument type 'B' can't be assigned to the parameter type 'C<dynamic>'.
+               ^" in a as{TypeError,ForNonNullableByDefault} self::C<dynamic>?;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:37:16: Error: The argument type 'B' can't be assigned to the parameter type 'C<dynamic>?'.
  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_dynamic == b; // error
-               ^" in b as{TypeError} self::C<dynamic>*;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} c_dynamic;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} c_int;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} c_string;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} d;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:43:12: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>'.
+               ^" in b as{TypeError,ForNonNullableByDefault} self::C<dynamic>?;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} c_dynamic;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} c_int;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} c_string;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} d;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:43:12: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>?'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_int == a; // error
-           ^" in a as{TypeError} self::C<core::int*>*;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:44:12: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>'.
+           ^" in a as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:44:12: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>?'.
  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_int == b; // error
-           ^" in b as{TypeError} self::C<core::int*>*;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} c_dynamic as{TypeError} self::C<core::int*>*;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} c_int;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:47:12: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>'.
+           ^" in b as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:45:12: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<int>?'.
+ - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+  c_int == c_dynamic; // ok
+           ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} c_int;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:47:12: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_int == c_string; // error
-           ^" in c_string as{TypeError} self::C<core::int*>*;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} d;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:50:15: Error: The argument type 'A' can't be assigned to the parameter type 'C<String>'.
+           ^" in c_string as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} d;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:50:15: Error: The argument type 'A' can't be assigned to the parameter type 'C<String>?'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_string == a; // error
-              ^" in a as{TypeError} self::C<core::String*>*;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:51:15: Error: The argument type 'B' can't be assigned to the parameter type 'C<String>'.
+              ^" in a as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:51:15: Error: The argument type 'B' can't be assigned to the parameter type 'C<String>?'.
  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_string == b; // error
-              ^" in b as{TypeError} self::C<core::String*>*;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} c_dynamic as{TypeError} self::C<core::String*>*;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:53:15: Error: The argument type 'C<int>' can't be assigned to the parameter type 'C<String>'.
+              ^" in b as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:52:15: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<String>?'.
+ - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+  c_string == c_dynamic; // ok
+              ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:53:15: Error: The argument type 'C<int>' can't be assigned to the parameter type 'C<String>?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_string == c_int; // error
-              ^" in c_int as{TypeError} self::C<core::String*>*;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} c_string;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:55:15: Error: The argument type 'D' can't be assigned to the parameter type 'C<String>'.
+              ^" in c_int as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} c_string;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:55:15: Error: The argument type 'D' can't be assigned to the parameter type 'C<String>?'.
  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_string == d; // error
-              ^" in d as{TypeError} self::C<core::String*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:57:8: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>'.
+              ^" in d as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:57:8: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>?'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   d == a; // error
-       ^" in a as{TypeError} self::C<core::int*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:58:8: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>'.
+       ^" in a as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:58:8: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>?'.
  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   d == b; // error
-       ^" in b as{TypeError} self::C<core::int*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} c_dynamic as{TypeError} self::C<core::int*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} c_int;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:61:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>'.
+       ^" in b as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:59:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<int>?'.
+ - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+  d == c_dynamic; // ok
+       ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} c_int;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:61:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   d == c_string; // error
-       ^" in c_string as{TypeError} self::C<core::int*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} d;
+       ^" in c_string as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} d;
 }
diff --git a/pkg/front_end/testcases/general/covariant_equals.dart.weak.modular.expect b/pkg/front_end/testcases/general/covariant_equals.dart.weak.modular.expect
index 3f1296f..71a06c5 100644
--- a/pkg/front_end/testcases/general/covariant_equals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/covariant_equals.dart.weak.modular.expect
@@ -1,120 +1,135 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:24:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:24:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   a == c_dynamic; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:25:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:25:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   a == c_int; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:26:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:26:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   a == c_string; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:27:8: Error: The argument type 'D' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:27:8: Error: The argument type 'D' can't be assigned to the parameter type 'A?'.
 //  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   a == d; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:31:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:31:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   b == c_dynamic; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:32:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:32:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   b == c_int; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:33:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:33:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   b == c_string; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:34:8: Error: The argument type 'D' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:34:8: Error: The argument type 'D' can't be assigned to the parameter type 'A?'.
 //  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   b == d; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:36:16: Error: The argument type 'A' can't be assigned to the parameter type 'C<dynamic>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:36:16: Error: The argument type 'A' can't be assigned to the parameter type 'C<dynamic>?'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_dynamic == a; // error
 //                ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:37:16: Error: The argument type 'B' can't be assigned to the parameter type 'C<dynamic>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:37:16: Error: The argument type 'B' can't be assigned to the parameter type 'C<dynamic>?'.
 //  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_dynamic == b; // error
 //                ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:43:12: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:43:12: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>?'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_int == a; // error
 //            ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:44:12: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:44:12: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>?'.
 //  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_int == b; // error
 //            ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:47:12: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:45:12: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<int>?'.
+//  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+//   c_int == c_dynamic; // ok
+//            ^
+//
+// pkg/front_end/testcases/general/covariant_equals.dart:47:12: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_int == c_string; // error
 //            ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:50:15: Error: The argument type 'A' can't be assigned to the parameter type 'C<String>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:50:15: Error: The argument type 'A' can't be assigned to the parameter type 'C<String>?'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_string == a; // error
 //               ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:51:15: Error: The argument type 'B' can't be assigned to the parameter type 'C<String>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:51:15: Error: The argument type 'B' can't be assigned to the parameter type 'C<String>?'.
 //  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_string == b; // error
 //               ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:53:15: Error: The argument type 'C<int>' can't be assigned to the parameter type 'C<String>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:52:15: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<String>?'.
+//  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+//   c_string == c_dynamic; // ok
+//               ^
+//
+// pkg/front_end/testcases/general/covariant_equals.dart:53:15: Error: The argument type 'C<int>' can't be assigned to the parameter type 'C<String>?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_string == c_int; // error
 //               ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:55:15: Error: The argument type 'D' can't be assigned to the parameter type 'C<String>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:55:15: Error: The argument type 'D' can't be assigned to the parameter type 'C<String>?'.
 //  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_string == d; // error
 //               ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:57:8: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:57:8: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>?'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   d == a; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:58:8: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:58:8: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>?'.
 //  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   d == b; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:61:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:59:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<int>?'.
+//  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+//   d == c_dynamic; // ok
+//        ^
+//
+// pkg/front_end/testcases/general/covariant_equals.dart:61:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   d == c_string; // error
 //        ^
@@ -123,162 +138,153 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator ==(covariant-by-declaration self::A* other) → core::bool*
+  operator ==(covariant-by-declaration self::A other) → core::bool
     return true;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  operator ==(covariant-by-declaration self::A* other) → core::bool*
+  operator ==(covariant-by-declaration self::A other) → core::bool
     return true;
 }
-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 ==(covariant-by-declaration covariant-by-class self::C<self::C::T*>* other) → core::bool*
+  operator ==(covariant-by-declaration covariant-by-class self::C<self::C::T%> other) → core::bool
     return true;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class D extends self::C<core::int*> {
-  synthetic constructor •() → self::D*
+class D extends self::C<core::int> {
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
 }
 static method main() → dynamic {}
-static method test(self::A* a, self::B* b, self::C<dynamic>* c_dynamic, self::C<core::int*>* c_int, self::C<core::String*>* c_string, self::D* d) → dynamic {
-  a =={self::A::==}{(self::A*) →* core::bool*} a;
-  a =={self::A::==}{(self::A*) →* core::bool*} b;
-  a =={self::A::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:24:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A'.
+static method test(self::A a, self::B b, self::C<dynamic> c_dynamic, self::C<core::int> c_int, self::C<core::String> c_string, self::D d) → dynamic {
+  a =={self::A::==}{(self::A) → core::bool} a;
+  a =={self::A::==}{(self::A) → core::bool} b;
+  a =={self::A::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:24:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   a == c_dynamic; // error
-       ^" in c_dynamic as{TypeError} self::A*;
-  a =={self::A::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:25:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A'.
+       ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::A?;
+  a =={self::A::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:25:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   a == c_int; // error
-       ^" in c_int as{TypeError} self::A*;
-  a =={self::A::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:26:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A'.
+       ^" in c_int as{TypeError,ForNonNullableByDefault} self::A?;
+  a =={self::A::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:26:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   a == c_string; // error
-       ^" in c_string as{TypeError} self::A*;
-  a =={self::A::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:27:8: Error: The argument type 'D' can't be assigned to the parameter type 'A'.
+       ^" in c_string as{TypeError,ForNonNullableByDefault} self::A?;
+  a =={self::A::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:27:8: Error: The argument type 'D' can't be assigned to the parameter type 'A?'.
  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   a == d; // error
-       ^" in d as{TypeError} self::A*;
-  b =={self::B::==}{(self::A*) →* core::bool*} a;
-  b =={self::B::==}{(self::A*) →* core::bool*} b;
-  b =={self::B::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:31:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A'.
+       ^" in d as{TypeError,ForNonNullableByDefault} self::A?;
+  b =={self::B::==}{(self::A) → core::bool} a;
+  b =={self::B::==}{(self::A) → core::bool} b;
+  b =={self::B::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:31:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   b == c_dynamic; // error
-       ^" in c_dynamic as{TypeError} self::A*;
-  b =={self::B::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:32:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A'.
+       ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::A?;
+  b =={self::B::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:32:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   b == c_int; // error
-       ^" in c_int as{TypeError} self::A*;
-  b =={self::B::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:33:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A'.
+       ^" in c_int as{TypeError,ForNonNullableByDefault} self::A?;
+  b =={self::B::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:33:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   b == c_string; // error
-       ^" in c_string as{TypeError} self::A*;
-  b =={self::B::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:34:8: Error: The argument type 'D' can't be assigned to the parameter type 'A'.
+       ^" in c_string as{TypeError,ForNonNullableByDefault} self::A?;
+  b =={self::B::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:34:8: Error: The argument type 'D' can't be assigned to the parameter type 'A?'.
  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   b == d; // error
-       ^" in d as{TypeError} self::A*;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:36:16: Error: The argument type 'A' can't be assigned to the parameter type 'C<dynamic>'.
+       ^" in d as{TypeError,ForNonNullableByDefault} self::A?;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:36:16: Error: The argument type 'A' can't be assigned to the parameter type 'C<dynamic>?'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_dynamic == a; // error
-               ^" in a as{TypeError} self::C<dynamic>*;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:37:16: Error: The argument type 'B' can't be assigned to the parameter type 'C<dynamic>'.
+               ^" in a as{TypeError,ForNonNullableByDefault} self::C<dynamic>?;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:37:16: Error: The argument type 'B' can't be assigned to the parameter type 'C<dynamic>?'.
  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_dynamic == b; // error
-               ^" in b as{TypeError} self::C<dynamic>*;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} c_dynamic;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} c_int;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} c_string;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} d;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:43:12: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>'.
+               ^" in b as{TypeError,ForNonNullableByDefault} self::C<dynamic>?;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} c_dynamic;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} c_int;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} c_string;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} d;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:43:12: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>?'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_int == a; // error
-           ^" in a as{TypeError} self::C<core::int*>*;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:44:12: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>'.
+           ^" in a as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:44:12: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>?'.
  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_int == b; // error
-           ^" in b as{TypeError} self::C<core::int*>*;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} c_dynamic as{TypeError} self::C<core::int*>*;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} c_int;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:47:12: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>'.
+           ^" in b as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:45:12: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<int>?'.
+ - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+  c_int == c_dynamic; // ok
+           ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} c_int;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:47:12: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_int == c_string; // error
-           ^" in c_string as{TypeError} self::C<core::int*>*;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} d;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:50:15: Error: The argument type 'A' can't be assigned to the parameter type 'C<String>'.
+           ^" in c_string as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} d;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:50:15: Error: The argument type 'A' can't be assigned to the parameter type 'C<String>?'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_string == a; // error
-              ^" in a as{TypeError} self::C<core::String*>*;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:51:15: Error: The argument type 'B' can't be assigned to the parameter type 'C<String>'.
+              ^" in a as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:51:15: Error: The argument type 'B' can't be assigned to the parameter type 'C<String>?'.
  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_string == b; // error
-              ^" in b as{TypeError} self::C<core::String*>*;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} c_dynamic as{TypeError} self::C<core::String*>*;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:53:15: Error: The argument type 'C<int>' can't be assigned to the parameter type 'C<String>'.
+              ^" in b as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:52:15: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<String>?'.
+ - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+  c_string == c_dynamic; // ok
+              ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:53:15: Error: The argument type 'C<int>' can't be assigned to the parameter type 'C<String>?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_string == c_int; // error
-              ^" in c_int as{TypeError} self::C<core::String*>*;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} c_string;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:55:15: Error: The argument type 'D' can't be assigned to the parameter type 'C<String>'.
+              ^" in c_int as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} c_string;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:55:15: Error: The argument type 'D' can't be assigned to the parameter type 'C<String>?'.
  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_string == d; // error
-              ^" in d as{TypeError} self::C<core::String*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:57:8: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>'.
+              ^" in d as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:57:8: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>?'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   d == a; // error
-       ^" in a as{TypeError} self::C<core::int*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:58:8: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>'.
+       ^" in a as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:58:8: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>?'.
  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   d == b; // error
-       ^" in b as{TypeError} self::C<core::int*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} c_dynamic as{TypeError} self::C<core::int*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} c_int;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:61:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>'.
+       ^" in b as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:59:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<int>?'.
+ - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+  d == c_dynamic; // ok
+       ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} c_int;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:61:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   d == c_string; // error
-       ^" in c_string as{TypeError} self::C<core::int*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} d;
+       ^" in c_string as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} d;
 }
diff --git a/pkg/front_end/testcases/general/covariant_equals.dart.weak.outline.expect b/pkg/front_end/testcases/general/covariant_equals.dart.weak.outline.expect
index a4cf466..f80fd45 100644
--- a/pkg/front_end/testcases/general/covariant_equals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/covariant_equals.dart.weak.outline.expect
@@ -1,48 +1,30 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
-  operator ==(covariant-by-declaration self::A* other) → core::bool*
+  operator ==(covariant-by-declaration self::A other) → core::bool
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  operator ==(covariant-by-declaration self::A* other) → core::bool*
+  operator ==(covariant-by-declaration self::A other) → core::bool
     ;
 }
-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 ==(covariant-by-declaration covariant-by-class self::C<self::C::T*>* other) → core::bool*
+  operator ==(covariant-by-declaration covariant-by-class self::C<self::C::T%> other) → core::bool
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class D extends self::C<core::int*> {
-  synthetic constructor •() → self::D*
+class D extends self::C<core::int> {
+  synthetic constructor •() → self::D
     ;
 }
 static method main() → dynamic
   ;
-static method test(self::A* a, self::B* b, self::C<dynamic>* c_dynamic, self::C<core::int*>* c_int, self::C<core::String*>* c_string, self::D* d) → dynamic
+static method test(self::A a, self::B b, self::C<dynamic> c_dynamic, self::C<core::int> c_int, self::C<core::String> c_string, self::D d) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/covariant_equals.dart.weak.transformed.expect b/pkg/front_end/testcases/general/covariant_equals.dart.weak.transformed.expect
index 3f1296f..71a06c5 100644
--- a/pkg/front_end/testcases/general/covariant_equals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/covariant_equals.dart.weak.transformed.expect
@@ -1,120 +1,135 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:24:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:24:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   a == c_dynamic; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:25:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:25:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   a == c_int; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:26:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:26:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   a == c_string; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:27:8: Error: The argument type 'D' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:27:8: Error: The argument type 'D' can't be assigned to the parameter type 'A?'.
 //  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   a == d; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:31:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:31:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   b == c_dynamic; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:32:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:32:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   b == c_int; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:33:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:33:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   b == c_string; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:34:8: Error: The argument type 'D' can't be assigned to the parameter type 'A'.
+// pkg/front_end/testcases/general/covariant_equals.dart:34:8: Error: The argument type 'D' can't be assigned to the parameter type 'A?'.
 //  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   b == d; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:36:16: Error: The argument type 'A' can't be assigned to the parameter type 'C<dynamic>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:36:16: Error: The argument type 'A' can't be assigned to the parameter type 'C<dynamic>?'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_dynamic == a; // error
 //                ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:37:16: Error: The argument type 'B' can't be assigned to the parameter type 'C<dynamic>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:37:16: Error: The argument type 'B' can't be assigned to the parameter type 'C<dynamic>?'.
 //  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_dynamic == b; // error
 //                ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:43:12: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:43:12: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>?'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_int == a; // error
 //            ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:44:12: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:44:12: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>?'.
 //  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_int == b; // error
 //            ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:47:12: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:45:12: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<int>?'.
+//  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+//   c_int == c_dynamic; // ok
+//            ^
+//
+// pkg/front_end/testcases/general/covariant_equals.dart:47:12: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_int == c_string; // error
 //            ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:50:15: Error: The argument type 'A' can't be assigned to the parameter type 'C<String>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:50:15: Error: The argument type 'A' can't be assigned to the parameter type 'C<String>?'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_string == a; // error
 //               ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:51:15: Error: The argument type 'B' can't be assigned to the parameter type 'C<String>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:51:15: Error: The argument type 'B' can't be assigned to the parameter type 'C<String>?'.
 //  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_string == b; // error
 //               ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:53:15: Error: The argument type 'C<int>' can't be assigned to the parameter type 'C<String>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:52:15: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<String>?'.
+//  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+//   c_string == c_dynamic; // ok
+//               ^
+//
+// pkg/front_end/testcases/general/covariant_equals.dart:53:15: Error: The argument type 'C<int>' can't be assigned to the parameter type 'C<String>?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_string == c_int; // error
 //               ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:55:15: Error: The argument type 'D' can't be assigned to the parameter type 'C<String>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:55:15: Error: The argument type 'D' can't be assigned to the parameter type 'C<String>?'.
 //  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   c_string == d; // error
 //               ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:57:8: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:57:8: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>?'.
 //  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   d == a; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:58:8: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:58:8: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>?'.
 //  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   d == b; // error
 //        ^
 //
-// pkg/front_end/testcases/general/covariant_equals.dart:61:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>'.
+// pkg/front_end/testcases/general/covariant_equals.dart:59:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<int>?'.
+//  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+//   d == c_dynamic; // ok
+//        ^
+//
+// pkg/front_end/testcases/general/covariant_equals.dart:61:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>?'.
 //  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
 //   d == c_string; // error
 //        ^
@@ -123,162 +138,153 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  operator ==(covariant-by-declaration self::A* other) → core::bool*
+  operator ==(covariant-by-declaration self::A other) → core::bool
     return true;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  operator ==(covariant-by-declaration self::A* other) → core::bool*
+  operator ==(covariant-by-declaration self::A other) → core::bool
     return true;
 }
-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 ==(covariant-by-declaration covariant-by-class self::C<self::C::T*>* other) → core::bool*
+  operator ==(covariant-by-declaration covariant-by-class self::C<self::C::T%> other) → core::bool
     return true;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-class D extends self::C<core::int*> {
-  synthetic constructor •() → self::D*
+class D extends self::C<core::int> {
+  synthetic constructor •() → self::D
     : super self::C::•()
     ;
 }
 static method main() → dynamic {}
-static method test(self::A* a, self::B* b, self::C<dynamic>* c_dynamic, self::C<core::int*>* c_int, self::C<core::String*>* c_string, self::D* d) → dynamic {
-  a =={self::A::==}{(self::A*) →* core::bool*} a;
-  a =={self::A::==}{(self::A*) →* core::bool*} b;
-  a =={self::A::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:24:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A'.
+static method test(self::A a, self::B b, self::C<dynamic> c_dynamic, self::C<core::int> c_int, self::C<core::String> c_string, self::D d) → dynamic {
+  a =={self::A::==}{(self::A) → core::bool} a;
+  a =={self::A::==}{(self::A) → core::bool} b;
+  a =={self::A::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:24:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   a == c_dynamic; // error
-       ^" in c_dynamic as{TypeError} self::A*;
-  a =={self::A::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:25:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A'.
+       ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::A?;
+  a =={self::A::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:25:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   a == c_int; // error
-       ^" in c_int as{TypeError} self::A*;
-  a =={self::A::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:26:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A'.
+       ^" in c_int as{TypeError,ForNonNullableByDefault} self::A?;
+  a =={self::A::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:26:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   a == c_string; // error
-       ^" in c_string as{TypeError} self::A*;
-  a =={self::A::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:27:8: Error: The argument type 'D' can't be assigned to the parameter type 'A'.
+       ^" in c_string as{TypeError,ForNonNullableByDefault} self::A?;
+  a =={self::A::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:27:8: Error: The argument type 'D' can't be assigned to the parameter type 'A?'.
  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   a == d; // error
-       ^" in d as{TypeError} self::A*;
-  b =={self::B::==}{(self::A*) →* core::bool*} a;
-  b =={self::B::==}{(self::A*) →* core::bool*} b;
-  b =={self::B::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:31:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A'.
+       ^" in d as{TypeError,ForNonNullableByDefault} self::A?;
+  b =={self::B::==}{(self::A) → core::bool} a;
+  b =={self::B::==}{(self::A) → core::bool} b;
+  b =={self::B::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:31:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   b == c_dynamic; // error
-       ^" in c_dynamic as{TypeError} self::A*;
-  b =={self::B::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:32:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A'.
+       ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::A?;
+  b =={self::B::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:32:8: Error: The argument type 'C<int>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   b == c_int; // error
-       ^" in c_int as{TypeError} self::A*;
-  b =={self::B::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:33:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A'.
+       ^" in c_int as{TypeError,ForNonNullableByDefault} self::A?;
+  b =={self::B::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:33:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'A?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   b == c_string; // error
-       ^" in c_string as{TypeError} self::A*;
-  b =={self::B::==}{(self::A*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:34:8: Error: The argument type 'D' can't be assigned to the parameter type 'A'.
+       ^" in c_string as{TypeError,ForNonNullableByDefault} self::A?;
+  b =={self::B::==}{(self::A) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:34:8: Error: The argument type 'D' can't be assigned to the parameter type 'A?'.
  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   b == d; // error
-       ^" in d as{TypeError} self::A*;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:36:16: Error: The argument type 'A' can't be assigned to the parameter type 'C<dynamic>'.
+       ^" in d as{TypeError,ForNonNullableByDefault} self::A?;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:36:16: Error: The argument type 'A' can't be assigned to the parameter type 'C<dynamic>?'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_dynamic == a; // error
-               ^" in a as{TypeError} self::C<dynamic>*;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:37:16: Error: The argument type 'B' can't be assigned to the parameter type 'C<dynamic>'.
+               ^" in a as{TypeError,ForNonNullableByDefault} self::C<dynamic>?;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:37:16: Error: The argument type 'B' can't be assigned to the parameter type 'C<dynamic>?'.
  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_dynamic == b; // error
-               ^" in b as{TypeError} self::C<dynamic>*;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} c_dynamic;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} c_int;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} c_string;
-  c_dynamic =={self::C::==}{(self::C<dynamic>*) →* core::bool*} d;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:43:12: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>'.
+               ^" in b as{TypeError,ForNonNullableByDefault} self::C<dynamic>?;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} c_dynamic;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} c_int;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} c_string;
+  c_dynamic =={self::C::==}{(self::C<dynamic>) → core::bool} d;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:43:12: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>?'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_int == a; // error
-           ^" in a as{TypeError} self::C<core::int*>*;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:44:12: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>'.
+           ^" in a as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:44:12: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>?'.
  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_int == b; // error
-           ^" in b as{TypeError} self::C<core::int*>*;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} c_dynamic as{TypeError} self::C<core::int*>*;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} c_int;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:47:12: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>'.
+           ^" in b as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:45:12: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<int>?'.
+ - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+  c_int == c_dynamic; // ok
+           ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} c_int;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:47:12: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_int == c_string; // error
-           ^" in c_string as{TypeError} self::C<core::int*>*;
-  c_int =={self::C::==}{(self::C<core::int*>*) →* core::bool*} d;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:50:15: Error: The argument type 'A' can't be assigned to the parameter type 'C<String>'.
+           ^" in c_string as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  c_int =={self::C::==}{(self::C<core::int>) → core::bool} d;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:50:15: Error: The argument type 'A' can't be assigned to the parameter type 'C<String>?'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_string == a; // error
-              ^" in a as{TypeError} self::C<core::String*>*;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:51:15: Error: The argument type 'B' can't be assigned to the parameter type 'C<String>'.
+              ^" in a as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:51:15: Error: The argument type 'B' can't be assigned to the parameter type 'C<String>?'.
  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_string == b; // error
-              ^" in b as{TypeError} self::C<core::String*>*;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} c_dynamic as{TypeError} self::C<core::String*>*;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:53:15: Error: The argument type 'C<int>' can't be assigned to the parameter type 'C<String>'.
+              ^" in b as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:52:15: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<String>?'.
+ - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+  c_string == c_dynamic; // ok
+              ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:53:15: Error: The argument type 'C<int>' can't be assigned to the parameter type 'C<String>?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_string == c_int; // error
-              ^" in c_int as{TypeError} self::C<core::String*>*;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} c_string;
-  c_string =={self::C::==}{(self::C<core::String*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:55:15: Error: The argument type 'D' can't be assigned to the parameter type 'C<String>'.
+              ^" in c_int as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} c_string;
+  c_string =={self::C::==}{(self::C<core::String>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:55:15: Error: The argument type 'D' can't be assigned to the parameter type 'C<String>?'.
  - 'D' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   c_string == d; // error
-              ^" in d as{TypeError} self::C<core::String*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:57:8: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>'.
+              ^" in d as{TypeError,ForNonNullableByDefault} self::C<core::String>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:57:8: Error: The argument type 'A' can't be assigned to the parameter type 'C<int>?'.
  - 'A' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   d == a; // error
-       ^" in a as{TypeError} self::C<core::int*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:58:8: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>'.
+       ^" in a as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:58:8: Error: The argument type 'B' can't be assigned to the parameter type 'C<int>?'.
  - 'B' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   d == b; // error
-       ^" in b as{TypeError} self::C<core::int*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} c_dynamic as{TypeError} self::C<core::int*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} c_int;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:61:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>'.
+       ^" in b as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:59:8: Error: The argument type 'C<dynamic>' can't be assigned to the parameter type 'C<int>?'.
+ - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
+  d == c_dynamic; // ok
+       ^" in c_dynamic as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} c_int;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} invalid-expression "pkg/front_end/testcases/general/covariant_equals.dart:61:8: Error: The argument type 'C<String>' can't be assigned to the parameter type 'C<int>?'.
  - 'C' is from 'pkg/front_end/testcases/general/covariant_equals.dart'.
   d == c_string; // error
-       ^" in c_string as{TypeError} self::C<core::int*>*;
-  d =={self::C::==}{(self::C<core::int*>*) →* core::bool*} d;
+       ^" in c_string as{TypeError,ForNonNullableByDefault} self::C<core::int>?;
+  d =={self::C::==}{(self::C<core::int>) → core::bool} d;
 }
diff --git a/pkg/front_end/testcases/general/covariant_field.dart b/pkg/front_end/testcases/general/covariant_field.dart
index 422bd27..7b9b542 100644
--- a/pkg/front_end/testcases/general/covariant_field.dart
+++ b/pkg/front_end/testcases/general/covariant_field.dart
@@ -1,10 +1,10 @@
 // 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 {
-  num invariantField;
-  covariant num covariantField;
+  num invariantField = 0;
+  covariant num covariantField = 0;
 }
 
 abstract class B implements A {
diff --git a/pkg/front_end/testcases/general/covariant_field.dart.textual_outline.expect b/pkg/front_end/testcases/general/covariant_field.dart.textual_outline.expect
index 782278d..7e583b6 100644
--- a/pkg/front_end/testcases/general/covariant_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/covariant_field.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
 class A {
-  num invariantField;
-  covariant num covariantField;
+  num invariantField = 0;
+  covariant num covariantField = 0;
 }
 
 abstract class B implements A {
diff --git a/pkg/front_end/testcases/general/covariant_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/covariant_field.dart.textual_outline_modelled.expect
index 8731c4a..6df5c85 100644
--- a/pkg/front_end/testcases/general/covariant_field.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/covariant_field.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 abstract class B implements A {
   get covariantField;
   get invariantField;
@@ -21,8 +20,8 @@
 }
 
 class A {
-  covariant num covariantField;
-  num invariantField;
+  covariant num covariantField = 0;
+  num invariantField = 0;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/general/covariant_field.dart.weak.expect b/pkg/front_end/testcases/general/covariant_field.dart.weak.expect
index 6453946..bc955de 100644
--- a/pkg/front_end/testcases/general/covariant_field.dart.weak.expect
+++ b/pkg/front_end/testcases/general/covariant_field.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -7,84 +7,44 @@
 //   void set invariantField(int value) {} // error
 //                               ^
 // pkg/front_end/testcases/general/covariant_field.dart:6:7: Context: This is the overridden method ('invariantField').
-//   num invariantField;
+//   num invariantField = 0;
 //       ^
 //
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::num* invariantField = null;
-  covariant-by-declaration field core::num* covariantField = null;
-  synthetic constructor •() → self::A*
+  field core::num invariantField = 0;
+  covariant-by-declaration field core::num covariantField = 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
 }
 abstract class B extends core::Object implements self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract get invariantField() → core::num*;
-  abstract set invariantField(core::num* value) → void;
-  abstract get covariantField() → core::num*;
-  abstract set covariantField(covariant-by-declaration 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 invariantField() → core::num;
+  abstract set invariantField(core::num value) → void;
+  abstract get covariantField() → core::num;
+  abstract set covariantField(covariant-by-declaration core::num value) → void;
 }
 abstract class C extends core::Object implements self::A {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  abstract get invariantField() → core::int*;
-  set invariantField(core::int* value) → void {}
-  abstract get covariantField() → core::int*;
-  set covariantField(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
+  abstract get invariantField() → core::int;
+  set invariantField(core::int value) → void {}
+  abstract get covariantField() → core::int;
+  set covariantField(covariant-by-declaration core::int value) → void {}
 }
 abstract class D extends core::Object implements self::A {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super core::Object::•()
     ;
-  abstract get invariantField() → core::int*;
-  set invariantField(covariant-by-declaration core::int* value) → void {}
-  abstract get covariantField() → core::int*;
-  set covariantField(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
+  abstract get invariantField() → core::int;
+  set invariantField(covariant-by-declaration core::int value) → void {}
+  abstract get covariantField() → core::int;
+  set covariantField(covariant-by-declaration core::int value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/covariant_field.dart.weak.modular.expect b/pkg/front_end/testcases/general/covariant_field.dart.weak.modular.expect
index 6453946..bc955de 100644
--- a/pkg/front_end/testcases/general/covariant_field.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/covariant_field.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -7,84 +7,44 @@
 //   void set invariantField(int value) {} // error
 //                               ^
 // pkg/front_end/testcases/general/covariant_field.dart:6:7: Context: This is the overridden method ('invariantField').
-//   num invariantField;
+//   num invariantField = 0;
 //       ^
 //
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::num* invariantField = null;
-  covariant-by-declaration field core::num* covariantField = null;
-  synthetic constructor •() → self::A*
+  field core::num invariantField = 0;
+  covariant-by-declaration field core::num covariantField = 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
 }
 abstract class B extends core::Object implements self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract get invariantField() → core::num*;
-  abstract set invariantField(core::num* value) → void;
-  abstract get covariantField() → core::num*;
-  abstract set covariantField(covariant-by-declaration 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 invariantField() → core::num;
+  abstract set invariantField(core::num value) → void;
+  abstract get covariantField() → core::num;
+  abstract set covariantField(covariant-by-declaration core::num value) → void;
 }
 abstract class C extends core::Object implements self::A {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  abstract get invariantField() → core::int*;
-  set invariantField(core::int* value) → void {}
-  abstract get covariantField() → core::int*;
-  set covariantField(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
+  abstract get invariantField() → core::int;
+  set invariantField(core::int value) → void {}
+  abstract get covariantField() → core::int;
+  set covariantField(covariant-by-declaration core::int value) → void {}
 }
 abstract class D extends core::Object implements self::A {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super core::Object::•()
     ;
-  abstract get invariantField() → core::int*;
-  set invariantField(covariant-by-declaration core::int* value) → void {}
-  abstract get covariantField() → core::int*;
-  set covariantField(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
+  abstract get invariantField() → core::int;
+  set invariantField(covariant-by-declaration core::int value) → void {}
+  abstract get covariantField() → core::int;
+  set covariantField(covariant-by-declaration core::int value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/covariant_field.dart.weak.outline.expect b/pkg/front_end/testcases/general/covariant_field.dart.weak.outline.expect
index 734e3a9..42a7140 100644
--- a/pkg/front_end/testcases/general/covariant_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/covariant_field.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -7,85 +7,45 @@
 //   void set invariantField(int value) {} // error
 //                               ^
 // pkg/front_end/testcases/general/covariant_field.dart:6:7: Context: This is the overridden method ('invariantField').
-//   num invariantField;
+//   num invariantField = 0;
 //       ^
 //
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::num* invariantField;
-  covariant-by-declaration field core::num* covariantField;
-  synthetic constructor •() → self::A*
+  field core::num invariantField;
+  covariant-by-declaration field core::num covariantField;
+  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
 }
 abstract class B extends core::Object implements self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  abstract get invariantField() → core::num*;
-  abstract set invariantField(core::num* value) → void;
-  abstract get covariantField() → core::num*;
-  abstract set covariantField(covariant-by-declaration 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 invariantField() → core::num;
+  abstract set invariantField(core::num value) → void;
+  abstract get covariantField() → core::num;
+  abstract set covariantField(covariant-by-declaration core::num value) → void;
 }
 abstract class C extends core::Object implements self::A {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  abstract get invariantField() → core::int*;
-  set invariantField(core::int* value) → void
+  abstract get invariantField() → core::int;
+  set invariantField(core::int value) → void
     ;
-  abstract get covariantField() → core::int*;
-  set covariantField(covariant-by-declaration core::int* value) → void
+  abstract get covariantField() → core::int;
+  set covariantField(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
 }
 abstract class D extends core::Object implements self::A {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
-  abstract get invariantField() → core::int*;
-  set invariantField(covariant-by-declaration core::int* value) → void
+  abstract get invariantField() → core::int;
+  set invariantField(covariant-by-declaration core::int value) → void
     ;
-  abstract get covariantField() → core::int*;
-  set covariantField(covariant-by-declaration core::int* value) → void
+  abstract get covariantField() → core::int;
+  set covariantField(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/general/covariant_field_override.dart b/pkg/front_end/testcases/general/covariant_field_override.dart
index 8df030b..c5c9396 100644
--- a/pkg/front_end/testcases/general/covariant_field_override.dart
+++ b/pkg/front_end/testcases/general/covariant_field_override.dart
@@ -1,17 +1,17 @@
 // 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 {
-  num field;
+  num field = 0;
 }
 
 class B {
-  covariant num field;
+  covariant num field = 0;
 }
 
 class C extends A implements B {
-  num field;
+  num field = 0;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/general/covariant_field_override.dart.textual_outline.expect b/pkg/front_end/testcases/general/covariant_field_override.dart.textual_outline.expect
index ef1710d..d219f4b 100644
--- a/pkg/front_end/testcases/general/covariant_field_override.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/covariant_field_override.dart.textual_outline.expect
@@ -1,14 +1,13 @@
-// @dart = 2.9
 class A {
-  num field;
+  num field = 0;
 }
 
 class B {
-  covariant num field;
+  covariant num field = 0;
 }
 
 class C extends A implements B {
-  num field;
+  num field = 0;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/general/covariant_field_override.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/covariant_field_override.dart.textual_outline_modelled.expect
index ef1710d..d219f4b 100644
--- a/pkg/front_end/testcases/general/covariant_field_override.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/covariant_field_override.dart.textual_outline_modelled.expect
@@ -1,14 +1,13 @@
-// @dart = 2.9
 class A {
-  num field;
+  num field = 0;
 }
 
 class B {
-  covariant num field;
+  covariant num field = 0;
 }
 
 class C extends A implements B {
-  num field;
+  num field = 0;
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/general/covariant_field_override.dart.weak.expect b/pkg/front_end/testcases/general/covariant_field_override.dart.weak.expect
index fb69f60..98c482b 100644
--- a/pkg/front_end/testcases/general/covariant_field_override.dart.weak.expect
+++ b/pkg/front_end/testcases/general/covariant_field_override.dart.weak.expect
@@ -1,42 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::num* field = null;
-  synthetic constructor •() → self::A*
+  field core::num field = 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 core::Object {
-  covariant-by-declaration field core::num* field = null;
-  synthetic constructor •() → self::B*
+  covariant-by-declaration field core::num field = 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 self::A implements self::B {
-  covariant-by-declaration field core::num* field = null;
-  synthetic constructor •() → self::C*
+  covariant-by-declaration field core::num field = 0;
+  synthetic constructor •() → self::C
     : super self::A::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/covariant_field_override.dart.weak.modular.expect b/pkg/front_end/testcases/general/covariant_field_override.dart.weak.modular.expect
index fb69f60..98c482b 100644
--- a/pkg/front_end/testcases/general/covariant_field_override.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/covariant_field_override.dart.weak.modular.expect
@@ -1,42 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::num* field = null;
-  synthetic constructor •() → self::A*
+  field core::num field = 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 core::Object {
-  covariant-by-declaration field core::num* field = null;
-  synthetic constructor •() → self::B*
+  covariant-by-declaration field core::num field = 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 self::A implements self::B {
-  covariant-by-declaration field core::num* field = null;
-  synthetic constructor •() → self::C*
+  covariant-by-declaration field core::num field = 0;
+  synthetic constructor •() → self::C
     : super self::A::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/covariant_field_override.dart.weak.outline.expect b/pkg/front_end/testcases/general/covariant_field_override.dart.weak.outline.expect
index a7dd616..d6e65f7 100644
--- a/pkg/front_end/testcases/general/covariant_field_override.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/covariant_field_override.dart.weak.outline.expect
@@ -1,40 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::num* field;
-  synthetic constructor •() → self::A*
+  field core::num field;
+  synthetic constructor •() → self::A
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends core::Object {
-  covariant-by-declaration field core::num* field;
-  synthetic constructor •() → self::B*
+  covariant-by-declaration field core::num field;
+  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 self::A implements self::B {
-  covariant-by-declaration field core::num* field;
-  synthetic constructor •() → self::C*
+  covariant-by-declaration field core::num field;
+  synthetic constructor •() → self::C
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/covariant_field_override.dart.weak.transformed.expect b/pkg/front_end/testcases/general/covariant_field_override.dart.weak.transformed.expect
index fb69f60..98c482b 100644
--- a/pkg/front_end/testcases/general/covariant_field_override.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/covariant_field_override.dart.weak.transformed.expect
@@ -1,42 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::num* field = null;
-  synthetic constructor •() → self::A*
+  field core::num field = 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 core::Object {
-  covariant-by-declaration field core::num* field = null;
-  synthetic constructor •() → self::B*
+  covariant-by-declaration field core::num field = 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 self::A implements self::B {
-  covariant-by-declaration field core::num* field = null;
-  synthetic constructor •() → self::C*
+  covariant-by-declaration field core::num field = 0;
+  synthetic constructor •() → self::C
     : super self::A::•()
     ;
 }
diff --git a/pkg/front_end/testcases/general/covariant_generic2.dart b/pkg/front_end/testcases/general/covariant_generic2.dart
new file mode 100644
index 0000000..b4a43c4
--- /dev/null
+++ b/pkg/front_end/testcases/general/covariant_generic2.dart
@@ -0,0 +1,46 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+typedef void Callback<T>(T x);
+
+class Foo<T> {
+  final T finalField;
+  final Callback<T> callbackField;
+
+  late T mutableField;
+  late Callback<T> mutableCallbackField;
+
+  Foo(this.finalField, this.callbackField);
+
+  void method(T x) {}
+
+  set setter(T x) {}
+
+  void withCallback(Callback<T> callback) {
+    callback(finalField);
+  }
+}
+
+main() {
+  Foo<int> fooInt = new Foo<int>(1, (int x) {});
+
+  fooInt.method(3);
+  fooInt.setter = 3;
+  fooInt.withCallback((int x) {});
+  fooInt.withCallback((num x) {});
+  fooInt.mutableField = 3;
+  fooInt.mutableCallbackField = (int x) {};
+
+  Foo<num> fooNum = fooInt;
+  fooNum.method(3);
+  fooNum.method(2.5);
+  fooNum.setter = 3;
+  fooNum.setter = 2.5;
+  fooNum.withCallback((num x) {});
+  fooNum.mutableField = 3;
+  fooNum.mutableField = 2.5;
+  fooNum.mutableCallbackField(3);
+  fooNum.mutableCallbackField(2.5);
+  fooNum.mutableCallbackField = (num x) {};
+}
diff --git a/pkg/front_end/testcases/general/covariant_generic2.dart.textual_outline.expect b/pkg/front_end/testcases/general/covariant_generic2.dart.textual_outline.expect
new file mode 100644
index 0000000..514ad98
--- /dev/null
+++ b/pkg/front_end/testcases/general/covariant_generic2.dart.textual_outline.expect
@@ -0,0 +1,14 @@
+typedef void Callback<T>(T x);
+
+class Foo<T> {
+  final T finalField;
+  final Callback<T> callbackField;
+  late T mutableField;
+  late Callback<T> mutableCallbackField;
+  Foo(this.finalField, this.callbackField);
+  void method(T x) {}
+  set setter(T x) {}
+  void withCallback(Callback<T> callback) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/covariant_generic2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/covariant_generic2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..c27fead
--- /dev/null
+++ b/pkg/front_end/testcases/general/covariant_generic2.dart.textual_outline_modelled.expect
@@ -0,0 +1,18 @@
+class Foo<T> {
+  final Callback<T> callbackField;
+  final T finalField;
+  ---- unknown chunk starts ----
+late
+---- unknown chunk ends ----
+  T mutableField;
+  ---- unknown chunk starts ----
+late
+---- unknown chunk ends ----
+  Callback<T> mutableCallbackField;
+  Foo(this.finalField, this.callbackField);
+  set setter(T x) {}
+  void method(T x) {}
+  void withCallback(Callback<T> callback) {}
+}
+main() {}
+typedef void Callback<T>(T x);
diff --git a/pkg/front_end/testcases/general/covariant_generic2.dart.weak.expect b/pkg/front_end/testcases/general/covariant_generic2.dart.weak.expect
new file mode 100644
index 0000000..3f7bc7e
--- /dev/null
+++ b/pkg/front_end/testcases/general/covariant_generic2.dart.weak.expect
@@ -0,0 +1,39 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef Callback<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+  final field self::Foo::T% finalField;
+  final field (self::Foo::T%) → void callbackField;
+  late covariant-by-class field self::Foo::T% mutableField;
+  late field (self::Foo::T%) → void mutableCallbackField;
+  constructor •(self::Foo::T% finalField, (self::Foo::T%) → void callbackField) → self::Foo<self::Foo::T%>
+    : self::Foo::finalField = finalField, self::Foo::callbackField = callbackField, super core::Object::•()
+    ;
+  method method(covariant-by-class self::Foo::T% x) → void {}
+  set setter(covariant-by-class self::Foo::T% x) → void {}
+  method withCallback((self::Foo::T%) → void callback) → void {
+    callback(this.{self::Foo::finalField}{self::Foo::T%}){(self::Foo::T%) → void};
+  }
+}
+static method main() → dynamic {
+  self::Foo<core::int> fooInt = new self::Foo::•<core::int>(1, (core::int x) → void {});
+  fooInt.{self::Foo::method}(3){(core::int) → void};
+  fooInt.{self::Foo::setter} = 3;
+  fooInt.{self::Foo::withCallback}((core::int x) → void {}){((core::int) → void) → void};
+  fooInt.{self::Foo::withCallback}((core::num x) → void {}){((core::int) → void) → void};
+  fooInt.{self::Foo::mutableField} = 3;
+  fooInt.{self::Foo::mutableCallbackField} = (core::int x) → void {};
+  self::Foo<core::num> fooNum = fooInt;
+  fooNum.{self::Foo::method}(3){(core::num) → void};
+  fooNum.{self::Foo::method}(2.5){(core::num) → void};
+  fooNum.{self::Foo::setter} = 3;
+  fooNum.{self::Foo::setter} = 2.5;
+  fooNum.{self::Foo::withCallback}((core::num x) → void {}){((core::num) → void) → void};
+  fooNum.{self::Foo::mutableField} = 3;
+  fooNum.{self::Foo::mutableField} = 2.5;
+  let final self::Foo<core::num> #t1 = fooNum in let final core::int #t2 = 3 in (#t1.{self::Foo::mutableCallbackField}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void)(#t2){(core::num) → void};
+  let final self::Foo<core::num> #t3 = fooNum in let final core::double #t4 = 2.5 in (#t3.{self::Foo::mutableCallbackField}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void)(#t4){(core::num) → void};
+  fooNum.{self::Foo::mutableCallbackField} = (core::num x) → void {};
+}
diff --git a/pkg/front_end/testcases/general/covariant_generic2.dart.weak.modular.expect b/pkg/front_end/testcases/general/covariant_generic2.dart.weak.modular.expect
new file mode 100644
index 0000000..3f7bc7e
--- /dev/null
+++ b/pkg/front_end/testcases/general/covariant_generic2.dart.weak.modular.expect
@@ -0,0 +1,39 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef Callback<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+  final field self::Foo::T% finalField;
+  final field (self::Foo::T%) → void callbackField;
+  late covariant-by-class field self::Foo::T% mutableField;
+  late field (self::Foo::T%) → void mutableCallbackField;
+  constructor •(self::Foo::T% finalField, (self::Foo::T%) → void callbackField) → self::Foo<self::Foo::T%>
+    : self::Foo::finalField = finalField, self::Foo::callbackField = callbackField, super core::Object::•()
+    ;
+  method method(covariant-by-class self::Foo::T% x) → void {}
+  set setter(covariant-by-class self::Foo::T% x) → void {}
+  method withCallback((self::Foo::T%) → void callback) → void {
+    callback(this.{self::Foo::finalField}{self::Foo::T%}){(self::Foo::T%) → void};
+  }
+}
+static method main() → dynamic {
+  self::Foo<core::int> fooInt = new self::Foo::•<core::int>(1, (core::int x) → void {});
+  fooInt.{self::Foo::method}(3){(core::int) → void};
+  fooInt.{self::Foo::setter} = 3;
+  fooInt.{self::Foo::withCallback}((core::int x) → void {}){((core::int) → void) → void};
+  fooInt.{self::Foo::withCallback}((core::num x) → void {}){((core::int) → void) → void};
+  fooInt.{self::Foo::mutableField} = 3;
+  fooInt.{self::Foo::mutableCallbackField} = (core::int x) → void {};
+  self::Foo<core::num> fooNum = fooInt;
+  fooNum.{self::Foo::method}(3){(core::num) → void};
+  fooNum.{self::Foo::method}(2.5){(core::num) → void};
+  fooNum.{self::Foo::setter} = 3;
+  fooNum.{self::Foo::setter} = 2.5;
+  fooNum.{self::Foo::withCallback}((core::num x) → void {}){((core::num) → void) → void};
+  fooNum.{self::Foo::mutableField} = 3;
+  fooNum.{self::Foo::mutableField} = 2.5;
+  let final self::Foo<core::num> #t1 = fooNum in let final core::int #t2 = 3 in (#t1.{self::Foo::mutableCallbackField}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void)(#t2){(core::num) → void};
+  let final self::Foo<core::num> #t3 = fooNum in let final core::double #t4 = 2.5 in (#t3.{self::Foo::mutableCallbackField}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void)(#t4){(core::num) → void};
+  fooNum.{self::Foo::mutableCallbackField} = (core::num x) → void {};
+}
diff --git a/pkg/front_end/testcases/general/covariant_generic2.dart.weak.outline.expect b/pkg/front_end/testcases/general/covariant_generic2.dart.weak.outline.expect
new file mode 100644
index 0000000..c5ac5cb
--- /dev/null
+++ b/pkg/front_end/testcases/general/covariant_generic2.dart.weak.outline.expect
@@ -0,0 +1,21 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef Callback<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+  final field self::Foo::T% finalField;
+  final field (self::Foo::T%) → void callbackField;
+  late covariant-by-class field self::Foo::T% mutableField;
+  late field (self::Foo::T%) → void mutableCallbackField;
+  constructor •(self::Foo::T% finalField, (self::Foo::T%) → void callbackField) → self::Foo<self::Foo::T%>
+    ;
+  method method(covariant-by-class self::Foo::T% x) → void
+    ;
+  set setter(covariant-by-class self::Foo::T% x) → void
+    ;
+  method withCallback((self::Foo::T%) → void callback) → void
+    ;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/general/covariant_generic2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/covariant_generic2.dart.weak.transformed.expect
new file mode 100644
index 0000000..e41b041
--- /dev/null
+++ b/pkg/front_end/testcases/general/covariant_generic2.dart.weak.transformed.expect
@@ -0,0 +1,45 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef Callback<contravariant T extends core::Object? = dynamic> = (T%) → void;
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+  final field self::Foo::T% finalField;
+  final field (self::Foo::T%) → void callbackField;
+  late covariant-by-class field self::Foo::T% mutableField;
+  late field (self::Foo::T%) → void mutableCallbackField;
+  constructor •(self::Foo::T% finalField, (self::Foo::T%) → void callbackField) → self::Foo<self::Foo::T%>
+    : self::Foo::finalField = finalField, self::Foo::callbackField = callbackField, super core::Object::•()
+    ;
+  method method(covariant-by-class self::Foo::T% x) → void {}
+  set setter(covariant-by-class self::Foo::T% x) → void {}
+  method withCallback((self::Foo::T%) → void callback) → void {
+    callback(this.{self::Foo::finalField}{self::Foo::T%}){(self::Foo::T%) → void};
+  }
+}
+static method main() → dynamic {
+  self::Foo<core::int> fooInt = new self::Foo::•<core::int>(1, (core::int x) → void {});
+  fooInt.{self::Foo::method}(3){(core::int) → void};
+  fooInt.{self::Foo::setter} = 3;
+  fooInt.{self::Foo::withCallback}((core::int x) → void {}){((core::int) → void) → void};
+  fooInt.{self::Foo::withCallback}((core::num x) → void {}){((core::int) → void) → void};
+  fooInt.{self::Foo::mutableField} = 3;
+  fooInt.{self::Foo::mutableCallbackField} = (core::int x) → void {};
+  self::Foo<core::num> fooNum = fooInt;
+  fooNum.{self::Foo::method}(3){(core::num) → void};
+  fooNum.{self::Foo::method}(2.5){(core::num) → void};
+  fooNum.{self::Foo::setter} = 3;
+  fooNum.{self::Foo::setter} = 2.5;
+  fooNum.{self::Foo::withCallback}((core::num x) → void {}){((core::num) → void) → void};
+  fooNum.{self::Foo::mutableField} = 3;
+  fooNum.{self::Foo::mutableField} = 2.5;
+  let final self::Foo<core::num> #t1 = fooNum in let final core::int #t2 = 3 in (#t1.{self::Foo::mutableCallbackField}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void)(#t2){(core::num) → void};
+  let final self::Foo<core::num> #t3 = fooNum in let final core::double #t4 = 2.5 in (#t3.{self::Foo::mutableCallbackField}{(core::num) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) → void)(#t4){(core::num) → void};
+  fooNum.{self::Foo::mutableCallbackField} = (core::num x) → void {};
+}
+
+
+Extra constant evaluation status:
+Evaluated: VariableGet @ org-dartlang-testcase:///covariant_generic2.dart:43:31 -> IntConstant(3)
+Evaluated: VariableGet @ org-dartlang-testcase:///covariant_generic2.dart:44:31 -> DoubleConstant(2.5)
+Extra constant evaluation: evaluated: 58, effectively constant: 2
diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart
index 434cf46..d9a1e90 100644
--- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart
+++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.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
+
 // The test checks that 'covariant' bit is propagated from the superclass of the
 // mixin application to the mixin application and its subclasses.
 
diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline.expect b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline.expect
index f22f366..914deb7 100644
--- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   void foo(covariant num x) {}
 }
diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline_modelled.expect
index f22f366..914deb7 100644
--- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   void foo(covariant num x) {}
 }
diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.expect b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.expect
index 0390bb6..fb300f7 100644
--- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.expect
+++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.expect
@@ -1,66 +1,36 @@
-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(covariant-by-declaration 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 foo(covariant-by-declaration core::num x) → void {}
 }
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method foo(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 foo(core::num x) → void {}
 }
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  method foo(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 foo(core::num x) → void {}
 }
 abstract class _D&A&B = self::A with self::B /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_D&A&B*
+  synthetic constructor •() → self::_D&A&B
     : super self::A::•()
     ;
-  forwarding-stub method foo(covariant-by-declaration core::num* x) → void
+  forwarding-stub method foo(covariant-by-declaration core::num x) → void
     return super.{self::B::foo}(x);
 }
 class D extends self::_D&A&B implements self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::_D&A&B::•()
     ;
-  method foo(covariant-by-declaration core::int* x) → void {}
+  method foo(covariant-by-declaration core::int x) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.modular.expect b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.modular.expect
index 0390bb6..fb300f7 100644
--- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.modular.expect
@@ -1,66 +1,36 @@
-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(covariant-by-declaration 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 foo(covariant-by-declaration core::num x) → void {}
 }
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method foo(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 foo(core::num x) → void {}
 }
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  method foo(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 foo(core::num x) → void {}
 }
 abstract class _D&A&B = self::A with self::B /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_D&A&B*
+  synthetic constructor •() → self::_D&A&B
     : super self::A::•()
     ;
-  forwarding-stub method foo(covariant-by-declaration core::num* x) → void
+  forwarding-stub method foo(covariant-by-declaration core::num x) → void
     return super.{self::B::foo}(x);
 }
 class D extends self::_D&A&B implements self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::_D&A&B::•()
     ;
-  method foo(covariant-by-declaration core::int* x) → void {}
+  method foo(covariant-by-declaration core::int x) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.outline.expect b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.outline.expect
index 6da60de..5030d86 100644
--- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.outline.expect
@@ -1,66 +1,36 @@
-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(covariant-by-declaration core::num* x) → void
+  method foo(covariant-by-declaration 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 B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
-  method foo(core::num* x) → void
+  method foo(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 C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  method foo(core::num* x) → void
+  method foo(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 _D&A&B = self::A with self::B /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_D&A&B*
+  synthetic constructor •() → self::_D&A&B
     : super self::A::•()
     ;
-  forwarding-stub method foo(covariant-by-declaration core::num* x) → void
+  forwarding-stub method foo(covariant-by-declaration core::num x) → void
     return super.{self::B::foo}(x);
 }
 class D extends self::_D&A&B implements self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
-  method foo(covariant-by-declaration core::int* x) → void
+  method foo(covariant-by-declaration core::int x) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.transformed.expect b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.transformed.expect
index 502b6f3..d5fabc8 100644
--- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.transformed.expect
@@ -1,65 +1,35 @@
-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(covariant-by-declaration 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 foo(covariant-by-declaration core::num x) → void {}
 }
 class B extends core::Object {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method foo(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 foo(core::num x) → void {}
 }
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  method foo(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 foo(core::num x) → void {}
 }
 abstract class _D&A&B extends self::A implements self::B /*isAnonymousMixin,isEliminatedMixin*/  {
-  synthetic constructor •() → self::_D&A&B*
+  synthetic constructor •() → self::_D&A&B
     : super self::A::•()
     ;
-  method foo(covariant-by-declaration core::num* x) → void {}
+  method foo(covariant-by-declaration core::num x) → void {}
 }
 class D extends self::_D&A&B implements self::C {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super self::_D&A&B::•()
     ;
-  method foo(covariant-by-declaration core::int* x) → void {}
+  method foo(covariant-by-declaration core::int x) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/covariant_super_check.dart b/pkg/front_end/testcases/general/covariant_super_check.dart
index 21afce8..1d8e5cc 100644
--- a/pkg/front_end/testcases/general/covariant_super_check.dart
+++ b/pkg/front_end/testcases/general/covariant_super_check.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 {
   method(num a) {}
 }
diff --git a/pkg/front_end/testcases/general/covariant_super_check.dart.textual_outline.expect b/pkg/front_end/testcases/general/covariant_super_check.dart.textual_outline.expect
index b9ba2ce..a1ec327 100644
--- a/pkg/front_end/testcases/general/covariant_super_check.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/covariant_super_check.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   method(num a) {}
 }
diff --git a/pkg/front_end/testcases/general/covariant_super_check.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/covariant_super_check.dart.textual_outline_modelled.expect
index b9ba2ce..a1ec327 100644
--- a/pkg/front_end/testcases/general/covariant_super_check.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/covariant_super_check.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   method(num a) {}
 }
diff --git a/pkg/front_end/testcases/general/covariant_super_check.dart.weak.expect b/pkg/front_end/testcases/general/covariant_super_check.dart.weak.expect
index 044d867..bffb67c 100644
--- a/pkg/front_end/testcases/general/covariant_super_check.dart.weak.expect
+++ b/pkg/front_end/testcases/general/covariant_super_check.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,31 +14,21 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  method method(core::num* 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
+  method method(core::num a) → dynamic {}
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
   method method(dynamic a) → dynamic {}
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  method method(covariant-by-declaration core::String* a) → dynamic {}
+  method method(covariant-by-declaration core::String a) → dynamic {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/covariant_super_check.dart.weak.modular.expect b/pkg/front_end/testcases/general/covariant_super_check.dart.weak.modular.expect
index 044d867..bffb67c 100644
--- a/pkg/front_end/testcases/general/covariant_super_check.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/covariant_super_check.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,31 +14,21 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  method method(core::num* 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
+  method method(core::num a) → dynamic {}
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
   method method(dynamic a) → dynamic {}
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  method method(covariant-by-declaration core::String* a) → dynamic {}
+  method method(covariant-by-declaration core::String a) → dynamic {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/covariant_super_check.dart.weak.outline.expect b/pkg/front_end/testcases/general/covariant_super_check.dart.weak.outline.expect
index e98cc10..f51caa3 100644
--- a/pkg/front_end/testcases/general/covariant_super_check.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/covariant_super_check.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,31 +14,21 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     ;
-  method method(core::num* a) → dynamic
+  method method(core::num a) → dynamic
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     ;
   method method(dynamic a) → dynamic
     ;
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     ;
-  method method(covariant-by-declaration core::String* a) → dynamic
+  method method(covariant-by-declaration core::String a) → dynamic
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/covariant_super_check.dart.weak.transformed.expect b/pkg/front_end/testcases/general/covariant_super_check.dart.weak.transformed.expect
index 044d867..bffb67c 100644
--- a/pkg/front_end/testcases/general/covariant_super_check.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/covariant_super_check.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,31 +14,21 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  synthetic constructor •() → self::A*
+  synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  method method(core::num* 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
+  method method(core::num a) → dynamic {}
 }
 class B extends self::A {
-  synthetic constructor •() → self::B*
+  synthetic constructor •() → self::B
     : super self::A::•()
     ;
   method method(dynamic a) → dynamic {}
 }
 class C extends self::B {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  method method(covariant-by-declaration core::String* a) → dynamic {}
+  method method(covariant-by-declaration core::String a) → dynamic {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/covariant_type_parameter.dart b/pkg/front_end/testcases/general/covariant_type_parameter.dart
index 3bcfd4c..07f2186 100644
--- a/pkg/front_end/testcases/general/covariant_type_parameter.dart
+++ b/pkg/front_end/testcases/general/covariant_type_parameter.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<S> {
   void method<T extends S>(S s) {}
 }
diff --git a/pkg/front_end/testcases/general/covariant_type_parameter.dart.textual_outline.expect b/pkg/front_end/testcases/general/covariant_type_parameter.dart.textual_outline.expect
index 5822ef6..c11d77c 100644
--- a/pkg/front_end/testcases/general/covariant_type_parameter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/covariant_type_parameter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A<S> {
   void method<T extends S>(S s) {}
 }
diff --git a/pkg/front_end/testcases/general/covariant_type_parameter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/covariant_type_parameter.dart.textual_outline_modelled.expect
index 5822ef6..c11d77c 100644
--- a/pkg/front_end/testcases/general/covariant_type_parameter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/covariant_type_parameter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A<S> {
   void method<T extends S>(S s) {}
 }
diff --git a/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.expect b/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.expect
index d28fb6f..a65190f 100644
--- a/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.expect
+++ b/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.expect
@@ -1,51 +1,31 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::S*>*
+class A<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::S%>
     : super core::Object::•()
     ;
-  method method<covariant-by-class T extends self::A::S*>(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
+  method method<covariant-by-class T extends self::A::S%>(covariant-by-class self::A::S% s) → void {}
 }
-class B<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::S*>*
+class B<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::S%>
     : super core::Object::•()
     ;
-  method method<covariant-by-class T extends self::B::S*>(covariant-by-declaration covariant-by-class self::B::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
+  method method<covariant-by-class T extends self::B::S%>(covariant-by-declaration covariant-by-class self::B::S% s) → void {}
 }
-class C<S extends core::Object* = dynamic> extends self::A<self::C::S*> implements self::B<self::C::S*> {
-  synthetic constructor •() → self::C<self::C::S*>*
+class C<S extends core::Object? = dynamic> extends self::A<self::C::S%> implements self::B<self::C::S%> {
+  synthetic constructor •() → self::C<self::C::S%>
     : super self::A::•()
     ;
-  forwarding-stub forwarding-semi-stub method method<covariant-by-class T extends self::C::S*>(covariant-by-declaration covariant-by-class self::C::S* s) → void
-    return super.{self::A::method}<self::C::method::T*>(s);
+  forwarding-stub forwarding-semi-stub method method<covariant-by-class T extends self::C::S%>(covariant-by-declaration covariant-by-class self::C::S% s) → void
+    return super.{self::A::method}<self::C::method::T%>(s);
 }
-class D<S extends core::Object* = dynamic> extends self::A<self::D::S*> implements self::B<self::D::S*> {
-  synthetic constructor •() → self::D<self::D::S*>*
+class D<S extends core::Object? = dynamic> extends self::A<self::D::S%> implements self::B<self::D::S%> {
+  synthetic constructor •() → self::D<self::D::S%>
     : super self::A::•()
     ;
-  forwarding-stub method method<covariant-by-class T extends self::D::S*>(covariant-by-declaration covariant-by-class self::D::S* s) → void
-    return super.{self::A::method}<self::D::method::T*>(s);
+  forwarding-stub method method<covariant-by-class T extends self::D::S%>(covariant-by-declaration covariant-by-class self::D::S% s) → void
+    return super.{self::A::method}<self::D::method::T%>(s);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.modular.expect b/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.modular.expect
index d28fb6f..a65190f 100644
--- a/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.modular.expect
@@ -1,51 +1,31 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::S*>*
+class A<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::S%>
     : super core::Object::•()
     ;
-  method method<covariant-by-class T extends self::A::S*>(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
+  method method<covariant-by-class T extends self::A::S%>(covariant-by-class self::A::S% s) → void {}
 }
-class B<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::S*>*
+class B<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::S%>
     : super core::Object::•()
     ;
-  method method<covariant-by-class T extends self::B::S*>(covariant-by-declaration covariant-by-class self::B::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
+  method method<covariant-by-class T extends self::B::S%>(covariant-by-declaration covariant-by-class self::B::S% s) → void {}
 }
-class C<S extends core::Object* = dynamic> extends self::A<self::C::S*> implements self::B<self::C::S*> {
-  synthetic constructor •() → self::C<self::C::S*>*
+class C<S extends core::Object? = dynamic> extends self::A<self::C::S%> implements self::B<self::C::S%> {
+  synthetic constructor •() → self::C<self::C::S%>
     : super self::A::•()
     ;
-  forwarding-stub forwarding-semi-stub method method<covariant-by-class T extends self::C::S*>(covariant-by-declaration covariant-by-class self::C::S* s) → void
-    return super.{self::A::method}<self::C::method::T*>(s);
+  forwarding-stub forwarding-semi-stub method method<covariant-by-class T extends self::C::S%>(covariant-by-declaration covariant-by-class self::C::S% s) → void
+    return super.{self::A::method}<self::C::method::T%>(s);
 }
-class D<S extends core::Object* = dynamic> extends self::A<self::D::S*> implements self::B<self::D::S*> {
-  synthetic constructor •() → self::D<self::D::S*>*
+class D<S extends core::Object? = dynamic> extends self::A<self::D::S%> implements self::B<self::D::S%> {
+  synthetic constructor •() → self::D<self::D::S%>
     : super self::A::•()
     ;
-  forwarding-stub method method<covariant-by-class T extends self::D::S*>(covariant-by-declaration covariant-by-class self::D::S* s) → void
-    return super.{self::A::method}<self::D::method::T*>(s);
+  forwarding-stub method method<covariant-by-class T extends self::D::S%>(covariant-by-declaration covariant-by-class self::D::S% s) → void
+    return super.{self::A::method}<self::D::method::T%>(s);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.outline.expect b/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.outline.expect
index c24dcc9..bc048ae 100644
--- a/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.outline.expect
@@ -1,50 +1,30 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::S*>*
+class A<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::S%>
     ;
-  method method<covariant-by-class T extends self::A::S*>(covariant-by-class self::A::S* s) → void
+  method method<covariant-by-class T extends self::A::S%>(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
 }
-class B<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::S*>*
+class B<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::S%>
     ;
-  method method<covariant-by-class T extends self::B::S*>(covariant-by-declaration covariant-by-class self::B::S* s) → void
+  method method<covariant-by-class T extends self::B::S%>(covariant-by-declaration covariant-by-class self::B::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
 }
-class C<S extends core::Object* = dynamic> extends self::A<self::C::S*> implements self::B<self::C::S*> {
-  synthetic constructor •() → self::C<self::C::S*>*
+class C<S extends core::Object? = dynamic> extends self::A<self::C::S%> implements self::B<self::C::S%> {
+  synthetic constructor •() → self::C<self::C::S%>
     ;
-  forwarding-stub forwarding-semi-stub method method<covariant-by-class T extends self::C::S*>(covariant-by-declaration covariant-by-class self::C::S* s) → void
-    return super.{self::A::method}<self::C::method::T*>(s);
+  forwarding-stub forwarding-semi-stub method method<covariant-by-class T extends self::C::S%>(covariant-by-declaration covariant-by-class self::C::S% s) → void
+    return super.{self::A::method}<self::C::method::T%>(s);
 }
-class D<S extends core::Object* = dynamic> extends self::A<self::D::S*> implements self::B<self::D::S*> {
-  synthetic constructor •() → self::D<self::D::S*>*
+class D<S extends core::Object? = dynamic> extends self::A<self::D::S%> implements self::B<self::D::S%> {
+  synthetic constructor •() → self::D<self::D::S%>
     ;
-  forwarding-stub method method<covariant-by-class T extends self::D::S*>(covariant-by-declaration covariant-by-class self::D::S* s) → void
-    return super.{self::A::method}<self::D::method::T*>(s);
+  forwarding-stub method method<covariant-by-class T extends self::D::S%>(covariant-by-declaration covariant-by-class self::D::S% s) → void
+    return super.{self::A::method}<self::D::method::T%>(s);
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.transformed.expect b/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.transformed.expect
index d28fb6f..a65190f 100644
--- a/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.transformed.expect
@@ -1,51 +1,31 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-class A<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::A<self::A::S*>*
+class A<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::S%>
     : super core::Object::•()
     ;
-  method method<covariant-by-class T extends self::A::S*>(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
+  method method<covariant-by-class T extends self::A::S%>(covariant-by-class self::A::S% s) → void {}
 }
-class B<S extends core::Object* = dynamic> extends core::Object {
-  synthetic constructor •() → self::B<self::B::S*>*
+class B<S extends core::Object? = dynamic> extends core::Object {
+  synthetic constructor •() → self::B<self::B::S%>
     : super core::Object::•()
     ;
-  method method<covariant-by-class T extends self::B::S*>(covariant-by-declaration covariant-by-class self::B::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
+  method method<covariant-by-class T extends self::B::S%>(covariant-by-declaration covariant-by-class self::B::S% s) → void {}
 }
-class C<S extends core::Object* = dynamic> extends self::A<self::C::S*> implements self::B<self::C::S*> {
-  synthetic constructor •() → self::C<self::C::S*>*
+class C<S extends core::Object? = dynamic> extends self::A<self::C::S%> implements self::B<self::C::S%> {
+  synthetic constructor •() → self::C<self::C::S%>
     : super self::A::•()
     ;
-  forwarding-stub forwarding-semi-stub method method<covariant-by-class T extends self::C::S*>(covariant-by-declaration covariant-by-class self::C::S* s) → void
-    return super.{self::A::method}<self::C::method::T*>(s);
+  forwarding-stub forwarding-semi-stub method method<covariant-by-class T extends self::C::S%>(covariant-by-declaration covariant-by-class self::C::S% s) → void
+    return super.{self::A::method}<self::C::method::T%>(s);
 }
-class D<S extends core::Object* = dynamic> extends self::A<self::D::S*> implements self::B<self::D::S*> {
-  synthetic constructor •() → self::D<self::D::S*>*
+class D<S extends core::Object? = dynamic> extends self::A<self::D::S%> implements self::B<self::D::S%> {
+  synthetic constructor •() → self::D<self::D::S%>
     : super self::A::•()
     ;
-  forwarding-stub method method<covariant-by-class T extends self::D::S*>(covariant-by-declaration covariant-by-class self::D::S* s) → void
-    return super.{self::A::method}<self::D::method::T*>(s);
+  forwarding-stub method method<covariant-by-class T extends self::D::S%>(covariant-by-declaration covariant-by-class self::D::S% s) → void
+    return super.{self::A::method}<self::D::method::T%>(s);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/cycles.dart b/pkg/front_end/testcases/general/cycles.dart
index 190b4c0..4c953b1 100644
--- a/pkg/front_end/testcases/general/cycles.dart
+++ b/pkg/front_end/testcases/general/cycles.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 implements C {}
 
 class B extends A {}
diff --git a/pkg/front_end/testcases/general/cycles.dart.textual_outline.expect b/pkg/front_end/testcases/general/cycles.dart.textual_outline.expect
index 5a17b07..362437f 100644
--- a/pkg/front_end/testcases/general/cycles.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/cycles.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A implements C {}
 
 class B extends A {}
diff --git a/pkg/front_end/testcases/general/cycles.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/cycles.dart.textual_outline_modelled.expect
index 5a17b07..362437f 100644
--- a/pkg/front_end/testcases/general/cycles.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/cycles.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A implements C {}
 
 class B extends A {}
diff --git a/pkg/front_end/testcases/general/cycles.dart.weak.expect b/pkg/front_end/testcases/general/cycles.dart.weak.expect
index ec6f025..6c9d20a 100644
--- a/pkg/front_end/testcases/general/cycles.dart.weak.expect
+++ b/pkg/front_end/testcases/general/cycles.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,64 +18,24 @@
 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 {
-  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
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {
   core::print(new self::A::•());
diff --git a/pkg/front_end/testcases/general/cycles.dart.weak.modular.expect b/pkg/front_end/testcases/general/cycles.dart.weak.modular.expect
index ec6f025..6c9d20a 100644
--- a/pkg/front_end/testcases/general/cycles.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/cycles.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,64 +18,24 @@
 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 {
-  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
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {
   core::print(new self::A::•());
diff --git a/pkg/front_end/testcases/general/cycles.dart.weak.outline.expect b/pkg/front_end/testcases/general/cycles.dart.weak.outline.expect
index 7e01e5c..c1ee73b 100644
--- a/pkg/front_end/testcases/general/cycles.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/cycles.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,60 +18,20 @@
 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 {
-  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
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/cycles.dart.weak.transformed.expect b/pkg/front_end/testcases/general/cycles.dart.weak.transformed.expect
index ec6f025..6c9d20a 100644
--- a/pkg/front_end/testcases/general/cycles.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/cycles.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -18,64 +18,24 @@
 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 {
-  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
 }
 class D extends core::Object {
-  synthetic constructor •() → self::D*
+  synthetic constructor •() → self::D
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {
   core::print(new self::A::•());
diff --git a/pkg/front_end/testcases/general/default_values.dart b/pkg/front_end/testcases/general/default_values.dart
index 83c6ef3..de8ccc5 100644
--- a/pkg/front_end/testcases/general/default_values.dart
+++ b/pkg/front_end/testcases/general/default_values.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
+
 topLevel([a = 42]) => a;
 
 main() {
diff --git a/pkg/front_end/testcases/general/default_values.dart.textual_outline.expect b/pkg/front_end/testcases/general/default_values.dart.textual_outline.expect
index 82f6437..c04eb61 100644
--- a/pkg/front_end/testcases/general/default_values.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/default_values.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 topLevel([a = 42]) => a;
 main() {}
diff --git a/pkg/front_end/testcases/general/default_values.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/default_values.dart.textual_outline_modelled.expect
index 4c2cad0..c95e3f3 100644
--- a/pkg/front_end/testcases/general/default_values.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/default_values.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
 topLevel([a = 42]) => a;
diff --git a/pkg/front_end/testcases/general/default_values.dart.weak.expect b/pkg/front_end/testcases/general/default_values.dart.weak.expect
index 7b8886e..a576ab0 100644
--- a/pkg/front_end/testcases/general/default_values.dart.weak.expect
+++ b/pkg/front_end/testcases/general/default_values.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/general/default_values.dart.weak.modular.expect b/pkg/front_end/testcases/general/default_values.dart.weak.modular.expect
index 7b8886e..a576ab0 100644
--- a/pkg/front_end/testcases/general/default_values.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/default_values.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/general/default_values.dart.weak.outline.expect b/pkg/front_end/testcases/general/default_values.dart.weak.outline.expect
index 88ff556..1ac5c52 100644
--- a/pkg/front_end/testcases/general/default_values.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/default_values.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method topLevel([dynamic a]) → dynamic
diff --git a/pkg/front_end/testcases/general/default_values.dart.weak.transformed.expect b/pkg/front_end/testcases/general/default_values.dart.weak.transformed.expect
index 7b8886e..a576ab0 100644
--- a/pkg/front_end/testcases/general/default_values.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/default_values.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/general/deferred_lib.dart b/pkg/front_end/testcases/general/deferred_lib.dart
index 55588e5..94f5f06 100644
--- a/pkg/front_end/testcases/general/deferred_lib.dart
+++ b/pkg/front_end/testcases/general/deferred_lib.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.md file.
-// @dart=2.9
+
 dynamic m(x) => null;
 
 var x = 0;
diff --git a/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.expect b/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.expect
index bdaedd7..4d3a661 100644
--- a/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.expect
+++ b/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.expect
@@ -16,28 +16,18 @@
 static method bad(def::C* x) → dynamic {}
 static method main() → dynamic {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.modular.expect b/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.modular.expect
index bdaedd7..4d3a661 100644
--- a/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.modular.expect
@@ -16,28 +16,18 @@
 static method bad(def::C* x) → dynamic {}
 static method main() → dynamic {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.outline.expect b/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.outline.expect
index 440a121..ce2ba9d 100644
--- a/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.outline.expect
@@ -9,27 +9,17 @@
 static method main() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y;
-  synthetic constructor •() → def::C*
+  static field core::int y;
+  synthetic constructor •() → def::C
     ;
-  static method m() → core::int*
+  static 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
 }
-static field core::int* x;
+static field core::int x;
 static method m(dynamic x) → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.transformed.expect b/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.transformed.expect
index bdaedd7..4d3a661 100644
--- a/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/deferred_type_annotation.dart.weak.transformed.expect
@@ -16,28 +16,18 @@
 static method bad(def::C* x) → dynamic {}
 static method main() → dynamic {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as def;
 import "dart:core" as core;
 
 class C extends core::Object {
-  static field core::int* y = 1;
-  synthetic constructor •() → def::C*
+  static field core::int y = 1;
+  synthetic constructor •() → def::C
     : super core::Object::•()
     ;
-  static method m() → core::int*
+  static method m() → 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
 }
-static field core::int* x = 0;
+static field core::int x = 0;
 static method m(dynamic x) → dynamic
   return null;
diff --git a/pkg/front_end/testcases/general/demote_closure_types.dart b/pkg/front_end/testcases/general/demote_closure_types.dart
index b999b64..d472317 100644
--- a/pkg/front_end/testcases/general/demote_closure_types.dart
+++ b/pkg/front_end/testcases/general/demote_closure_types.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
+
 method<T>(T a, T b) {
   if (a is String) {
     var f = () => a;
diff --git a/pkg/front_end/testcases/general/demote_closure_types.dart.textual_outline.expect b/pkg/front_end/testcases/general/demote_closure_types.dart.textual_outline.expect
index a5f2d23..fee39b9 100644
--- a/pkg/front_end/testcases/general/demote_closure_types.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/demote_closure_types.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 method<T>(T a, T b) {}
 main() {}
diff --git a/pkg/front_end/testcases/general/demote_closure_types.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/demote_closure_types.dart.textual_outline_modelled.expect
index 4ba4585..caff637 100644
--- a/pkg/front_end/testcases/general/demote_closure_types.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/demote_closure_types.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
 main() {}
 method<T>(T a, T b) {}
diff --git a/pkg/front_end/testcases/general/demote_closure_types.dart.weak.expect b/pkg/front_end/testcases/general/demote_closure_types.dart.weak.expect
index f789104..70c0b87 100644
--- a/pkg/front_end/testcases/general/demote_closure_types.dart.weak.expect
+++ b/pkg/front_end/testcases/general/demote_closure_types.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,12 +9,12 @@
 import self as self;
 import "dart:core" as core;
 
-static method method<T extends core::Object* = dynamic>(self::method::T* a, self::method::T* b) → dynamic {
-  if(a is core::String*) {
-    () →* self::method::T* f = () → self::method::T* => a{self::method::T* & core::String* /* '*' & '*' = '*' */};
-    core::String* s = invalid-expression "pkg/front_end/testcases/general/demote_closure_types.dart:8:17: Error: A value of type 'T' can't be assigned to a variable of type 'String'.
+static method method<T extends core::Object? = dynamic>(self::method::T% a, self::method::T% b) → dynamic {
+  if(a is{ForNonNullableByDefault} core::String) {
+    () → self::method::T% f = () → self::method::T% => a{self::method::T% & core::String /* '%' & '!' = '!' */};
+    core::String s = invalid-expression "pkg/front_end/testcases/general/demote_closure_types.dart:8:17: Error: A value of type 'T' can't be assigned to a variable of type 'String'.
     String s = f();
-                ^" in f(){() →* self::method::T*} as{TypeError} core::String*;
+                ^" in f(){() → self::method::T%} as{TypeError,ForNonNullableByDefault} core::String;
   }
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/demote_closure_types.dart.weak.modular.expect b/pkg/front_end/testcases/general/demote_closure_types.dart.weak.modular.expect
index f789104..70c0b87 100644
--- a/pkg/front_end/testcases/general/demote_closure_types.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/demote_closure_types.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,12 +9,12 @@
 import self as self;
 import "dart:core" as core;
 
-static method method<T extends core::Object* = dynamic>(self::method::T* a, self::method::T* b) → dynamic {
-  if(a is core::String*) {
-    () →* self::method::T* f = () → self::method::T* => a{self::method::T* & core::String* /* '*' & '*' = '*' */};
-    core::String* s = invalid-expression "pkg/front_end/testcases/general/demote_closure_types.dart:8:17: Error: A value of type 'T' can't be assigned to a variable of type 'String'.
+static method method<T extends core::Object? = dynamic>(self::method::T% a, self::method::T% b) → dynamic {
+  if(a is{ForNonNullableByDefault} core::String) {
+    () → self::method::T% f = () → self::method::T% => a{self::method::T% & core::String /* '%' & '!' = '!' */};
+    core::String s = invalid-expression "pkg/front_end/testcases/general/demote_closure_types.dart:8:17: Error: A value of type 'T' can't be assigned to a variable of type 'String'.
     String s = f();
-                ^" in f(){() →* self::method::T*} as{TypeError} core::String*;
+                ^" in f(){() → self::method::T%} as{TypeError,ForNonNullableByDefault} core::String;
   }
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/demote_closure_types.dart.weak.outline.expect b/pkg/front_end/testcases/general/demote_closure_types.dart.weak.outline.expect
index 3854c37..bffcb5f 100644
--- a/pkg/front_end/testcases/general/demote_closure_types.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/demote_closure_types.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "dart:core" as core;
 
-static method method<T extends core::Object* = dynamic>(self::method::T* a, self::method::T* b) → dynamic
+static method method<T extends core::Object? = dynamic>(self::method::T% a, self::method::T% b) → dynamic
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/demote_closure_types.dart.weak.transformed.expect b/pkg/front_end/testcases/general/demote_closure_types.dart.weak.transformed.expect
index f789104..70c0b87 100644
--- a/pkg/front_end/testcases/general/demote_closure_types.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/demote_closure_types.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -9,12 +9,12 @@
 import self as self;
 import "dart:core" as core;
 
-static method method<T extends core::Object* = dynamic>(self::method::T* a, self::method::T* b) → dynamic {
-  if(a is core::String*) {
-    () →* self::method::T* f = () → self::method::T* => a{self::method::T* & core::String* /* '*' & '*' = '*' */};
-    core::String* s = invalid-expression "pkg/front_end/testcases/general/demote_closure_types.dart:8:17: Error: A value of type 'T' can't be assigned to a variable of type 'String'.
+static method method<T extends core::Object? = dynamic>(self::method::T% a, self::method::T% b) → dynamic {
+  if(a is{ForNonNullableByDefault} core::String) {
+    () → self::method::T% f = () → self::method::T% => a{self::method::T% & core::String /* '%' & '!' = '!' */};
+    core::String s = invalid-expression "pkg/front_end/testcases/general/demote_closure_types.dart:8:17: Error: A value of type 'T' can't be assigned to a variable of type 'String'.
     String s = f();
-                ^" in f(){() →* self::method::T*} as{TypeError} core::String*;
+                ^" in f(){() → self::method::T%} as{TypeError,ForNonNullableByDefault} core::String;
   }
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart
index 06ff79b..ad31de6 100644
--- a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart
+++ b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// @dart=2.9
-
 import 'duplicated_bad_prefix_lib1.dart' as dupe;
 import 'duplicated_bad_prefix_lib2.dart' as dupe;
 
diff --git a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.textual_outline.expect b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.textual_outline.expect
index 925be87..17b7541 100644
--- a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'duplicated_bad_prefix_lib1.dart' as dupe;
 import 'duplicated_bad_prefix_lib2.dart' as dupe;
 
diff --git a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.textual_outline_modelled.expect
index 0d9e3fc..8169867 100644
--- a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'duplicated_bad_prefix_lib1.dart' as dupe;
 import 'duplicated_bad_prefix_lib2.dart' as dupe;
 
diff --git a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.expect b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.expect
index c5b39f8..6ec750c 100644
--- a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.expect
+++ b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.expect
@@ -1,23 +1,23 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:12:7: Error: 'Dupe' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:10:7: Error: 'Dupe' is already declared in this scope.
 // class Dupe {}
 //       ^^^^
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:10:7: Context: Previous declaration of 'Dupe'.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:8:7: Context: Previous declaration of 'Dupe'.
 // class Dupe {}
 //       ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:15:3: Error: Type 'Dupe.a' not found.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:13:3: Error: Type 'Dupe.a' not found.
 //   Dupe.a b;
 //   ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:8:45: Error: 'C' is imported from both 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.dart' and 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.dart'.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:6:45: Error: 'C' is imported from both 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.dart' and 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.dart'.
 // import 'duplicated_bad_prefix_lib2.dart' as dupe;
 //                                             ^
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:15:3: Error: 'Dupe.a' isn't a type.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:13:3: Error: 'Dupe.a' isn't a type.
 //   Dupe.a b;
 //   ^^^^^^
 //
@@ -28,90 +28,40 @@
 import "org-dartlang-testcase:///duplicated_bad_prefix_lib2.dart" as dupe;
 
 class Dupe#1 extends core::Object {
-  synthetic constructor •() → self::Dupe#1*
+  synthetic constructor •() → self::Dupe#1
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Dupe extends core::Object {
-  synthetic constructor •() → self::Dupe*
+  synthetic constructor •() → self::Dupe
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 invalid-type b = null;
   field invalid-type d = null;
-  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 {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self2::C*
+  synthetic constructor •() → self2::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
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self3::C*
+  synthetic constructor •() → self3::C
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
diff --git a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.modular.expect b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.modular.expect
index c5b39f8..6ec750c 100644
--- a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.modular.expect
@@ -1,23 +1,23 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:12:7: Error: 'Dupe' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:10:7: Error: 'Dupe' is already declared in this scope.
 // class Dupe {}
 //       ^^^^
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:10:7: Context: Previous declaration of 'Dupe'.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:8:7: Context: Previous declaration of 'Dupe'.
 // class Dupe {}
 //       ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:15:3: Error: Type 'Dupe.a' not found.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:13:3: Error: Type 'Dupe.a' not found.
 //   Dupe.a b;
 //   ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:8:45: Error: 'C' is imported from both 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.dart' and 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.dart'.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:6:45: Error: 'C' is imported from both 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.dart' and 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.dart'.
 // import 'duplicated_bad_prefix_lib2.dart' as dupe;
 //                                             ^
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:15:3: Error: 'Dupe.a' isn't a type.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:13:3: Error: 'Dupe.a' isn't a type.
 //   Dupe.a b;
 //   ^^^^^^
 //
@@ -28,90 +28,40 @@
 import "org-dartlang-testcase:///duplicated_bad_prefix_lib2.dart" as dupe;
 
 class Dupe#1 extends core::Object {
-  synthetic constructor •() → self::Dupe#1*
+  synthetic constructor •() → self::Dupe#1
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Dupe extends core::Object {
-  synthetic constructor •() → self::Dupe*
+  synthetic constructor •() → self::Dupe
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 invalid-type b = null;
   field invalid-type d = null;
-  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 {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self2::C*
+  synthetic constructor •() → self2::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
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self3::C*
+  synthetic constructor •() → self3::C
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
diff --git a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.outline.expect b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.outline.expect
index 5531431..86c7446 100644
--- a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.outline.expect
@@ -1,19 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:12:7: Error: 'Dupe' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:10:7: Error: 'Dupe' is already declared in this scope.
 // class Dupe {}
 //       ^^^^
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:10:7: Context: Previous declaration of 'Dupe'.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:8:7: Context: Previous declaration of 'Dupe'.
 // class Dupe {}
 //       ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:15:3: Error: Type 'Dupe.a' not found.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:13:3: Error: Type 'Dupe.a' not found.
 //   Dupe.a b;
 //   ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:8:45: Error: 'C' is imported from both 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.dart' and 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.dart'.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:6:45: Error: 'C' is imported from both 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.dart' and 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.dart'.
 // import 'duplicated_bad_prefix_lib2.dart' as dupe;
 //                                             ^
 //
@@ -24,86 +24,36 @@
 import "org-dartlang-testcase:///duplicated_bad_prefix_lib2.dart" as dupe;
 
 class Dupe#1 extends core::Object {
-  synthetic constructor •() → self::Dupe#1*
+  synthetic constructor •() → self::Dupe#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 Dupe extends core::Object {
-  synthetic constructor •() → self::Dupe*
+  synthetic constructor •() → self::Dupe
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 invalid-type b;
   field invalid-type d;
-  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
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self2::C*
+  synthetic constructor •() → self2::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
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self3::C*
+  synthetic constructor •() → self3::C
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
diff --git a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.transformed.expect b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.transformed.expect
index c5b39f8..6ec750c 100644
--- a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.weak.transformed.expect
@@ -1,23 +1,23 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:12:7: Error: 'Dupe' is already declared in this scope.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:10:7: Error: 'Dupe' is already declared in this scope.
 // class Dupe {}
 //       ^^^^
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:10:7: Context: Previous declaration of 'Dupe'.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:8:7: Context: Previous declaration of 'Dupe'.
 // class Dupe {}
 //       ^^^^
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:15:3: Error: Type 'Dupe.a' not found.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:13:3: Error: Type 'Dupe.a' not found.
 //   Dupe.a b;
 //   ^^^^^^
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:8:45: Error: 'C' is imported from both 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.dart' and 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.dart'.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:6:45: Error: 'C' is imported from both 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.dart' and 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.dart'.
 // import 'duplicated_bad_prefix_lib2.dart' as dupe;
 //                                             ^
 //
-// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:15:3: Error: 'Dupe.a' isn't a type.
+// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:13:3: Error: 'Dupe.a' isn't a type.
 //   Dupe.a b;
 //   ^^^^^^
 //
@@ -28,90 +28,40 @@
 import "org-dartlang-testcase:///duplicated_bad_prefix_lib2.dart" as dupe;
 
 class Dupe#1 extends core::Object {
-  synthetic constructor •() → self::Dupe#1*
+  synthetic constructor •() → self::Dupe#1
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Dupe extends core::Object {
-  synthetic constructor •() → self::Dupe*
+  synthetic constructor •() → self::Dupe
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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 invalid-type b = null;
   field invalid-type d = null;
-  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 {}
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self2::C*
+  synthetic constructor •() → self2::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
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self3;
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self3::C*
+  synthetic constructor •() → self3::C
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
diff --git a/pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.dart b/pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.dart
index f098d3d..14a6172 100644
--- a/pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.dart
+++ b/pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.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 C {}
diff --git a/pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.dart b/pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.dart
index f098d3d..14a6172 100644
--- a/pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.dart
+++ b/pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.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 C {}
diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart b/pkg/front_end/testcases/general/duplicated_declarations.dart
index 9862e6f..1b914cd 100644
--- a/pkg/front_end/testcases/general/duplicated_declarations.dart
+++ b/pkg/front_end/testcases/general/duplicated_declarations.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
+
 part "duplicated_declarations_part.dart";
 
 import 'duplicated_declarations_lib.dart' as Typedef;
diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.textual_outline.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.textual_outline.expect
index 5f3dc6d..1f4f8e4 100644
--- a/pkg/front_end/testcases/general/duplicated_declarations.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 part "duplicated_declarations_part.dart";
 import 'duplicated_declarations_lib.dart' as Typedef;
 import 'duplicated_declarations_lib.dart' as Typedef;
diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect
index 69399bb..bcf1826 100644
--- a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect
+++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -361,41 +361,21 @@
 import "org-dartlang-testcase:///duplicated_declarations_lib.dart" as Typedef;
 
 part duplicated_declarations_part.dart;
-typedef Typedef = () →* void;
-typedef OldTypedef = () →* void;
+typedef Typedef = () → void;
+typedef OldTypedef = () → void;
 class C#4 extends core::Object { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  constructor _() → self::C#4*
+  constructor _() → self::C#4
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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#3 extends core::Object { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  constructor _() → self::C#3*
+  constructor _() → self::C#3
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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#2 extends core::Object { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  field core::String* field = null;
-  constructor •(dynamic a) → self::C#2*
+  field core::String field = null;
+  constructor •(dynamic a) → self::C#2
     : super core::Object::•()
     ;
   method m() → dynamic {
@@ -408,35 +388,15 @@
     return invalid-expression "pkg/front_end/testcases/general/duplicated_declarations_part.dart:62:17: Error: Can't use 's' because it is declared more than once.
   static f() => s;
                 ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C#1 extends core::Object {
-  constructor _() → self::C#1*
+  constructor _() → self::C#1
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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::String* field = null;
-  constructor •(dynamic a) → self::C*
+  field core::String field = null;
+  constructor •(dynamic a) → self::C
     : super core::Object::•()
     ;
   method m() → dynamic {
@@ -449,19 +409,9 @@
     return invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:64:17: Error: Can't use 's' because it is declared more than once.
   static f() => s;
                 ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Sub extends core::Object {
-  constructor •() → self::Sub*
+  constructor •() → self::Sub
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:68:16: Error: Too many positional arguments: 0 allowed, but 1 found.
 Try removing the extra positional arguments.
   Sub() : super(null);
@@ -469,149 +419,74 @@
     ;
   method m() → dynamic
     return super.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 Enum#4 extends core::_Enum /*isEnum*/  { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  static const field core::List<self::Enum#4*>* values = #C4;
-  static const field self::Enum#4* a = #C3;
-  const constructor •(core::int* index, core::String* name) → self::Enum#4*
+  static const field core::List<self::Enum#4> values = #C4;
+  static const field self::Enum#4 a = #C3;
+  const constructor •(core::int index, core::String name) → self::Enum#4
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum#4.${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
 }
 class Enum#3 extends core::_Enum /*isEnum*/  { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  static const field core::List<self::Enum#3*>* values = #C12;
-  static const field self::Enum#3* a = #C5;
-  static const field self::Enum#3* b = #C8;
-  static const field self::Enum#3* c = #C11;
-  const constructor •(core::int* index, core::String* name) → self::Enum#3*
+  static const field core::List<self::Enum#3> values = #C12;
+  static const field self::Enum#3 a = #C5;
+  static const field self::Enum#3 b = #C8;
+  static const field self::Enum#3 c = #C11;
+  const constructor •(core::int index, core::String name) → self::Enum#3
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum#3.${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
 }
 class Enum#2 extends core::_Enum /*isEnum*/  { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  static const field core::List<self::Enum#2*>* values = #C17;
-  static const field self::Enum#2* Enum = #C14;
-  static const field self::Enum#2* a = #C15;
-  static const field self::Enum#2* b = #C16;
-  const constructor •(core::int* index, core::String* name) → self::Enum#2*
+  static const field core::List<self::Enum#2> values = #C17;
+  static const field self::Enum#2 Enum = #C14;
+  static const field self::Enum#2 a = #C15;
+  static const field self::Enum#2 b = #C16;
+  const constructor •(core::int index, core::String name) → self::Enum#2
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum#2.${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
 }
 class Enum#1 extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::Enum#1*>* values = #C21;
-  static const field self::Enum#1* a = #C18;
-  static const field self::Enum#1* b = #C19;
-  static const field self::Enum#1* c = #C20;
-  const constructor •(core::int* index, core::String* name) → self::Enum#1*
+  static const field core::List<self::Enum#1> values = #C21;
+  static const field self::Enum#1 a = #C18;
+  static const field self::Enum#1 b = #C19;
+  static const field self::Enum#1 c = #C20;
+  const constructor •(core::int index, core::String name) → self::Enum#1
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum#1.${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
 }
 class Enum extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::Enum*>* values = #C25;
-  static const field self::Enum* Enum = #C22;
-  static const field self::Enum* a = #C23;
-  static const field self::Enum* b = #C24;
-  const constructor •(core::int* index, core::String* name) → self::Enum*
+  static const field core::List<self::Enum> values = #C25;
+  static const field self::Enum Enum = #C22;
+  static const field self::Enum a = #C23;
+  static const field self::Enum b = #C24;
+  const constructor •(core::int index, core::String name) → self::Enum
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum.${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
 }
 class AnotherEnum extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::AnotherEnum*>* values = #C35;
-  static const field self::AnotherEnum* a = #C26;
-  static const field self::AnotherEnum* b = #C27;
-  static const field self::AnotherEnum* c = #C28;
-  static const field self::AnotherEnum* _name = #C31;
-  static const field self::AnotherEnum* index = #C34;
-  const constructor •(core::int* index, core::String* name) → self::AnotherEnum*
+  static const field core::List<self::AnotherEnum> values = #C35;
+  static const field self::AnotherEnum a = #C26;
+  static const field self::AnotherEnum b = #C27;
+  static const field self::AnotherEnum c = #C28;
+  static const field self::AnotherEnum _name = #C31;
+  static const field self::AnotherEnum index = #C34;
+  const constructor •(core::int index, core::String name) → self::AnotherEnum
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "AnotherEnum.${this.{core::_Enum::_name}{core::String}}";
-  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 field core::String* field;
+static field core::String field;
 static method main() → dynamic {
   "1st";
 }
@@ -634,14 +509,14 @@
     ^";
 }
 static method useAnotherEnum() → dynamic {
-  <core::String*, core::Object*>{"AnotherEnum.a": #C26, "AnotherEnum.b": #C27, "AnotherEnum.c": #C28, "AnotherEnum._name": #C31, "AnotherEnum.index": #C34, "AnotherEnum.toString": invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:106:41: Error: Can't use 'toString' because it is declared more than once.
+  <core::String, core::Object>{"AnotherEnum.a": #C26, "AnotherEnum.b": #C27, "AnotherEnum.c": #C28, "AnotherEnum._name": #C31, "AnotherEnum.index": #C34, "AnotherEnum.toString": invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:106:41: Error: Can't use 'toString' because it is declared more than once.
     \"AnotherEnum.toString\": AnotherEnum.toString,
                                         ^^^^^^^^", "AnotherEnum.values": invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:107:39: Error: Can't use 'values' because it is declared more than once.
     \"AnotherEnum.values\": AnotherEnum.values,
                                       ^^^^^^"};
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 
 
diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect
index 69399bb..bcf1826 100644
--- a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -361,41 +361,21 @@
 import "org-dartlang-testcase:///duplicated_declarations_lib.dart" as Typedef;
 
 part duplicated_declarations_part.dart;
-typedef Typedef = () →* void;
-typedef OldTypedef = () →* void;
+typedef Typedef = () → void;
+typedef OldTypedef = () → void;
 class C#4 extends core::Object { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  constructor _() → self::C#4*
+  constructor _() → self::C#4
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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#3 extends core::Object { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  constructor _() → self::C#3*
+  constructor _() → self::C#3
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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#2 extends core::Object { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  field core::String* field = null;
-  constructor •(dynamic a) → self::C#2*
+  field core::String field = null;
+  constructor •(dynamic a) → self::C#2
     : super core::Object::•()
     ;
   method m() → dynamic {
@@ -408,35 +388,15 @@
     return invalid-expression "pkg/front_end/testcases/general/duplicated_declarations_part.dart:62:17: Error: Can't use 's' because it is declared more than once.
   static f() => s;
                 ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class C#1 extends core::Object {
-  constructor _() → self::C#1*
+  constructor _() → self::C#1
     : super core::Object::•()
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::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::String* field = null;
-  constructor •(dynamic a) → self::C*
+  field core::String field = null;
+  constructor •(dynamic a) → self::C
     : super core::Object::•()
     ;
   method m() → dynamic {
@@ -449,19 +409,9 @@
     return invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:64:17: Error: Can't use 's' because it is declared more than once.
   static f() => s;
                 ^";
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Sub extends core::Object {
-  constructor •() → self::Sub*
+  constructor •() → self::Sub
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:68:16: Error: Too many positional arguments: 0 allowed, but 1 found.
 Try removing the extra positional arguments.
   Sub() : super(null);
@@ -469,149 +419,74 @@
     ;
   method m() → dynamic
     return super.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 Enum#4 extends core::_Enum /*isEnum*/  { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  static const field core::List<self::Enum#4*>* values = #C4;
-  static const field self::Enum#4* a = #C3;
-  const constructor •(core::int* index, core::String* name) → self::Enum#4*
+  static const field core::List<self::Enum#4> values = #C4;
+  static const field self::Enum#4 a = #C3;
+  const constructor •(core::int index, core::String name) → self::Enum#4
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum#4.${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
 }
 class Enum#3 extends core::_Enum /*isEnum*/  { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  static const field core::List<self::Enum#3*>* values = #C12;
-  static const field self::Enum#3* a = #C5;
-  static const field self::Enum#3* b = #C8;
-  static const field self::Enum#3* c = #C11;
-  const constructor •(core::int* index, core::String* name) → self::Enum#3*
+  static const field core::List<self::Enum#3> values = #C12;
+  static const field self::Enum#3 a = #C5;
+  static const field self::Enum#3 b = #C8;
+  static const field self::Enum#3 c = #C11;
+  const constructor •(core::int index, core::String name) → self::Enum#3
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum#3.${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
 }
 class Enum#2 extends core::_Enum /*isEnum*/  { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  static const field core::List<self::Enum#2*>* values = #C17;
-  static const field self::Enum#2* Enum = #C14;
-  static const field self::Enum#2* a = #C15;
-  static const field self::Enum#2* b = #C16;
-  const constructor •(core::int* index, core::String* name) → self::Enum#2*
+  static const field core::List<self::Enum#2> values = #C17;
+  static const field self::Enum#2 Enum = #C14;
+  static const field self::Enum#2 a = #C15;
+  static const field self::Enum#2 b = #C16;
+  const constructor •(core::int index, core::String name) → self::Enum#2
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum#2.${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
 }
 class Enum#1 extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::Enum#1*>* values = #C21;
-  static const field self::Enum#1* a = #C18;
-  static const field self::Enum#1* b = #C19;
-  static const field self::Enum#1* c = #C20;
-  const constructor •(core::int* index, core::String* name) → self::Enum#1*
+  static const field core::List<self::Enum#1> values = #C21;
+  static const field self::Enum#1 a = #C18;
+  static const field self::Enum#1 b = #C19;
+  static const field self::Enum#1 c = #C20;
+  const constructor •(core::int index, core::String name) → self::Enum#1
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum#1.${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
 }
 class Enum extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::Enum*>* values = #C25;
-  static const field self::Enum* Enum = #C22;
-  static const field self::Enum* a = #C23;
-  static const field self::Enum* b = #C24;
-  const constructor •(core::int* index, core::String* name) → self::Enum*
+  static const field core::List<self::Enum> values = #C25;
+  static const field self::Enum Enum = #C22;
+  static const field self::Enum a = #C23;
+  static const field self::Enum b = #C24;
+  const constructor •(core::int index, core::String name) → self::Enum
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum.${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
 }
 class AnotherEnum extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::AnotherEnum*>* values = #C35;
-  static const field self::AnotherEnum* a = #C26;
-  static const field self::AnotherEnum* b = #C27;
-  static const field self::AnotherEnum* c = #C28;
-  static const field self::AnotherEnum* _name = #C31;
-  static const field self::AnotherEnum* index = #C34;
-  const constructor •(core::int* index, core::String* name) → self::AnotherEnum*
+  static const field core::List<self::AnotherEnum> values = #C35;
+  static const field self::AnotherEnum a = #C26;
+  static const field self::AnotherEnum b = #C27;
+  static const field self::AnotherEnum c = #C28;
+  static const field self::AnotherEnum _name = #C31;
+  static const field self::AnotherEnum index = #C34;
+  const constructor •(core::int index, core::String name) → self::AnotherEnum
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "AnotherEnum.${this.{core::_Enum::_name}{core::String}}";
-  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 field core::String* field;
+static field core::String field;
 static method main() → dynamic {
   "1st";
 }
@@ -634,14 +509,14 @@
     ^";
 }
 static method useAnotherEnum() → dynamic {
-  <core::String*, core::Object*>{"AnotherEnum.a": #C26, "AnotherEnum.b": #C27, "AnotherEnum.c": #C28, "AnotherEnum._name": #C31, "AnotherEnum.index": #C34, "AnotherEnum.toString": invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:106:41: Error: Can't use 'toString' because it is declared more than once.
+  <core::String, core::Object>{"AnotherEnum.a": #C26, "AnotherEnum.b": #C27, "AnotherEnum.c": #C28, "AnotherEnum._name": #C31, "AnotherEnum.index": #C34, "AnotherEnum.toString": invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:106:41: Error: Can't use 'toString' because it is declared more than once.
     \"AnotherEnum.toString\": AnotherEnum.toString,
                                         ^^^^^^^^", "AnotherEnum.values": invalid-expression "pkg/front_end/testcases/general/duplicated_declarations.dart:107:39: Error: Can't use 'values' because it is declared more than once.
     \"AnotherEnum.values\": AnotherEnum.values,
                                       ^^^^^^"};
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 
 
diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.outline.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.outline.expect
index b25af41..3646760 100644
--- a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -310,39 +310,19 @@
 import "org-dartlang-testcase:///duplicated_declarations_lib.dart" as Typedef;
 
 part duplicated_declarations_part.dart;
-typedef Typedef = () →* void;
-typedef OldTypedef = () →* void;
+typedef Typedef = () → void;
+typedef OldTypedef = () → void;
 class C#4 extends core::Object { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  constructor _() → self::C#4*
+  constructor _() → self::C#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#3 extends core::Object { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  constructor _() → self::C#3*
+  constructor _() → self::C#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
 }
 class C#2 extends core::Object { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  field core::String* field;
-  constructor •(dynamic a) → self::C#2*
+  field core::String field;
+  constructor •(dynamic a) → self::C#2
     ;
   method m() → dynamic
     ;
@@ -350,34 +330,14 @@
     ;
   static 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
 }
 class C#1 extends core::Object {
-  constructor _() → self::C#1*
+  constructor _() → self::C#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 {
-  field core::String* field;
-  constructor •(dynamic a) → self::C*
+  field core::String field;
+  constructor •(dynamic a) → self::C
     ;
   method m() → dynamic
     ;
@@ -385,165 +345,80 @@
     ;
   static 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
 }
 class Sub extends core::Object {
-  constructor •() → self::Sub*
+  constructor •() → self::Sub
     ;
   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
 }
 class Enum#4 extends core::_Enum /*isEnum*/  { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  static const field core::List<self::Enum#4*>* values = const <self::Enum#4*>[self::Enum#4::a];
-  static const field self::Enum#4* a = const self::Enum#4::•(0, "a");
-  const constructor •(core::int* index, core::String* name) → self::Enum#4*
+  static const field core::List<self::Enum#4> values = const <self::Enum#4>[self::Enum#4::a];
+  static const field self::Enum#4 a = const self::Enum#4::•(0, "a");
+  const constructor •(core::int index, core::String name) → self::Enum#4
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum#4.${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
 }
 class Enum#3 extends core::_Enum /*isEnum*/  { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  static const field core::List<self::Enum#3*>* values = const <self::Enum#3*>[self::Enum#3::a, self::Enum#3::b, self::Enum#3::c];
-  static const field self::Enum#3* a = const self::Enum#3::•(0, "a");
-  static const field self::Enum#3* b = const self::Enum#3::•(1, "b");
-  static const field self::Enum#3* c = const self::Enum#3::•(2, "c");
-  const constructor •(core::int* index, core::String* name) → self::Enum#3*
+  static const field core::List<self::Enum#3> values = const <self::Enum#3>[self::Enum#3::a, self::Enum#3::b, self::Enum#3::c];
+  static const field self::Enum#3 a = const self::Enum#3::•(0, "a");
+  static const field self::Enum#3 b = const self::Enum#3::•(1, "b");
+  static const field self::Enum#3 c = const self::Enum#3::•(2, "c");
+  const constructor •(core::int index, core::String name) → self::Enum#3
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum#3.${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
 }
 class Enum#2 extends core::_Enum /*isEnum*/  { // from org-dartlang-testcase:///duplicated_declarations_part.dart
-  static const field core::List<self::Enum#2*>* values = const <self::Enum#2*>[self::Enum#2::Enum, self::Enum#2::a, self::Enum#2::b];
-  static const field self::Enum#2* Enum = const self::Enum#2::•(0, "Enum");
-  static const field self::Enum#2* a = const self::Enum#2::•(1, "a");
-  static const field self::Enum#2* b = const self::Enum#2::•(2, "b");
-  const constructor •(core::int* index, core::String* name) → self::Enum#2*
+  static const field core::List<self::Enum#2> values = const <self::Enum#2>[self::Enum#2::Enum, self::Enum#2::a, self::Enum#2::b];
+  static const field self::Enum#2 Enum = const self::Enum#2::•(0, "Enum");
+  static const field self::Enum#2 a = const self::Enum#2::•(1, "a");
+  static const field self::Enum#2 b = const self::Enum#2::•(2, "b");
+  const constructor •(core::int index, core::String name) → self::Enum#2
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum#2.${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
 }
 class Enum#1 extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::Enum#1*>* values = const <self::Enum#1*>[self::Enum#1::a, self::Enum#1::b, self::Enum#1::c];
-  static const field self::Enum#1* a = const self::Enum#1::•(0, "a");
-  static const field self::Enum#1* b = const self::Enum#1::•(1, "b");
-  static const field self::Enum#1* c = const self::Enum#1::•(2, "c");
-  const constructor •(core::int* index, core::String* name) → self::Enum#1*
+  static const field core::List<self::Enum#1> values = const <self::Enum#1>[self::Enum#1::a, self::Enum#1::b, self::Enum#1::c];
+  static const field self::Enum#1 a = const self::Enum#1::•(0, "a");
+  static const field self::Enum#1 b = const self::Enum#1::•(1, "b");
+  static const field self::Enum#1 c = const self::Enum#1::•(2, "c");
+  const constructor •(core::int index, core::String name) → self::Enum#1
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum#1.${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
 }
 class Enum extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::Enum*>* values = const <self::Enum*>[self::Enum::Enum, self::Enum::a, self::Enum::b];
-  static const field self::Enum* Enum = const self::Enum::•(0, "Enum");
-  static const field self::Enum* a = const self::Enum::•(1, "a");
-  static const field self::Enum* b = const self::Enum::•(2, "b");
-  const constructor •(core::int* index, core::String* name) → self::Enum*
+  static const field core::List<self::Enum> values = const <self::Enum>[self::Enum::Enum, self::Enum::a, self::Enum::b];
+  static const field self::Enum Enum = const self::Enum::•(0, "Enum");
+  static const field self::Enum a = const self::Enum::•(1, "a");
+  static const field self::Enum b = const self::Enum::•(2, "b");
+  const constructor •(core::int index, core::String name) → self::Enum
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "Enum.${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
 }
 class AnotherEnum extends core::_Enum /*isEnum*/  {
-  static const field core::List<self::AnotherEnum*>* values = const <self::AnotherEnum*>[self::AnotherEnum::a, self::AnotherEnum::b, self::AnotherEnum::c, self::AnotherEnum::_name, self::AnotherEnum::index];
-  static const field self::AnotherEnum* a = const self::AnotherEnum::•(0, "a");
-  static const field self::AnotherEnum* b = const self::AnotherEnum::•(1, "b");
-  static const field self::AnotherEnum* c = const self::AnotherEnum::•(2, "c");
-  static const field self::AnotherEnum* _name = const self::AnotherEnum::•(3, "_name");
-  static const field self::AnotherEnum* index = const self::AnotherEnum::•(4, "index");
-  const constructor •(core::int* index, core::String* name) → self::AnotherEnum*
+  static const field core::List<self::AnotherEnum> values = const <self::AnotherEnum>[self::AnotherEnum::a, self::AnotherEnum::b, self::AnotherEnum::c, self::AnotherEnum::_name, self::AnotherEnum::index];
+  static const field self::AnotherEnum a = const self::AnotherEnum::•(0, "a");
+  static const field self::AnotherEnum b = const self::AnotherEnum::•(1, "b");
+  static const field self::AnotherEnum c = const self::AnotherEnum::•(2, "c");
+  static const field self::AnotherEnum _name = const self::AnotherEnum::•(3, "_name");
+  static const field self::AnotherEnum index = const self::AnotherEnum::•(4, "index");
+  const constructor •(core::int index, core::String name) → self::AnotherEnum
     : super core::_Enum::•(index, name)
     ;
-  method toString() → core::String*
+  method toString() → core::String
     return "AnotherEnum.${this.{core::_Enum::_name}{core::String}}";
-  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 field core::String* field;
+static field core::String field;
 static method main() → dynamic
   ;
 static method foo() → dynamic
@@ -551,7 +426,7 @@
 static method useAnotherEnum() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as self2;
 
 
diff --git a/pkg/front_end/testcases/general/duplicated_declarations_lib.dart b/pkg/front_end/testcases/general/duplicated_declarations_lib.dart
index e343683..87869b0 100644
--- a/pkg/front_end/testcases/general/duplicated_declarations_lib.dart
+++ b/pkg/front_end/testcases/general/duplicated_declarations_lib.dart
@@ -1,4 +1,3 @@
-// @dart=2.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.
diff --git a/pkg/front_end/testcases/general/duplicated_declarations_part.dart b/pkg/front_end/testcases/general/duplicated_declarations_part.dart
index e99201d..a31f772 100644
--- a/pkg/front_end/testcases/general/duplicated_declarations_part.dart
+++ b/pkg/front_end/testcases/general/duplicated_declarations_part.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
+
 part of "duplicated_declarations.dart";
 
 import 'duplicated_declarations_lib.dart' as Typedef;
diff --git a/pkg/front_end/testcases/general/duplicated_field_initializer.dart b/pkg/front_end/testcases/general/duplicated_field_initializer.dart
index 87c4882..fac68e9 100644
--- a/pkg/front_end/testcases/general/duplicated_field_initializer.dart
+++ b/pkg/front_end/testcases/general/duplicated_field_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 file.
-// @dart=2.9
+
 class A {
   int a;
   int a;
diff --git a/pkg/front_end/testcases/general/duplicated_field_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/general/duplicated_field_initializer.dart.textual_outline.expect
index b4f91b8..541f502 100644
--- a/pkg/front_end/testcases/general/duplicated_field_initializer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/duplicated_field_initializer.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   int a;
   int a;
diff --git a/pkg/front_end/testcases/general/duplicated_field_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/duplicated_field_initializer.dart.textual_outline_modelled.expect
index c10a08f..1261a73 100644
--- a/pkg/front_end/testcases/general/duplicated_field_initializer.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/duplicated_field_initializer.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 class A {
   A(this.a);
   int a;
diff --git a/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.expect b/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.expect
index 92572f2..eea284f 100644
--- a/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,26 +13,20 @@
 //   A(this.a);
 //          ^
 //
+// pkg/front_end/testcases/general/duplicated_field_initializer.dart:6:7: Error: Field 'a' should be initialized because its type 'int' doesn't allow null.
+//   int a;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* a = null;
-  constructor •(core::int* a) → self::A*
+  field core::int a = null;
+  constructor •(core::int a) → self::A
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/duplicated_field_initializer.dart:8:10: Error: Can't use 'a' because it is declared more than once.
   A(this.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() → void {
   new self::A::•(1);
diff --git a/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.modular.expect b/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.modular.expect
index 92572f2..eea284f 100644
--- a/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,26 +13,20 @@
 //   A(this.a);
 //          ^
 //
+// pkg/front_end/testcases/general/duplicated_field_initializer.dart:6:7: Error: Field 'a' should be initialized because its type 'int' doesn't allow null.
+//   int a;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* a = null;
-  constructor •(core::int* a) → self::A*
+  field core::int a = null;
+  constructor •(core::int a) → self::A
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/duplicated_field_initializer.dart:8:10: Error: Can't use 'a' because it is declared more than once.
   A(this.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() → void {
   new self::A::•(1);
diff --git a/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.outline.expect b/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.outline.expect
index d561debe..422aafc 100644
--- a/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,19 +13,9 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* a;
-  constructor •(core::int* a) → self::A*
+  field core::int a;
+  constructor •(core::int a) → 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() → void
   ;
diff --git a/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.transformed.expect
index 92572f2..eea284f 100644
--- a/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/duplicated_field_initializer.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -13,26 +13,20 @@
 //   A(this.a);
 //          ^
 //
+// pkg/front_end/testcases/general/duplicated_field_initializer.dart:6:7: Error: Field 'a' should be initialized because its type 'int' doesn't allow null.
+//   int a;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field core::int* a = null;
-  constructor •(core::int* a) → self::A*
+  field core::int a = null;
+  constructor •(core::int a) → self::A
     : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/duplicated_field_initializer.dart:8:10: Error: Can't use 'a' because it is declared more than once.
   A(this.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() → void {
   new self::A::•(1);
diff --git a/pkg/front_end/testcases/general/duplicated_named_args_3.dart b/pkg/front_end/testcases/general/duplicated_named_args_3.dart
index 81adc42..a33c6e1 100644
--- a/pkg/front_end/testcases/general/duplicated_named_args_3.dart
+++ b/pkg/front_end/testcases/general/duplicated_named_args_3.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/general/duplicated_named_args_3.dart.textual_outline.expect b/pkg/front_end/testcases/general/duplicated_named_args_3.dart.textual_outline.expect
index ce3c7ec..0b2371b 100644
--- a/pkg/front_end/testcases/general/duplicated_named_args_3.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/duplicated_named_args_3.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C {
diff --git a/pkg/front_end/testcases/general/duplicated_named_args_3.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/duplicated_named_args_3.dart.textual_outline_modelled.expect
index 320c589..461825b 100644
--- a/pkg/front_end/testcases/general/duplicated_named_args_3.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/duplicated_named_args_3.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 library test;
 
 class C {
diff --git a/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.expect b/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.expect
index d6d8288..84ed84d 100644
--- a/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.expect
+++ b/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,20 +14,10 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  static method m({core::int* a = #C1}) → 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 m({core::int a = #C1}) → dynamic {}
 }
 static method test() → void {
   self::C::m(a: invalid-expression "pkg/front_end/testcases/general/duplicated_named_args_3.dart:13:19: Error: Duplicated named argument 'a'.
diff --git a/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.modular.expect b/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.modular.expect
index d6d8288..84ed84d 100644
--- a/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,20 +14,10 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  static method m({core::int* a = #C1}) → 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 m({core::int a = #C1}) → dynamic {}
 }
 static method test() → void {
   self::C::m(a: invalid-expression "pkg/front_end/testcases/general/duplicated_named_args_3.dart:13:19: Error: Duplicated named argument 'a'.
diff --git a/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.outline.expect b/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.outline.expect
index 95272ae..85267ee 100644
--- a/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/duplicated_named_args_3.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
     ;
-  static method m({core::int* a}) → dynamic
+  static method m({core::int a}) → dynamic
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method test() → void
   ;
diff --git a/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.transformed.expect b/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.transformed.expect
index d6d8288..84ed84d 100644
--- a/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/duplicated_named_args_3.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
@@ -14,20 +14,10 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  synthetic constructor •() → self::C*
+  synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  static method m({core::int* a = #C1}) → 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 m({core::int a = #C1}) → dynamic {}
 }
 static method test() → void {
   self::C::m(a: invalid-expression "pkg/front_end/testcases/general/duplicated_named_args_3.dart:13:19: Error: Duplicated named argument 'a'.
diff --git a/pkg/front_end/testcases/general/dynamic_and_void.dart b/pkg/front_end/testcases/general/dynamic_and_void.dart
index f41261e..225849b 100644
--- a/pkg/front_end/testcases/general/dynamic_and_void.dart
+++ b/pkg/front_end/testcases/general/dynamic_and_void.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
+
 // dynamic is treated as a name exported by dart:core.  void is not treated as a
 // name exported by dart:core.
 
diff --git a/pkg/front_end/testcases/general/dynamic_and_void.dart.textual_outline.expect b/pkg/front_end/testcases/general/dynamic_and_void.dart.textual_outline.expect
index 6705caf..64c5d3e 100644
--- a/pkg/front_end/testcases/general/dynamic_and_void.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/dynamic_and_void.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:core' show int;
 
 dynamic testDynamic() => 0;
diff --git a/pkg/front_end/testcases/general/dynamic_and_void.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/dynamic_and_void.dart.textual_outline_modelled.expect
index 5fcd961..fd30a61 100644
--- a/pkg/front_end/testcases/general/dynamic_and_void.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/dynamic_and_void.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 import 'dart:core' show int;
 
 dynamic testDynamic() => 0;
diff --git a/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.expect b/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.expect
index c400faa..a2f7276 100644
--- a/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.expect
+++ b/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.modular.expect b/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.modular.expect
index c400faa..a2f7276 100644
--- a/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.outline.expect b/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.outline.expect
index 81787a7..450067b 100644
--- a/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.transformed.expect b/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.transformed.expect
index c400faa..a2f7276 100644
--- a/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/dynamic_and_void.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 //
 // Problems in library:
 //
diff --git a/pkg/front_end/testcases/general/export_main.dart.weak.expect b/pkg/front_end/testcases/general/export_main.dart.weak.expect
index 94479f0..ff4d3da 100644
--- a/pkg/front_end/testcases/general/export_main.dart.weak.expect
+++ b/pkg/front_end/testcases/general/export_main.dart.weak.expect
@@ -6,7 +6,7 @@
 export "org-dartlang-testcase:///hello.dart" show main;
 
 
-library;
+library /*isNonNullableByDefault*/;
 import self as hel;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/general/export_main.dart.weak.modular.expect b/pkg/front_end/testcases/general/export_main.dart.weak.modular.expect
index 94479f0..ff4d3da 100644
--- a/pkg/front_end/testcases/general/export_main.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/export_main.dart.weak.modular.expect
@@ -6,7 +6,7 @@
 export "org-dartlang-testcase:///hello.dart" show main;
 
 
-library;
+library /*isNonNullableByDefault*/;
 import self as hel;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/general/export_main.dart.weak.outline.expect b/pkg/front_end/testcases/general/export_main.dart.weak.outline.expect
index a6d3627..1a2b722 100644
--- a/pkg/front_end/testcases/general/export_main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/export_main.dart.weak.outline.expect
@@ -6,7 +6,7 @@
 export "org-dartlang-testcase:///hello.dart" show main;
 
 
-library;
+library /*isNonNullableByDefault*/;
 import self as hel;
 
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/export_main.dart.weak.transformed.expect b/pkg/front_end/testcases/general/export_main.dart.weak.transformed.expect
index 94479f0..ff4d3da 100644
--- a/pkg/front_end/testcases/general/export_main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/export_main.dart.weak.transformed.expect
@@ -6,7 +6,7 @@
 export "org-dartlang-testcase:///hello.dart" show main;
 
 
-library;
+library /*isNonNullableByDefault*/;
 import self as hel;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/general/hello.dart b/pkg/front_end/testcases/general/hello.dart
index 47d3fa4..bcb7f2e 100644
--- a/pkg/front_end/testcases/general/hello.dart
+++ b/pkg/front_end/testcases/general/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 file.
-// @dart=2.9
+
 main() {
   print("Hello, World!");
 }
diff --git a/pkg/front_end/testcases/general/hello.dart.textual_outline.expect b/pkg/front_end/testcases/general/hello.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/hello.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/hello.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/hello.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/hello.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/hello.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/hello.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/hello.dart.weak.expect b/pkg/front_end/testcases/general/hello.dart.weak.expect
index fea7b39..ab5dd90 100644
--- a/pkg/front_end/testcases/general/hello.dart.weak.expect
+++ b/pkg/front_end/testcases/general/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/general/hello.dart.weak.modular.expect b/pkg/front_end/testcases/general/hello.dart.weak.modular.expect
index fea7b39..ab5dd90 100644
--- a/pkg/front_end/testcases/general/hello.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/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/general/hello.dart.weak.outline.expect b/pkg/front_end/testcases/general/hello.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/general/hello.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/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/general/hello.dart.weak.transformed.expect b/pkg/front_end/testcases/general/hello.dart.weak.transformed.expect
index fea7b39..ab5dd90 100644
--- a/pkg/front_end/testcases/general/hello.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/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/general/issue48487.dart b/pkg/front_end/testcases/general/issue48487.dart
new file mode 100644
index 0000000..7dd577f
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48487.dart
@@ -0,0 +1,16 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// @dart=2.16
+
+enum T {
+  t();
+  void test() {
+    print("Success");
+  }
+}
+
+void main() {
+  T.t.test();
+}
\ No newline at end of file
diff --git a/pkg/front_end/testcases/general/issue48487.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue48487.dart.textual_outline.expect
new file mode 100644
index 0000000..d952795
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48487.dart.textual_outline.expect
@@ -0,0 +1,3 @@
+// @dart = 2.16
+enum T { t(); void test() { print("Success"); } }
+void main() {}
diff --git a/pkg/front_end/testcases/general/issue48487.dart.weak.expect b/pkg/front_end/testcases/general/issue48487.dart.weak.expect
new file mode 100644
index 0000000..565652d
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48487.dart.weak.expect
@@ -0,0 +1,41 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue48487.dart:9:3: Error: This requires the 'enhanced-enums' language feature to be enabled.
+// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.17 or higher, and running 'pub get'.
+//   void test() {
+//   ^
+//
+import self as self;
+import "dart:core" as core;
+
+class T extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::T> values = #C4;
+  static const field self::T t = #C3;
+  const constructor •(core::int index, core::String name) → self::T
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "T.${this.{core::_Enum::_name}{core::String}}";
+  method test() → void {
+    core::print("Success");
+  }
+}
+static method main() → void {
+  #C3.{self::T::test}(){() → void};
+}
+
+constants  {
+  #C1 = 0
+  #C2 = "t"
+  #C3 = self::T {index:#C1, _name:#C2}
+  #C4 = <self::T*>[#C3]
+}
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue48487.dart:
+- T. (from org-dartlang-testcase:///issue48487.dart:7:6)
+- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/issue48487.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue48487.dart.weak.modular.expect
new file mode 100644
index 0000000..565652d
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48487.dart.weak.modular.expect
@@ -0,0 +1,41 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue48487.dart:9:3: Error: This requires the 'enhanced-enums' language feature to be enabled.
+// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.17 or higher, and running 'pub get'.
+//   void test() {
+//   ^
+//
+import self as self;
+import "dart:core" as core;
+
+class T extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::T> values = #C4;
+  static const field self::T t = #C3;
+  const constructor •(core::int index, core::String name) → self::T
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "T.${this.{core::_Enum::_name}{core::String}}";
+  method test() → void {
+    core::print("Success");
+  }
+}
+static method main() → void {
+  #C3.{self::T::test}(){() → void};
+}
+
+constants  {
+  #C1 = 0
+  #C2 = "t"
+  #C3 = self::T {index:#C1, _name:#C2}
+  #C4 = <self::T*>[#C3]
+}
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue48487.dart:
+- T. (from org-dartlang-testcase:///issue48487.dart:7:6)
+- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/issue48487.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue48487.dart.weak.outline.expect
new file mode 100644
index 0000000..cbcf888
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48487.dart.weak.outline.expect
@@ -0,0 +1,31 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue48487.dart:9:3: Error: This requires the 'enhanced-enums' language feature to be enabled.
+// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.17 or higher, and running 'pub get'.
+//   void test() {
+//   ^
+//
+import self as self;
+import "dart:core" as core;
+
+class T extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::T> values = const <self::T>[self::T::t];
+  static const field self::T t = const self::T::•(0, "t");
+  const constructor •(core::int index, core::String name) → self::T
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "T.${this.{core::_Enum::_name}{core::String}}";
+  method test() → void
+    ;
+}
+static method main() → void
+  ;
+
+
+Extra constant evaluation status:
+Evaluated: ListLiteral @ org-dartlang-testcase:///issue48487.dart:7:6 -> ListConstant(const <T*>[const T{_Enum.index: 0, _Enum._name: "t"}])
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue48487.dart:8:3 -> InstanceConstant(const T{_Enum.index: 0, _Enum._name: "t"})
+Extra constant evaluation: evaluated: 7, effectively constant: 2
diff --git a/pkg/front_end/testcases/general/issue48487.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue48487.dart.weak.transformed.expect
new file mode 100644
index 0000000..565652d
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48487.dart.weak.transformed.expect
@@ -0,0 +1,41 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue48487.dart:9:3: Error: This requires the 'enhanced-enums' language feature to be enabled.
+// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.17 or higher, and running 'pub get'.
+//   void test() {
+//   ^
+//
+import self as self;
+import "dart:core" as core;
+
+class T extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::T> values = #C4;
+  static const field self::T t = #C3;
+  const constructor •(core::int index, core::String name) → self::T
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "T.${this.{core::_Enum::_name}{core::String}}";
+  method test() → void {
+    core::print("Success");
+  }
+}
+static method main() → void {
+  #C3.{self::T::test}(){() → void};
+}
+
+constants  {
+  #C1 = 0
+  #C2 = "t"
+  #C3 = self::T {index:#C1, _name:#C2}
+  #C4 = <self::T*>[#C3]
+}
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue48487.dart:
+- T. (from org-dartlang-testcase:///issue48487.dart:7:6)
+- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/issue48487b.dart b/pkg/front_end/testcases/general/issue48487b.dart
new file mode 100644
index 0000000..9085df7
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48487b.dart
@@ -0,0 +1,12 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// @dart=2.16
+
+enum T {
+  t;
+  const T.named();
+}
+
+void main() {}
\ No newline at end of file
diff --git a/pkg/front_end/testcases/general/issue48487b.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue48487b.dart.textual_outline.expect
new file mode 100644
index 0000000..138cecb
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48487b.dart.textual_outline.expect
@@ -0,0 +1,3 @@
+// @dart = 2.16
+enum T { t; const T.named(); }
+void main() {}
diff --git a/pkg/front_end/testcases/general/issue48487b.dart.weak.expect b/pkg/front_end/testcases/general/issue48487b.dart.weak.expect
new file mode 100644
index 0000000..050d4dd
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48487b.dart.weak.expect
@@ -0,0 +1,26 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue48487b.dart:9:3: Error: This requires the 'enhanced-enums' language feature to be enabled.
+// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.17 or higher, and running 'pub get'.
+//   const T.named();
+//   ^
+//
+import self as self;
+import "dart:core" as core;
+
+class T extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::T> values = invalid-expression "pkg/front_end/testcases/general/issue48487b.dart:8:3: Error: Couldn't find constructor 'T'.
+  t;
+  ^";
+  static const field self::T t = invalid-expression "pkg/front_end/testcases/general/issue48487b.dart:8:3: Error: Couldn't find constructor 'T'.
+  t;
+  ^";
+  const constructor named(core::int index, core::String name) → self::T
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "T.${this.{core::_Enum::_name}{core::String}}";
+}
+static method main() → void {}
diff --git a/pkg/front_end/testcases/general/issue48487b.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue48487b.dart.weak.modular.expect
new file mode 100644
index 0000000..050d4dd
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48487b.dart.weak.modular.expect
@@ -0,0 +1,26 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue48487b.dart:9:3: Error: This requires the 'enhanced-enums' language feature to be enabled.
+// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.17 or higher, and running 'pub get'.
+//   const T.named();
+//   ^
+//
+import self as self;
+import "dart:core" as core;
+
+class T extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::T> values = invalid-expression "pkg/front_end/testcases/general/issue48487b.dart:8:3: Error: Couldn't find constructor 'T'.
+  t;
+  ^";
+  static const field self::T t = invalid-expression "pkg/front_end/testcases/general/issue48487b.dart:8:3: Error: Couldn't find constructor 'T'.
+  t;
+  ^";
+  const constructor named(core::int index, core::String name) → self::T
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "T.${this.{core::_Enum::_name}{core::String}}";
+}
+static method main() → void {}
diff --git a/pkg/front_end/testcases/general/issue48487b.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue48487b.dart.weak.outline.expect
new file mode 100644
index 0000000..ef043fd
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48487b.dart.weak.outline.expect
@@ -0,0 +1,25 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue48487b.dart:9:3: Error: This requires the 'enhanced-enums' language feature to be enabled.
+// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.17 or higher, and running 'pub get'.
+//   const T.named();
+//   ^
+//
+import self as self;
+import "dart:core" as core;
+
+class T extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::T> values = const <self::T>[self::T::t];
+  static const field self::T t = invalid-expression "pkg/front_end/testcases/general/issue48487b.dart:8:3: Error: Couldn't find constructor 'T'.
+  t;
+  ^";
+  const constructor named(core::int index, core::String name) → self::T
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "T.${this.{core::_Enum::_name}{core::String}}";
+}
+static method main() → void
+  ;
diff --git a/pkg/front_end/testcases/general/issue48487b.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue48487b.dart.weak.transformed.expect
new file mode 100644
index 0000000..050d4dd
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48487b.dart.weak.transformed.expect
@@ -0,0 +1,26 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue48487b.dart:9:3: Error: This requires the 'enhanced-enums' language feature to be enabled.
+// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.17 or higher, and running 'pub get'.
+//   const T.named();
+//   ^
+//
+import self as self;
+import "dart:core" as core;
+
+class T extends core::_Enum /*isEnum*/  {
+  static const field core::List<self::T> values = invalid-expression "pkg/front_end/testcases/general/issue48487b.dart:8:3: Error: Couldn't find constructor 'T'.
+  t;
+  ^";
+  static const field self::T t = invalid-expression "pkg/front_end/testcases/general/issue48487b.dart:8:3: Error: Couldn't find constructor 'T'.
+  t;
+  ^";
+  const constructor named(core::int index, core::String name) → self::T
+    : super core::_Enum::•(index, name)
+    ;
+  method toString() → core::String
+    return "T.${this.{core::_Enum::_name}{core::String}}";
+}
+static method main() → void {}
diff --git a/pkg/front_end/testcases/general/map.dart b/pkg/front_end/testcases/general/map.dart
index 1ced1ab..b2e55ab 100644
--- a/pkg/front_end/testcases/general/map.dart
+++ b/pkg/front_end/testcases/general/map.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-// @dart=2.9
+
 main() {
   print(new Map());
 }
diff --git a/pkg/front_end/testcases/general/map.dart.textual_outline.expect b/pkg/front_end/testcases/general/map.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/map.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/map.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/map.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/map.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/general/map.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/map.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/general/map.dart.weak.expect b/pkg/front_end/testcases/general/map.dart.weak.expect
index c82d4a6..bdcc550 100644
--- a/pkg/front_end/testcases/general/map.dart.weak.expect
+++ b/pkg/front_end/testcases/general/map.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/general/map.dart.weak.modular.expect b/pkg/front_end/testcases/general/map.dart.weak.modular.expect
index c82d4a6..bdcc550 100644
--- a/pkg/front_end/testcases/general/map.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/map.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/general/map.dart.weak.outline.expect b/pkg/front_end/testcases/general/map.dart.weak.outline.expect
index 6a28c0d..e2cba6b 100644
--- a/pkg/front_end/testcases/general/map.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/map.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/map.dart.weak.transformed.expect b/pkg/front_end/testcases/general/map.dart.weak.transformed.expect
index c82d4a6..bdcc550 100644
--- a/pkg/front_end/testcases/general/map.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/map.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/text_serialization.status b/pkg/front_end/testcases/text_serialization.status
index 1dbaebd..04f232f 100644
--- a/pkg/front_end/testcases/text_serialization.status
+++ b/pkg/front_end/testcases/text_serialization.status
@@ -39,6 +39,7 @@
 general/constructor_initializer_invalid: RuntimeError
 general/covariant_field: TypeCheckError
 general/covariant_generic: RuntimeError
+general/covariant_generic2: RuntimeError
 general/crashes/crash_02/main: Crash
 general/crashes/crash_06/main: Crash
 general/duplicated_declarations: TypeCheckError
diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status
index 309fdd042..a380aef 100644
--- a/pkg/front_end/testcases/textual_outline.status
+++ b/pkg/front_end/testcases/textual_outline.status
@@ -30,6 +30,7 @@
 dart2js/late_statics: FormatterCrash
 enhanced_enums/conflicting_elements: FormatterCrash
 enhanced_enums/constructor_calls: FormatterCrash
+enhanced_enums/constructor_not_found: FormatterCrash
 enhanced_enums/declared_values: FormatterCrash
 enhanced_enums/entries_with_type_arguments: FormatterCrash
 enhanced_enums/enum_as_supertype: FormatterCrash
@@ -81,6 +82,7 @@
 general/constants/number_folds_opt_out: FormatterCrash
 general/constants/various: FormatterCrash
 general/constructor_initializer_invalid: FormatterCrash
+general/covariant_generic2: FormatterCrash
 general/duplicated_declarations: FormatterCrash
 general/error_recovery/annotations: FormatterCrash
 general/error_recovery/constructor_recovery_bad_name_general.crash: FormatterCrash
@@ -113,6 +115,8 @@
 general/issue47728_2: FormatterCrash
 general/issue47728_3: FormatterCrash
 general/issue47922: FormatterCrash
+general/issue48487: FormatterCrash
+general/issue48487b: FormatterCrash
 general/issue_46886: FormatterCrash
 general/macro_class: FormatterCrash
 general/many_errors: FormatterCrash
diff --git a/pkg/front_end/testcases/weak.status b/pkg/front_end/testcases/weak.status
index 3a8704e..df4b49e 100644
--- a/pkg/front_end/testcases/weak.status
+++ b/pkg/front_end/testcases/weak.status
@@ -52,6 +52,7 @@
 general/constructor_initializer_invalid: RuntimeError # Fails execution after recovery
 general/covariant_field: TypeCheckError
 general/covariant_generic: RuntimeError
+general/covariant_generic2: RuntimeError
 general/crashes/crash_02/main: Crash
 general/crashes/crash_06/main: Crash
 general/duplicated_declarations: TypeCheckError
diff --git a/tools/VERSION b/tools/VERSION
index ae3ec1b..e69a453 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 17
 PATCH 0
-PRERELEASE 162
+PRERELEASE 163
 PRERELEASE_PATCH 0
\ No newline at end of file