Version 2.12.0-72.0.dev

Merge commit 'cb5edfd18c60b64f7e94f0ad520469e9749e0994' into 'dev'
diff --git a/DEPS b/DEPS
index 76ee15d..511d449 100644
--- a/DEPS
+++ b/DEPS
@@ -107,7 +107,7 @@
   "glob_rev": "e9f4e6b7ae8abe5071461cf8f47191bb19cf7ef6",
   "html_rev": "22f17e97fedeacaa1e945cf84d8016284eed33a6",
   "http_io_rev": "2fa188caf7937e313026557713f7feffedd4978b",
-  "http_multi_server_rev" : "ea269f79321d659208402088f3297e8920a88ee6",
+  "http_multi_server_rev" : "f1d1c9c024a293ab0a0e16f8b7632e87c708b448",
   "http_parser_rev": "5dd4d16693242049dfb43b5efa429fedbf932e98",
   "http_retry_tag": "0.1.1",
   "http_rev": "1617b728fc48f64fb0ed7dc16078c03adcc64179",
@@ -141,7 +141,7 @@
   "shelf_packages_handler_tag": "2.0.0",
   "shelf_proxy_tag": "0.1.0+7",
   "shelf_rev": "289309adc6c39aab0a63db676d550c517fc1cc2d",
-  "shelf_web_socket_tag": "0.2.2+3",
+  "shelf_web_socket_rev": "8050a55b16faa5052a3e5d7dcdc170c59b6644f2",
   "source_map_stack_trace_rev": "1c3026f69d9771acf2f8c176a1ab750463309cce",
   "source_maps-0.9.4_rev": "38524",
   "source_maps_rev": "53eb92ccfe6e64924054f83038a534b959b12b3e",
@@ -404,7 +404,7 @@
       Var("dart_git") + "shelf_static.git" + "@" + Var("shelf_static_rev"),
   Var("dart_root") + "/third_party/pkg/shelf_web_socket":
       Var("dart_git") + "shelf_web_socket.git" +
-      "@" + Var("shelf_web_socket_tag"),
+      "@" + Var("shelf_web_socket_rev"),
   Var("dart_root") + "/third_party/pkg/source_maps":
       Var("dart_git") + "source_maps.git" + "@" + Var("source_maps_rev"),
   Var("dart_root") + "/third_party/pkg/source_span":
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index 4c70fa8..b8bfd7d 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -3209,7 +3209,7 @@
 
         for (var member in statement.members) {
           if (member is SwitchCase) {
-            var expression = member.expression;
+            var expression = member.expression.unParenthesized;
             if (expression is NullLiteral) {
               hasCaseNull = true;
             } else {
diff --git a/pkg/analyzer/test/src/diagnostics/missing_enum_constant_in_switch_test.dart b/pkg/analyzer/test/src/diagnostics/missing_enum_constant_in_switch_test.dart
index 33df17a..86eee40 100644
--- a/pkg/analyzer/test/src/diagnostics/missing_enum_constant_in_switch_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/missing_enum_constant_in_switch_test.dart
@@ -78,6 +78,23 @@
       error(StaticWarningCode.MISSING_ENUM_CONSTANT_IN_SWITCH, 44, 10),
     ]);
   }
+
+  test_parenthesized() async {
+    await assertNoErrorsInCode('''
+enum E { one, two, three }
+
+void f(E e) {
+  switch (e) {
+    case (E.one):
+      break;
+    case (E.two):
+      break;
+    case (E.three):
+      break;
+  }
+}
+''');
+  }
 }
 
 @reflectiveTest
diff --git a/pkg/front_end/lib/src/fasta/kernel/transform_collections.dart b/pkg/front_end/lib/src/fasta/kernel/transform_collections.dart
index a7a85b9..0d758a1 100644
--- a/pkg/front_end/lib/src/fasta/kernel/transform_collections.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/transform_collections.dart
@@ -72,22 +72,18 @@
 import 'redirecting_factory_body.dart' show RedirectingFactoryBody;
 
 class CollectionTransformer extends Transformer {
-  final SourceLoader _loader;
-  final TypeEnvironment _typeEnvironment;
-  final Procedure _listAdd;
-  final Procedure _listAddAll;
-  final Procedure _listOf;
-  final Procedure _setFactory;
-  final Procedure _setAdd;
-  final Procedure _setAddAll;
-  final Procedure _setOf;
-  final Procedure _objectEquals;
-  final Procedure _mapEntries;
-  final Procedure _mapPut;
-  final Class _mapEntryClass;
-  final Field _mapEntryKey;
-  final Field _mapEntryValue;
-  final SourceLoaderDataForTesting _dataForTesting;
+  final CoreTypes coreTypes;
+  final TypeEnvironment typeEnvironment;
+  final Procedure listAdd;
+  final Procedure setFactory;
+  final Procedure setAdd;
+  final Procedure objectEquals;
+  final Procedure mapEntries;
+  final Procedure mapPut;
+  final Class mapEntryClass;
+  final Field mapEntryKey;
+  final Field mapEntryValue;
+  final SourceLoaderDataForTesting dataForTesting;
 
   /// Library that contains the transformed nodes.
   ///
@@ -95,126 +91,63 @@
   /// the library.
   Library _currentLibrary;
 
-  static Procedure _findSetFactory(CoreTypes coreTypes, String name) {
-    Procedure factory = coreTypes.index.getMember('dart:core', 'Set', name);
+  static Procedure _findSetFactory(CoreTypes coreTypes) {
+    Procedure factory = coreTypes.index.getMember('dart:core', 'Set', '');
     RedirectingFactoryBody body = factory?.function?.body;
     return body?.target;
   }
 
-  CollectionTransformer(this._loader)
-      : _typeEnvironment = _loader.typeInferenceEngine.typeSchemaEnvironment,
-        _listAdd =
-            _loader.coreTypes.index.getMember('dart:core', 'List', 'add'),
-        _listAddAll =
-            _loader.coreTypes.index.getMember('dart:core', 'List', 'addAll'),
-        _listOf = _loader.coreTypes.index.getMember('dart:core', 'List', 'of'),
-        _setFactory = _findSetFactory(_loader.coreTypes, ''),
-        _setAdd = _loader.coreTypes.index.getMember('dart:core', 'Set', 'add'),
-        _setAddAll =
-            _loader.coreTypes.index.getMember('dart:core', 'Set', 'addAll'),
-        _setOf = _findSetFactory(_loader.coreTypes, 'of'),
-        _objectEquals =
-            _loader.coreTypes.index.getMember('dart:core', 'Object', '=='),
-        _mapEntries = _loader.coreTypes.index
-            .getMember('dart:core', 'Map', 'get:entries'),
-        _mapPut = _loader.coreTypes.index.getMember('dart:core', 'Map', '[]='),
-        _mapEntryClass =
-            _loader.coreTypes.index.getClass('dart:core', 'MapEntry'),
-        _mapEntryKey =
-            _loader.coreTypes.index.getMember('dart:core', 'MapEntry', 'key'),
-        _mapEntryValue =
-            _loader.coreTypes.index.getMember('dart:core', 'MapEntry', 'value'),
-        _dataForTesting = _loader.dataForTesting;
+  CollectionTransformer(SourceLoader loader)
+      : coreTypes = loader.coreTypes,
+        typeEnvironment = loader.typeInferenceEngine.typeSchemaEnvironment,
+        listAdd = loader.coreTypes.index.getMember('dart:core', 'List', 'add'),
+        setFactory = _findSetFactory(loader.coreTypes),
+        setAdd = loader.coreTypes.index.getMember('dart:core', 'Set', 'add'),
+        objectEquals =
+            loader.coreTypes.index.getMember('dart:core', 'Object', '=='),
+        mapEntries =
+            loader.coreTypes.index.getMember('dart:core', 'Map', 'get:entries'),
+        mapPut = loader.coreTypes.index.getMember('dart:core', 'Map', '[]='),
+        mapEntryClass =
+            loader.coreTypes.index.getClass('dart:core', 'MapEntry'),
+        mapEntryKey =
+            loader.coreTypes.index.getMember('dart:core', 'MapEntry', 'key'),
+        mapEntryValue =
+            loader.coreTypes.index.getMember('dart:core', 'MapEntry', 'value'),
+        dataForTesting = loader.dataForTesting;
 
   TreeNode _translateListOrSet(
       Expression node, DartType elementType, List<Expression> elements,
       {bool isSet: false}) {
     // Translate elements in place up to the first non-expression, if any.
-    int index = 0;
-    for (; index < elements.length; ++index) {
-      if (elements[index] is ControlFlowElement) break;
-      elements[index] = elements[index].accept<TreeNode>(this)..parent = node;
+    int i = 0;
+    for (; i < elements.length; ++i) {
+      if (elements[i] is ControlFlowElement) break;
+      elements[i] = elements[i].accept<TreeNode>(this)..parent = node;
     }
 
     // If there were only expressions, we are done.
-    if (index == elements.length) return node;
+    if (i == elements.length) return node;
 
+    // Build a block expression and create an empty list or set.
     VariableDeclaration result;
-    if (index == 0 && elements[index] is SpreadElement) {
-      SpreadElement initialSpread = elements[index];
-      final bool typeMatches = initialSpread.elementType != null &&
-          _typeEnvironment.isSubtypeOf(initialSpread.elementType, elementType,
-              SubtypeCheckMode.withNullabilities);
-      if (typeMatches && !initialSpread.isNullAware) {
-        // Create a list or set of the initial spread element.
-        Expression value = initialSpread.expression.accept<TreeNode>(this);
-        index++;
-        if (isSet) {
-          result = _createVariable(
-              new StaticInvocation(
-                  _setOf,
-                  new Arguments([value], types: [elementType])
-                    ..fileOffset = node.fileOffset)
-                ..fileOffset = node.fileOffset,
-              _typeEnvironment.setType(
-                  elementType, _currentLibrary.nonNullable));
-        } else {
-          result = _createVariable(
-              new StaticInvocation(
-                  _listOf,
-                  new Arguments([value], types: [elementType])
-                    ..fileOffset = node.fileOffset)
-                ..fileOffset = node.fileOffset,
-              _typeEnvironment.listType(
-                  elementType, _currentLibrary.nonNullable));
-        }
-      }
+    if (isSet) {
+      result = _createVariable(
+          _createSetLiteral(node.fileOffset, elementType, []),
+          typeEnvironment.setType(elementType, _currentLibrary.nonNullable));
+    } else {
+      result = _createVariable(
+          _createListLiteral(node.fileOffset, elementType, []),
+          typeEnvironment.listType(elementType, _currentLibrary.nonNullable));
     }
-    List<Statement> body;
-    if (result == null) {
-      // Create a list or set with the elements up to the first non-expression.
-      if (isSet) {
-        if (_loader.target.backendTarget.supportsSetLiterals) {
-          // Include the elements up to the first non-expression in the set
-          // literal.
-          result = _createVariable(
-              _createSetLiteral(
-                  node.fileOffset, elementType, elements.sublist(0, index)),
-              _typeEnvironment.setType(
-                  elementType, _currentLibrary.nonNullable));
-        } else {
-          // TODO(johnniwinther): When all the back ends handle set literals we
-          //  can use remove this branch.
-
-          // Create an empty set using the [setFactory] constructor.
-          result = _createVariable(
-              new StaticInvocation(
-                  _setFactory,
-                  new Arguments([], types: [elementType])
-                    ..fileOffset = node.fileOffset)
-                ..fileOffset = node.fileOffset,
-              _typeEnvironment.setType(
-                  elementType, _currentLibrary.nonNullable));
-          body = [result];
-          // Add the elements up to the first non-expression.
-          for (int j = 0; j < index; ++j) {
-            _addExpressionElement(elements[j], isSet, result, body);
-          }
-        }
-      } else {
-        // Include the elements up to the first non-expression in the list
-        // literal.
-        result = _createVariable(
-            _createListLiteral(
-                node.fileOffset, elementType, elements.sublist(0, index)),
-            _typeEnvironment.listType(
-                elementType, _currentLibrary.nonNullable));
-      }
+    List<Statement> body = [result];
+    // Add the elements up to the first non-expression.
+    for (int j = 0; j < i; ++j) {
+      _addExpressionElement(elements[j], isSet, result, body);
     }
-    body ??= [result];
     // Translate the elements starting with the first non-expression.
-    for (; index < elements.length; ++index) {
-      _translateElement(elements[index], elementType, isSet, result, body);
+    for (; i < elements.length; ++i) {
+      _translateElement(elements[i], elementType, isSet, result, body);
     }
 
     return _createBlockExpression(
@@ -279,7 +212,7 @@
         loopBody);
     transformList(loop.variables, this, loop);
     transformList(loop.updates, this, loop);
-    _dataForTesting?.registerAlias(element, loop);
+    dataForTesting?.registerAlias(element, loop);
     body.add(loop);
   }
 
@@ -304,7 +237,7 @@
     ForInStatement loop = _createForInStatement(element.fileOffset,
         element.variable, element.iterable.accept<TreeNode>(this), loopBody,
         isAsync: element.isAsync);
-    _dataForTesting?.registerAlias(element, loop);
+    dataForTesting?.registerAlias(element, loop);
     body.add(loop);
   }
 
@@ -313,77 +246,49 @@
     Expression value = element.expression.accept<TreeNode>(this);
 
     final bool typeMatches = element.elementType != null &&
-        _typeEnvironment.isSubtypeOf(element.elementType, elementType,
+        typeEnvironment.isSubtypeOf(element.elementType, elementType,
             SubtypeCheckMode.withNullabilities);
-    if (typeMatches) {
-      // If the type guarantees that all elements are of the required type, use
-      // a single 'addAll' call instead of a for-loop with calls to 'add'.
 
-      // Null-aware spreads require testing the subexpression's value.
-      VariableDeclaration temp;
-      if (element.isNullAware) {
-        temp = _createVariable(
-            value,
-            _typeEnvironment.iterableType(
-                typeMatches ? elementType : const DynamicType(),
-                _currentLibrary.nullable));
-        body.add(temp);
-        value = _createNullCheckedVariableGet(temp);
-      }
-
-      Statement statement = _createExpressionStatement(
-          _createAddAll(_createVariableGet(result), value, isSet));
-
-      if (element.isNullAware) {
-        statement = _createIf(
-            temp.fileOffset,
-            _createEqualsNull(_createVariableGet(temp), notEquals: true),
-            statement);
-      }
-      body.add(statement);
-    } else {
-      // Null-aware spreads require testing the subexpression's value.
-      VariableDeclaration temp;
-      if (element.isNullAware) {
-        temp = _createVariable(
-            value,
-            _typeEnvironment.iterableType(
-                typeMatches ? elementType : const DynamicType(),
-                _currentLibrary.nullable));
-        body.add(temp);
-        value = _createNullCheckedVariableGet(temp);
-      }
-
-      VariableDeclaration variable;
-      Statement loopBody;
-      if (!typeMatches) {
-        variable =
-            _createForInVariable(element.fileOffset, const DynamicType());
-        VariableDeclaration castedVar = _createVariable(
-            _createImplicitAs(element.expression.fileOffset,
-                _createVariableGet(variable), elementType),
-            elementType);
-        loopBody = _createBlock(<Statement>[
-          castedVar,
-          _createExpressionStatement(_createAdd(
-              _createVariableGet(result), _createVariableGet(castedVar), isSet))
-        ]);
-      } else {
-        variable = _createForInVariable(element.fileOffset, elementType);
-        loopBody = _createExpressionStatement(_createAdd(
-            _createVariableGet(result), _createVariableGet(variable), isSet));
-      }
-      Statement statement =
-          _createForInStatement(element.fileOffset, variable, value, loopBody);
-
-      if (element.isNullAware) {
-        statement = _createIf(
-            temp.fileOffset,
-            _createEqualsNull(_createVariableGet(temp), notEquals: true),
-            statement);
-      }
-      body.add(statement);
+    // Null-aware spreads require testing the subexpression's value.
+    VariableDeclaration temp;
+    if (element.isNullAware) {
+      temp = _createVariable(
+          value,
+          typeEnvironment.iterableType(
+              typeMatches ? elementType : const DynamicType(),
+              _currentLibrary.nullable));
+      body.add(temp);
+      value = _createNullCheckedVariableGet(temp);
     }
+
+    VariableDeclaration variable;
+    Statement loopBody;
+    if (!typeMatches) {
+      variable = _createForInVariable(element.fileOffset, const DynamicType());
+      VariableDeclaration castedVar = _createVariable(
+          _createImplicitAs(element.expression.fileOffset,
+              _createVariableGet(variable), elementType),
+          elementType);
+      loopBody = _createBlock(<Statement>[
+        castedVar,
+        _createExpressionStatement(_createAdd(
+            _createVariableGet(result), _createVariableGet(castedVar), isSet))
+      ]);
+    } else {
+      variable = _createForInVariable(element.fileOffset, elementType);
+      loopBody = _createExpressionStatement(_createAdd(
+          _createVariableGet(result), _createVariableGet(variable), isSet));
+    }
+    Statement statement =
+        _createForInStatement(element.fileOffset, variable, value, loopBody);
+
+    if (element.isNullAware) {
+      statement = _createIf(
+          temp.fileOffset,
+          _createEqualsNull(_createVariableGet(temp), notEquals: true),
+          statement);
+    }
+    body.add(statement);
   }
 
   @override
@@ -427,7 +332,7 @@
     // Build a block expression and create an empty map.
     VariableDeclaration result = _createVariable(
         _createMapLiteral(node.fileOffset, node.keyType, node.valueType, []),
-        _typeEnvironment.mapType(
+        typeEnvironment.mapType(
             node.keyType, node.valueType, _currentLibrary.nonNullable));
     List<Statement> body = [result];
     // Add all the entries up to the first control-flow entry.
@@ -492,7 +397,7 @@
         statements.length == 1 ? statements.first : _createBlock(statements);
     ForStatement loop = _createForStatement(entry.fileOffset, entry.variables,
         entry.condition?.accept<TreeNode>(this), entry.updates, loopBody);
-    _dataForTesting?.registerAlias(entry, loop);
+    dataForTesting?.registerAlias(entry, loop);
     transformList(loop.variables, this, loop);
     transformList(loop.updates, this, loop);
     body.add(loop);
@@ -519,7 +424,7 @@
     ForInStatement loop = _createForInStatement(entry.fileOffset,
         entry.variable, entry.iterable.accept<TreeNode>(this), loopBody,
         isAsync: entry.isAsync);
-    _dataForTesting?.registerAlias(entry, loop);
+    dataForTesting?.registerAlias(entry, loop);
     body.add(loop);
   }
 
@@ -527,10 +432,10 @@
       DartType valueType, VariableDeclaration result, List<Statement> body) {
     Expression value = entry.expression.accept<TreeNode>(this);
 
-    final DartType entryType = new InterfaceType(_mapEntryClass,
+    final DartType entryType = new InterfaceType(mapEntryClass,
         _currentLibrary.nonNullable, <DartType>[keyType, valueType]);
     final bool typeMatches = entry.entryType != null &&
-        _typeEnvironment.isSubtypeOf(
+        typeEnvironment.isSubtypeOf(
             entry.entryType, entryType, SubtypeCheckMode.withNullabilities);
 
     // Null-aware spreads require testing the subexpression's value.
@@ -538,7 +443,7 @@
     if (entry.isNullAware) {
       temp = _createVariable(
           value,
-          _typeEnvironment.mapType(
+          typeEnvironment.mapType(
               typeMatches ? keyType : const DynamicType(),
               typeMatches ? valueType : const DynamicType(),
               _currentLibrary.nullable));
@@ -551,7 +456,7 @@
     if (!typeMatches) {
       variable = _createForInVariable(
           entry.fileOffset,
-          new InterfaceType(_mapEntryClass, _currentLibrary.nonNullable,
+          new InterfaceType(mapEntryClass, _currentLibrary.nonNullable,
               <DartType>[const DynamicType(), const DynamicType()]));
       VariableDeclaration keyVar = _createVariable(
           _createImplicitAs(
@@ -626,7 +531,7 @@
     List<Expression> currentPart = i > 0 ? elements.sublist(0, i) : null;
 
     DartType iterableType =
-        _typeEnvironment.iterableType(elementType, _currentLibrary.nonNullable);
+        typeEnvironment.iterableType(elementType, _currentLibrary.nonNullable);
 
     for (; i < elements.length; ++i) {
       Expression element = elements[i];
@@ -639,7 +544,7 @@
         if (element.isNullAware) {
           VariableDeclaration temp = _createVariable(
               spreadExpression,
-              _typeEnvironment.iterableType(
+              typeEnvironment.iterableType(
                   elementType, _currentLibrary.nullable));
           parts.add(_createNullAwareGuard(element.fileOffset, temp,
               makeLiteral(element.fileOffset, []), iterableType));
@@ -702,7 +607,7 @@
     List<Expression> parts = [];
     List<MapEntry> currentPart = i > 0 ? node.entries.sublist(0, i) : null;
 
-    DartType collectionType = _typeEnvironment.mapType(
+    DartType collectionType = typeEnvironment.mapType(
         node.keyType, node.valueType, _currentLibrary.nonNullable);
 
     for (; i < node.entries.length; ++i) {
@@ -819,15 +724,17 @@
   Expression _createSetLiteral(
       int fileOffset, DartType elementType, List<Expression> elements,
       {bool isConst: false}) {
-    assert(fileOffset != null);
-    assert(fileOffset != TreeNode.noOffset);
     if (isConst) {
       return new SetLiteral(elements,
           typeArgument: elementType, isConst: isConst)
         ..fileOffset = fileOffset;
     } else {
-      return new SetLiteral(elements,
-          typeArgument: elementType, isConst: isConst)
+      // TODO(kmillikin): When all the back ends handle set literals we can use
+      // one here.
+      return new StaticInvocation(
+          setFactory,
+          new Arguments(elements, types: [elementType])
+            ..fileOffset = fileOffset)
         ..fileOffset = fileOffset;
     }
   }
@@ -846,19 +753,7 @@
     assert(argument.fileOffset != TreeNode.noOffset,
         "No fileOffset on ${argument}.");
     return new MethodInvocation(receiver, new Name('add'),
-        new Arguments([argument]), isSet ? _setAdd : _listAdd)
-      ..fileOffset = argument.fileOffset
-      ..isInvariant = true;
-  }
-
-  MethodInvocation _createAddAll(
-      Expression receiver, Expression argument, bool isSet) {
-    assert(receiver != null);
-    assert(argument != null);
-    assert(argument.fileOffset != TreeNode.noOffset,
-        "No fileOffset on ${argument}.");
-    return new MethodInvocation(receiver, new Name('addAll'),
-        new Arguments([argument]), isSet ? _setAddAll : _listAddAll)
+        new Arguments([argument]), isSet ? setAdd : listAdd)
       ..fileOffset = argument.fileOffset
       ..isInvariant = true;
   }
@@ -870,7 +765,7 @@
         expression,
         new Name('=='),
         new Arguments([new NullLiteral()..fileOffset = expression.fileOffset]),
-        _objectEquals)
+        objectEquals)
       ..fileOffset = expression.fileOffset;
     if (notEquals) {
       check = new Not(check)..fileOffset = expression.fileOffset;
@@ -883,7 +778,7 @@
     assert(fileOffset != null);
     assert(fileOffset != TreeNode.noOffset);
     return new MethodInvocation(
-        receiver, new Name('[]='), new Arguments([key, value]), _mapPut)
+        receiver, new Name('[]='), new Arguments([key, value]), mapPut)
       ..fileOffset = fileOffset
       ..isInvariant = true;
   }
@@ -908,21 +803,21 @@
   PropertyGet _createGetKey(int fileOffset, Expression receiver) {
     assert(fileOffset != null);
     assert(fileOffset != TreeNode.noOffset);
-    return new PropertyGet(receiver, new Name('key'), _mapEntryKey)
+    return new PropertyGet(receiver, new Name('key'), mapEntryKey)
       ..fileOffset = fileOffset;
   }
 
   PropertyGet _createGetValue(int fileOffset, Expression receiver) {
     assert(fileOffset != null);
     assert(fileOffset != TreeNode.noOffset);
-    return new PropertyGet(receiver, new Name('value'), _mapEntryValue)
+    return new PropertyGet(receiver, new Name('value'), mapEntryValue)
       ..fileOffset = fileOffset;
   }
 
   PropertyGet _createGetEntries(int fileOffset, Expression receiver) {
     assert(fileOffset != null);
     assert(fileOffset != TreeNode.noOffset);
-    return new PropertyGet(receiver, new Name('entries'), _mapEntries)
+    return new PropertyGet(receiver, new Name('entries'), mapEntries)
       ..fileOffset = fileOffset;
   }
 
diff --git a/pkg/front_end/lib/src/fasta/source/source_loader.dart b/pkg/front_end/lib/src/fasta/source/source_loader.dart
index 4bf158c..16123b0 100644
--- a/pkg/front_end/lib/src/fasta/source/source_loader.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_loader.dart
@@ -1447,15 +1447,13 @@
   Iterator<E> get iterator => null;
 }
 
-class List<E> extends Iterable<E> {
+class List<E> extends Iterable {
   factory List() => null;
   factory List.unmodifiable(elements) => null;
   factory List.filled(int length, E fill, {bool growable = false}) => null;
   factory List.generate(int length, E generator(int index),
       {bool growable = true}) => null;
-  factory List.of() => null;
-  void add(E element) {}
-  void addAll(Iterable<E> iterable) {}
+  void add(E) {}
   E operator [](int index) => null;
 }
 
@@ -1514,9 +1512,7 @@
 class Set<E> {
   factory Set() = Set<E>._fake;
   external factory Set._fake();
-  external factory Set.of();
-  void add(E element) {}
-  void addAll(Iterable<E> iterable) {}
+  void add(E) {}
 }
 
 class Type {}
diff --git a/pkg/front_end/test/fasta/bootstrap_test.dart b/pkg/front_end/test/fasta/bootstrap_test.dart
index f48318a..f7ea1bd 100644
--- a/pkg/front_end/test/fasta/bootstrap_test.dart
+++ b/pkg/front_end/test/fasta/bootstrap_test.dart
@@ -46,17 +46,16 @@
 
 Future runCompiler(Uri compiler, Uri input, Uri output) async {
   Uri dartVm = Uri.base.resolveUri(new Uri.file(Platform.resolvedExecutable));
-  String executable = dartVm.toFilePath();
-  List<String> arguments = <String>[
-    compiler.toFilePath(),
-    "${Flags.compileSdk}=sdk/",
-    "${Flags.output}=${output.toFilePath()}",
-    Flags.verify,
-    input.toFilePath(),
-  ];
-  print('Running: $executable ${arguments.join(' ')}');
-  StdioProcess result =
-      await StdioProcess.run(executable, arguments, suppressOutput: false);
+  StdioProcess result = await StdioProcess.run(
+      dartVm.toFilePath(),
+      <String>[
+        compiler.toFilePath(),
+        "${Flags.compileSdk}=sdk/",
+        "${Flags.output}=${output.toFilePath()}",
+        Flags.verify,
+        input.toFilePath(),
+      ],
+      suppressOutput: false);
   if (result.exitCode != 0) {
     throw "Compilation failed:\n${result.output}";
   }
diff --git a/pkg/front_end/test/static_types/data/null_aware_spread.dart b/pkg/front_end/test/static_types/data/null_aware_spread.dart
index 0eec790..43cf405 100644
--- a/pkg/front_end/test/static_types/data/null_aware_spread.dart
+++ b/pkg/front_end/test/static_types/data/null_aware_spread.dart
@@ -12,13 +12,17 @@
       /*cfe.List<String>*/
       /*cfe:nnbd.List<String!>!*/
       [
+    /*invoke: void*/
     /*cfe.String*/
     /*cfe:nnbd.String!*/
     'foo',
+    /*invoke: void*/
+    /*cfe.current: String*/
+    /*cfe:nnbd.current: String!*/
     ...?
     /*cfe.List<String>*/
     /*cfe:nnbd.List<String!>!*/
-    /*invoke: void*/ list
+    list
   ];
 }
 
@@ -26,16 +30,22 @@
   /*cfe.update: Set<String>*/
   /*cfe:nnbd.update: Set<String!>!*/
   set =
-      /*cfe.Set<String>*/
-      /*cfe:nnbd.Set<String!>!*/
+      /*cfe.invoke: LinkedHashSet<String>!*/
+      /*cfe:nnbd.invoke: LinkedHashSet<String!>!*/
+      /*cfe.<String>*/
+      /*cfe:nnbd.<String!>*/
       {
+    /*invoke: bool!*/
     /*cfe.String*/
     /*cfe:nnbd.String!*/
     'foo',
+    /*invoke: bool!*/
+    /*cfe.current: String*/
+    /*cfe:nnbd.current: String!*/
     ...?
     /*cfe.Set<String>*/
     /*cfe:nnbd.Set<String!>!*/
-    /*invoke: void*/ set
+    set
   };
 }
 
diff --git a/pkg/front_end/testcases/expression/spread_element.expression.yaml.expect b/pkg/front_end/testcases/expression/spread_element.expression.yaml.expect
index 6c8b355..e34676b 100644
--- a/pkg/front_end/testcases/expression/spread_element.expression.yaml.expect
+++ b/pkg/front_end/testcases/expression/spread_element.expression.yaml.expect
@@ -2,5 +2,12 @@
 }
 method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr() → dynamic
   return block {
-    final dart.core::List<dart.core::String*>* #t1 = dart.core::List::of<dart.core::String*>(main::listOfStrings);
+    final dart.core::List<dart.core::String*>* #t1 = <dart.core::String*>[];
+    {
+      dart.core::Iterator<dart.core::String*>* :sync-for-iterator = main::listOfStrings.{dart.core::Iterable::iterator};
+      for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
+        final dart.core::String* #t2 = :sync-for-iterator.{dart.core::Iterator::current};
+        #t1.{dart.core::List::add}{Invariant}(#t2);
+      }
+    }
   } =>#t1;
diff --git a/pkg/front_end/testcases/general/constants/const_collections.dart.strong.expect b/pkg/front_end/testcases/general/constants/const_collections.dart.strong.expect
index 43efaee..b9b41ea 100644
--- a/pkg/front_end/testcases/general/constants/const_collections.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constants/const_collections.dart.strong.expect
@@ -405,7 +405,9 @@
 static const field core::List<core::String*>* foo = #C8;
 static const field core::List<core::String*>* bar = #C10;
 static field core::List<core::String*>* barAsVar = block {
-  final core::List<core::String*>* #t1 = core::List::of<core::String*>(#C8);
+  final core::List<core::String*>* #t1 = <core::String*>[];
+  for (final core::String* #t2 in #C8)
+    #t1.{core::List::add}{Invariant}(#t2);
   #t1.{core::List::add}{Invariant}("!");
 } =>#t1;
 static const field core::List<core::String*>* barWithNullSpread = invalid-expression "Null value during constant evaluation.";
@@ -479,9 +481,9 @@
   core::print(#C17);
   core::print(#C22);
   core::print( block {
-    final core::Set<core::String*>* #t2 = col::LinkedHashSet::•<core::String*>();
-    #t2.{core::Set::add}{Invariant}("hello");
-  } =>#t2);
+    final core::Set<core::String*>* #t3 = col::LinkedHashSet::•<core::String*>();
+    #t3.{core::Set::add}{Invariant}("hello");
+  } =>#t3);
   core::print(#C26);
 }
 
diff --git a/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect
index 9b88a94..168f850 100644
--- a/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect
@@ -405,7 +405,14 @@
 static const field core::List<core::String*>* foo = #C8;
 static const field core::List<core::String*>* bar = #C10;
 static field core::List<core::String*>* barAsVar = block {
-  final core::List<core::String*>* #t1 = core::List::of<core::String*>(#C8);
+  final core::List<core::String*>* #t1 = <core::String*>[];
+  {
+    core::Iterator<core::String*>* :sync-for-iterator = (#C8).{core::Iterable::iterator};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+      final core::String* #t2 = :sync-for-iterator.{core::Iterator::current};
+      #t1.{core::List::add}{Invariant}(#t2);
+    }
+  }
   #t1.{core::List::add}{Invariant}("!");
 } =>#t1;
 static const field core::List<core::String*>* barWithNullSpread = invalid-expression "Null value during constant evaluation.";
@@ -479,9 +486,9 @@
   core::print(#C17);
   core::print(#C22);
   core::print( block {
-    final core::Set<core::String*>* #t2 = new col::_CompactLinkedHashSet::•<core::String*>();
-    #t2.{core::Set::add}{Invariant}("hello");
-  } =>#t2);
+    final core::Set<core::String*>* #t3 = new col::_CompactLinkedHashSet::•<core::String*>();
+    #t3.{core::Set::add}{Invariant}("hello");
+  } =>#t3);
   core::print(#C26);
 }
 
diff --git a/pkg/front_end/testcases/general/control_flow_collection.dart.strong.expect b/pkg/front_end/testcases/general/control_flow_collection.dart.strong.expect
index bc26325..dffdbc4 100644
--- a/pkg/front_end/testcases/general/control_flow_collection.dart.strong.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection.dart.strong.expect
@@ -5,7 +5,8 @@
 
 static method main() → dynamic {
   final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = <core::int*>[1];
+    final core::List<core::int*>* #t1 = <core::int*>[];
+    #t1.{core::List::add}{Invariant}(1);
     if(self::oracle() as{TypeError,ForDynamic} core::bool*)
       #t1.{core::List::add}{Invariant}(2);
     if(self::oracle() as{TypeError,ForDynamic} core::bool*)
diff --git a/pkg/front_end/testcases/general/control_flow_collection.dart.strong.transformed.expect b/pkg/front_end/testcases/general/control_flow_collection.dart.strong.transformed.expect
index 17ab5b6..6041ee9 100644
--- a/pkg/front_end/testcases/general/control_flow_collection.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection.dart.strong.transformed.expect
@@ -5,7 +5,8 @@
 
 static method main() → dynamic {
   final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = <core::int*>[1];
+    final core::List<core::int*>* #t1 = <core::int*>[];
+    #t1.{core::List::add}{Invariant}(1);
     if(self::oracle() as{TypeError,ForDynamic} core::bool*)
       #t1.{core::List::add}{Invariant}(2);
     if(self::oracle() as{TypeError,ForDynamic} core::bool*)
@@ -106,4 +107,4 @@
 Evaluated: MethodInvocation @ org-dartlang-testcase:///control_flow_collection.dart:18:26 -> IntConstant(-1)
 Evaluated: MethodInvocation @ org-dartlang-testcase:///control_flow_collection.dart:27:29 -> IntConstant(-1)
 Evaluated: MethodInvocation @ org-dartlang-testcase:///control_flow_collection.dart:27:33 -> IntConstant(-1)
-Extra constant evaluation: evaluated: 158, effectively constant: 4
+Extra constant evaluation: evaluated: 160, effectively constant: 4
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.expect b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.expect
index 6f6e59d..4065ab1 100644
--- a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.expect
@@ -505,512 +505,553 @@
   core::List<core::int*>* list20 = block {
     final core::List<core::int*>* #t10 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t10.{core::List::addAll}{Invariant}(<core::int*>[42]);
+      for (final core::int* #t11 in <core::int*>[42])
+        #t10.{core::List::add}{Invariant}(#t11);
   } =>#t10;
   core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t11 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t12 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t11.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t11.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      for (final core::MapEntry<core::String*, core::int*>* #t13 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
-        #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}, #t13.{core::MapEntry::value});
-    #t12.{core::Map::[]=}{Invariant}("baz", null);
+      for (final core::int* #t13 in <core::int*>[42])
+        #t12.{core::Set::add}{Invariant}(#t13);
+    #t12.{core::Set::add}{Invariant}(null);
   } =>#t12;
-  core::List<dynamic>* list21 = block {
-    final core::List<dynamic>* #t14 = <dynamic>[];
+  core::Map<core::String*, core::int*>* map20 = block {
+    final core::Map<core::String*, core::int*>* #t14 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t14.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
+      for (final core::MapEntry<core::String*, core::int*>* #t15 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
+        #t14.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}, #t15.{core::MapEntry::value});
+    #t14.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t14;
-  core::Set<dynamic>* set21 = block {
-    final core::Set<dynamic>* #t15 = col::LinkedHashSet::•<dynamic>();
+  core::List<dynamic>* list21 = block {
+    final core::List<dynamic>* #t16 = <dynamic>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t15.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t15.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      for (final core::MapEntry<core::String*, dynamic>* #t17 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
-        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}, #t17.{core::MapEntry::value});
-    #t16.{core::Map::[]=}{Invariant}("baz", null);
+      for (final dynamic #t17 in <dynamic>[dynVar])
+        #t16.{core::List::add}{Invariant}(#t17);
   } =>#t16;
-  core::List<core::List<core::int*>*>* list22 = block {
-    final core::List<core::List<core::int*>*>* #t18 = <core::List<core::int*>*>[];
+  core::Set<dynamic>* set21 = block {
+    final core::Set<dynamic>* #t18 = col::LinkedHashSet::•<dynamic>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t18.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+      for (final dynamic #t19 in <dynamic>[dynVar])
+        #t18.{core::Set::add}{Invariant}(#t19);
+    #t18.{core::Set::add}{Invariant}(null);
   } =>#t18;
-  core::Set<core::List<core::int*>*>* set22 = block {
-    final core::Set<core::List<core::int*>*>* #t19 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::Map<core::String*, dynamic>* map21 = block {
+    final core::Map<core::String*, dynamic>* #t20 = <core::String*, dynamic>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t19.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t19.{core::Set::add}{Invariant}(null);
-  } =>#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} 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})
+      for (final core::MapEntry<core::String*, dynamic>* #t21 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
         #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}, #t21.{core::MapEntry::value});
     #t20.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t20;
-  core::List<core::int*>* list30 = block {
-    final core::List<core::int*>* #t22 = <core::int*>[];
+  core::List<core::List<core::int*>*>* list22 = block {
+    final core::List<core::List<core::int*>*>* #t22 = <core::List<core::int*>*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t22.{core::List::addAll}{Invariant}(<core::int*>[42]);
+      for (final core::List<core::int*>* #t23 in <core::List<core::int*>*>[<core::int*>[42]])
+        #t22.{core::List::add}{Invariant}(#t23);
   } =>#t22;
-  core::Set<core::int*>* set30 = block {
-    final core::Set<core::int*>* #t23 = col::LinkedHashSet::•<core::int*>();
+  core::Set<core::List<core::int*>*>* set22 = block {
+    final core::Set<core::List<core::int*>*>* #t24 = col::LinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t23.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t23.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::int*>* #t25 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
-          #t24.{core::Map::[]=}{Invariant}(#t25.{core::MapEntry::key}, #t25.{core::MapEntry::value});
-    #t24.{core::Map::[]=}{Invariant}("baz", null);
+      for (final core::List<core::int*>* #t25 in <core::List<core::int*>*>[<core::int*>[42]])
+        #t24.{core::Set::add}{Invariant}(#t25);
+    #t24.{core::Set::add}{Invariant}(null);
   } =>#t24;
-  core::List<dynamic>* list31 = block {
-    final core::List<dynamic>* #t26 = <dynamic>[];
+  core::Map<core::String*, core::List<core::int*>*>* map22 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t26 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t26.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
+      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t27 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries})
+        #t26.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}, #t27.{core::MapEntry::value});
+    #t26.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t26;
-  core::Set<dynamic>* set31 = block {
-    final core::Set<dynamic>* #t27 = col::LinkedHashSet::•<dynamic>();
+  core::List<core::int*>* list30 = block {
+    final core::List<core::int*>* #t28 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t27.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t27.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, dynamic>* #t29 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
-          #t28.{core::Map::[]=}{Invariant}(#t29.{core::MapEntry::key}, #t29.{core::MapEntry::value});
-    #t28.{core::Map::[]=}{Invariant}("baz", null);
+        for (final core::int* #t29 in <core::int*>[42])
+          #t28.{core::List::add}{Invariant}(#t29);
   } =>#t28;
-  core::List<core::List<core::int*>*>* list33 = block {
-    final core::List<core::List<core::int*>*>* #t30 = <core::List<core::int*>*>[];
+  core::Set<core::int*>* set30 = block {
+    final core::Set<core::int*>* #t30 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t30.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+        for (final core::int* #t31 in <core::int*>[42])
+          #t30.{core::Set::add}{Invariant}(#t31);
+    #t30.{core::Set::add}{Invariant}(null);
   } =>#t30;
-  core::Set<core::List<core::int*>*>* set33 = block {
-    final core::Set<core::List<core::int*>*>* #t31 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::Map<core::String*, core::int*>* map30 = block {
+    final core::Map<core::String*, core::int*>* #t32 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t31.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t31.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} 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})
+        for (final core::MapEntry<core::String*, core::int*>* #t33 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
           #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
     #t32.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t32;
-  core::List<core::List<core::int*>*>* list40 = block {
-    final core::List<core::List<core::int*>*>* #t34 = <core::List<core::int*>*>[];
+  core::List<dynamic>* list31 = block {
+    final core::List<dynamic>* #t34 = <dynamic>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t34.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final dynamic #t35 in <dynamic>[dynVar])
+          #t34.{core::List::add}{Invariant}(#t35);
   } =>#t34;
-  core::Set<core::List<core::int*>*>* set40 = block {
-    final core::Set<core::List<core::int*>*>* #t35 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::Set<dynamic>* set31 = block {
+    final core::Set<dynamic>* #t36 = col::LinkedHashSet::•<dynamic>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t35.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t35.{core::Set::add}{Invariant}(null);
-  } =>#t35;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final dynamic #t37 in <dynamic>[dynVar])
+          #t36.{core::Set::add}{Invariant}(#t37);
+    #t36.{core::Set::add}{Invariant}(null);
+  } =>#t36;
+  core::Map<core::String*, dynamic>* map31 = block {
+    final core::Map<core::String*, dynamic>* #t38 = <core::String*, dynamic>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, dynamic>* #t39 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
+          #t38.{core::Map::[]=}{Invariant}(#t39.{core::MapEntry::key}, #t39.{core::MapEntry::value});
+    #t38.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t38;
+  core::List<core::List<core::int*>*>* list33 = block {
+    final core::List<core::List<core::int*>*>* #t40 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t41 in <core::List<core::int*>*>[<core::int*>[42]])
+          #t40.{core::List::add}{Invariant}(#t41);
+  } =>#t40;
+  core::Set<core::List<core::int*>*>* set33 = block {
+    final core::Set<core::List<core::int*>*>* #t42 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t43 in <core::List<core::int*>*>[<core::int*>[42]])
+          #t42.{core::Set::add}{Invariant}(#t43);
+    #t42.{core::Set::add}{Invariant}(null);
+  } =>#t42;
+  core::Map<core::String*, core::List<core::int*>*>* map33 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t44 = <core::String*, core::List<core::int*>*>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t45 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries})
+          #t44.{core::Map::[]=}{Invariant}(#t45.{core::MapEntry::key}, #t45.{core::MapEntry::value});
+    #t44.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t44;
+  core::List<core::List<core::int*>*>* list40 = block {
+    final core::List<core::List<core::int*>*>* #t46 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::List<core::int*>* #t47 in <core::List<core::int*>*>[<core::int*>[]])
+        #t46.{core::List::add}{Invariant}(#t47);
+  } =>#t46;
+  core::Set<core::List<core::int*>*>* set40 = block {
+    final core::Set<core::List<core::int*>*>* #t48 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::List<core::int*>* #t49 in <core::List<core::int*>*>[<core::int*>[]])
+        #t48.{core::Set::add}{Invariant}(#t49);
+    #t48.{core::Set::add}{Invariant}(null);
+  } =>#t48;
   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.
   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*>*>[];
+    final core::List<core::List<core::int*>*>* #t50 = <core::List<core::int*>*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} 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*>[]);
-      } =>#t37);
-  } =>#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} 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*>[]);
-      } =>#t39);
-    #t38.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t40.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t41.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t41.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} 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})
-          #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
-    #t42.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t42;
-  core::List<core::int*>* list50 = block {
-    final core::List<core::int*>* #t44 = <core::int*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t44.{core::List::addAll}{Invariant}(<core::int*>[]);
-  } =>#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} core::bool*)
-      #t45.{core::Set::addAll}{Invariant}(<core::int*>[]);
-    #t45.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      for (final core::MapEntry<core::String*, core::int*>* #t47 in <core::String*, core::int*>{}.{core::Map::entries})
-        #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}, #t47.{core::MapEntry::value});
-    #t46.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t46;
-  core::List<core::int*>* list51 = block {
-    final core::List<core::int*>* #t48 = <core::int*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t48.{core::List::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t49 = col::LinkedHashSet::•<core::int*>();
-      } =>#t49);
-  } =>#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} core::bool*)
-      #t50.{core::Set::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t51 = col::LinkedHashSet::•<core::int*>();
-      } =>#t51);
-    #t50.{core::Set::add}{Invariant}(null);
+      for (final core::List<core::int*>* #t51 in block {
+        final core::Set<core::List<core::int*>*>* #t52 = col::LinkedHashSet::•<core::List<core::int*>*>();
+        #t52.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t52)
+        #t50.{core::List::add}{Invariant}(#t51);
   } =>#t50;
-  core::List<core::int*>* list52 = block {
-    final core::List<core::int*>* #t52 = <core::int*>[];
+  core::Set<core::List<core::int*>*>* set41 = block {
+    final core::Set<core::List<core::int*>*>* #t53 = col::LinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t52.{core::List::addAll}{Invariant}(<core::int*>[]);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t53.{core::Set::addAll}{Invariant}(<core::int*>[]);
+      for (final core::List<core::int*>* #t54 in block {
+        final core::Set<core::List<core::int*>*>* #t55 = col::LinkedHashSet::•<core::List<core::int*>*>();
+        #t55.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t55)
+        #t53.{core::Set::add}{Invariant}(#t54);
     #t53.{core::Set::add}{Invariant}(null);
   } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::int*>* #t55 in <core::String*, core::int*>{}.{core::Map::entries})
-          #t54.{core::Map::[]=}{Invariant}(#t55.{core::MapEntry::key}, #t55.{core::MapEntry::value});
-    #t54.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t54;
-  core::List<core::List<core::int*>*>* list60 = block {
+  core::List<core::List<core::int*>*>* list42 = block {
     final core::List<core::List<core::int*>*>* #t56 = <core::List<core::int*>*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t56.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t57 in <core::List<core::int*>*>[<core::int*>[]])
+          #t56.{core::List::add}{Invariant}(#t57);
   } =>#t56;
-  core::Set<core::List<core::int*>*>* set60 = block {
-    final core::Set<core::List<core::int*>*>* #t57 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::Set<core::List<core::int*>*>* set42 = block {
+    final core::Set<core::List<core::int*>*>* #t58 = col::LinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t57.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t57.{core::Set::add}{Invariant}(null);
-  } =>#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} 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})
-        #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}, #t59.{core::MapEntry::value});
-    #t58.{core::Map::[]=}{Invariant}("baz", null);
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t59 in <core::List<core::int*>*>[<core::int*>[]])
+          #t58.{core::Set::add}{Invariant}(#t59);
+    #t58.{core::Set::add}{Invariant}(null);
   } =>#t58;
-  core::List<core::List<core::int*>*>* list61 = block {
-    final core::List<core::List<core::int*>*>* #t60 = <core::List<core::int*>*>[];
+  core::Map<core::String*, core::List<core::int*>*>* map42 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t60 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t60.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t61 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
+          #t60.{core::Map::[]=}{Invariant}(#t61.{core::MapEntry::key}, #t61.{core::MapEntry::value});
+    #t60.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t60;
-  core::Set<core::List<core::int*>*>* set61 = block {
-    final core::Set<core::List<core::int*>*>* #t61 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::List<core::int*>* list50 = block {
+    final core::List<core::int*>* #t62 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t61.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t61.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} 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})
-          #t62.{core::Map::[]=}{Invariant}(#t63.{core::MapEntry::key}, #t63.{core::MapEntry::value});
-    #t62.{core::Map::[]=}{Invariant}("baz", null);
+      for (final core::int* #t63 in <core::int*>[])
+        #t62.{core::List::add}{Invariant}(#t63);
   } =>#t62;
-  core::List<core::List<core::int*>*>* list70 = block {
-    final core::List<core::List<core::int*>*>* #t64 = <core::List<core::int*>*>[];
+  core::Set<core::int*>* set50 = block {
+    final core::Set<core::int*>* #t64 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t64.{core::List::add}{Invariant}(<core::int*>[]);
+      for (final core::int* #t65 in <core::int*>[])
+        #t64.{core::Set::add}{Invariant}(#t65);
+    #t64.{core::Set::add}{Invariant}(null);
   } =>#t64;
-  core::Set<core::List<core::int*>*>* set70 = block {
-    final core::Set<core::List<core::int*>*>* #t65 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::Map<core::String*, core::int*>* map50 = block {
+    final core::Map<core::String*, core::int*>* #t66 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t65.{core::Set::add}{Invariant}(<core::int*>[]);
-    #t65.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t66.{core::List::add}{Invariant}(<core::int*>[]);
+      for (final core::MapEntry<core::String*, core::int*>* #t67 in <core::String*, core::int*>{}.{core::Map::entries})
+        #t66.{core::Map::[]=}{Invariant}(#t67.{core::MapEntry::key}, #t67.{core::MapEntry::value});
+    #t66.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t66;
-  core::Set<core::List<core::int*>*>* set71 = block {
-    final core::Set<core::List<core::int*>*>* #t67 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::List<core::int*>* list51 = block {
+    final core::List<core::int*>* #t68 = <core::int*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::int* #t69 in block {
+        final core::Set<core::int*>* #t70 = col::LinkedHashSet::•<core::int*>();
+      } =>#t70)
+        #t68.{core::List::add}{Invariant}(#t69);
+  } =>#t68;
+  core::Set<core::int*>* set51 = block {
+    final core::Set<core::int*>* #t71 = col::LinkedHashSet::•<core::int*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::int* #t72 in block {
+        final core::Set<core::int*>* #t73 = col::LinkedHashSet::•<core::int*>();
+      } =>#t73)
+        #t71.{core::Set::add}{Invariant}(#t72);
+    #t71.{core::Set::add}{Invariant}(null);
+  } =>#t71;
+  core::List<core::int*>* list52 = block {
+    final core::List<core::int*>* #t74 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t67.{core::Set::add}{Invariant}(<core::int*>[]);
-    #t67.{core::Set::add}{Invariant}(null);
-  } =>#t67;
-  core::List<core::num*>* list80 = block {
-    final core::List<core::num*>* #t68 = <core::num*>[];
+        for (final core::int* #t75 in <core::int*>[])
+          #t74.{core::List::add}{Invariant}(#t75);
+  } =>#t74;
+  core::Set<core::int*>* set52 = block {
+    final core::Set<core::int*>* #t76 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t68.{core::List::add}{Invariant}(42);
-    else
-      #t68.{core::List::add}{Invariant}(3.14);
-  } =>#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} core::bool*)
-      #t69.{core::Set::add}{Invariant}(42);
-    else
-      #t69.{core::Set::add}{Invariant}(3.14);
-    #t69.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      #t70.{core::Map::[]=}{Invariant}("bar", 42);
-    else
-      #t70.{core::Map::[]=}{Invariant}("bar", 3.14);
-    #t70.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t70;
-  core::List<core::num*>* list81 = block {
-    final core::List<core::num*>* #t71 = <core::num*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t71.{core::List::addAll}{Invariant}(listInt);
-    else
-      #t71.{core::List::addAll}{Invariant}(listDouble);
-  } =>#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} core::bool*)
-      #t72.{core::Set::addAll}{Invariant}(listInt);
-    else
-      #t72.{core::Set::addAll}{Invariant}(listDouble);
-    #t72.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      for (final core::MapEntry<core::String*, core::num*>* #t74 in mapToInt.{core::Map::entries})
-        #t73.{core::Map::[]=}{Invariant}(#t74.{core::MapEntry::key}, #t74.{core::MapEntry::value});
-    else
-      for (final core::MapEntry<core::String*, core::num*>* #t75 in mapToDouble.{core::Map::entries})
-        #t73.{core::Map::[]=}{Invariant}(#t75.{core::MapEntry::key}, #t75.{core::MapEntry::value});
-    #t73.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t73;
-  core::List<dynamic>* list82 = block {
-    final core::List<dynamic>* #t76 = <dynamic>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t76.{core::List::addAll}{Invariant}(listInt);
-    else
-      #t76.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::int* #t77 in <core::int*>[])
+          #t76.{core::Set::add}{Invariant}(#t77);
+    #t76.{core::Set::add}{Invariant}(null);
   } =>#t76;
-  core::Set<dynamic>* set82 = block {
-    final core::Set<dynamic>* #t77 = col::LinkedHashSet::•<dynamic>();
+  core::Map<core::String*, core::int*>* map52 = block {
+    final core::Map<core::String*, core::int*>* #t78 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t77.{core::Set::addAll}{Invariant}(listInt);
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, core::int*>* #t79 in <core::String*, core::int*>{}.{core::Map::entries})
+          #t78.{core::Map::[]=}{Invariant}(#t79.{core::MapEntry::key}, #t79.{core::MapEntry::value});
+    #t78.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t78;
+  core::List<core::List<core::int*>*>* list60 = block {
+    final core::List<core::List<core::int*>*>* #t80 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::List<core::int*>* #t81 in <core::List<core::int*>*>[<core::int*>[]])
+        #t80.{core::List::add}{Invariant}(#t81);
+  } =>#t80;
+  core::Set<core::List<core::int*>*>* set60 = block {
+    final core::Set<core::List<core::int*>*>* #t82 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::List<core::int*>* #t83 in <core::List<core::int*>*>[<core::int*>[]])
+        #t82.{core::Set::add}{Invariant}(#t83);
+    #t82.{core::Set::add}{Invariant}(null);
+  } =>#t82;
+  core::Map<core::String*, core::List<core::int*>*>* map60 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t84 = <core::String*, core::List<core::int*>*>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t85 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
+        #t84.{core::Map::[]=}{Invariant}(#t85.{core::MapEntry::key}, #t85.{core::MapEntry::value});
+    #t84.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t84;
+  core::List<core::List<core::int*>*>* list61 = block {
+    final core::List<core::List<core::int*>*>* #t86 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t87 in <core::List<core::int*>*>[<core::int*>[]])
+          #t86.{core::List::add}{Invariant}(#t87);
+  } =>#t86;
+  core::Set<core::List<core::int*>*>* set61 = block {
+    final core::Set<core::List<core::int*>*>* #t88 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t89 in <core::List<core::int*>*>[<core::int*>[]])
+          #t88.{core::Set::add}{Invariant}(#t89);
+    #t88.{core::Set::add}{Invariant}(null);
+  } =>#t88;
+  core::Map<core::String*, core::List<core::int*>*>* map61 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t90 = <core::String*, core::List<core::int*>*>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t91 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
+          #t90.{core::Map::[]=}{Invariant}(#t91.{core::MapEntry::key}, #t91.{core::MapEntry::value});
+    #t90.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t90;
+  core::List<core::List<core::int*>*>* list70 = block {
+    final core::List<core::List<core::int*>*>* #t92 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      #t92.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t92;
+  core::Set<core::List<core::int*>*>* set70 = block {
+    final core::Set<core::List<core::int*>*>* #t93 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      #t93.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t93.{core::Set::add}{Invariant}(null);
+  } =>#t93;
+  core::List<core::List<core::int*>*>* list71 = block {
+    final core::List<core::List<core::int*>*>* #t94 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t94.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t94;
+  core::Set<core::List<core::int*>*>* set71 = block {
+    final core::Set<core::List<core::int*>*>* #t95 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t95.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t95.{core::Set::add}{Invariant}(null);
+  } =>#t95;
+  core::List<core::num*>* list80 = block {
+    final core::List<core::num*>* #t96 = <core::num*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      #t96.{core::List::add}{Invariant}(42);
     else
-      #t77.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t77.{core::Set::add}{Invariant}(null);
-  } =>#t77;
-  core::Set<dynamic>* map82 = block {
-    final core::Set<dynamic>* #t78 = col::LinkedHashSet::•<dynamic>();
+      #t96.{core::List::add}{Invariant}(3.14);
+  } =>#t96;
+  core::Set<core::num*>* set80 = block {
+    final core::Set<core::num*>* #t97 = col::LinkedHashSet::•<core::num*>();
     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.
+      #t97.{core::Set::add}{Invariant}(42);
+    else
+      #t97.{core::Set::add}{Invariant}(3.14);
+    #t97.{core::Set::add}{Invariant}(null);
+  } =>#t97;
+  core::Map<core::String*, core::num*>* map80 = block {
+    final core::Map<core::String*, core::num*>* #t98 = <core::String*, core::num*>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      #t98.{core::Map::[]=}{Invariant}("bar", 42);
+    else
+      #t98.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t98.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t98;
+  core::List<core::num*>* list81 = block {
+    final core::List<core::num*>* #t99 = <core::num*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::num* #t100 in listInt)
+        #t99.{core::List::add}{Invariant}(#t100);
+    else
+      for (final core::num* #t101 in listDouble)
+        #t99.{core::List::add}{Invariant}(#t101);
+  } =>#t99;
+  core::Set<core::num*>* set81 = block {
+    final core::Set<core::num*>* #t102 = col::LinkedHashSet::•<core::num*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::num* #t103 in listInt)
+        #t102.{core::Set::add}{Invariant}(#t103);
+    else
+      for (final core::num* #t104 in listDouble)
+        #t102.{core::Set::add}{Invariant}(#t104);
+    #t102.{core::Set::add}{Invariant}(null);
+  } =>#t102;
+  core::Map<core::String*, core::num*>* map81 = block {
+    final core::Map<core::String*, core::num*>* #t105 = <core::String*, core::num*>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::MapEntry<core::String*, core::num*>* #t106 in mapToInt.{core::Map::entries})
+        #t105.{core::Map::[]=}{Invariant}(#t106.{core::MapEntry::key}, #t106.{core::MapEntry::value});
+    else
+      for (final core::MapEntry<core::String*, core::num*>* #t107 in mapToDouble.{core::Map::entries})
+        #t105.{core::Map::[]=}{Invariant}(#t107.{core::MapEntry::key}, #t107.{core::MapEntry::value});
+    #t105.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t105;
+  core::List<dynamic>* list82 = block {
+    final core::List<dynamic>* #t108 = <dynamic>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final dynamic #t109 in listInt)
+        #t108.{core::List::add}{Invariant}(#t109);
+    else
+      for (final dynamic #t110 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+        #t108.{core::List::add}{Invariant}(#t110);
+  } =>#t108;
+  core::Set<dynamic>* set82 = block {
+    final core::Set<dynamic>* #t111 = col::LinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final dynamic #t112 in listInt)
+        #t111.{core::Set::add}{Invariant}(#t112);
+    else
+      for (final dynamic #t113 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+        #t111.{core::Set::add}{Invariant}(#t113);
+    #t111.{core::Set::add}{Invariant}(null);
+  } =>#t111;
+  core::Set<dynamic>* map82 = block {
+    final core::Set<dynamic>* #t114 = col::LinkedHashSet::•<dynamic>();
+    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: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};
                                      ^");
     else
-      #t78.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t78.{core::Set::add}{Invariant}(null);
-  } =>#t78;
+      for (final dynamic #t115 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+        #t114.{core::Set::add}{Invariant}(#t115);
+    #t114.{core::Set::add}{Invariant}(null);
+  } =>#t114;
   core::List<core::num*>* list83 = block {
-    final core::List<core::num*>* #t79 = <core::num*>[];
+    final core::List<core::num*>* #t116 = <core::num*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t79.{core::List::add}{Invariant}(42);
+      #t116.{core::List::add}{Invariant}(42);
     else
-      #t79.{core::List::addAll}{Invariant}(listDouble);
-  } =>#t79;
+      for (final core::num* #t117 in listDouble)
+        #t116.{core::List::add}{Invariant}(#t117);
+  } =>#t116;
   core::Set<core::num*>* set83 = block {
-    final core::Set<core::num*>* #t80 = col::LinkedHashSet::•<core::num*>();
+    final core::Set<core::num*>* #t118 = col::LinkedHashSet::•<core::num*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t80.{core::Set::addAll}{Invariant}(listInt);
+      for (final core::num* #t119 in listInt)
+        #t118.{core::Set::add}{Invariant}(#t119);
     else
-      #t80.{core::Set::add}{Invariant}(3.14);
-    #t80.{core::Set::add}{Invariant}(null);
-  } =>#t80;
+      #t118.{core::Set::add}{Invariant}(3.14);
+    #t118.{core::Set::add}{Invariant}(null);
+  } =>#t118;
   core::Map<core::String*, core::num*>* map83 = block {
-    final core::Map<core::String*, core::num*>* #t81 = <core::String*, core::num*>{};
+    final core::Map<core::String*, core::num*>* #t120 = <core::String*, core::num*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      for (final core::MapEntry<core::String*, core::num*>* #t82 in mapToInt.{core::Map::entries})
-        #t81.{core::Map::[]=}{Invariant}(#t82.{core::MapEntry::key}, #t82.{core::MapEntry::value});
+      for (final core::MapEntry<core::String*, core::num*>* #t121 in mapToInt.{core::Map::entries})
+        #t120.{core::Map::[]=}{Invariant}(#t121.{core::MapEntry::key}, #t121.{core::MapEntry::value});
     else
-      #t81.{core::Map::[]=}{Invariant}("bar", 3.14);
-    #t81.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t81;
+      #t120.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t120.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t120;
   core::List<core::int*>* list90 = block {
-    final core::List<core::int*>* #t83 = <core::int*>[];
+    final core::List<core::int*>* #t122 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t83.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
-  } =>#t83;
+      #t122.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+  } =>#t122;
   core::Set<core::int*>* set90 = block {
-    final core::Set<core::int*>* #t84 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t123 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t84.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
-    #t84.{core::Set::add}{Invariant}(null);
-  } =>#t84;
+      #t123.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+    #t123.{core::Set::add}{Invariant}(null);
+  } =>#t123;
   core::Map<core::String*, core::int*>* map90 = block {
-    final core::Map<core::String*, core::int*>* #t85 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t124 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t85.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
-    #t85.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t85;
+      #t124.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
+    #t124.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t124;
   core::List<core::int*>* list91 = block {
-    final core::List<core::int*>* #t86 = <core::int*>[];
+    final core::List<core::int*>* #t125 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      for (final dynamic #t87 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-        final core::int* #t88 = #t87 as{TypeError} core::int*;
-        #t86.{core::List::add}{Invariant}(#t88);
+      for (final dynamic #t126 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+        final core::int* #t127 = #t126 as{TypeError} core::int*;
+        #t125.{core::List::add}{Invariant}(#t127);
       }
-  } =>#t86;
+  } =>#t125;
   core::Set<core::int*>* set91 = block {
-    final core::Set<core::int*>* #t89 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t128 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      for (final dynamic #t90 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-        final core::int* #t91 = #t90 as{TypeError} core::int*;
-        #t89.{core::Set::add}{Invariant}(#t91);
+      for (final dynamic #t129 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+        final core::int* #t130 = #t129 as{TypeError} core::int*;
+        #t128.{core::Set::add}{Invariant}(#t130);
       }
-    #t89.{core::Set::add}{Invariant}(null);
-  } =>#t89;
+    #t128.{core::Set::add}{Invariant}(null);
+  } =>#t128;
   core::Map<core::String*, core::int*>* map91 = block {
-    final core::Map<core::String*, core::int*>* #t92 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t131 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      for (final core::MapEntry<dynamic, dynamic>* #t93 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}) {
-        final core::String* #t94 = #t93.{core::MapEntry::key} as{TypeError} core::String*;
-        final core::int* #t95 = #t93.{core::MapEntry::value} as{TypeError} core::int*;
-        #t92.{core::Map::[]=}{Invariant}(#t94, #t95);
+      for (final core::MapEntry<dynamic, dynamic>* #t132 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}) {
+        final core::String* #t133 = #t132.{core::MapEntry::key} as{TypeError} core::String*;
+        final core::int* #t134 = #t132.{core::MapEntry::value} as{TypeError} core::int*;
+        #t131.{core::Map::[]=}{Invariant}(#t133, #t134);
       }
-    #t92.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t92;
+    #t131.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t131;
   core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t96 = <core::int*>[];
+    final core::List<core::int*>* #t135 = <core::int*>[];
     if(dynVar as{TypeError,ForDynamic} core::bool*)
-      #t96.{core::List::add}{Invariant}(42);
-  } =>#t96;
+      #t135.{core::List::add}{Invariant}(42);
+  } =>#t135;
   core::Set<core::int*>* set100 = block {
-    final core::Set<core::int*>* #t97 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t136 = col::LinkedHashSet::•<core::int*>();
     if(dynVar as{TypeError,ForDynamic} core::bool*)
-      #t97.{core::Set::add}{Invariant}(42);
-  } =>#t97;
+      #t136.{core::Set::add}{Invariant}(42);
+  } =>#t136;
   core::Map<core::int*, core::int*>* map100 = block {
-    final core::Map<core::int*, core::int*>* #t98 = <core::int*, core::int*>{};
+    final core::Map<core::int*, core::int*>* #t137 = <core::int*, core::int*>{};
     if(dynVar as{TypeError,ForDynamic} core::bool*)
-      #t98.{core::Map::[]=}{Invariant}(42, 42);
-  } =>#t98;
+      #t137.{core::Map::[]=}{Invariant}(42, 42);
+  } =>#t137;
 }
 static method testIfElementErrors(core::Map<core::int*, core::int*>* map) → dynamic {
   block {
-    final core::List<core::int*>* #t99 = <core::int*>[];
+    final core::List<core::int*>* #t138 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t99.{core::List::add}{Invariant}(let final<BottomType> #t100 = 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'.
+      #t138.{core::List::add}{Invariant}(let final<BottomType> #t139 = 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'.
   <int>[if (oracle(\"foo\")) \"bar\"];
                            ^" in "bar" as{TypeError} core::int*);
-  } =>#t99;
+  } =>#t138;
   block {
-    final core::Set<core::int*>* #t101 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t140 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t101.{core::Set::add}{Invariant}(let final<BottomType> #t102 = 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'.
+      #t140.{core::Set::add}{Invariant}(let final<BottomType> #t141 = 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'.
   <int>{if (oracle(\"foo\")) \"bar\", null};
                            ^" in "bar" as{TypeError} core::int*);
-    #t101.{core::Set::add}{Invariant}(null);
-  } =>#t101;
+    #t140.{core::Set::add}{Invariant}(null);
+  } =>#t140;
   block {
-    final core::Map<core::String*, core::int*>* #t103 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t142 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t103.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t104 = 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'.
+      #t142.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t143 = 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'.
   <String, int>{if (oracle(\"foo\")) \"bar\": \"bar\", \"baz\": null};
                                           ^" in "bar" as{TypeError} core::int*);
-    #t103.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t103;
+    #t142.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t142;
   block {
-    final core::List<core::int*>* #t105 = <core::int*>[];
+    final core::List<core::int*>* #t144 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t105.{core::List::addAll}{Invariant}(<core::int*>[let final<BottomType> #t106 = 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'.
+      for (final core::int* #t145 in <core::int*>[let final<BottomType> #t146 = 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'.
   <int>[if (oracle(\"foo\")) ...[\"bar\"]];
-                               ^" in "bar" as{TypeError} core::int*]);
-  } =>#t105;
+                               ^" in "bar" as{TypeError} core::int*])
+        #t144.{core::List::add}{Invariant}(#t145);
+  } =>#t144;
   block {
-    final core::Set<core::int*>* #t107 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t147 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t107.{core::Set::addAll}{Invariant}(<core::int*>[let final<BottomType> #t108 = 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'.
+      for (final core::int* #t148 in <core::int*>[let final<BottomType> #t149 = 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'.
   <int>{if (oracle(\"foo\")) ...[\"bar\"], null};
-                               ^" in "bar" as{TypeError} core::int*]);
-    #t107.{core::Set::add}{Invariant}(null);
-  } =>#t107;
+                               ^" in "bar" as{TypeError} core::int*])
+        #t147.{core::Set::add}{Invariant}(#t148);
+    #t147.{core::Set::add}{Invariant}(null);
+  } =>#t147;
   block {
-    final core::Map<core::String*, core::int*>* #t109 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t150 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      for (final core::MapEntry<core::String*, core::int*>* #t110 in <core::String*, core::int*>{"bar": let final<BottomType> #t111 = 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*>* #t151 in <core::String*, core::int*>{"bar": let final<BottomType> #t152 = 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'.
   <String, int>{if (oracle(\"foo\")) ...{\"bar\": \"bar\"}, \"baz\": null};
                                               ^" in "bar" as{TypeError} core::int*}.{core::Map::entries})
-        #t109.{core::Map::[]=}{Invariant}(#t110.{core::MapEntry::key}, #t110.{core::MapEntry::value});
-    #t109.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t109;
+        #t150.{core::Map::[]=}{Invariant}(#t151.{core::MapEntry::key}, #t151.{core::MapEntry::value});
+    #t150.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t150;
   block {
-    final core::List<core::int*>* #t112 = <core::int*>[];
+    final core::List<core::int*>* #t153 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t112.{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.
+      #t153.{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.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) ...map];
                               ^");
-  } =>#t112;
+  } =>#t153;
   block {
-    final core::Set<core::int*>* #t113 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t154 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t113.{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.
+      #t154.{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.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map, null};
                               ^");
-    #t113.{core::Set::add}{Invariant}(null);
-  } =>#t113;
+    #t154.{core::Set::add}{Invariant}(null);
+  } =>#t154;
   <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.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
@@ -1019,61 +1060,61 @@
   <String, int>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
                                       ^": null};
   block {
-    final core::List<core::String*>* #t114 = <core::String*>[];
+    final core::List<core::String*>* #t155 = <core::String*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t114.{core::List::add}{Invariant}(let final<BottomType> #t115 = 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'.
+      #t155.{core::List::add}{Invariant}(let final<BottomType> #t156 = 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'.
   <String>[if (oracle(\"foo\")) 42 else 3.14];
                               ^" in 42 as{TypeError} core::String*);
     else
-      #t114.{core::List::add}{Invariant}(let final<BottomType> #t116 = 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'.
+      #t155.{core::List::add}{Invariant}(let final<BottomType> #t157 = 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'.
   <String>[if (oracle(\"foo\")) 42 else 3.14];
                                       ^" in 3.14 as{TypeError} core::String*);
-  } =>#t114;
+  } =>#t155;
   block {
-    final core::Set<core::String*>* #t117 = col::LinkedHashSet::•<core::String*>();
+    final core::Set<core::String*>* #t158 = col::LinkedHashSet::•<core::String*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t117.{core::Set::add}{Invariant}(let final<BottomType> #t118 = 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'.
+      #t158.{core::Set::add}{Invariant}(let final<BottomType> #t159 = 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'.
   <String>{if (oracle(\"foo\")) 42 else 3.14, null};
                               ^" in 42 as{TypeError} core::String*);
     else
-      #t117.{core::Set::add}{Invariant}(let final<BottomType> #t119 = 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'.
+      #t158.{core::Set::add}{Invariant}(let final<BottomType> #t160 = 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'.
   <String>{if (oracle(\"foo\")) 42 else 3.14, null};
                                       ^" in 3.14 as{TypeError} core::String*);
-    #t117.{core::Set::add}{Invariant}(null);
-  } =>#t117;
+    #t158.{core::Set::add}{Invariant}(null);
+  } =>#t158;
   block {
-    final core::Map<core::String*, core::String*>* #t120 = <core::String*, core::String*>{};
+    final core::Map<core::String*, core::String*>* #t161 = <core::String*, core::String*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t120.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t121 = 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'.
+      #t161.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t162 = 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'.
   <String, String>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
                                              ^" in 42 as{TypeError} core::String*);
     else
-      #t120.{core::Map::[]=}{Invariant}("baz", let final<BottomType> #t122 = 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'.
+      #t161.{core::Map::[]=}{Invariant}("baz", let final<BottomType> #t163 = 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'.
   <String, String>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
                                                             ^" in 3.14 as{TypeError} core::String*);
-    #t120.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t120;
+    #t161.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t161;
   block {
-    final core::List<core::int*>* #t123 = <core::int*>[];
+    final core::List<core::int*>* #t164 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t123.{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.
+      #t164.{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.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) ...map else 42];
                               ^");
     else
-      #t123.{core::List::add}{Invariant}(42);
-  } =>#t123;
+      #t164.{core::List::add}{Invariant}(42);
+  } =>#t164;
   block {
-    final core::Set<core::int*>* #t124 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t165 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t124.{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.
+      #t165.{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.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map else 42, null};
                               ^");
     else
-      #t124.{core::Set::add}{Invariant}(42);
-    #t124.{core::Set::add}{Invariant}(null);
-  } =>#t124;
+      #t165.{core::Set::add}{Invariant}(42);
+    #t165.{core::Set::add}{Invariant}(null);
+  } =>#t165;
   <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.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
@@ -1082,26 +1123,26 @@
   <String, int>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
                                       ^": null};
   block {
-    final core::List<core::int*>* #t125 = <core::int*>[];
+    final core::List<core::int*>* #t166 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t125.{core::List::add}{Invariant}(42);
+      #t166.{core::List::add}{Invariant}(42);
     else
-      #t125.{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.
+      #t166.{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.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) 42 else ...map];
                                       ^");
-  } =>#t125;
+  } =>#t166;
   block {
-    final core::Set<core::int*>* #t126 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t167 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t126.{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.
+      #t167.{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.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map else 42, null};
                               ^");
     else
-      #t126.{core::Set::add}{Invariant}(42);
-    #t126.{core::Set::add}{Invariant}(null);
-  } =>#t126;
+      #t167.{core::Set::add}{Invariant}(42);
+    #t167.{core::Set::add}{Invariant}(null);
+  } =>#t167;
   <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.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) \"bar\": 42 else ...[42], \"baz\": null};
@@ -1128,709 +1169,749 @@
   var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                                                    ^": null};
   core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t127 = <core::int*>[];
-    if(let final<BottomType> #t128 = 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'.
+    final core::List<core::int*>* #t168 = <core::int*>[];
+    if(let final<BottomType> #t169 = 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'.
   List<int> list20 = [if (42) 42];
                           ^" in 42 as{TypeError} core::bool*)
-      #t127.{core::List::add}{Invariant}(42);
-  } =>#t127;
+      #t168.{core::List::add}{Invariant}(42);
+  } =>#t168;
   core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t129 = col::LinkedHashSet::•<core::int*>();
-    if(let final<BottomType> #t130 = 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'.
+    final core::Set<core::int*>* #t170 = col::LinkedHashSet::•<core::int*>();
+    if(let final<BottomType> #t171 = 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'.
   Set<int> set20 = {if (42) 42};
                         ^" in 42 as{TypeError} core::bool*)
-      #t129.{core::Set::add}{Invariant}(42);
-  } =>#t129;
+      #t170.{core::Set::add}{Invariant}(42);
+  } =>#t170;
   core::Map<core::int*, core::int*>* map30 = block {
-    final core::Map<core::int*, core::int*>* #t131 = <core::int*, core::int*>{};
-    if(let final<BottomType> #t132 = 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'.
+    final core::Map<core::int*, core::int*>* #t172 = <core::int*, core::int*>{};
+    if(let final<BottomType> #t173 = 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'.
   Map<int, int> map30 = {if (42) 42: 42};
                              ^" in 42 as{TypeError} core::bool*)
-      #t131.{core::Map::[]=}{Invariant}(42, 42);
-  } =>#t131;
+      #t172.{core::Map::[]=}{Invariant}(42, 42);
+  } =>#t172;
   core::List<core::String*>* list40 = block {
-    final core::List<core::String*>* #t133 = <core::String*>[];
+    final core::List<core::String*>* #t174 = <core::String*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t133.{core::List::add}{Invariant}(let final<BottomType> #t134 = 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'.
+      #t174.{core::List::add}{Invariant}(let final<BottomType> #t175 = 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'.
   List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
                                                     ^" in true as{TypeError} core::String*);
     else
-      #t133.{core::List::add}{Invariant}(let final<BottomType> #t135 = 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'.
+      #t174.{core::List::add}{Invariant}(let final<BottomType> #t176 = 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'.
   List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
                                                               ^" in 42 as{TypeError} core::String*);
-  } =>#t133;
+  } =>#t174;
   core::Set<core::String*>* set40 = block {
-    final core::Set<core::String*>* #t136 = col::LinkedHashSet::•<core::String*>();
+    final core::Set<core::String*>* #t177 = col::LinkedHashSet::•<core::String*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t136.{core::Set::add}{Invariant}(let final<BottomType> #t137 = 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'.
+      #t177.{core::Set::add}{Invariant}(let final<BottomType> #t178 = 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'.
   Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
                                                   ^" in true as{TypeError} core::String*);
     else
-      #t136.{core::Set::add}{Invariant}(let final<BottomType> #t138 = 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'.
+      #t177.{core::Set::add}{Invariant}(let final<BottomType> #t179 = 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'.
   Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
                                                             ^" in 42 as{TypeError} core::String*);
-  } =>#t136;
+  } =>#t177;
   core::Map<core::String*, core::int*>* map40 = block {
-    final core::Map<core::String*, core::int*>* #t139 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t180 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t139.{core::Map::[]=}{Invariant}(let final<BottomType> #t140 = 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'.
+      #t180.{core::Map::[]=}{Invariant}(let final<BottomType> #t181 = 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'.
   Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
                                                             ^" in true as{TypeError} core::String*, 42);
     else
-      #t139.{core::Map::[]=}{Invariant}(let final<BottomType> #t141 = 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'.
+      #t180.{core::Map::[]=}{Invariant}(let final<BottomType> #t182 = 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'.
   Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
                                                                           ^" in 42 as{TypeError} core::String*, 42);
-  } =>#t139;
+  } =>#t180;
   core::Map<core::int*, core::String*>* map41 = block {
-    final core::Map<core::int*, core::String*>* #t142 = <core::int*, core::String*>{};
+    final core::Map<core::int*, core::String*>* #t183 = <core::int*, core::String*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t142.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t143 = 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'.
+      #t183.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t184 = 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'.
   Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
                                                                 ^" in true as{TypeError} core::String*);
     else
-      #t142.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t144 = 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'.
+      #t183.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t185 = 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'.
   Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
                                                                               ^" in 42 as{TypeError} core::String*);
-  } =>#t142;
+  } =>#t183;
 }
 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*>* #t145 = <core::int*>[];
+    final core::List<core::int*>* #t186 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t145.{core::List::add}{Invariant}(42);
-  } =>#t145;
-  core::Set<core::int*>* set10 = block {
-    final core::Set<core::int*>* #t146 = col::LinkedHashSet::•<core::int*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t146.{core::Set::add}{Invariant}(42);
-    #t146.{core::Set::add}{Invariant}(null);
-  } =>#t146;
-  core::Map<core::String*, core::int*>* map10 = block {
-    final core::Map<core::String*, core::int*>* #t147 = <core::String*, core::int*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t147.{core::Map::[]=}{Invariant}("bar", 42);
-    #t147.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t147;
-  core::List<dynamic>* list11 = block {
-    final core::List<dynamic>* #t148 = <dynamic>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t148.{core::List::add}{Invariant}(dynVar);
-  } =>#t148;
-  core::Set<dynamic>* set11 = block {
-    final core::Set<dynamic>* #t149 = col::LinkedHashSet::•<dynamic>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t149.{core::Set::add}{Invariant}(dynVar);
-    #t149.{core::Set::add}{Invariant}(null);
-  } =>#t149;
-  core::Map<core::String*, dynamic>* map11 = block {
-    final core::Map<core::String*, dynamic>* #t150 = <core::String*, dynamic>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t150.{core::Map::[]=}{Invariant}("bar", dynVar);
-    #t150.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t150;
-  core::List<core::List<core::int*>*>* list12 = 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} core::bool*; i = i.{core::num::+}(1))
-      #t151.{core::List::add}{Invariant}(<core::int*>[42]);
-  } =>#t151;
-  core::Set<core::List<core::int*>*>* set12 = 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} core::bool*; i = i.{core::num::+}(1))
-      #t152.{core::Set::add}{Invariant}(<core::int*>[42]);
-    #t152.{core::Set::add}{Invariant}(null);
-  } =>#t152;
-  core::Map<core::String*, core::List<core::int*>*>* map12 = 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} core::bool*; i = i.{core::num::+}(1))
-      #t153.{core::Map::[]=}{Invariant}("bar", <core::int*>[42]);
-    #t153.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t153;
-  core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t154 = <core::int*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t154.{core::List::addAll}{Invariant}(<core::int*>[42]);
-  } =>#t154;
-  core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t155 = col::LinkedHashSet::•<core::int*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t155.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t155.{core::Set::add}{Invariant}(null);
-  } =>#t155;
-  core::Map<core::String*, core::int*>* map20 = block {
-    final core::Map<core::String*, core::int*>* #t156 = <core::String*, core::int*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<core::String*, core::int*>* #t157 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
-        #t156.{core::Map::[]=}{Invariant}(#t157.{core::MapEntry::key}, #t157.{core::MapEntry::value});
-    #t156.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t156;
-  core::List<dynamic>* list21 = block {
-    final core::List<dynamic>* #t158 = <dynamic>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t158.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
-  } =>#t158;
-  core::Set<dynamic>* set21 = block {
-    final core::Set<dynamic>* #t159 = col::LinkedHashSet::•<dynamic>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t159.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t159.{core::Set::add}{Invariant}(null);
-  } =>#t159;
-  core::Map<core::String*, dynamic>* map21 = block {
-    final core::Map<core::String*, dynamic>* #t160 = <core::String*, dynamic>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<core::String*, dynamic>* #t161 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
-        #t160.{core::Map::[]=}{Invariant}(#t161.{core::MapEntry::key}, #t161.{core::MapEntry::value});
-    #t160.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t160;
-  core::List<core::List<core::int*>*>* list22 = block {
-    final core::List<core::List<core::int*>*>* #t162 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t162.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-  } =>#t162;
-  core::Set<core::List<core::int*>*>* set22 = block {
-    final core::Set<core::List<core::int*>*>* #t163 = col::LinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t163.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t163.{core::Set::add}{Invariant}(null);
-  } =>#t163;
-  core::Map<core::String*, core::List<core::int*>*>* map22 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t164 = <core::String*, core::List<core::int*>*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t165 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries})
-        #t164.{core::Map::[]=}{Invariant}(#t165.{core::MapEntry::key}, #t165.{core::MapEntry::value});
-    #t164.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t164;
-  core::List<core::int*>* list30 = block {
-    final core::List<core::int*>* #t166 = <core::int*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t166.{core::List::addAll}{Invariant}(<core::int*>[42]);
-  } =>#t166;
-  core::Set<core::int*>* set30 = block {
-    final core::Set<core::int*>* #t167 = col::LinkedHashSet::•<core::int*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t167.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t167.{core::Set::add}{Invariant}(null);
-  } =>#t167;
-  core::Map<core::String*, core::int*>* map30 = block {
-    final core::Map<core::String*, core::int*>* #t168 = <core::String*, core::int*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::int*>* #t169 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
-          #t168.{core::Map::[]=}{Invariant}(#t169.{core::MapEntry::key}, #t169.{core::MapEntry::value});
-    #t168.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t168;
-  core::List<dynamic>* list31 = block {
-    final core::List<dynamic>* #t170 = <dynamic>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t170.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
-  } =>#t170;
-  core::Set<dynamic>* set31 = block {
-    final core::Set<dynamic>* #t171 = col::LinkedHashSet::•<dynamic>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t171.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t171.{core::Set::add}{Invariant}(null);
-  } =>#t171;
-  core::Map<core::String*, dynamic>* map31 = block {
-    final core::Map<core::String*, dynamic>* #t172 = <core::String*, dynamic>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, dynamic>* #t173 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
-          #t172.{core::Map::[]=}{Invariant}(#t173.{core::MapEntry::key}, #t173.{core::MapEntry::value});
-    #t172.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t172;
-  core::List<core::List<core::int*>*>* list33 = block {
-    final core::List<core::List<core::int*>*>* #t174 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t174.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-  } =>#t174;
-  core::Set<core::List<core::int*>*>* set33 = block {
-    final core::Set<core::List<core::int*>*>* #t175 = col::LinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t175.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t175.{core::Set::add}{Invariant}(null);
-  } =>#t175;
-  core::Map<core::String*, core::List<core::int*>*>* map33 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t176 = <core::String*, core::List<core::int*>*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t177 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries})
-          #t176.{core::Map::[]=}{Invariant}(#t177.{core::MapEntry::key}, #t177.{core::MapEntry::value});
-    #t176.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t176;
-  core::List<core::List<core::int*>*>* list40 = block {
-    final core::List<core::List<core::int*>*>* #t178 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t178.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t178;
-  core::Set<core::List<core::int*>*>* set40 = block {
-    final core::Set<core::List<core::int*>*>* #t179 = col::LinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t179.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t179.{core::Set::add}{Invariant}(null);
-  } =>#t179;
-  core::Map<core::String*, core::List<core::int*>*>* map40 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t180 = <core::String*, core::List<core::int*>*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t181 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
-        #t180.{core::Map::[]=}{Invariant}(#t181.{core::MapEntry::key}, #t181.{core::MapEntry::value});
-    #t180.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t180;
-  core::List<core::List<core::int*>*>* list41 = block {
-    final core::List<core::List<core::int*>*>* #t182 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t182.{core::List::addAll}{Invariant}( block {
-        final core::Set<core::List<core::int*>*>* #t183 = col::LinkedHashSet::•<core::List<core::int*>*>();
-        #t183.{core::Set::add}{Invariant}(<core::int*>[]);
-      } =>#t183);
-  } =>#t182;
-  core::Set<core::List<core::int*>*>* set41 = block {
-    final core::Set<core::List<core::int*>*>* #t184 = col::LinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t184.{core::Set::addAll}{Invariant}( block {
-        final core::Set<core::List<core::int*>*>* #t185 = col::LinkedHashSet::•<core::List<core::int*>*>();
-        #t185.{core::Set::add}{Invariant}(<core::int*>[]);
-      } =>#t185);
-    #t184.{core::Set::add}{Invariant}(null);
-  } =>#t184;
-  core::List<core::List<core::int*>*>* list42 = block {
-    final core::List<core::List<core::int*>*>* #t186 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t186.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t186.{core::List::add}{Invariant}(42);
   } =>#t186;
-  core::Set<core::List<core::int*>*>* set42 = block {
-    final core::Set<core::List<core::int*>*>* #t187 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::Set<core::int*>* set10 = block {
+    final core::Set<core::int*>* #t187 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t187.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t187.{core::Set::add}{Invariant}(42);
     #t187.{core::Set::add}{Invariant}(null);
   } =>#t187;
-  core::Map<core::String*, core::List<core::int*>*>* map42 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t188 = <core::String*, core::List<core::int*>*>{};
+  core::Map<core::String*, core::int*>* map10 = block {
+    final core::Map<core::String*, core::int*>* #t188 = <core::String*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t189 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
-          #t188.{core::Map::[]=}{Invariant}(#t189.{core::MapEntry::key}, #t189.{core::MapEntry::value});
+      #t188.{core::Map::[]=}{Invariant}("bar", 42);
     #t188.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t188;
-  core::List<core::int*>* list50 = block {
-    final core::List<core::int*>* #t190 = <core::int*>[];
+  core::List<dynamic>* list11 = block {
+    final core::List<dynamic>* #t189 = <dynamic>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t190.{core::List::addAll}{Invariant}(<core::int*>[]);
+      #t189.{core::List::add}{Invariant}(dynVar);
+  } =>#t189;
+  core::Set<dynamic>* set11 = block {
+    final core::Set<dynamic>* #t190 = col::LinkedHashSet::•<dynamic>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t190.{core::Set::add}{Invariant}(dynVar);
+    #t190.{core::Set::add}{Invariant}(null);
   } =>#t190;
-  core::Set<core::int*>* set50 = block {
-    final core::Set<core::int*>* #t191 = col::LinkedHashSet::•<core::int*>();
+  core::Map<core::String*, dynamic>* map11 = block {
+    final core::Map<core::String*, dynamic>* #t191 = <core::String*, dynamic>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t191.{core::Set::addAll}{Invariant}(<core::int*>[]);
-    #t191.{core::Set::add}{Invariant}(null);
+      #t191.{core::Map::[]=}{Invariant}("bar", dynVar);
+    #t191.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t191;
-  core::Map<core::String*, core::int*>* map50 = block {
-    final core::Map<core::String*, core::int*>* #t192 = <core::String*, core::int*>{};
+  core::List<core::List<core::int*>*>* list12 = block {
+    final core::List<core::List<core::int*>*>* #t192 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<core::String*, core::int*>* #t193 in <core::String*, core::int*>{}.{core::Map::entries})
-        #t192.{core::Map::[]=}{Invariant}(#t193.{core::MapEntry::key}, #t193.{core::MapEntry::value});
-    #t192.{core::Map::[]=}{Invariant}("baz", null);
+      #t192.{core::List::add}{Invariant}(<core::int*>[42]);
   } =>#t192;
-  core::List<core::int*>* list51 = block {
-    final core::List<core::int*>* #t194 = <core::int*>[];
+  core::Set<core::List<core::int*>*>* set12 = block {
+    final core::Set<core::List<core::int*>*>* #t193 = col::LinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t194.{core::List::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t195 = col::LinkedHashSet::•<core::int*>();
-      } =>#t195);
+      #t193.{core::Set::add}{Invariant}(<core::int*>[42]);
+    #t193.{core::Set::add}{Invariant}(null);
+  } =>#t193;
+  core::Map<core::String*, core::List<core::int*>*>* map12 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t194 = <core::String*, core::List<core::int*>*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t194.{core::Map::[]=}{Invariant}("bar", <core::int*>[42]);
+    #t194.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t194;
-  core::Set<core::int*>* set51 = block {
-    final core::Set<core::int*>* #t196 = col::LinkedHashSet::•<core::int*>();
+  core::List<core::int*>* list20 = block {
+    final core::List<core::int*>* #t195 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t196.{core::Set::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t197 = col::LinkedHashSet::•<core::int*>();
-      } =>#t197);
-    #t196.{core::Set::add}{Invariant}(null);
-  } =>#t196;
-  core::List<core::int*>* list52 = block {
-    final core::List<core::int*>* #t198 = <core::int*>[];
+      for (final core::int* #t196 in <core::int*>[42])
+        #t195.{core::List::add}{Invariant}(#t196);
+  } =>#t195;
+  core::Set<core::int*>* set20 = block {
+    final core::Set<core::int*>* #t197 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t198.{core::List::addAll}{Invariant}(<core::int*>[]);
-  } =>#t198;
-  core::Set<core::int*>* set52 = block {
-    final core::Set<core::int*>* #t199 = col::LinkedHashSet::•<core::int*>();
+      for (final core::int* #t198 in <core::int*>[42])
+        #t197.{core::Set::add}{Invariant}(#t198);
+    #t197.{core::Set::add}{Invariant}(null);
+  } =>#t197;
+  core::Map<core::String*, core::int*>* map20 = block {
+    final core::Map<core::String*, core::int*>* #t199 = <core::String*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t199.{core::Set::addAll}{Invariant}(<core::int*>[]);
-    #t199.{core::Set::add}{Invariant}(null);
+      for (final core::MapEntry<core::String*, core::int*>* #t200 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
+        #t199.{core::Map::[]=}{Invariant}(#t200.{core::MapEntry::key}, #t200.{core::MapEntry::value});
+    #t199.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t199;
-  core::List<core::List<core::int*>*>* list60 = block {
-    final core::List<core::List<core::int*>*>* #t200 = <core::List<core::int*>*>[];
+  core::List<dynamic>* list21 = block {
+    final core::List<dynamic>* #t201 = <dynamic>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t200.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t200;
-  core::Set<core::List<core::int*>*>* set60 = block {
-    final core::Set<core::List<core::int*>*>* #t201 = col::LinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t201.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t201.{core::Set::add}{Invariant}(null);
+      for (final dynamic #t202 in <dynamic>[dynVar])
+        #t201.{core::List::add}{Invariant}(#t202);
   } =>#t201;
-  core::Map<core::String*, core::List<core::int*>*>* map60 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t202 = <core::String*, core::List<core::int*>*>{};
+  core::Set<dynamic>* set21 = block {
+    final core::Set<dynamic>* #t203 = col::LinkedHashSet::•<dynamic>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t203 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
-        #t202.{core::Map::[]=}{Invariant}(#t203.{core::MapEntry::key}, #t203.{core::MapEntry::value});
-    #t202.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t202;
-  core::List<core::List<core::int*>*>* list61 = block {
-    final core::List<core::List<core::int*>*>* #t204 = <core::List<core::int*>*>[];
+      for (final dynamic #t204 in <dynamic>[dynVar])
+        #t203.{core::Set::add}{Invariant}(#t204);
+    #t203.{core::Set::add}{Invariant}(null);
+  } =>#t203;
+  core::Map<core::String*, dynamic>* map21 = block {
+    final core::Map<core::String*, dynamic>* #t205 = <core::String*, dynamic>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t204.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t204;
-  core::Set<core::List<core::int*>*>* set61 = block {
-    final core::Set<core::List<core::int*>*>* #t205 = col::LinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t205.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t205.{core::Set::add}{Invariant}(null);
+      for (final core::MapEntry<core::String*, dynamic>* #t206 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
+        #t205.{core::Map::[]=}{Invariant}(#t206.{core::MapEntry::key}, #t206.{core::MapEntry::value});
+    #t205.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t205;
-  core::Map<core::String*, core::List<core::int*>*>* map61 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t206 = <core::String*, core::List<core::int*>*>{};
+  core::List<core::List<core::int*>*>* list22 = block {
+    final core::List<core::List<core::int*>*>* #t207 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t207 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
-          #t206.{core::Map::[]=}{Invariant}(#t207.{core::MapEntry::key}, #t207.{core::MapEntry::value});
-    #t206.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t206;
-  core::List<core::List<core::int*>*>* list70 = block {
-    final core::List<core::List<core::int*>*>* #t208 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t208.{core::List::add}{Invariant}(<core::int*>[]);
-  } =>#t208;
-  core::Set<core::List<core::int*>*>* set70 = block {
+      for (final core::List<core::int*>* #t208 in <core::List<core::int*>*>[<core::int*>[42]])
+        #t207.{core::List::add}{Invariant}(#t208);
+  } =>#t207;
+  core::Set<core::List<core::int*>*>* set22 = block {
     final core::Set<core::List<core::int*>*>* #t209 = col::LinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t209.{core::Set::add}{Invariant}(<core::int*>[]);
+      for (final core::List<core::int*>* #t210 in <core::List<core::int*>*>[<core::int*>[42]])
+        #t209.{core::Set::add}{Invariant}(#t210);
     #t209.{core::Set::add}{Invariant}(null);
   } =>#t209;
-  core::Map<core::String*, core::List<core::int*>*>* map70 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t210 = <core::String*, core::List<core::int*>*>{};
+  core::Map<core::String*, core::List<core::int*>*>* map22 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t211 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t210.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
-    #t210.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t210;
-  core::List<core::List<core::int*>*>* list71 = block {
-    final core::List<core::List<core::int*>*>* #t211 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t211.{core::List::add}{Invariant}(<core::int*>[]);
+      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t212 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries})
+        #t211.{core::Map::[]=}{Invariant}(#t212.{core::MapEntry::key}, #t212.{core::MapEntry::value});
+    #t211.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t211;
-  core::Set<core::List<core::int*>*>* set71 = block {
-    final core::Set<core::List<core::int*>*>* #t212 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::List<core::int*>* list30 = block {
+    final core::List<core::int*>* #t213 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t212.{core::Set::add}{Invariant}(<core::int*>[]);
-    #t212.{core::Set::add}{Invariant}(null);
-  } =>#t212;
-  core::Map<core::String*, core::List<core::int*>*>* map71 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t213 = <core::String*, core::List<core::int*>*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t213.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
-    #t213.{core::Map::[]=}{Invariant}("baz", null);
+        for (final core::int* #t214 in <core::int*>[42])
+          #t213.{core::List::add}{Invariant}(#t214);
   } =>#t213;
-  core::List<core::num*>* list80 = block {
-    final core::List<core::num*>* #t214 = <core::num*>[];
+  core::Set<core::int*>* set30 = block {
+    final core::Set<core::int*>* #t215 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t214.{core::List::add}{Invariant}(42);
-      else
-        #t214.{core::List::add}{Invariant}(3.14);
-  } =>#t214;
-  core::Set<core::num*>* set80 = block {
-    final core::Set<core::num*>* #t215 = col::LinkedHashSet::•<core::num*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t215.{core::Set::add}{Invariant}(42);
-      else
-        #t215.{core::Set::add}{Invariant}(3.14);
+        for (final core::int* #t216 in <core::int*>[42])
+          #t215.{core::Set::add}{Invariant}(#t216);
     #t215.{core::Set::add}{Invariant}(null);
   } =>#t215;
-  core::Map<core::String*, core::num*>* map80 = block {
-    final core::Map<core::String*, core::num*>* #t216 = <core::String*, core::num*>{};
+  core::Map<core::String*, core::int*>* map30 = 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} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t216.{core::Map::[]=}{Invariant}("bar", 42);
-      else
-        #t216.{core::Map::[]=}{Invariant}("bar", 3.14);
-    #t216.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t216;
-  core::List<core::num*>* list81 = block {
-    final core::List<core::num*>* #t217 = <core::num*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t217.{core::List::addAll}{Invariant}(listInt);
-      else
-        #t217.{core::List::addAll}{Invariant}(listDouble);
+        for (final core::MapEntry<core::String*, core::int*>* #t218 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
+          #t217.{core::Map::[]=}{Invariant}(#t218.{core::MapEntry::key}, #t218.{core::MapEntry::value});
+    #t217.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t217;
-  core::Set<core::num*>* set81 = block {
-    final core::Set<core::num*>* #t218 = col::LinkedHashSet::•<core::num*>();
+  core::List<dynamic>* list31 = block {
+    final core::List<dynamic>* #t219 = <dynamic>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t218.{core::Set::addAll}{Invariant}(listInt);
-      else
-        #t218.{core::Set::addAll}{Invariant}(listDouble);
-    #t218.{core::Set::add}{Invariant}(null);
-  } =>#t218;
-  core::Map<core::String*, core::num*>* map81 = block {
-    final core::Map<core::String*, core::num*>* #t219 = <core::String*, core::num*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::num*>* #t220 in mapStringInt.{core::Map::entries})
-          #t219.{core::Map::[]=}{Invariant}(#t220.{core::MapEntry::key}, #t220.{core::MapEntry::value});
-      else
-        for (final core::MapEntry<core::String*, core::num*>* #t221 in mapStringDouble.{core::Map::entries})
-          #t219.{core::Map::[]=}{Invariant}(#t221.{core::MapEntry::key}, #t221.{core::MapEntry::value});
-    #t219.{core::Map::[]=}{Invariant}("baz", null);
+        for (final dynamic #t220 in <dynamic>[dynVar])
+          #t219.{core::List::add}{Invariant}(#t220);
   } =>#t219;
-  core::List<dynamic>* list82 = block {
-    final core::List<dynamic>* #t222 = <dynamic>[];
+  core::Set<dynamic>* set31 = block {
+    final core::Set<dynamic>* #t221 = col::LinkedHashSet::•<dynamic>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t222.{core::List::addAll}{Invariant}(listInt);
-      else
-        #t222.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-  } =>#t222;
-  core::Set<dynamic>* set82 = block {
-    final core::Set<dynamic>* #t223 = col::LinkedHashSet::•<dynamic>();
+        for (final dynamic #t222 in <dynamic>[dynVar])
+          #t221.{core::Set::add}{Invariant}(#t222);
+    #t221.{core::Set::add}{Invariant}(null);
+  } =>#t221;
+  core::Map<core::String*, dynamic>* map31 = block {
+    final core::Map<core::String*, dynamic>* #t223 = <core::String*, dynamic>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t223.{core::Set::addAll}{Invariant}(listInt);
-      else
-        #t223.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t223.{core::Set::add}{Invariant}(null);
+        for (final core::MapEntry<core::String*, dynamic>* #t224 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
+          #t223.{core::Map::[]=}{Invariant}(#t224.{core::MapEntry::key}, #t224.{core::MapEntry::value});
+    #t223.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t223;
-  core::Map<dynamic, dynamic>* map82 = block {
-    final core::Map<dynamic, dynamic>* #t224 = <dynamic, dynamic>{};
+  core::List<core::List<core::int*>*>* list33 = block {
+    final core::List<core::List<core::int*>*>* #t225 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<dynamic, dynamic>* #t225 in mapStringInt.{core::Map::entries})
-          #t224.{core::Map::[]=}{Invariant}(#t225.{core::MapEntry::key}, #t225.{core::MapEntry::value});
-      else
-        for (final core::MapEntry<dynamic, dynamic>* #t226 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries})
-          #t224.{core::Map::[]=}{Invariant}(#t226.{core::MapEntry::key}, #t226.{core::MapEntry::value});
-    #t224.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t224;
-  core::List<core::num*>* list83 = block {
-    final core::List<core::num*>* #t227 = <core::num*>[];
+        for (final core::List<core::int*>* #t226 in <core::List<core::int*>*>[<core::int*>[42]])
+          #t225.{core::List::add}{Invariant}(#t226);
+  } =>#t225;
+  core::Set<core::List<core::int*>*>* set33 = block {
+    final core::Set<core::List<core::int*>*>* #t227 = col::LinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t227.{core::List::add}{Invariant}(42);
-      else
-        #t227.{core::List::addAll}{Invariant}(listDouble);
+        for (final core::List<core::int*>* #t228 in <core::List<core::int*>*>[<core::int*>[42]])
+          #t227.{core::Set::add}{Invariant}(#t228);
+    #t227.{core::Set::add}{Invariant}(null);
   } =>#t227;
-  core::Set<core::num*>* set83 = block {
-    final core::Set<core::num*>* #t228 = col::LinkedHashSet::•<core::num*>();
+  core::Map<core::String*, core::List<core::int*>*>* map33 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t229 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t228.{core::Set::addAll}{Invariant}(listInt);
-      else
-        #t228.{core::Set::add}{Invariant}(3.14);
-    #t228.{core::Set::add}{Invariant}(null);
-  } =>#t228;
-  core::Map<core::String*, core::num*>* map83 = block {
-    final core::Map<core::String*, core::num*>* #t229 = <core::String*, core::num*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::num*>* #t230 in mapStringInt.{core::Map::entries})
+        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t230 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries})
           #t229.{core::Map::[]=}{Invariant}(#t230.{core::MapEntry::key}, #t230.{core::MapEntry::value});
-      else
-        #t229.{core::Map::[]=}{Invariant}("bar", 3.14);
     #t229.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t229;
-  core::List<core::int*>* list90 = block {
-    final core::List<core::int*>* #t231 = <core::int*>[];
+  core::List<core::List<core::int*>*>* list40 = block {
+    final core::List<core::List<core::int*>*>* #t231 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t231.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+      for (final core::List<core::int*>* #t232 in <core::List<core::int*>*>[<core::int*>[]])
+        #t231.{core::List::add}{Invariant}(#t232);
   } =>#t231;
-  core::Set<core::int*>* set90 = block {
-    final core::Set<core::int*>* #t232 = col::LinkedHashSet::•<core::int*>();
+  core::Set<core::List<core::int*>*>* set40 = block {
+    final core::Set<core::List<core::int*>*>* #t233 = col::LinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t232.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
-    #t232.{core::Set::add}{Invariant}(null);
-  } =>#t232;
-  core::Map<core::String*, core::int*>* map90 = block {
-    final core::Map<core::String*, core::int*>* #t233 = <core::String*, core::int*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t233.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
-    #t233.{core::Map::[]=}{Invariant}("baz", null);
+      for (final core::List<core::int*>* #t234 in <core::List<core::int*>*>[<core::int*>[]])
+        #t233.{core::Set::add}{Invariant}(#t234);
+    #t233.{core::Set::add}{Invariant}(null);
   } =>#t233;
-  core::List<core::int*>* list91 = block {
-    final core::List<core::int*>* #t234 = <core::int*>[];
+  core::Map<core::String*, core::List<core::int*>*>* map40 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t235 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final dynamic #t235 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-        final core::int* #t236 = #t235 as{TypeError} core::int*;
-        #t234.{core::List::add}{Invariant}(#t236);
-      }
-  } =>#t234;
-  core::Set<core::int*>* set91 = block {
-    final core::Set<core::int*>* #t237 = col::LinkedHashSet::•<core::int*>();
+      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t236 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
+        #t235.{core::Map::[]=}{Invariant}(#t236.{core::MapEntry::key}, #t236.{core::MapEntry::value});
+    #t235.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t235;
+  core::List<core::List<core::int*>*>* list41 = block {
+    final core::List<core::List<core::int*>*>* #t237 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final dynamic #t238 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-        final core::int* #t239 = #t238 as{TypeError} core::int*;
-        #t237.{core::Set::add}{Invariant}(#t239);
-      }
-    #t237.{core::Set::add}{Invariant}(null);
+      for (final core::List<core::int*>* #t238 in block {
+        final core::Set<core::List<core::int*>*>* #t239 = col::LinkedHashSet::•<core::List<core::int*>*>();
+        #t239.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t239)
+        #t237.{core::List::add}{Invariant}(#t238);
   } =>#t237;
-  core::Map<core::String*, core::int*>* map91 = block {
-    final core::Map<core::String*, core::int*>* #t240 = <core::String*, core::int*>{};
+  core::Set<core::List<core::int*>*>* set41 = block {
+    final core::Set<core::List<core::int*>*>* #t240 = col::LinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<dynamic, dynamic>* #t241 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}) {
-        final core::String* #t242 = #t241.{core::MapEntry::key} as{TypeError} core::String*;
-        final core::int* #t243 = #t241.{core::MapEntry::value} as{TypeError} core::int*;
-        #t240.{core::Map::[]=}{Invariant}(#t242, #t243);
-      }
-    #t240.{core::Map::[]=}{Invariant}("baz", null);
+      for (final core::List<core::int*>* #t241 in block {
+        final core::Set<core::List<core::int*>*>* #t242 = col::LinkedHashSet::•<core::List<core::int*>*>();
+        #t242.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t242)
+        #t240.{core::Set::add}{Invariant}(#t241);
+    #t240.{core::Set::add}{Invariant}(null);
   } =>#t240;
-  core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t244 = <core::int*>[];
-    for (final core::int* #t245 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
-      #t244.{core::List::add}{Invariant}(42);
-  } =>#t244;
-  core::Set<core::int*>* set100 = block {
-    final core::Set<core::int*>* #t246 = col::LinkedHashSet::•<core::int*>();
-    for (final core::int* #t247 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
-      #t246.{core::Set::add}{Invariant}(42);
-  } =>#t246;
-  core::Map<core::String*, core::int*>* map100 = block {
-    final core::Map<core::String*, core::int*>* #t248 = <core::String*, core::int*>{};
-    for (final core::int* #t249 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
-      #t248.{core::Map::[]=}{Invariant}("bar", 42);
-  } =>#t248;
-  core::List<core::int*>* list110 = block {
-    final core::List<core::int*>* #t250 = <core::int*>[];
-    for (core::int* i in <core::int*>[1, 2, 3])
-      #t250.{core::List::add}{Invariant}(i);
-  } =>#t250;
-  core::Set<core::int*>* set110 = block {
+  core::List<core::List<core::int*>*>* list42 = block {
+    final core::List<core::List<core::int*>*>* #t243 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t244 in <core::List<core::int*>*>[<core::int*>[]])
+          #t243.{core::List::add}{Invariant}(#t244);
+  } =>#t243;
+  core::Set<core::List<core::int*>*>* set42 = block {
+    final core::Set<core::List<core::int*>*>* #t245 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t246 in <core::List<core::int*>*>[<core::int*>[]])
+          #t245.{core::Set::add}{Invariant}(#t246);
+    #t245.{core::Set::add}{Invariant}(null);
+  } =>#t245;
+  core::Map<core::String*, core::List<core::int*>*>* map42 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t247 = <core::String*, core::List<core::int*>*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t248 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
+          #t247.{core::Map::[]=}{Invariant}(#t248.{core::MapEntry::key}, #t248.{core::MapEntry::value});
+    #t247.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t247;
+  core::List<core::int*>* list50 = block {
+    final core::List<core::int*>* #t249 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::int* #t250 in <core::int*>[])
+        #t249.{core::List::add}{Invariant}(#t250);
+  } =>#t249;
+  core::Set<core::int*>* set50 = block {
     final core::Set<core::int*>* #t251 = col::LinkedHashSet::•<core::int*>();
-    for (core::int* i in <core::int*>[1, 2, 3])
-      #t251.{core::Set::add}{Invariant}(i);
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::int* #t252 in <core::int*>[])
+        #t251.{core::Set::add}{Invariant}(#t252);
     #t251.{core::Set::add}{Invariant}(null);
   } =>#t251;
-  core::Map<core::String*, core::int*>* map110 = block {
-    final core::Map<core::String*, core::int*>* #t252 = <core::String*, core::int*>{};
-    for (core::int* i in <core::int*>[1, 2, 3])
-      #t252.{core::Map::[]=}{Invariant}("bar", i);
-    #t252.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t252;
-  core::List<core::int*>* list120 = block {
-    final core::List<core::int*>* #t253 = <core::int*>[];
-    for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
-      #t253.{core::List::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
+  core::Map<core::String*, core::int*>* map50 = block {
+    final core::Map<core::String*, core::int*>* #t253 = <core::String*, core::int*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::MapEntry<core::String*, core::int*>* #t254 in <core::String*, core::int*>{}.{core::Map::entries})
+        #t253.{core::Map::[]=}{Invariant}(#t254.{core::MapEntry::key}, #t254.{core::MapEntry::value});
+    #t253.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t253;
-  core::Set<core::int*>* set120 = block {
-    final core::Set<core::int*>* #t254 = col::LinkedHashSet::•<core::int*>();
-    for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
-      #t254.{core::Set::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
-    #t254.{core::Set::add}{Invariant}(null);
-  } =>#t254;
-  core::Map<core::String*, core::int*>* map120 = block {
-    final core::Map<core::String*, core::int*>* #t255 = <core::String*, core::int*>{};
-    for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
-      #t255.{core::Map::[]=}{Invariant}("bar", i as{TypeError,ForDynamic} core::int*);
-    #t255.{core::Map::[]=}{Invariant}("baz", null);
+  core::List<core::int*>* list51 = block {
+    final core::List<core::int*>* #t255 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::int* #t256 in block {
+        final core::Set<core::int*>* #t257 = col::LinkedHashSet::•<core::int*>();
+      } =>#t257)
+        #t255.{core::List::add}{Invariant}(#t256);
   } =>#t255;
-  core::List<core::int*>* list130 = block {
-    final core::List<core::int*>* #t256 = <core::int*>[];
-    for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
-      #t256.{core::List::add}{Invariant}(i);
-  } =>#t256;
-  core::Set<core::int*>* set130 = block {
-    final core::Set<core::int*>* #t257 = col::LinkedHashSet::•<core::int*>();
-    for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
-      #t257.{core::Set::add}{Invariant}(i);
-  } =>#t257;
-  core::Map<core::int*, core::int*>* map130 = block {
-    final core::Map<core::int*, core::int*>* #t258 = <core::int*, core::int*>{};
-    for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
-      #t258.{core::Map::[]=}{Invariant}(i, i);
+  core::Set<core::int*>* set51 = block {
+    final core::Set<core::int*>* #t258 = col::LinkedHashSet::•<core::int*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::int* #t259 in block {
+        final core::Set<core::int*>* #t260 = col::LinkedHashSet::•<core::int*>();
+      } =>#t260)
+        #t258.{core::Set::add}{Invariant}(#t259);
+    #t258.{core::Set::add}{Invariant}(null);
   } =>#t258;
+  core::List<core::int*>* list52 = block {
+    final core::List<core::int*>* #t261 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::int* #t262 in <core::int*>[])
+          #t261.{core::List::add}{Invariant}(#t262);
+  } =>#t261;
+  core::Set<core::int*>* set52 = block {
+    final core::Set<core::int*>* #t263 = col::LinkedHashSet::•<core::int*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::int* #t264 in <core::int*>[])
+          #t263.{core::Set::add}{Invariant}(#t264);
+    #t263.{core::Set::add}{Invariant}(null);
+  } =>#t263;
+  core::List<core::List<core::int*>*>* list60 = block {
+    final core::List<core::List<core::int*>*>* #t265 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::List<core::int*>* #t266 in <core::List<core::int*>*>[<core::int*>[]])
+        #t265.{core::List::add}{Invariant}(#t266);
+  } =>#t265;
+  core::Set<core::List<core::int*>*>* set60 = block {
+    final core::Set<core::List<core::int*>*>* #t267 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::List<core::int*>* #t268 in <core::List<core::int*>*>[<core::int*>[]])
+        #t267.{core::Set::add}{Invariant}(#t268);
+    #t267.{core::Set::add}{Invariant}(null);
+  } =>#t267;
+  core::Map<core::String*, core::List<core::int*>*>* map60 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t269 = <core::String*, core::List<core::int*>*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t270 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
+        #t269.{core::Map::[]=}{Invariant}(#t270.{core::MapEntry::key}, #t270.{core::MapEntry::value});
+    #t269.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t269;
+  core::List<core::List<core::int*>*>* list61 = block {
+    final core::List<core::List<core::int*>*>* #t271 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t272 in <core::List<core::int*>*>[<core::int*>[]])
+          #t271.{core::List::add}{Invariant}(#t272);
+  } =>#t271;
+  core::Set<core::List<core::int*>*>* set61 = block {
+    final core::Set<core::List<core::int*>*>* #t273 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t274 in <core::List<core::int*>*>[<core::int*>[]])
+          #t273.{core::Set::add}{Invariant}(#t274);
+    #t273.{core::Set::add}{Invariant}(null);
+  } =>#t273;
+  core::Map<core::String*, core::List<core::int*>*>* map61 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t275 = <core::String*, core::List<core::int*>*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t276 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
+          #t275.{core::Map::[]=}{Invariant}(#t276.{core::MapEntry::key}, #t276.{core::MapEntry::value});
+    #t275.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t275;
+  core::List<core::List<core::int*>*>* list70 = block {
+    final core::List<core::List<core::int*>*>* #t277 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t277.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t277;
+  core::Set<core::List<core::int*>*>* set70 = block {
+    final core::Set<core::List<core::int*>*>* #t278 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t278.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t278.{core::Set::add}{Invariant}(null);
+  } =>#t278;
+  core::Map<core::String*, core::List<core::int*>*>* map70 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t279 = <core::String*, core::List<core::int*>*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t279.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
+    #t279.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t279;
+  core::List<core::List<core::int*>*>* list71 = block {
+    final core::List<core::List<core::int*>*>* #t280 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t280.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t280;
+  core::Set<core::List<core::int*>*>* set71 = block {
+    final core::Set<core::List<core::int*>*>* #t281 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t281.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t281.{core::Set::add}{Invariant}(null);
+  } =>#t281;
+  core::Map<core::String*, core::List<core::int*>*>* map71 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t282 = <core::String*, core::List<core::int*>*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t282.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
+    #t282.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t282;
+  core::List<core::num*>* list80 = block {
+    final core::List<core::num*>* #t283 = <core::num*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t283.{core::List::add}{Invariant}(42);
+      else
+        #t283.{core::List::add}{Invariant}(3.14);
+  } =>#t283;
+  core::Set<core::num*>* set80 = block {
+    final core::Set<core::num*>* #t284 = col::LinkedHashSet::•<core::num*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t284.{core::Set::add}{Invariant}(42);
+      else
+        #t284.{core::Set::add}{Invariant}(3.14);
+    #t284.{core::Set::add}{Invariant}(null);
+  } =>#t284;
+  core::Map<core::String*, core::num*>* map80 = block {
+    final core::Map<core::String*, core::num*>* #t285 = <core::String*, core::num*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t285.{core::Map::[]=}{Invariant}("bar", 42);
+      else
+        #t285.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t285.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t285;
+  core::List<core::num*>* list81 = block {
+    final core::List<core::num*>* #t286 = <core::num*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::num* #t287 in listInt)
+          #t286.{core::List::add}{Invariant}(#t287);
+      else
+        for (final core::num* #t288 in listDouble)
+          #t286.{core::List::add}{Invariant}(#t288);
+  } =>#t286;
+  core::Set<core::num*>* set81 = block {
+    final core::Set<core::num*>* #t289 = col::LinkedHashSet::•<core::num*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::num* #t290 in listInt)
+          #t289.{core::Set::add}{Invariant}(#t290);
+      else
+        for (final core::num* #t291 in listDouble)
+          #t289.{core::Set::add}{Invariant}(#t291);
+    #t289.{core::Set::add}{Invariant}(null);
+  } =>#t289;
+  core::Map<core::String*, core::num*>* map81 = block {
+    final core::Map<core::String*, core::num*>* #t292 = <core::String*, core::num*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, core::num*>* #t293 in mapStringInt.{core::Map::entries})
+          #t292.{core::Map::[]=}{Invariant}(#t293.{core::MapEntry::key}, #t293.{core::MapEntry::value});
+      else
+        for (final core::MapEntry<core::String*, core::num*>* #t294 in mapStringDouble.{core::Map::entries})
+          #t292.{core::Map::[]=}{Invariant}(#t294.{core::MapEntry::key}, #t294.{core::MapEntry::value});
+    #t292.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t292;
+  core::List<dynamic>* list82 = block {
+    final core::List<dynamic>* #t295 = <dynamic>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final dynamic #t296 in listInt)
+          #t295.{core::List::add}{Invariant}(#t296);
+      else
+        for (final dynamic #t297 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+          #t295.{core::List::add}{Invariant}(#t297);
+  } =>#t295;
+  core::Set<dynamic>* set82 = block {
+    final core::Set<dynamic>* #t298 = col::LinkedHashSet::•<dynamic>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final dynamic #t299 in listInt)
+          #t298.{core::Set::add}{Invariant}(#t299);
+      else
+        for (final dynamic #t300 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+          #t298.{core::Set::add}{Invariant}(#t300);
+    #t298.{core::Set::add}{Invariant}(null);
+  } =>#t298;
+  core::Map<dynamic, dynamic>* map82 = block {
+    final core::Map<dynamic, dynamic>* #t301 = <dynamic, dynamic>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<dynamic, dynamic>* #t302 in mapStringInt.{core::Map::entries})
+          #t301.{core::Map::[]=}{Invariant}(#t302.{core::MapEntry::key}, #t302.{core::MapEntry::value});
+      else
+        for (final core::MapEntry<dynamic, dynamic>* #t303 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries})
+          #t301.{core::Map::[]=}{Invariant}(#t303.{core::MapEntry::key}, #t303.{core::MapEntry::value});
+    #t301.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t301;
+  core::List<core::num*>* list83 = block {
+    final core::List<core::num*>* #t304 = <core::num*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t304.{core::List::add}{Invariant}(42);
+      else
+        for (final core::num* #t305 in listDouble)
+          #t304.{core::List::add}{Invariant}(#t305);
+  } =>#t304;
+  core::Set<core::num*>* set83 = block {
+    final core::Set<core::num*>* #t306 = col::LinkedHashSet::•<core::num*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::num* #t307 in listInt)
+          #t306.{core::Set::add}{Invariant}(#t307);
+      else
+        #t306.{core::Set::add}{Invariant}(3.14);
+    #t306.{core::Set::add}{Invariant}(null);
+  } =>#t306;
+  core::Map<core::String*, core::num*>* map83 = block {
+    final core::Map<core::String*, core::num*>* #t308 = <core::String*, core::num*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, core::num*>* #t309 in mapStringInt.{core::Map::entries})
+          #t308.{core::Map::[]=}{Invariant}(#t309.{core::MapEntry::key}, #t309.{core::MapEntry::value});
+      else
+        #t308.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t308.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t308;
+  core::List<core::int*>* list90 = block {
+    final core::List<core::int*>* #t310 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t310.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+  } =>#t310;
+  core::Set<core::int*>* set90 = block {
+    final core::Set<core::int*>* #t311 = col::LinkedHashSet::•<core::int*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t311.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+    #t311.{core::Set::add}{Invariant}(null);
+  } =>#t311;
+  core::Map<core::String*, core::int*>* map90 = block {
+    final core::Map<core::String*, core::int*>* #t312 = <core::String*, core::int*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t312.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
+    #t312.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t312;
+  core::List<core::int*>* list91 = block {
+    final core::List<core::int*>* #t313 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final dynamic #t314 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+        final core::int* #t315 = #t314 as{TypeError} core::int*;
+        #t313.{core::List::add}{Invariant}(#t315);
+      }
+  } =>#t313;
+  core::Set<core::int*>* set91 = block {
+    final core::Set<core::int*>* #t316 = col::LinkedHashSet::•<core::int*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final dynamic #t317 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+        final core::int* #t318 = #t317 as{TypeError} core::int*;
+        #t316.{core::Set::add}{Invariant}(#t318);
+      }
+    #t316.{core::Set::add}{Invariant}(null);
+  } =>#t316;
+  core::Map<core::String*, core::int*>* map91 = block {
+    final core::Map<core::String*, core::int*>* #t319 = <core::String*, core::int*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::MapEntry<dynamic, dynamic>* #t320 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}) {
+        final core::String* #t321 = #t320.{core::MapEntry::key} as{TypeError} core::String*;
+        final core::int* #t322 = #t320.{core::MapEntry::value} as{TypeError} core::int*;
+        #t319.{core::Map::[]=}{Invariant}(#t321, #t322);
+      }
+    #t319.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t319;
+  core::List<core::int*>* list100 = block {
+    final core::List<core::int*>* #t323 = <core::int*>[];
+    for (final core::int* #t324 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
+      #t323.{core::List::add}{Invariant}(42);
+  } =>#t323;
+  core::Set<core::int*>* set100 = block {
+    final core::Set<core::int*>* #t325 = col::LinkedHashSet::•<core::int*>();
+    for (final core::int* #t326 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
+      #t325.{core::Set::add}{Invariant}(42);
+  } =>#t325;
+  core::Map<core::String*, core::int*>* map100 = block {
+    final core::Map<core::String*, core::int*>* #t327 = <core::String*, core::int*>{};
+    for (final core::int* #t328 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
+      #t327.{core::Map::[]=}{Invariant}("bar", 42);
+  } =>#t327;
+  core::List<core::int*>* list110 = block {
+    final core::List<core::int*>* #t329 = <core::int*>[];
+    for (core::int* i in <core::int*>[1, 2, 3])
+      #t329.{core::List::add}{Invariant}(i);
+  } =>#t329;
+  core::Set<core::int*>* set110 = block {
+    final core::Set<core::int*>* #t330 = col::LinkedHashSet::•<core::int*>();
+    for (core::int* i in <core::int*>[1, 2, 3])
+      #t330.{core::Set::add}{Invariant}(i);
+    #t330.{core::Set::add}{Invariant}(null);
+  } =>#t330;
+  core::Map<core::String*, core::int*>* map110 = block {
+    final core::Map<core::String*, core::int*>* #t331 = <core::String*, core::int*>{};
+    for (core::int* i in <core::int*>[1, 2, 3])
+      #t331.{core::Map::[]=}{Invariant}("bar", i);
+    #t331.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t331;
+  core::List<core::int*>* list120 = block {
+    final core::List<core::int*>* #t332 = <core::int*>[];
+    for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+      #t332.{core::List::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
+  } =>#t332;
+  core::Set<core::int*>* set120 = block {
+    final core::Set<core::int*>* #t333 = col::LinkedHashSet::•<core::int*>();
+    for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+      #t333.{core::Set::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
+    #t333.{core::Set::add}{Invariant}(null);
+  } =>#t333;
+  core::Map<core::String*, core::int*>* map120 = block {
+    final core::Map<core::String*, core::int*>* #t334 = <core::String*, core::int*>{};
+    for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+      #t334.{core::Map::[]=}{Invariant}("bar", i as{TypeError,ForDynamic} core::int*);
+    #t334.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t334;
+  core::List<core::int*>* list130 = block {
+    final core::List<core::int*>* #t335 = <core::int*>[];
+    for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
+      #t335.{core::List::add}{Invariant}(i);
+  } =>#t335;
+  core::Set<core::int*>* set130 = block {
+    final core::Set<core::int*>* #t336 = col::LinkedHashSet::•<core::int*>();
+    for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
+      #t336.{core::Set::add}{Invariant}(i);
+  } =>#t336;
+  core::Map<core::int*, core::int*>* map130 = block {
+    final core::Map<core::int*, core::int*>* #t337 = <core::int*, core::int*>{};
+    for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
+      #t337.{core::Map::[]=}{Invariant}(i, i);
+  } =>#t337;
 }
 static method testForElementErrors(core::Map<core::int*, core::int*>* map, core::List<core::int*>* list) → dynamic async {
   block {
-    final core::List<core::int*>* #t259 = <core::int*>[];
+    final core::List<core::int*>* #t338 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t259.{core::List::add}{Invariant}(let final<BottomType> #t260 = 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'.
+      #t338.{core::List::add}{Invariant}(let final<BottomType> #t339 = 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'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) \"bar\"];
                                             ^" in "bar" as{TypeError} core::int*);
-  } =>#t259;
+  } =>#t338;
   block {
-    final core::Set<core::int*>* #t261 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t340 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t261.{core::Set::add}{Invariant}(let final<BottomType> #t262 = 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'.
+      #t340.{core::Set::add}{Invariant}(let final<BottomType> #t341 = 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'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\", null};
                                             ^" in "bar" as{TypeError} core::int*);
-    #t261.{core::Set::add}{Invariant}(null);
-  } =>#t261;
+    #t340.{core::Set::add}{Invariant}(null);
+  } =>#t340;
   block {
-    final core::Map<core::int*, core::int*>* #t263 = <core::int*, core::int*>{};
+    final core::Map<core::int*, core::int*>* #t342 = <core::int*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t263.{core::Map::[]=}{Invariant}(let final<BottomType> #t264 = 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'.
+      #t342.{core::Map::[]=}{Invariant}(let final<BottomType> #t343 = 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'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
-                                                 ^" in "bar" as{TypeError} core::int*, let final<BottomType> #t265 = 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*, let final<BottomType> #t344 = 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'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
                                                         ^" in "bar" as{TypeError} core::int*);
-    #t263.{core::Map::[]=}{Invariant}(let final<BottomType> #t266 = 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'.
+    #t342.{core::Map::[]=}{Invariant}(let final<BottomType> #t345 = 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'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
                                                                ^" in "baz" as{TypeError} core::int*, null);
-  } =>#t263;
+  } =>#t342;
   block {
-    final core::List<core::int*>* #t267 = <core::int*>[];
+    final core::List<core::int*>* #t346 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t267.{core::List::addAll}{Invariant}(<core::int*>[let final<BottomType> #t268 = 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'.
+      for (final core::int* #t347 in <core::int*>[let final<BottomType> #t348 = 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'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"]];
-                                                ^" in "bar" as{TypeError} core::int*]);
-  } =>#t267;
+                                                ^" in "bar" as{TypeError} core::int*])
+        #t346.{core::List::add}{Invariant}(#t347);
+  } =>#t346;
   block {
-    final core::Set<core::int*>* #t269 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t349 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t269.{core::Set::addAll}{Invariant}(<core::int*>[let final<BottomType> #t270 = 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'.
+      for (final core::int* #t350 in <core::int*>[let final<BottomType> #t351 = 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'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"], null};
-                                                ^" in "bar" as{TypeError} core::int*]);
-    #t269.{core::Set::add}{Invariant}(null);
-  } =>#t269;
+                                                ^" in "bar" as{TypeError} core::int*])
+        #t349.{core::Set::add}{Invariant}(#t350);
+    #t349.{core::Set::add}{Invariant}(null);
+  } =>#t349;
   block {
-    final core::Map<core::int*, core::int*>* #t271 = <core::int*, core::int*>{};
+    final core::Map<core::int*, core::int*>* #t352 = <core::int*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<core::int*, core::int*>* #t272 in <core::int*, core::int*>{let final<BottomType> #t273 = 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*>* #t353 in <core::int*, core::int*>{let final<BottomType> #t354 = 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'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
-                                                     ^" in "bar" as{TypeError} core::int*: let final<BottomType> #t274 = 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*: let final<BottomType> #t355 = 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'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
                                                             ^" in "bar" as{TypeError} core::int*}.{core::Map::entries})
-        #t271.{core::Map::[]=}{Invariant}(#t272.{core::MapEntry::key}, #t272.{core::MapEntry::value});
-    #t271.{core::Map::[]=}{Invariant}(let final<BottomType> #t275 = 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'.
+        #t352.{core::Map::[]=}{Invariant}(#t353.{core::MapEntry::key}, #t353.{core::MapEntry::value});
+    #t352.{core::Map::[]=}{Invariant}(let final<BottomType> #t356 = 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'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
                                                                     ^" in "baz" as{TypeError} core::int*, null);
-  } =>#t271;
+  } =>#t352;
   block {
-    final core::List<core::int*>* #t276 = <core::int*>[];
+    final core::List<core::int*>* #t357 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t276.{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.
+      #t357.{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.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) ...map];
                                                ^");
-  } =>#t276;
+  } =>#t357;
   block {
-    final core::Set<core::int*>* #t277 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t358 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t277.{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.
+      #t358.{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.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) ...map, null};
                                                ^");
-    #t277.{core::Set::add}{Invariant}(null);
-  } =>#t277;
+    #t358.{core::Set::add}{Invariant}(null);
+  } =>#t358;
   <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.
  - 'List' is from 'dart:core'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
@@ -1839,66 +1920,66 @@
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
                                                     ^": null};
   block {
-    final core::List<core::String*>* #t278 = <core::String*>[];
+    final core::List<core::String*>* #t359 = <core::String*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t278.{core::List::add}{Invariant}(let final<BottomType> #t279 = 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'.
+        #t359.{core::List::add}{Invariant}(let final<BottomType> #t360 = 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'.
   <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
                                                              ^" in 42 as{TypeError} core::String*);
       else
-        #t278.{core::List::add}{Invariant}(let final<BottomType> #t280 = 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'.
+        #t359.{core::List::add}{Invariant}(let final<BottomType> #t361 = 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'.
   <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
                                                                      ^" in 3.14 as{TypeError} core::String*);
-  } =>#t278;
+  } =>#t359;
   block {
-    final core::Set<core::String*>* #t281 = col::LinkedHashSet::•<core::String*>();
+    final core::Set<core::String*>* #t362 = col::LinkedHashSet::•<core::String*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t281.{core::Set::add}{Invariant}(let final<BottomType> #t282 = 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'.
+        #t362.{core::Set::add}{Invariant}(let final<BottomType> #t363 = 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'.
   <String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
                                                              ^" in 42 as{TypeError} core::String*);
       else
-        #t281.{core::Set::add}{Invariant}(let final<BottomType> #t283 = 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'.
+        #t362.{core::Set::add}{Invariant}(let final<BottomType> #t364 = 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'.
   <String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
                                                                      ^" in 3.14 as{TypeError} core::String*);
-    #t281.{core::Set::add}{Invariant}(null);
-  } =>#t281;
+    #t362.{core::Set::add}{Invariant}(null);
+  } =>#t362;
   block {
-    final core::Map<core::String*, core::String*>* #t284 = <core::String*, core::String*>{};
+    final core::Map<core::String*, core::String*>* #t365 = <core::String*, core::String*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t284.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t285 = 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'.
+        #t365.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t366 = 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'.
   <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*);
       else
-        #t284.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t286 = 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'.
+        #t365.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t367 = 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'.
   <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*);
-    #t284.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t284;
+    #t365.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t365;
   block {
-    final core::List<core::int*>* #t287 = <core::int*>[];
+    final core::List<core::int*>* #t368 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t287.{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.
+        #t368.{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.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42];
                                                              ^");
       else
-        #t287.{core::List::add}{Invariant}(42);
-  } =>#t287;
+        #t368.{core::List::add}{Invariant}(42);
+  } =>#t368;
   block {
-    final core::Set<core::int*>* #t288 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t369 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t288.{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.
+        #t369.{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.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42, null};
                                                              ^");
       else
-        #t288.{core::Set::add}{Invariant}(42);
-    #t288.{core::Set::add}{Invariant}(null);
-  } =>#t288;
+        #t369.{core::Set::add}{Invariant}(42);
+    #t369.{core::Set::add}{Invariant}(null);
+  } =>#t369;
   <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.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
@@ -1907,28 +1988,28 @@
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
                                                                      ^": null};
   block {
-    final core::List<core::int*>* #t289 = <core::int*>[];
+    final core::List<core::int*>* #t370 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t289.{core::List::add}{Invariant}(42);
+        #t370.{core::List::add}{Invariant}(42);
       else
-        #t289.{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.
+        #t370.{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.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map];
                                                                      ^");
-  } =>#t289;
+  } =>#t370;
   block {
-    final core::Set<core::int*>* #t290 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t371 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t290.{core::Set::add}{Invariant}(42);
+        #t371.{core::Set::add}{Invariant}(42);
       else
-        #t290.{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.
+        #t371.{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.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map, null};
                                                                      ^");
-    #t290.{core::Set::add}{Invariant}(null);
-  } =>#t290;
+    #t371.{core::Set::add}{Invariant}(null);
+  } =>#t371;
   <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.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else ...list, \"baz\": null};
@@ -1938,218 +2019,218 @@
                                                                                     ^": null};
   final core::int* i = 0;
   block {
-    final core::List<core::int*>* #t291 = <core::int*>[];
-    for (final core::int* #t292 in <core::int*>[1]) {
+    final core::List<core::int*>* #t372 = <core::int*>[];
+    for (final core::int* #t373 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'.
   <int>[for (i in <int>[1]) i];
              ^";
-      #t291.{core::List::add}{Invariant}(i);
+      #t372.{core::List::add}{Invariant}(i);
     }
-  } =>#t291;
+  } =>#t372;
   block {
-    final core::Set<core::int*>* #t293 = col::LinkedHashSet::•<core::int*>();
-    for (final core::int* #t294 in <core::int*>[1]) {
+    final core::Set<core::int*>* #t374 = col::LinkedHashSet::•<core::int*>();
+    for (final core::int* #t375 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'.
   <int>{for (i in <int>[1]) i, null};
              ^";
-      #t293.{core::Set::add}{Invariant}(i);
+      #t374.{core::Set::add}{Invariant}(i);
     }
-    #t293.{core::Set::add}{Invariant}(null);
-  } =>#t293;
+    #t374.{core::Set::add}{Invariant}(null);
+  } =>#t374;
   block {
-    final core::Map<core::String*, core::int*>* #t295 = <core::String*, core::int*>{};
-    for (final core::int* #t296 in <core::int*>[1]) {
+    final core::Map<core::String*, core::int*>* #t376 = <core::String*, core::int*>{};
+    for (final core::int* #t377 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'.
 \t<String, int>{for (i in <int>[1]) \"bar\": i, \"baz\": null};
 \t                   ^";
-      #t295.{core::Map::[]=}{Invariant}("bar", i);
+      #t376.{core::Map::[]=}{Invariant}("bar", i);
     }
-    #t295.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t295;
+    #t376.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t376;
   core::List<dynamic>* list10 = block {
-    final core::List<dynamic>* #t297 = <dynamic>[];
-    for (dynamic i in let final<BottomType> #t298 = 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>'.
+    final core::List<dynamic>* #t378 = <dynamic>[];
+    for (dynamic i in let final<BottomType> #t379 = 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>'.
  - 'Iterable' is from 'dart:core'.
   var list10 = [for (var i in \"not iterable\") i];
                               ^" in "not iterable" as{TypeError} core::Iterable<dynamic>*)
-      #t297.{core::List::add}{Invariant}(i);
-  } =>#t297;
+      #t378.{core::List::add}{Invariant}(i);
+  } =>#t378;
   core::Set<dynamic>* set10 = block {
-    final core::Set<dynamic>* #t299 = col::LinkedHashSet::•<dynamic>();
-    for (dynamic i in let final<BottomType> #t300 = 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>'.
+    final core::Set<dynamic>* #t380 = col::LinkedHashSet::•<dynamic>();
+    for (dynamic i in let final<BottomType> #t381 = 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>'.
  - 'Iterable' is from 'dart:core'.
   var set10 = {for (var i in \"not iterable\") i, null};
                              ^" in "not iterable" as{TypeError} core::Iterable<dynamic>*)
-      #t299.{core::Set::add}{Invariant}(i);
-    #t299.{core::Set::add}{Invariant}(null);
-  } =>#t299;
+      #t380.{core::Set::add}{Invariant}(i);
+    #t380.{core::Set::add}{Invariant}(null);
+  } =>#t380;
   core::Map<core::String*, dynamic>* map10 = block {
-    final core::Map<core::String*, dynamic>* #t301 = <core::String*, dynamic>{};
-    for (dynamic i in let final<BottomType> #t302 = 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>'.
+    final core::Map<core::String*, dynamic>* #t382 = <core::String*, dynamic>{};
+    for (dynamic i in let final<BottomType> #t383 = 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>'.
  - '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>*)
-      #t301.{core::Map::[]=}{Invariant}("bar", i);
-    #t301.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t301;
+      #t382.{core::Map::[]=}{Invariant}("bar", i);
+    #t382.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t382;
   core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t303 = <core::int*>[];
-    for (core::int* i in <core::int*>[let final<BottomType> #t304 = 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'.
+    final core::List<core::int*>* #t384 = <core::int*>[];
+    for (core::int* i in <core::int*>[let final<BottomType> #t385 = 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'.
   var list20 = [for (int i in [\"not\", \"int\"]) i];
-                               ^" in "not" as{TypeError} core::int*, let final<BottomType> #t305 = 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*, let final<BottomType> #t386 = 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'.
   var list20 = [for (int i in [\"not\", \"int\"]) i];
                                       ^" in "int" as{TypeError} core::int*])
-      #t303.{core::List::add}{Invariant}(i);
-  } =>#t303;
+      #t384.{core::List::add}{Invariant}(i);
+  } =>#t384;
   core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t306 = col::LinkedHashSet::•<core::int*>();
-    for (core::int* i in <core::int*>[let final<BottomType> #t307 = 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'.
+    final core::Set<core::int*>* #t387 = col::LinkedHashSet::•<core::int*>();
+    for (core::int* i in <core::int*>[let final<BottomType> #t388 = 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'.
   var set20 = {for (int i in [\"not\", \"int\"]) i, null};
-                              ^" in "not" as{TypeError} core::int*, let final<BottomType> #t308 = 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*, let final<BottomType> #t389 = 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'.
   var set20 = {for (int i in [\"not\", \"int\"]) i, null};
                                      ^" in "int" as{TypeError} core::int*])
-      #t306.{core::Set::add}{Invariant}(i);
-    #t306.{core::Set::add}{Invariant}(null);
-  } =>#t306;
+      #t387.{core::Set::add}{Invariant}(i);
+    #t387.{core::Set::add}{Invariant}(null);
+  } =>#t387;
   core::Map<core::String*, core::int*>* map20 = block {
-    final core::Map<core::String*, core::int*>* #t309 = <core::String*, core::int*>{};
-    for (core::int* i in <core::int*>[let final<BottomType> #t310 = 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'.
+    final core::Map<core::String*, core::int*>* #t390 = <core::String*, core::int*>{};
+    for (core::int* i in <core::int*>[let final<BottomType> #t391 = 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'.
   var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
-                              ^" in "not" as{TypeError} core::int*, let final<BottomType> #t311 = 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*, let final<BottomType> #t392 = 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'.
   var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
                                      ^" in "int" as{TypeError} core::int*])
-      #t309.{core::Map::[]=}{Invariant}("bar", i);
-    #t309.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t309;
+      #t390.{core::Map::[]=}{Invariant}("bar", i);
+    #t390.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t390;
   core::List<dynamic>* list30 = block {
-    final core::List<dynamic>* #t312 = <dynamic>[];
-    await for (dynamic i in let final<BottomType> #t313 = 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>'.
+    final core::List<dynamic>* #t393 = <dynamic>[];
+    await for (dynamic i in let final<BottomType> #t394 = 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>'.
  - 'Stream' is from 'dart:async'.
   var list30 = [await for (var i in \"not stream\") i];
                                     ^" in "not stream" as{TypeError} asy::Stream<dynamic>*)
-      #t312.{core::List::add}{Invariant}(i);
-  } =>#t312;
+      #t393.{core::List::add}{Invariant}(i);
+  } =>#t393;
   core::Set<dynamic>* set30 = block {
-    final core::Set<dynamic>* #t314 = col::LinkedHashSet::•<dynamic>();
-    await for (dynamic i in let final<BottomType> #t315 = 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>'.
+    final core::Set<dynamic>* #t395 = col::LinkedHashSet::•<dynamic>();
+    await for (dynamic i in let final<BottomType> #t396 = 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>'.
  - 'Stream' is from 'dart:async'.
   var set30 = {await for (var i in \"not stream\") i, null};
                                    ^" in "not stream" as{TypeError} asy::Stream<dynamic>*)
-      #t314.{core::Set::add}{Invariant}(i);
-    #t314.{core::Set::add}{Invariant}(null);
-  } =>#t314;
+      #t395.{core::Set::add}{Invariant}(i);
+    #t395.{core::Set::add}{Invariant}(null);
+  } =>#t395;
   core::Map<core::String*, dynamic>* map30 = block {
-    final core::Map<core::String*, dynamic>* #t316 = <core::String*, dynamic>{};
-    await for (dynamic i in let final<BottomType> #t317 = 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>'.
+    final core::Map<core::String*, dynamic>* #t397 = <core::String*, dynamic>{};
+    await for (dynamic i in let final<BottomType> #t398 = 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>'.
  - '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>*)
-      #t316.{core::Map::[]=}{Invariant}("bar", i);
-    #t316.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t316;
+      #t397.{core::Map::[]=}{Invariant}("bar", i);
+    #t397.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t397;
   core::List<core::int*>* list40 = block {
-    final core::List<core::int*>* #t318 = <core::int*>[];
-    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t319 = 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'.
+    final core::List<core::int*>* #t399 = <core::int*>[];
+    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t400 = 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'.
   var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
-                                                         ^" in "not" as{TypeError} core::int*, let final<BottomType> #t320 = 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*, let final<BottomType> #t401 = 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'.
   var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
                                                                 ^" in "int" as{TypeError} core::int*]))
-      #t318.{core::List::add}{Invariant}(i);
-  } =>#t318;
+      #t399.{core::List::add}{Invariant}(i);
+  } =>#t399;
   core::Set<core::int*>* set40 = block {
-    final core::Set<core::int*>* #t321 = col::LinkedHashSet::•<core::int*>();
-    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t322 = 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'.
+    final core::Set<core::int*>* #t402 = col::LinkedHashSet::•<core::int*>();
+    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t403 = 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'.
   var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
-                                                        ^" in "not" as{TypeError} core::int*, let final<BottomType> #t323 = 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*, let final<BottomType> #t404 = 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'.
   var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
                                                                ^" in "int" as{TypeError} core::int*]))
-      #t321.{core::Set::add}{Invariant}(i);
-    #t321.{core::Set::add}{Invariant}(null);
-  } =>#t321;
+      #t402.{core::Set::add}{Invariant}(i);
+    #t402.{core::Set::add}{Invariant}(null);
+  } =>#t402;
   core::Map<core::String*, core::int*>* map40 = block {
-    final core::Map<core::String*, core::int*>* #t324 = <core::String*, core::int*>{};
-    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t325 = 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'.
+    final core::Map<core::String*, core::int*>* #t405 = <core::String*, core::int*>{};
+    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t406 = 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'.
   var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
-                                                        ^" in "not" as{TypeError} core::int*, let final<BottomType> #t326 = 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*, let final<BottomType> #t407 = 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'.
   var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
                                                                ^" in "int" as{TypeError} core::int*]))
-      #t324.{core::Map::[]=}{Invariant}("bar", i);
-    #t324.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t324;
+      #t405.{core::Map::[]=}{Invariant}("bar", i);
+    #t405.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t405;
   core::List<core::int*>* list50 = block {
-    final core::List<core::int*>* #t327 = <core::int*>[];
+    final core::List<core::int*>* #t408 = <core::int*>[];
     for (; ; )
-      #t327.{core::List::add}{Invariant}(42);
-  } =>#t327;
+      #t408.{core::List::add}{Invariant}(42);
+  } =>#t408;
   core::Set<core::int*>* set50 = block {
-    final core::Set<core::int*>* #t328 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t409 = col::LinkedHashSet::•<core::int*>();
     for (; ; )
-      #t328.{core::Set::add}{Invariant}(42);
-    #t328.{core::Set::add}{Invariant}(null);
-  } =>#t328;
+      #t409.{core::Set::add}{Invariant}(42);
+    #t409.{core::Set::add}{Invariant}(null);
+  } =>#t409;
   core::Map<core::String*, core::int*>* map50 = block {
-    final core::Map<core::String*, core::int*>* #t329 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t410 = <core::String*, core::int*>{};
     for (; ; )
-      #t329.{core::Map::[]=}{Invariant}("bar", 42);
-    #t329.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t329;
+      #t410.{core::Map::[]=}{Invariant}("bar", 42);
+    #t410.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t410;
   core::List<core::int*>* list60 = block {
-    final core::List<core::int*>* #t330 = <core::int*>[];
-    for (; let final<BottomType> #t331 = 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'.
+    final core::List<core::int*>* #t411 = <core::int*>[];
+    for (; let final<BottomType> #t412 = 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'.
   var list60 = [for (; \"not bool\";) 42];
                        ^" in "not bool" as{TypeError} core::bool*; )
-      #t330.{core::List::add}{Invariant}(42);
-  } =>#t330;
+      #t411.{core::List::add}{Invariant}(42);
+  } =>#t411;
   core::Set<core::int*>* set60 = block {
-    final core::Set<core::int*>* #t332 = col::LinkedHashSet::•<core::int*>();
-    for (; let final<BottomType> #t333 = 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'.
+    final core::Set<core::int*>* #t413 = col::LinkedHashSet::•<core::int*>();
+    for (; let final<BottomType> #t414 = 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'.
   var set60 = {for (; \"not bool\";) 42, null};
                       ^" in "not bool" as{TypeError} core::bool*; )
-      #t332.{core::Set::add}{Invariant}(42);
-    #t332.{core::Set::add}{Invariant}(null);
-  } =>#t332;
+      #t413.{core::Set::add}{Invariant}(42);
+    #t413.{core::Set::add}{Invariant}(null);
+  } =>#t413;
   core::Map<core::String*, core::int*>* map60 = block {
-    final core::Map<core::String*, core::int*>* #t334 = <core::String*, core::int*>{};
-    for (; let final<BottomType> #t335 = 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'.
+    final core::Map<core::String*, core::int*>* #t415 = <core::String*, core::int*>{};
+    for (; let final<BottomType> #t416 = 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'.
   var map60 = {for (; \"not bool\";) \"bar\": 42, \"baz\": null};
                       ^" in "not bool" as{TypeError} core::bool*; )
-      #t334.{core::Map::[]=}{Invariant}("bar", 42);
-    #t334.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t334;
+      #t415.{core::Map::[]=}{Invariant}("bar", 42);
+    #t415.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t415;
 }
 static method testForElementErrorsNotAsync(asy::Stream<core::int*>* stream) → dynamic {
   block {
-    final core::List<core::int*>* #t336 = <core::int*>[];
+    final core::List<core::int*>* #t417 = <core::int*>[];
     await for (core::int* i in stream)
-      #t336.{core::List::add}{Invariant}(i);
-  } =>#t336;
+      #t417.{core::List::add}{Invariant}(i);
+  } =>#t417;
   block {
-    final core::Set<core::int*>* #t337 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t418 = col::LinkedHashSet::•<core::int*>();
     await for (core::int* i in stream)
-      #t337.{core::Set::add}{Invariant}(i);
-  } =>#t337;
+      #t418.{core::Set::add}{Invariant}(i);
+  } =>#t418;
   block {
-    final core::Map<core::String*, core::int*>* #t338 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t419 = <core::String*, core::int*>{};
     await for (core::int* i in stream)
-      #t338.{core::Map::[]=}{Invariant}("bar", i);
-  } =>#t338;
+      #t419.{core::Map::[]=}{Invariant}("bar", i);
+  } =>#t419;
 }
 static method testPromotion(self::A* a) → dynamic {
   core::List<core::int*>* list10 = block {
-    final core::List<core::int*>* #t339 = <core::int*>[];
+    final core::List<core::int*>* #t420 = <core::int*>[];
     if(a is self::B*)
-      #t339.{core::List::add}{Invariant}(a{self::B*}.{self::B::foo});
-  } =>#t339;
+      #t420.{core::List::add}{Invariant}(a{self::B*}.{self::B::foo});
+  } =>#t420;
   core::Set<core::int*>* set10 = block {
-    final core::Set<core::int*>* #t340 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t421 = col::LinkedHashSet::•<core::int*>();
     if(a is self::B*)
-      #t340.{core::Set::add}{Invariant}(a{self::B*}.{self::B::foo});
-  } =>#t340;
+      #t421.{core::Set::add}{Invariant}(a{self::B*}.{self::B::foo});
+  } =>#t421;
   core::Map<core::int*, core::int*>* map10 = block {
-    final core::Map<core::int*, core::int*>* #t341 = <core::int*, core::int*>{};
+    final core::Map<core::int*, core::int*>* #t422 = <core::int*, core::int*>{};
     if(a is self::B*)
-      #t341.{core::Map::[]=}{Invariant}(a{self::B*}.{self::B::foo}, a{self::B*}.{self::B::foo});
-  } =>#t341;
+      #t422.{core::Map::[]=}{Invariant}(a{self::B*}.{self::B::foo}, a{self::B*}.{self::B::foo});
+  } =>#t422;
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect
index 9a82968..898ae52 100644
--- a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect
@@ -505,588 +505,793 @@
   } =>#t9;
   core::List<core::int*>* list20 = block {
     final core::List<core::int*>* #t10 = <core::int*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t10.{core::List::addAll}{Invariant}(<core::int*>[42]);
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t11 = :sync-for-iterator.{core::Iterator::current};
+        #t10.{core::List::add}{Invariant}(#t11);
+      }
+    }
   } =>#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} core::bool*)
-      #t11.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t11.{core::Set::add}{Invariant}(null);
-  } =>#t11;
+    final core::Set<core::int*>* #t12 = new col::_CompactLinkedHashSet::•<core::int*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t13 = :sync-for-iterator.{core::Iterator::current};
+        #t12.{core::Set::add}{Invariant}(#t13);
+      }
+    }
+    #t12.{core::Set::add}{Invariant}(null);
+  } =>#t12;
   core::Map<core::String*, core::int*>* map20 = block {
-    final core::Map<core::String*, core::int*>* #t12 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t14 = <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": 42}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t13 = :sync-for-iterator.{core::Iterator::current};
-        #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}, #t13.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t15 = :sync-for-iterator.{core::Iterator::current};
+        #t14.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}, #t15.{core::MapEntry::value});
       }
     }
-    #t12.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t12;
-  core::List<dynamic>* list21 = block {
-    final core::List<dynamic>* #t14 = <dynamic>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t14.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
+    #t14.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t14;
+  core::List<dynamic>* list21 = block {
+    final core::List<dynamic>* #t16 = <dynamic>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t17 = :sync-for-iterator.{core::Iterator::current};
+        #t16.{core::List::add}{Invariant}(#t17);
+      }
+    }
+  } =>#t16;
   core::Set<dynamic>* set21 = block {
-    final core::Set<dynamic>* #t15 = new col::_CompactLinkedHashSet::•<dynamic>();
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t15.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t15.{core::Set::add}{Invariant}(null);
-  } =>#t15;
+    final core::Set<dynamic>* #t18 = new col::_CompactLinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t19 = :sync-for-iterator.{core::Iterator::current};
+        #t18.{core::Set::add}{Invariant}(#t19);
+      }
+    }
+    #t18.{core::Set::add}{Invariant}(null);
+  } =>#t18;
   core::Map<core::String*, dynamic>* map21 = block {
-    final core::Map<core::String*, dynamic>* #t16 = <core::String*, dynamic>{};
+    final core::Map<core::String*, dynamic>* #t20 = <core::String*, dynamic>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<core::MapEntry<core::String*, dynamic>>* :sync-for-iterator = <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, dynamic>* #t17 = :sync-for-iterator.{core::Iterator::current};
-        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}, #t17.{core::MapEntry::value});
-      }
-    }
-    #t16.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#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} core::bool*)
-      #t18.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-  } =>#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} core::bool*)
-      #t19.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t19.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*) {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::List<core::int*>*>* #t21 = :sync-for-iterator.{core::Iterator::current};
+        final core::MapEntry<core::String*, dynamic>* #t21 = :sync-for-iterator.{core::Iterator::current};
         #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}, #t21.{core::MapEntry::value});
       }
     }
     #t20.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t20;
-  core::List<core::int*>* list30 = block {
-    final core::List<core::int*>* #t22 = <core::int*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t22.{core::List::addAll}{Invariant}(<core::int*>[42]);
+  core::List<core::List<core::int*>*>* list22 = block {
+    final core::List<core::List<core::int*>*>* #t22 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t23 = :sync-for-iterator.{core::Iterator::current};
+        #t22.{core::List::add}{Invariant}(#t23);
+      }
+    }
   } =>#t22;
-  core::Set<core::int*>* set30 = block {
-    final core::Set<core::int*>* #t23 = new col::_CompactLinkedHashSet::•<core::int*>();
+  core::Set<core::List<core::int*>*>* set22 = block {
+    final core::Set<core::List<core::int*>*>* #t24 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t25 = :sync-for-iterator.{core::Iterator::current};
+        #t24.{core::Set::add}{Invariant}(#t25);
+      }
+    }
+    #t24.{core::Set::add}{Invariant}(null);
+  } =>#t24;
+  core::Map<core::String*, core::List<core::int*>*>* map22 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t26 = <core::String*, core::List<core::int*>*>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<core::String*, core::List<core::int*>*>* #t27 = :sync-for-iterator.{core::Iterator::current};
+        #t26.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}, #t27.{core::MapEntry::value});
+      }
+    }
+    #t26.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t26;
+  core::List<core::int*>* list30 = block {
+    final core::List<core::int*>* #t28 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t23.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t23.{core::Set::add}{Invariant}(null);
-  } =>#t23;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t29 = :sync-for-iterator.{core::Iterator::current};
+          #t28.{core::List::add}{Invariant}(#t29);
+        }
+      }
+  } =>#t28;
+  core::Set<core::int*>* set30 = block {
+    final core::Set<core::int*>* #t30 = new col::_CompactLinkedHashSet::•<core::int*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t31 = :sync-for-iterator.{core::Iterator::current};
+          #t30.{core::Set::add}{Invariant}(#t31);
+        }
+      }
+    #t30.{core::Set::add}{Invariant}(null);
+  } =>#t30;
   core::Map<core::String*, core::int*>* map30 = block {
-    final core::Map<core::String*, core::int*>* #t24 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t32 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{"bar": 42}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::int*>* #t25 = :sync-for-iterator.{core::Iterator::current};
-          #t24.{core::Map::[]=}{Invariant}(#t25.{core::MapEntry::key}, #t25.{core::MapEntry::value});
-        }
-      }
-    #t24.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t24;
-  core::List<dynamic>* list31 = block {
-    final core::List<dynamic>* #t26 = <dynamic>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t26.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
-  } =>#t26;
-  core::Set<dynamic>* set31 = block {
-    final core::Set<dynamic>* #t27 = new col::_CompactLinkedHashSet::•<dynamic>();
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t27.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t27.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, dynamic>>* :sync-for-iterator = <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}.{core::Iterable::iterator};
-        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, dynamic>* #t29 = :sync-for-iterator.{core::Iterator::current};
-          #t28.{core::Map::[]=}{Invariant}(#t29.{core::MapEntry::key}, #t29.{core::MapEntry::value});
-        }
-      }
-    #t28.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t30.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t31.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t31.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
-        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::List<core::int*>*>* #t33 = :sync-for-iterator.{core::Iterator::current};
+          final core::MapEntry<core::String*, core::int*>* #t33 = :sync-for-iterator.{core::Iterator::current};
           #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
         }
       }
     #t32.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t32;
-  core::List<core::List<core::int*>*>* list40 = block {
-    final core::List<core::List<core::int*>*>* #t34 = <core::List<core::int*>*>[];
+  core::List<dynamic>* list31 = block {
+    final core::List<dynamic>* #t34 = <dynamic>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t34.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t35 = :sync-for-iterator.{core::Iterator::current};
+          #t34.{core::List::add}{Invariant}(#t35);
+        }
+      }
   } =>#t34;
-  core::Set<core::List<core::int*>*>* set40 = block {
-    final core::Set<core::List<core::int*>*>* #t35 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+  core::Set<dynamic>* set31 = block {
+    final core::Set<dynamic>* #t36 = new col::_CompactLinkedHashSet::•<dynamic>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t35.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t35.{core::Set::add}{Invariant}(null);
-  } =>#t35;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t37 = :sync-for-iterator.{core::Iterator::current};
+          #t36.{core::Set::add}{Invariant}(#t37);
+        }
+      }
+    #t36.{core::Set::add}{Invariant}(null);
+  } =>#t36;
+  core::Map<core::String*, dynamic>* map31 = block {
+    final core::Map<core::String*, dynamic>* #t38 = <core::String*, dynamic>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::MapEntry<core::String*, dynamic>>* :sync-for-iterator = <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::MapEntry<core::String*, dynamic>* #t39 = :sync-for-iterator.{core::Iterator::current};
+          #t38.{core::Map::[]=}{Invariant}(#t39.{core::MapEntry::key}, #t39.{core::MapEntry::value});
+        }
+      }
+    #t38.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t38;
+  core::List<core::List<core::int*>*>* list33 = block {
+    final core::List<core::List<core::int*>*>* #t40 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t41 = :sync-for-iterator.{core::Iterator::current};
+          #t40.{core::List::add}{Invariant}(#t41);
+        }
+      }
+  } =>#t40;
+  core::Set<core::List<core::int*>*>* set33 = block {
+    final core::Set<core::List<core::int*>*>* #t42 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t43 = :sync-for-iterator.{core::Iterator::current};
+          #t42.{core::Set::add}{Invariant}(#t43);
+        }
+      }
+    #t42.{core::Set::add}{Invariant}(null);
+  } =>#t42;
+  core::Map<core::String*, core::List<core::int*>*>* map33 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t44 = <core::String*, core::List<core::int*>*>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::MapEntry<core::String*, core::List<core::int*>*>* #t45 = :sync-for-iterator.{core::Iterator::current};
+          #t44.{core::Map::[]=}{Invariant}(#t45.{core::MapEntry::key}, #t45.{core::MapEntry::value});
+        }
+      }
+    #t44.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t44;
+  core::List<core::List<core::int*>*>* list40 = block {
+    final core::List<core::List<core::int*>*>* #t46 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t47 = :sync-for-iterator.{core::Iterator::current};
+        #t46.{core::List::add}{Invariant}(#t47);
+      }
+    }
+  } =>#t46;
+  core::Set<core::List<core::int*>*>* set40 = block {
+    final core::Set<core::List<core::int*>*>* #t48 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t49 = :sync-for-iterator.{core::Iterator::current};
+        #t48.{core::Set::add}{Invariant}(#t49);
+      }
+    }
+    #t48.{core::Set::add}{Invariant}(null);
+  } =>#t48;
   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.
   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} 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::int*>[]);
-      } =>#t37);
-  } =>#t36;
+    final core::List<core::List<core::int*>*>* #t50 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = ( block {
+        final core::Set<core::List<core::int*>*>* #t51 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+        #t51.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t51).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t52 = :sync-for-iterator.{core::Iterator::current};
+        #t50.{core::List::add}{Invariant}(#t52);
+      }
+    }
+  } =>#t50;
   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} 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::int*>[]);
-      } =>#t39);
-    #t38.{core::Set::add}{Invariant}(null);
-  } =>#t38;
+    final core::Set<core::List<core::int*>*>* #t53 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = ( block {
+        final core::Set<core::List<core::int*>*>* #t54 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+        #t54.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t54).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t55 = :sync-for-iterator.{core::Iterator::current};
+        #t53.{core::Set::add}{Invariant}(#t55);
+      }
+    }
+    #t53.{core::Set::add}{Invariant}(null);
+  } =>#t53;
   core::List<core::List<core::int*>*>* list42 = block {
-    final core::List<core::List<core::int*>*>* #t40 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t56 = <core::List<core::int*>*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t40.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t40;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t57 = :sync-for-iterator.{core::Iterator::current};
+          #t56.{core::List::add}{Invariant}(#t57);
+        }
+      }
+  } =>#t56;
   core::Set<core::List<core::int*>*>* set42 = block {
-    final core::Set<core::List<core::int*>*>* #t41 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t58 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t41.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t41.{core::Set::add}{Invariant}(null);
-  } =>#t41;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t59 = :sync-for-iterator.{core::Iterator::current};
+          #t58.{core::Set::add}{Invariant}(#t59);
+        }
+      }
+    #t58.{core::Set::add}{Invariant}(null);
+  } =>#t58;
   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*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t60 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::List<core::int*>*>* #t43 = :sync-for-iterator.{core::Iterator::current};
-          #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::List<core::int*>*>* #t61 = :sync-for-iterator.{core::Iterator::current};
+          #t60.{core::Map::[]=}{Invariant}(#t61.{core::MapEntry::key}, #t61.{core::MapEntry::value});
         }
       }
-    #t42.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t42;
+    #t60.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t60;
   core::List<core::int*>* list50 = block {
-    final core::List<core::int*>* #t44 = <core::int*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t44.{core::List::addAll}{Invariant}(<core::int*>[]);
-  } =>#t44;
+    final core::List<core::int*>* #t62 = <core::int*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t63 = :sync-for-iterator.{core::Iterator::current};
+        #t62.{core::List::add}{Invariant}(#t63);
+      }
+    }
+  } =>#t62;
   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} core::bool*)
-      #t45.{core::Set::addAll}{Invariant}(<core::int*>[]);
-    #t45.{core::Set::add}{Invariant}(null);
-  } =>#t45;
+    final core::Set<core::int*>* #t64 = new col::_CompactLinkedHashSet::•<core::int*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t65 = :sync-for-iterator.{core::Iterator::current};
+        #t64.{core::Set::add}{Invariant}(#t65);
+      }
+    }
+    #t64.{core::Set::add}{Invariant}(null);
+  } =>#t64;
   core::Map<core::String*, core::int*>* map50 = block {
-    final core::Map<core::String*, core::int*>* #t46 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t66 = <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*>{}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t47 = :sync-for-iterator.{core::Iterator::current};
-        #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}, #t47.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t67 = :sync-for-iterator.{core::Iterator::current};
+        #t66.{core::Map::[]=}{Invariant}(#t67.{core::MapEntry::key}, #t67.{core::MapEntry::value});
       }
     }
-    #t46.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t46;
+    #t66.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t66;
   core::List<core::int*>* list51 = block {
-    final core::List<core::int*>* #t48 = <core::int*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t48.{core::List::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t49 = new col::_CompactLinkedHashSet::•<core::int*>();
-      } =>#t49);
-  } =>#t48;
+    final core::List<core::int*>* #t68 = <core::int*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = ( block {
+        final core::Set<core::int*>* #t69 = new col::_CompactLinkedHashSet::•<core::int*>();
+      } =>#t69).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t70 = :sync-for-iterator.{core::Iterator::current};
+        #t68.{core::List::add}{Invariant}(#t70);
+      }
+    }
+  } =>#t68;
   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} core::bool*)
-      #t50.{core::Set::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t51 = new col::_CompactLinkedHashSet::•<core::int*>();
-      } =>#t51);
-    #t50.{core::Set::add}{Invariant}(null);
-  } =>#t50;
+    final core::Set<core::int*>* #t71 = new col::_CompactLinkedHashSet::•<core::int*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = ( block {
+        final core::Set<core::int*>* #t72 = new col::_CompactLinkedHashSet::•<core::int*>();
+      } =>#t72).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t73 = :sync-for-iterator.{core::Iterator::current};
+        #t71.{core::Set::add}{Invariant}(#t73);
+      }
+    }
+    #t71.{core::Set::add}{Invariant}(null);
+  } =>#t71;
   core::List<core::int*>* list52 = block {
-    final core::List<core::int*>* #t52 = <core::int*>[];
+    final core::List<core::int*>* #t74 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t52.{core::List::addAll}{Invariant}(<core::int*>[]);
-  } =>#t52;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t75 = :sync-for-iterator.{core::Iterator::current};
+          #t74.{core::List::add}{Invariant}(#t75);
+        }
+      }
+  } =>#t74;
   core::Set<core::int*>* set52 = block {
-    final core::Set<core::int*>* #t53 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t76 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t53.{core::Set::addAll}{Invariant}(<core::int*>[]);
-    #t53.{core::Set::add}{Invariant}(null);
-  } =>#t53;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t77 = :sync-for-iterator.{core::Iterator::current};
+          #t76.{core::Set::add}{Invariant}(#t77);
+        }
+      }
+    #t76.{core::Set::add}{Invariant}(null);
+  } =>#t76;
   core::Map<core::String*, core::int*>* map52 = block {
-    final core::Map<core::String*, core::int*>* #t54 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t78 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::int*>* #t55 = :sync-for-iterator.{core::Iterator::current};
-          #t54.{core::Map::[]=}{Invariant}(#t55.{core::MapEntry::key}, #t55.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::int*>* #t79 = :sync-for-iterator.{core::Iterator::current};
+          #t78.{core::Map::[]=}{Invariant}(#t79.{core::MapEntry::key}, #t79.{core::MapEntry::value});
         }
       }
-    #t54.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t54;
+    #t78.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t78;
   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} core::bool*)
-      #t56.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t56;
+    final core::List<core::List<core::int*>*>* #t80 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t81 = :sync-for-iterator.{core::Iterator::current};
+        #t80.{core::List::add}{Invariant}(#t81);
+      }
+    }
+  } =>#t80;
   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} core::bool*)
-      #t57.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t57.{core::Set::add}{Invariant}(null);
-  } =>#t57;
+    final core::Set<core::List<core::int*>*>* #t82 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t83 = :sync-for-iterator.{core::Iterator::current};
+        #t82.{core::Set::add}{Invariant}(#t83);
+      }
+    }
+    #t82.{core::Set::add}{Invariant}(null);
+  } =>#t82;
   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*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t84 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::List<core::int*>*>* #t59 = :sync-for-iterator.{core::Iterator::current};
-        #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}, #t59.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::List<core::int*>*>* #t85 = :sync-for-iterator.{core::Iterator::current};
+        #t84.{core::Map::[]=}{Invariant}(#t85.{core::MapEntry::key}, #t85.{core::MapEntry::value});
       }
     }
-    #t58.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t58;
+    #t84.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t84;
   core::List<core::List<core::int*>*>* list61 = block {
-    final core::List<core::List<core::int*>*>* #t60 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t86 = <core::List<core::int*>*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t60.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t60;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t87 = :sync-for-iterator.{core::Iterator::current};
+          #t86.{core::List::add}{Invariant}(#t87);
+        }
+      }
+  } =>#t86;
   core::Set<core::List<core::int*>*>* set61 = block {
-    final core::Set<core::List<core::int*>*>* #t61 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t88 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t61.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t61.{core::Set::add}{Invariant}(null);
-  } =>#t61;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t89 = :sync-for-iterator.{core::Iterator::current};
+          #t88.{core::Set::add}{Invariant}(#t89);
+        }
+      }
+    #t88.{core::Set::add}{Invariant}(null);
+  } =>#t88;
   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*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t90 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::List<core::int*>*>* #t63 = :sync-for-iterator.{core::Iterator::current};
-          #t62.{core::Map::[]=}{Invariant}(#t63.{core::MapEntry::key}, #t63.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::List<core::int*>*>* #t91 = :sync-for-iterator.{core::Iterator::current};
+          #t90.{core::Map::[]=}{Invariant}(#t91.{core::MapEntry::key}, #t91.{core::MapEntry::value});
         }
       }
-    #t62.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t62;
+    #t90.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t90;
   core::List<core::List<core::int*>*>* list70 = block {
-    final core::List<core::List<core::int*>*>* #t64 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t92 = <core::List<core::int*>*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t64.{core::List::add}{Invariant}(<core::int*>[]);
-  } =>#t64;
+      #t92.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t92;
   core::Set<core::List<core::int*>*>* set70 = block {
-    final core::Set<core::List<core::int*>*>* #t65 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t93 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t65.{core::Set::add}{Invariant}(<core::int*>[]);
-    #t65.{core::Set::add}{Invariant}(null);
-  } =>#t65;
+      #t93.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t93.{core::Set::add}{Invariant}(null);
+  } =>#t93;
   core::List<core::List<core::int*>*>* list71 = block {
-    final core::List<core::List<core::int*>*>* #t66 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t94 = <core::List<core::int*>*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t66.{core::List::add}{Invariant}(<core::int*>[]);
-  } =>#t66;
+        #t94.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t94;
   core::Set<core::List<core::int*>*>* set71 = block {
-    final core::Set<core::List<core::int*>*>* #t67 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t95 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t67.{core::Set::add}{Invariant}(<core::int*>[]);
-    #t67.{core::Set::add}{Invariant}(null);
-  } =>#t67;
+        #t95.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t95.{core::Set::add}{Invariant}(null);
+  } =>#t95;
   core::List<core::num*>* list80 = block {
-    final core::List<core::num*>* #t68 = <core::num*>[];
+    final core::List<core::num*>* #t96 = <core::num*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t68.{core::List::add}{Invariant}(42);
+      #t96.{core::List::add}{Invariant}(42);
     else
-      #t68.{core::List::add}{Invariant}(3.14);
-  } =>#t68;
+      #t96.{core::List::add}{Invariant}(3.14);
+  } =>#t96;
   core::Set<core::num*>* set80 = block {
-    final core::Set<core::num*>* #t69 = new col::_CompactLinkedHashSet::•<core::num*>();
+    final core::Set<core::num*>* #t97 = new col::_CompactLinkedHashSet::•<core::num*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t69.{core::Set::add}{Invariant}(42);
+      #t97.{core::Set::add}{Invariant}(42);
     else
-      #t69.{core::Set::add}{Invariant}(3.14);
-    #t69.{core::Set::add}{Invariant}(null);
-  } =>#t69;
+      #t97.{core::Set::add}{Invariant}(3.14);
+    #t97.{core::Set::add}{Invariant}(null);
+  } =>#t97;
   core::Map<core::String*, core::num*>* map80 = block {
-    final core::Map<core::String*, core::num*>* #t70 = <core::String*, core::num*>{};
+    final core::Map<core::String*, core::num*>* #t98 = <core::String*, core::num*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t70.{core::Map::[]=}{Invariant}("bar", 42);
+      #t98.{core::Map::[]=}{Invariant}("bar", 42);
     else
-      #t70.{core::Map::[]=}{Invariant}("bar", 3.14);
-    #t70.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t70;
+      #t98.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t98.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t98;
   core::List<core::num*>* list81 = block {
-    final core::List<core::num*>* #t71 = <core::num*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t71.{core::List::addAll}{Invariant}(listInt);
-    else
-      #t71.{core::List::addAll}{Invariant}(listDouble);
-  } =>#t71;
+    final core::List<core::num*>* #t99 = <core::num*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::num* #t100 = :sync-for-iterator.{core::Iterator::current};
+        #t99.{core::List::add}{Invariant}(#t100);
+      }
+    }
+    else {
+      core::Iterator<core::double*>* :sync-for-iterator = listDouble.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::num* #t101 = :sync-for-iterator.{core::Iterator::current};
+        #t99.{core::List::add}{Invariant}(#t101);
+      }
+    }
+  } =>#t99;
   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} core::bool*)
-      #t72.{core::Set::addAll}{Invariant}(listInt);
-    else
-      #t72.{core::Set::addAll}{Invariant}(listDouble);
-    #t72.{core::Set::add}{Invariant}(null);
-  } =>#t72;
+    final core::Set<core::num*>* #t102 = new col::_CompactLinkedHashSet::•<core::num*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::num* #t103 = :sync-for-iterator.{core::Iterator::current};
+        #t102.{core::Set::add}{Invariant}(#t103);
+      }
+    }
+    else {
+      core::Iterator<core::double*>* :sync-for-iterator = listDouble.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::num* #t104 = :sync-for-iterator.{core::Iterator::current};
+        #t102.{core::Set::add}{Invariant}(#t104);
+      }
+    }
+    #t102.{core::Set::add}{Invariant}(null);
+  } =>#t102;
   core::Map<core::String*, core::num*>* map81 = block {
-    final core::Map<core::String*, core::num*>* #t73 = <core::String*, core::num*>{};
+    final core::Map<core::String*, core::num*>* #t105 = <core::String*, core::num*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapToInt.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::num*>* #t74 = :sync-for-iterator.{core::Iterator::current};
-        #t73.{core::Map::[]=}{Invariant}(#t74.{core::MapEntry::key}, #t74.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::num*>* #t106 = :sync-for-iterator.{core::Iterator::current};
+        #t105.{core::Map::[]=}{Invariant}(#t106.{core::MapEntry::key}, #t106.{core::MapEntry::value});
       }
     }
     else {
       core::Iterator<core::MapEntry<core::String*, core::double*>>* :sync-for-iterator = mapToDouble.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::num*>* #t75 = :sync-for-iterator.{core::Iterator::current};
-        #t73.{core::Map::[]=}{Invariant}(#t75.{core::MapEntry::key}, #t75.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::num*>* #t107 = :sync-for-iterator.{core::Iterator::current};
+        #t105.{core::Map::[]=}{Invariant}(#t107.{core::MapEntry::key}, #t107.{core::MapEntry::value});
       }
     }
-    #t73.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t73;
+    #t105.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t105;
   core::List<dynamic>* list82 = block {
-    final core::List<dynamic>* #t76 = <dynamic>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t76.{core::List::addAll}{Invariant}(listInt);
-    else
-      #t76.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-  } =>#t76;
+    final core::List<dynamic>* #t108 = <dynamic>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t109 = :sync-for-iterator.{core::Iterator::current};
+        #t108.{core::List::add}{Invariant}(#t109);
+      }
+    }
+    else {
+      core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t110 = :sync-for-iterator.{core::Iterator::current};
+        #t108.{core::List::add}{Invariant}(#t110);
+      }
+    }
+  } =>#t108;
   core::Set<dynamic>* set82 = block {
-    final core::Set<dynamic>* #t77 = new col::_CompactLinkedHashSet::•<dynamic>();
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t77.{core::Set::addAll}{Invariant}(listInt);
-    else
-      #t77.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t77.{core::Set::add}{Invariant}(null);
-  } =>#t77;
+    final core::Set<dynamic>* #t111 = new col::_CompactLinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t112 = :sync-for-iterator.{core::Iterator::current};
+        #t111.{core::Set::add}{Invariant}(#t112);
+      }
+    }
+    else {
+      core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t113 = :sync-for-iterator.{core::Iterator::current};
+        #t111.{core::Set::add}{Invariant}(#t113);
+      }
+    }
+    #t111.{core::Set::add}{Invariant}(null);
+  } =>#t111;
   core::Set<dynamic>* map82 = block {
-    final core::Set<dynamic>* #t78 = new col::_CompactLinkedHashSet::•<dynamic>();
+    final core::Set<dynamic>* #t114 = 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.
+      #t114.{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.
  - 'Map' is from 'dart:core'.
   var map82 = {if (oracle(\"foo\")) ...mapToInt else ...dynVar, null};
                                      ^");
-    else
-      #t78.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t78.{core::Set::add}{Invariant}(null);
-  } =>#t78;
+    else {
+      core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t115 = :sync-for-iterator.{core::Iterator::current};
+        #t114.{core::Set::add}{Invariant}(#t115);
+      }
+    }
+    #t114.{core::Set::add}{Invariant}(null);
+  } =>#t114;
   core::List<core::num*>* list83 = block {
-    final core::List<core::num*>* #t79 = <core::num*>[];
+    final core::List<core::num*>* #t116 = <core::num*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t79.{core::List::add}{Invariant}(42);
-    else
-      #t79.{core::List::addAll}{Invariant}(listDouble);
-  } =>#t79;
+      #t116.{core::List::add}{Invariant}(42);
+    else {
+      core::Iterator<core::double*>* :sync-for-iterator = listDouble.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::num* #t117 = :sync-for-iterator.{core::Iterator::current};
+        #t116.{core::List::add}{Invariant}(#t117);
+      }
+    }
+  } =>#t116;
   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} core::bool*)
-      #t80.{core::Set::addAll}{Invariant}(listInt);
+    final core::Set<core::num*>* #t118 = new col::_CompactLinkedHashSet::•<core::num*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::num* #t119 = :sync-for-iterator.{core::Iterator::current};
+        #t118.{core::Set::add}{Invariant}(#t119);
+      }
+    }
     else
-      #t80.{core::Set::add}{Invariant}(3.14);
-    #t80.{core::Set::add}{Invariant}(null);
-  } =>#t80;
+      #t118.{core::Set::add}{Invariant}(3.14);
+    #t118.{core::Set::add}{Invariant}(null);
+  } =>#t118;
   core::Map<core::String*, core::num*>* map83 = block {
-    final core::Map<core::String*, core::num*>* #t81 = <core::String*, core::num*>{};
+    final core::Map<core::String*, core::num*>* #t120 = <core::String*, core::num*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapToInt.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::num*>* #t82 = :sync-for-iterator.{core::Iterator::current};
-        #t81.{core::Map::[]=}{Invariant}(#t82.{core::MapEntry::key}, #t82.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::num*>* #t121 = :sync-for-iterator.{core::Iterator::current};
+        #t120.{core::Map::[]=}{Invariant}(#t121.{core::MapEntry::key}, #t121.{core::MapEntry::value});
       }
     }
     else
-      #t81.{core::Map::[]=}{Invariant}("bar", 3.14);
-    #t81.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t81;
+      #t120.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t120.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t120;
   core::List<core::int*>* list90 = block {
-    final core::List<core::int*>* #t83 = <core::int*>[];
+    final core::List<core::int*>* #t122 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t83.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
-  } =>#t83;
+      #t122.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+  } =>#t122;
   core::Set<core::int*>* set90 = block {
-    final core::Set<core::int*>* #t84 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t123 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t84.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
-    #t84.{core::Set::add}{Invariant}(null);
-  } =>#t84;
+      #t123.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+    #t123.{core::Set::add}{Invariant}(null);
+  } =>#t123;
   core::Map<core::String*, core::int*>* map90 = block {
-    final core::Map<core::String*, core::int*>* #t85 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t124 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t85.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
-    #t85.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t85;
+      #t124.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
+    #t124.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t124;
   core::List<core::int*>* list91 = block {
-    final core::List<core::int*>* #t86 = <core::int*>[];
+    final core::List<core::int*>* #t125 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t87 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t126 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int* #t88 = #t87 as{TypeError} core::int*;
-          #t86.{core::List::add}{Invariant}(#t88);
+          final core::int* #t127 = #t126 as{TypeError} core::int*;
+          #t125.{core::List::add}{Invariant}(#t127);
         }
       }
     }
-  } =>#t86;
+  } =>#t125;
   core::Set<core::int*>* set91 = block {
-    final core::Set<core::int*>* #t89 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t128 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t90 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t129 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int* #t91 = #t90 as{TypeError} core::int*;
-          #t89.{core::Set::add}{Invariant}(#t91);
+          final core::int* #t130 = #t129 as{TypeError} core::int*;
+          #t128.{core::Set::add}{Invariant}(#t130);
         }
       }
     }
-    #t89.{core::Set::add}{Invariant}(null);
-  } =>#t89;
+    #t128.{core::Set::add}{Invariant}(null);
+  } =>#t128;
   core::Map<core::String*, core::int*>* map91 = block {
-    final core::Map<core::String*, core::int*>* #t92 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t131 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic>* #t93 = :sync-for-iterator.{core::Iterator::current};
+        final core::MapEntry<dynamic, dynamic>* #t132 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::String* #t94 = #t93.{core::MapEntry::key} as{TypeError} core::String*;
-          final core::int* #t95 = #t93.{core::MapEntry::value} as{TypeError} core::int*;
-          #t92.{core::Map::[]=}{Invariant}(#t94, #t95);
+          final core::String* #t133 = #t132.{core::MapEntry::key} as{TypeError} core::String*;
+          final core::int* #t134 = #t132.{core::MapEntry::value} as{TypeError} core::int*;
+          #t131.{core::Map::[]=}{Invariant}(#t133, #t134);
         }
       }
     }
-    #t92.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t92;
+    #t131.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t131;
   core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t96 = <core::int*>[];
+    final core::List<core::int*>* #t135 = <core::int*>[];
     if(dynVar as{TypeError,ForDynamic} core::bool*)
-      #t96.{core::List::add}{Invariant}(42);
-  } =>#t96;
+      #t135.{core::List::add}{Invariant}(42);
+  } =>#t135;
   core::Set<core::int*>* set100 = block {
-    final core::Set<core::int*>* #t97 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t136 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(dynVar as{TypeError,ForDynamic} core::bool*)
-      #t97.{core::Set::add}{Invariant}(42);
-  } =>#t97;
+      #t136.{core::Set::add}{Invariant}(42);
+  } =>#t136;
   core::Map<core::int*, core::int*>* map100 = block {
-    final core::Map<core::int*, core::int*>* #t98 = <core::int*, core::int*>{};
+    final core::Map<core::int*, core::int*>* #t137 = <core::int*, core::int*>{};
     if(dynVar as{TypeError,ForDynamic} core::bool*)
-      #t98.{core::Map::[]=}{Invariant}(42, 42);
-  } =>#t98;
+      #t137.{core::Map::[]=}{Invariant}(42, 42);
+  } =>#t137;
 }
 static method testIfElementErrors(core::Map<core::int*, core::int*>* map) → dynamic {
   block {
-    final core::List<core::int*>* #t99 = <core::int*>[];
+    final core::List<core::int*>* #t138 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t99.{core::List::add}{Invariant}(let final<BottomType> #t100 = 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'.
+      #t138.{core::List::add}{Invariant}(let final<BottomType> #t139 = 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'.
   <int>[if (oracle(\"foo\")) \"bar\"];
                            ^" in "bar" as{TypeError} core::int*);
-  } =>#t99;
+  } =>#t138;
   block {
-    final core::Set<core::int*>* #t101 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t140 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t101.{core::Set::add}{Invariant}(let final<BottomType> #t102 = 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'.
+      #t140.{core::Set::add}{Invariant}(let final<BottomType> #t141 = 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'.
   <int>{if (oracle(\"foo\")) \"bar\", null};
                            ^" in "bar" as{TypeError} core::int*);
-    #t101.{core::Set::add}{Invariant}(null);
-  } =>#t101;
+    #t140.{core::Set::add}{Invariant}(null);
+  } =>#t140;
   block {
-    final core::Map<core::String*, core::int*>* #t103 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t142 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t103.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t104 = 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'.
+      #t142.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t143 = 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'.
   <String, int>{if (oracle(\"foo\")) \"bar\": \"bar\", \"baz\": null};
                                           ^" in "bar" as{TypeError} core::int*);
-    #t103.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t103;
+    #t142.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t142;
   block {
-    final core::List<core::int*>* #t105 = <core::int*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t105.{core::List::addAll}{Invariant}(<core::int*>[let final<BottomType> #t106 = 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'.
-  <int>[if (oracle(\"foo\")) ...[\"bar\"]];
-                               ^" in "bar" as{TypeError} core::int*]);
-  } =>#t105;
-  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::addAll}{Invariant}(<core::int*>[let final<BottomType> #t108 = 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'.
-  <int>{if (oracle(\"foo\")) ...[\"bar\"], null};
-                               ^" in "bar" as{TypeError} core::int*]);
-    #t107.{core::Set::add}{Invariant}(null);
-  } =>#t107;
-  block {
-    final core::Map<core::String*, core::int*>* #t109 = <core::String*, core::int*>{};
+    final core::List<core::int*>* #t144 = <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": let final<BottomType> #t110 = 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::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t145 = 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'.
+  <int>[if (oracle(\"foo\")) ...[\"bar\"]];
+                               ^" in "bar" as{TypeError} core::int*].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t146 = :sync-for-iterator.{core::Iterator::current};
+        #t144.{core::List::add}{Invariant}(#t146);
+      }
+    }
+  } =>#t144;
+  block {
+    final core::Set<core::int*>* #t147 = new col::_CompactLinkedHashSet::•<core::int*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t148 = 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'.
+  <int>{if (oracle(\"foo\")) ...[\"bar\"], null};
+                               ^" in "bar" as{TypeError} core::int*].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t149 = :sync-for-iterator.{core::Iterator::current};
+        #t147.{core::Set::add}{Invariant}(#t149);
+      }
+    }
+    #t147.{core::Set::add}{Invariant}(null);
+  } =>#t147;
+  block {
+    final core::Map<core::String*, core::int*>* #t150 = <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": let final<BottomType> #t151 = 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'.
   <String, int>{if (oracle(\"foo\")) ...{\"bar\": \"bar\"}, \"baz\": null};
                                               ^" in "bar" as{TypeError} core::int*}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t111 = :sync-for-iterator.{core::Iterator::current};
-        #t109.{core::Map::[]=}{Invariant}(#t111.{core::MapEntry::key}, #t111.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t152 = :sync-for-iterator.{core::Iterator::current};
+        #t150.{core::Map::[]=}{Invariant}(#t152.{core::MapEntry::key}, #t152.{core::MapEntry::value});
       }
     }
-    #t109.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t109;
+    #t150.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t150;
   block {
-    final core::List<core::int*>* #t112 = <core::int*>[];
+    final core::List<core::int*>* #t153 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t112.{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.
+      #t153.{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.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) ...map];
                               ^");
-  } =>#t112;
+  } =>#t153;
   block {
-    final core::Set<core::int*>* #t113 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t154 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t113.{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.
+      #t154.{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.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map, null};
                               ^");
-    #t113.{core::Set::add}{Invariant}(null);
-  } =>#t113;
+    #t154.{core::Set::add}{Invariant}(null);
+  } =>#t154;
   <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.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
@@ -1095,61 +1300,61 @@
   <String, int>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
                                       ^": null};
   block {
-    final core::List<core::String*>* #t114 = <core::String*>[];
+    final core::List<core::String*>* #t155 = <core::String*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t114.{core::List::add}{Invariant}(let final<BottomType> #t115 = 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'.
+      #t155.{core::List::add}{Invariant}(let final<BottomType> #t156 = 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'.
   <String>[if (oracle(\"foo\")) 42 else 3.14];
                               ^" in 42 as{TypeError} core::String*);
     else
-      #t114.{core::List::add}{Invariant}(let final<BottomType> #t116 = 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'.
+      #t155.{core::List::add}{Invariant}(let final<BottomType> #t157 = 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'.
   <String>[if (oracle(\"foo\")) 42 else 3.14];
                                       ^" in 3.14 as{TypeError} core::String*);
-  } =>#t114;
+  } =>#t155;
   block {
-    final core::Set<core::String*>* #t117 = new col::_CompactLinkedHashSet::•<core::String*>();
+    final core::Set<core::String*>* #t158 = new col::_CompactLinkedHashSet::•<core::String*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t117.{core::Set::add}{Invariant}(let final<BottomType> #t118 = 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'.
+      #t158.{core::Set::add}{Invariant}(let final<BottomType> #t159 = 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'.
   <String>{if (oracle(\"foo\")) 42 else 3.14, null};
                               ^" in 42 as{TypeError} core::String*);
     else
-      #t117.{core::Set::add}{Invariant}(let final<BottomType> #t119 = 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'.
+      #t158.{core::Set::add}{Invariant}(let final<BottomType> #t160 = 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'.
   <String>{if (oracle(\"foo\")) 42 else 3.14, null};
                                       ^" in 3.14 as{TypeError} core::String*);
-    #t117.{core::Set::add}{Invariant}(null);
-  } =>#t117;
+    #t158.{core::Set::add}{Invariant}(null);
+  } =>#t158;
   block {
-    final core::Map<core::String*, core::String*>* #t120 = <core::String*, core::String*>{};
+    final core::Map<core::String*, core::String*>* #t161 = <core::String*, core::String*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t120.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t121 = 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'.
+      #t161.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t162 = 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'.
   <String, String>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
                                              ^" in 42 as{TypeError} core::String*);
     else
-      #t120.{core::Map::[]=}{Invariant}("baz", let final<BottomType> #t122 = 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'.
+      #t161.{core::Map::[]=}{Invariant}("baz", let final<BottomType> #t163 = 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'.
   <String, String>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
                                                             ^" in 3.14 as{TypeError} core::String*);
-    #t120.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t120;
+    #t161.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t161;
   block {
-    final core::List<core::int*>* #t123 = <core::int*>[];
+    final core::List<core::int*>* #t164 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t123.{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.
+      #t164.{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.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) ...map else 42];
                               ^");
     else
-      #t123.{core::List::add}{Invariant}(42);
-  } =>#t123;
+      #t164.{core::List::add}{Invariant}(42);
+  } =>#t164;
   block {
-    final core::Set<core::int*>* #t124 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t165 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t124.{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.
+      #t165.{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.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map else 42, null};
                               ^");
     else
-      #t124.{core::Set::add}{Invariant}(42);
-    #t124.{core::Set::add}{Invariant}(null);
-  } =>#t124;
+      #t165.{core::Set::add}{Invariant}(42);
+    #t165.{core::Set::add}{Invariant}(null);
+  } =>#t165;
   <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.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
@@ -1158,26 +1363,26 @@
   <String, int>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
                                       ^": null};
   block {
-    final core::List<core::int*>* #t125 = <core::int*>[];
+    final core::List<core::int*>* #t166 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t125.{core::List::add}{Invariant}(42);
+      #t166.{core::List::add}{Invariant}(42);
     else
-      #t125.{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.
+      #t166.{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.
  - 'Map' is from 'dart:core'.
   <int>[if (oracle(\"foo\")) 42 else ...map];
                                       ^");
-  } =>#t125;
+  } =>#t166;
   block {
-    final core::Set<core::int*>* #t126 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t167 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t126.{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.
+      #t167.{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.
  - 'Map' is from 'dart:core'.
   <int>{if (oracle(\"foo\")) ...map else 42, null};
                               ^");
     else
-      #t126.{core::Set::add}{Invariant}(42);
-    #t126.{core::Set::add}{Invariant}(null);
-  } =>#t126;
+      #t167.{core::Set::add}{Invariant}(42);
+    #t167.{core::Set::add}{Invariant}(null);
+  } =>#t167;
   <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.
  - 'List' is from 'dart:core'.
   <String, int>{if (oracle(\"foo\")) \"bar\": 42 else ...[42], \"baz\": null};
@@ -1204,744 +1409,934 @@
   var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                                                    ^": null};
   core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t127 = <core::int*>[];
-    if(let final<BottomType> #t128 = 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'.
+    final core::List<core::int*>* #t168 = <core::int*>[];
+    if(let final<BottomType> #t169 = 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'.
   List<int> list20 = [if (42) 42];
                           ^" in 42 as{TypeError} core::bool*)
-      #t127.{core::List::add}{Invariant}(42);
-  } =>#t127;
+      #t168.{core::List::add}{Invariant}(42);
+  } =>#t168;
   core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t129 = new col::_CompactLinkedHashSet::•<core::int*>();
-    if(let final<BottomType> #t130 = 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'.
+    final core::Set<core::int*>* #t170 = new col::_CompactLinkedHashSet::•<core::int*>();
+    if(let final<BottomType> #t171 = 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'.
   Set<int> set20 = {if (42) 42};
                         ^" in 42 as{TypeError} core::bool*)
-      #t129.{core::Set::add}{Invariant}(42);
-  } =>#t129;
+      #t170.{core::Set::add}{Invariant}(42);
+  } =>#t170;
   core::Map<core::int*, core::int*>* map30 = block {
-    final core::Map<core::int*, core::int*>* #t131 = <core::int*, core::int*>{};
-    if(let final<BottomType> #t132 = 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'.
+    final core::Map<core::int*, core::int*>* #t172 = <core::int*, core::int*>{};
+    if(let final<BottomType> #t173 = 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'.
   Map<int, int> map30 = {if (42) 42: 42};
                              ^" in 42 as{TypeError} core::bool*)
-      #t131.{core::Map::[]=}{Invariant}(42, 42);
-  } =>#t131;
+      #t172.{core::Map::[]=}{Invariant}(42, 42);
+  } =>#t172;
   core::List<core::String*>* list40 = block {
-    final core::List<core::String*>* #t133 = <core::String*>[];
+    final core::List<core::String*>* #t174 = <core::String*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t133.{core::List::add}{Invariant}(let final<BottomType> #t134 = 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'.
+      #t174.{core::List::add}{Invariant}(let final<BottomType> #t175 = 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'.
   List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
                                                     ^" in true as{TypeError} core::String*);
     else
-      #t133.{core::List::add}{Invariant}(let final<BottomType> #t135 = 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'.
+      #t174.{core::List::add}{Invariant}(let final<BottomType> #t176 = 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'.
   List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
                                                               ^" in 42 as{TypeError} core::String*);
-  } =>#t133;
+  } =>#t174;
   core::Set<core::String*>* set40 = block {
-    final core::Set<core::String*>* #t136 = new col::_CompactLinkedHashSet::•<core::String*>();
+    final core::Set<core::String*>* #t177 = new col::_CompactLinkedHashSet::•<core::String*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t136.{core::Set::add}{Invariant}(let final<BottomType> #t137 = 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'.
+      #t177.{core::Set::add}{Invariant}(let final<BottomType> #t178 = 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'.
   Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
                                                   ^" in true as{TypeError} core::String*);
     else
-      #t136.{core::Set::add}{Invariant}(let final<BottomType> #t138 = 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'.
+      #t177.{core::Set::add}{Invariant}(let final<BottomType> #t179 = 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'.
   Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
                                                             ^" in 42 as{TypeError} core::String*);
-  } =>#t136;
+  } =>#t177;
   core::Map<core::String*, core::int*>* map40 = block {
-    final core::Map<core::String*, core::int*>* #t139 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t180 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t139.{core::Map::[]=}{Invariant}(let final<BottomType> #t140 = 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'.
+      #t180.{core::Map::[]=}{Invariant}(let final<BottomType> #t181 = 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'.
   Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
                                                             ^" in true as{TypeError} core::String*, 42);
     else
-      #t139.{core::Map::[]=}{Invariant}(let final<BottomType> #t141 = 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'.
+      #t180.{core::Map::[]=}{Invariant}(let final<BottomType> #t182 = 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'.
   Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
                                                                           ^" in 42 as{TypeError} core::String*, 42);
-  } =>#t139;
+  } =>#t180;
   core::Map<core::int*, core::String*>* map41 = block {
-    final core::Map<core::int*, core::String*>* #t142 = <core::int*, core::String*>{};
+    final core::Map<core::int*, core::String*>* #t183 = <core::int*, core::String*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t142.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t143 = 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'.
+      #t183.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t184 = 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'.
   Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
                                                                 ^" in true as{TypeError} core::String*);
     else
-      #t142.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t144 = 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'.
+      #t183.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t185 = 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'.
   Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
                                                                               ^" in 42 as{TypeError} core::String*);
-  } =>#t142;
+  } =>#t183;
 }
 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*>* #t145 = <core::int*>[];
+    final core::List<core::int*>* #t186 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t145.{core::List::add}{Invariant}(42);
-  } =>#t145;
+      #t186.{core::List::add}{Invariant}(42);
+  } =>#t186;
   core::Set<core::int*>* set10 = block {
-    final core::Set<core::int*>* #t146 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t187 = 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))
-      #t146.{core::Set::add}{Invariant}(42);
-    #t146.{core::Set::add}{Invariant}(null);
-  } =>#t146;
+      #t187.{core::Set::add}{Invariant}(42);
+    #t187.{core::Set::add}{Invariant}(null);
+  } =>#t187;
   core::Map<core::String*, core::int*>* map10 = block {
-    final core::Map<core::String*, core::int*>* #t147 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t188 = <core::String*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t147.{core::Map::[]=}{Invariant}("bar", 42);
-    #t147.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t147;
+      #t188.{core::Map::[]=}{Invariant}("bar", 42);
+    #t188.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t188;
   core::List<dynamic>* list11 = block {
-    final core::List<dynamic>* #t148 = <dynamic>[];
+    final core::List<dynamic>* #t189 = <dynamic>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t148.{core::List::add}{Invariant}(dynVar);
-  } =>#t148;
+      #t189.{core::List::add}{Invariant}(dynVar);
+  } =>#t189;
   core::Set<dynamic>* set11 = block {
-    final core::Set<dynamic>* #t149 = new col::_CompactLinkedHashSet::•<dynamic>();
+    final core::Set<dynamic>* #t190 = new col::_CompactLinkedHashSet::•<dynamic>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t149.{core::Set::add}{Invariant}(dynVar);
-    #t149.{core::Set::add}{Invariant}(null);
-  } =>#t149;
+      #t190.{core::Set::add}{Invariant}(dynVar);
+    #t190.{core::Set::add}{Invariant}(null);
+  } =>#t190;
   core::Map<core::String*, dynamic>* map11 = block {
-    final core::Map<core::String*, dynamic>* #t150 = <core::String*, dynamic>{};
+    final core::Map<core::String*, dynamic>* #t191 = <core::String*, dynamic>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t150.{core::Map::[]=}{Invariant}("bar", dynVar);
-    #t150.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t150;
+      #t191.{core::Map::[]=}{Invariant}("bar", dynVar);
+    #t191.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t191;
   core::List<core::List<core::int*>*>* list12 = block {
-    final core::List<core::List<core::int*>*>* #t151 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t192 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t151.{core::List::add}{Invariant}(<core::int*>[42]);
-  } =>#t151;
+      #t192.{core::List::add}{Invariant}(<core::int*>[42]);
+  } =>#t192;
   core::Set<core::List<core::int*>*>* set12 = block {
-    final core::Set<core::List<core::int*>*>* #t152 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t193 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t152.{core::Set::add}{Invariant}(<core::int*>[42]);
-    #t152.{core::Set::add}{Invariant}(null);
-  } =>#t152;
+      #t193.{core::Set::add}{Invariant}(<core::int*>[42]);
+    #t193.{core::Set::add}{Invariant}(null);
+  } =>#t193;
   core::Map<core::String*, core::List<core::int*>*>* map12 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t153 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t194 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t153.{core::Map::[]=}{Invariant}("bar", <core::int*>[42]);
-    #t153.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t153;
+      #t194.{core::Map::[]=}{Invariant}("bar", <core::int*>[42]);
+    #t194.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t194;
   core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t154 = <core::int*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t154.{core::List::addAll}{Invariant}(<core::int*>[42]);
-  } =>#t154;
+    final core::List<core::int*>* #t195 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t196 = :sync-for-iterator.{core::Iterator::current};
+        #t195.{core::List::add}{Invariant}(#t196);
+      }
+    }
+  } =>#t195;
   core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t155 = 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))
-      #t155.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t155.{core::Set::add}{Invariant}(null);
-  } =>#t155;
+    final core::Set<core::int*>* #t197 = 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::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t198 = :sync-for-iterator.{core::Iterator::current};
+        #t197.{core::Set::add}{Invariant}(#t198);
+      }
+    }
+    #t197.{core::Set::add}{Invariant}(null);
+  } =>#t197;
   core::Map<core::String*, core::int*>* map20 = block {
-    final core::Map<core::String*, core::int*>* #t156 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t199 = <core::String*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{"bar": 42}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t157 = :sync-for-iterator.{core::Iterator::current};
-        #t156.{core::Map::[]=}{Invariant}(#t157.{core::MapEntry::key}, #t157.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t200 = :sync-for-iterator.{core::Iterator::current};
+        #t199.{core::Map::[]=}{Invariant}(#t200.{core::MapEntry::key}, #t200.{core::MapEntry::value});
       }
     }
-    #t156.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t156;
+    #t199.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t199;
   core::List<dynamic>* list21 = block {
-    final core::List<dynamic>* #t158 = <dynamic>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t158.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
-  } =>#t158;
+    final core::List<dynamic>* #t201 = <dynamic>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t202 = :sync-for-iterator.{core::Iterator::current};
+        #t201.{core::List::add}{Invariant}(#t202);
+      }
+    }
+  } =>#t201;
   core::Set<dynamic>* set21 = block {
-    final core::Set<dynamic>* #t159 = new col::_CompactLinkedHashSet::•<dynamic>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t159.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t159.{core::Set::add}{Invariant}(null);
-  } =>#t159;
+    final core::Set<dynamic>* #t203 = new col::_CompactLinkedHashSet::•<dynamic>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t204 = :sync-for-iterator.{core::Iterator::current};
+        #t203.{core::Set::add}{Invariant}(#t204);
+      }
+    }
+    #t203.{core::Set::add}{Invariant}(null);
+  } =>#t203;
   core::Map<core::String*, dynamic>* map21 = block {
-    final core::Map<core::String*, dynamic>* #t160 = <core::String*, dynamic>{};
+    final core::Map<core::String*, dynamic>* #t205 = <core::String*, dynamic>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<core::MapEntry<core::String*, dynamic>>* :sync-for-iterator = <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, dynamic>* #t161 = :sync-for-iterator.{core::Iterator::current};
-        #t160.{core::Map::[]=}{Invariant}(#t161.{core::MapEntry::key}, #t161.{core::MapEntry::value});
+        final core::MapEntry<core::String*, dynamic>* #t206 = :sync-for-iterator.{core::Iterator::current};
+        #t205.{core::Map::[]=}{Invariant}(#t206.{core::MapEntry::key}, #t206.{core::MapEntry::value});
       }
     }
-    #t160.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t160;
+    #t205.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t205;
   core::List<core::List<core::int*>*>* list22 = block {
-    final core::List<core::List<core::int*>*>* #t162 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t162.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-  } =>#t162;
+    final core::List<core::List<core::int*>*>* #t207 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t208 = :sync-for-iterator.{core::Iterator::current};
+        #t207.{core::List::add}{Invariant}(#t208);
+      }
+    }
+  } =>#t207;
   core::Set<core::List<core::int*>*>* set22 = block {
-    final core::Set<core::List<core::int*>*>* #t163 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t163.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t163.{core::Set::add}{Invariant}(null);
-  } =>#t163;
+    final core::Set<core::List<core::int*>*>* #t209 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t210 = :sync-for-iterator.{core::Iterator::current};
+        #t209.{core::Set::add}{Invariant}(#t210);
+      }
+    }
+    #t209.{core::Set::add}{Invariant}(null);
+  } =>#t209;
   core::Map<core::String*, core::List<core::int*>*>* map22 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t164 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t211 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::List<core::int*>*>* #t165 = :sync-for-iterator.{core::Iterator::current};
-        #t164.{core::Map::[]=}{Invariant}(#t165.{core::MapEntry::key}, #t165.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::List<core::int*>*>* #t212 = :sync-for-iterator.{core::Iterator::current};
+        #t211.{core::Map::[]=}{Invariant}(#t212.{core::MapEntry::key}, #t212.{core::MapEntry::value});
       }
     }
-    #t164.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t164;
+    #t211.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t211;
   core::List<core::int*>* list30 = block {
-    final core::List<core::int*>* #t166 = <core::int*>[];
+    final core::List<core::int*>* #t213 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t166.{core::List::addAll}{Invariant}(<core::int*>[42]);
-  } =>#t166;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t214 = :sync-for-iterator.{core::Iterator::current};
+          #t213.{core::List::add}{Invariant}(#t214);
+        }
+      }
+  } =>#t213;
   core::Set<core::int*>* set30 = block {
-    final core::Set<core::int*>* #t167 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t215 = 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))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t167.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t167.{core::Set::add}{Invariant}(null);
-  } =>#t167;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t216 = :sync-for-iterator.{core::Iterator::current};
+          #t215.{core::Set::add}{Invariant}(#t216);
+        }
+      }
+    #t215.{core::Set::add}{Invariant}(null);
+  } =>#t215;
   core::Map<core::String*, core::int*>* map30 = block {
-    final core::Map<core::String*, core::int*>* #t168 = <core::String*, core::int*>{};
+    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} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{"bar": 42}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::int*>* #t169 = :sync-for-iterator.{core::Iterator::current};
-          #t168.{core::Map::[]=}{Invariant}(#t169.{core::MapEntry::key}, #t169.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::int*>* #t218 = :sync-for-iterator.{core::Iterator::current};
+          #t217.{core::Map::[]=}{Invariant}(#t218.{core::MapEntry::key}, #t218.{core::MapEntry::value});
         }
       }
-    #t168.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t168;
+    #t217.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t217;
   core::List<dynamic>* list31 = block {
-    final core::List<dynamic>* #t170 = <dynamic>[];
+    final core::List<dynamic>* #t219 = <dynamic>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t170.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
-  } =>#t170;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t220 = :sync-for-iterator.{core::Iterator::current};
+          #t219.{core::List::add}{Invariant}(#t220);
+        }
+      }
+  } =>#t219;
   core::Set<dynamic>* set31 = block {
-    final core::Set<dynamic>* #t171 = new col::_CompactLinkedHashSet::•<dynamic>();
+    final core::Set<dynamic>* #t221 = new col::_CompactLinkedHashSet::•<dynamic>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t171.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t171.{core::Set::add}{Invariant}(null);
-  } =>#t171;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t222 = :sync-for-iterator.{core::Iterator::current};
+          #t221.{core::Set::add}{Invariant}(#t222);
+        }
+      }
+    #t221.{core::Set::add}{Invariant}(null);
+  } =>#t221;
   core::Map<core::String*, dynamic>* map31 = block {
-    final core::Map<core::String*, dynamic>* #t172 = <core::String*, dynamic>{};
+    final core::Map<core::String*, dynamic>* #t223 = <core::String*, dynamic>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, dynamic>>* :sync-for-iterator = <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, dynamic>* #t173 = :sync-for-iterator.{core::Iterator::current};
-          #t172.{core::Map::[]=}{Invariant}(#t173.{core::MapEntry::key}, #t173.{core::MapEntry::value});
+          final core::MapEntry<core::String*, dynamic>* #t224 = :sync-for-iterator.{core::Iterator::current};
+          #t223.{core::Map::[]=}{Invariant}(#t224.{core::MapEntry::key}, #t224.{core::MapEntry::value});
         }
       }
-    #t172.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t172;
+    #t223.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t223;
   core::List<core::List<core::int*>*>* list33 = block {
-    final core::List<core::List<core::int*>*>* #t174 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t225 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t174.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-  } =>#t174;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t226 = :sync-for-iterator.{core::Iterator::current};
+          #t225.{core::List::add}{Invariant}(#t226);
+        }
+      }
+  } =>#t225;
   core::Set<core::List<core::int*>*>* set33 = block {
-    final core::Set<core::List<core::int*>*>* #t175 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t227 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t175.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t175.{core::Set::add}{Invariant}(null);
-  } =>#t175;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t228 = :sync-for-iterator.{core::Iterator::current};
+          #t227.{core::Set::add}{Invariant}(#t228);
+        }
+      }
+    #t227.{core::Set::add}{Invariant}(null);
+  } =>#t227;
   core::Map<core::String*, core::List<core::int*>*>* map33 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t176 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t229 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::List<core::int*>*>* #t177 = :sync-for-iterator.{core::Iterator::current};
-          #t176.{core::Map::[]=}{Invariant}(#t177.{core::MapEntry::key}, #t177.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::List<core::int*>*>* #t230 = :sync-for-iterator.{core::Iterator::current};
+          #t229.{core::Map::[]=}{Invariant}(#t230.{core::MapEntry::key}, #t230.{core::MapEntry::value});
         }
       }
-    #t176.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t176;
+    #t229.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t229;
   core::List<core::List<core::int*>*>* list40 = block {
-    final core::List<core::List<core::int*>*>* #t178 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t178.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t178;
+    final core::List<core::List<core::int*>*>* #t231 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t232 = :sync-for-iterator.{core::Iterator::current};
+        #t231.{core::List::add}{Invariant}(#t232);
+      }
+    }
+  } =>#t231;
   core::Set<core::List<core::int*>*>* set40 = block {
-    final core::Set<core::List<core::int*>*>* #t179 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t179.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t179.{core::Set::add}{Invariant}(null);
-  } =>#t179;
+    final core::Set<core::List<core::int*>*>* #t233 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t234 = :sync-for-iterator.{core::Iterator::current};
+        #t233.{core::Set::add}{Invariant}(#t234);
+      }
+    }
+    #t233.{core::Set::add}{Invariant}(null);
+  } =>#t233;
   core::Map<core::String*, core::List<core::int*>*>* map40 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t180 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t235 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::List<core::int*>*>* #t181 = :sync-for-iterator.{core::Iterator::current};
-        #t180.{core::Map::[]=}{Invariant}(#t181.{core::MapEntry::key}, #t181.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::List<core::int*>*>* #t236 = :sync-for-iterator.{core::Iterator::current};
+        #t235.{core::Map::[]=}{Invariant}(#t236.{core::MapEntry::key}, #t236.{core::MapEntry::value});
       }
     }
-    #t180.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t180;
+    #t235.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t235;
   core::List<core::List<core::int*>*>* list41 = block {
-    final core::List<core::List<core::int*>*>* #t182 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t182.{core::List::addAll}{Invariant}( block {
-        final core::Set<core::List<core::int*>*>* #t183 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-        #t183.{core::Set::add}{Invariant}(<core::int*>[]);
-      } =>#t183);
-  } =>#t182;
+    final core::List<core::List<core::int*>*>* #t237 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = ( block {
+        final core::Set<core::List<core::int*>*>* #t238 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+        #t238.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t238).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t239 = :sync-for-iterator.{core::Iterator::current};
+        #t237.{core::List::add}{Invariant}(#t239);
+      }
+    }
+  } =>#t237;
   core::Set<core::List<core::int*>*>* set41 = block {
-    final core::Set<core::List<core::int*>*>* #t184 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t184.{core::Set::addAll}{Invariant}( block {
-        final core::Set<core::List<core::int*>*>* #t185 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-        #t185.{core::Set::add}{Invariant}(<core::int*>[]);
-      } =>#t185);
-    #t184.{core::Set::add}{Invariant}(null);
-  } =>#t184;
+    final core::Set<core::List<core::int*>*>* #t240 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = ( block {
+        final core::Set<core::List<core::int*>*>* #t241 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+        #t241.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t241).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t242 = :sync-for-iterator.{core::Iterator::current};
+        #t240.{core::Set::add}{Invariant}(#t242);
+      }
+    }
+    #t240.{core::Set::add}{Invariant}(null);
+  } =>#t240;
   core::List<core::List<core::int*>*>* list42 = block {
-    final core::List<core::List<core::int*>*>* #t186 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t243 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t186.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t186;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t244 = :sync-for-iterator.{core::Iterator::current};
+          #t243.{core::List::add}{Invariant}(#t244);
+        }
+      }
+  } =>#t243;
   core::Set<core::List<core::int*>*>* set42 = block {
-    final core::Set<core::List<core::int*>*>* #t187 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t245 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t187.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t187.{core::Set::add}{Invariant}(null);
-  } =>#t187;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t246 = :sync-for-iterator.{core::Iterator::current};
+          #t245.{core::Set::add}{Invariant}(#t246);
+        }
+      }
+    #t245.{core::Set::add}{Invariant}(null);
+  } =>#t245;
   core::Map<core::String*, core::List<core::int*>*>* map42 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t188 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t247 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::List<core::int*>*>* #t189 = :sync-for-iterator.{core::Iterator::current};
-          #t188.{core::Map::[]=}{Invariant}(#t189.{core::MapEntry::key}, #t189.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::List<core::int*>*>* #t248 = :sync-for-iterator.{core::Iterator::current};
+          #t247.{core::Map::[]=}{Invariant}(#t248.{core::MapEntry::key}, #t248.{core::MapEntry::value});
         }
       }
-    #t188.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t188;
+    #t247.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t247;
   core::List<core::int*>* list50 = block {
-    final core::List<core::int*>* #t190 = <core::int*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t190.{core::List::addAll}{Invariant}(<core::int*>[]);
-  } =>#t190;
+    final core::List<core::int*>* #t249 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t250 = :sync-for-iterator.{core::Iterator::current};
+        #t249.{core::List::add}{Invariant}(#t250);
+      }
+    }
+  } =>#t249;
   core::Set<core::int*>* set50 = block {
-    final core::Set<core::int*>* #t191 = 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))
-      #t191.{core::Set::addAll}{Invariant}(<core::int*>[]);
-    #t191.{core::Set::add}{Invariant}(null);
-  } =>#t191;
+    final core::Set<core::int*>* #t251 = 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::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t252 = :sync-for-iterator.{core::Iterator::current};
+        #t251.{core::Set::add}{Invariant}(#t252);
+      }
+    }
+    #t251.{core::Set::add}{Invariant}(null);
+  } =>#t251;
   core::Map<core::String*, core::int*>* map50 = block {
-    final core::Map<core::String*, core::int*>* #t192 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t253 = <core::String*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t193 = :sync-for-iterator.{core::Iterator::current};
-        #t192.{core::Map::[]=}{Invariant}(#t193.{core::MapEntry::key}, #t193.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t254 = :sync-for-iterator.{core::Iterator::current};
+        #t253.{core::Map::[]=}{Invariant}(#t254.{core::MapEntry::key}, #t254.{core::MapEntry::value});
       }
     }
-    #t192.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t192;
+    #t253.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t253;
   core::List<core::int*>* list51 = block {
-    final core::List<core::int*>* #t194 = <core::int*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t194.{core::List::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t195 = new col::_CompactLinkedHashSet::•<core::int*>();
-      } =>#t195);
-  } =>#t194;
+    final core::List<core::int*>* #t255 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::int*>* :sync-for-iterator = ( block {
+        final core::Set<core::int*>* #t256 = new col::_CompactLinkedHashSet::•<core::int*>();
+      } =>#t256).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t257 = :sync-for-iterator.{core::Iterator::current};
+        #t255.{core::List::add}{Invariant}(#t257);
+      }
+    }
+  } =>#t255;
   core::Set<core::int*>* set51 = block {
-    final core::Set<core::int*>* #t196 = 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))
-      #t196.{core::Set::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t197 = new col::_CompactLinkedHashSet::•<core::int*>();
-      } =>#t197);
-    #t196.{core::Set::add}{Invariant}(null);
-  } =>#t196;
+    final core::Set<core::int*>* #t258 = 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::Iterator<core::int*>* :sync-for-iterator = ( block {
+        final core::Set<core::int*>* #t259 = new col::_CompactLinkedHashSet::•<core::int*>();
+      } =>#t259).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t260 = :sync-for-iterator.{core::Iterator::current};
+        #t258.{core::Set::add}{Invariant}(#t260);
+      }
+    }
+    #t258.{core::Set::add}{Invariant}(null);
+  } =>#t258;
   core::List<core::int*>* list52 = block {
-    final core::List<core::int*>* #t198 = <core::int*>[];
+    final core::List<core::int*>* #t261 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t198.{core::List::addAll}{Invariant}(<core::int*>[]);
-  } =>#t198;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t262 = :sync-for-iterator.{core::Iterator::current};
+          #t261.{core::List::add}{Invariant}(#t262);
+        }
+      }
+  } =>#t261;
   core::Set<core::int*>* set52 = block {
-    final core::Set<core::int*>* #t199 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t263 = 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))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t199.{core::Set::addAll}{Invariant}(<core::int*>[]);
-    #t199.{core::Set::add}{Invariant}(null);
-  } =>#t199;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t264 = :sync-for-iterator.{core::Iterator::current};
+          #t263.{core::Set::add}{Invariant}(#t264);
+        }
+      }
+    #t263.{core::Set::add}{Invariant}(null);
+  } =>#t263;
   core::List<core::List<core::int*>*>* list60 = block {
-    final core::List<core::List<core::int*>*>* #t200 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t200.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t200;
+    final core::List<core::List<core::int*>*>* #t265 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t266 = :sync-for-iterator.{core::Iterator::current};
+        #t265.{core::List::add}{Invariant}(#t266);
+      }
+    }
+  } =>#t265;
   core::Set<core::List<core::int*>*>* set60 = block {
-    final core::Set<core::List<core::int*>*>* #t201 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t201.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t201.{core::Set::add}{Invariant}(null);
-  } =>#t201;
+    final core::Set<core::List<core::int*>*>* #t267 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t268 = :sync-for-iterator.{core::Iterator::current};
+        #t267.{core::Set::add}{Invariant}(#t268);
+      }
+    }
+    #t267.{core::Set::add}{Invariant}(null);
+  } =>#t267;
   core::Map<core::String*, core::List<core::int*>*>* map60 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t202 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t269 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::List<core::int*>*>* #t203 = :sync-for-iterator.{core::Iterator::current};
-        #t202.{core::Map::[]=}{Invariant}(#t203.{core::MapEntry::key}, #t203.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::List<core::int*>*>* #t270 = :sync-for-iterator.{core::Iterator::current};
+        #t269.{core::Map::[]=}{Invariant}(#t270.{core::MapEntry::key}, #t270.{core::MapEntry::value});
       }
     }
-    #t202.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t202;
+    #t269.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t269;
   core::List<core::List<core::int*>*>* list61 = block {
-    final core::List<core::List<core::int*>*>* #t204 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t271 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t204.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t204;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t272 = :sync-for-iterator.{core::Iterator::current};
+          #t271.{core::List::add}{Invariant}(#t272);
+        }
+      }
+  } =>#t271;
   core::Set<core::List<core::int*>*>* set61 = block {
-    final core::Set<core::List<core::int*>*>* #t205 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t273 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t205.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t205.{core::Set::add}{Invariant}(null);
-  } =>#t205;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t274 = :sync-for-iterator.{core::Iterator::current};
+          #t273.{core::Set::add}{Invariant}(#t274);
+        }
+      }
+    #t273.{core::Set::add}{Invariant}(null);
+  } =>#t273;
   core::Map<core::String*, core::List<core::int*>*>* map61 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t206 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t275 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::List<core::int*>*>* #t207 = :sync-for-iterator.{core::Iterator::current};
-          #t206.{core::Map::[]=}{Invariant}(#t207.{core::MapEntry::key}, #t207.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::List<core::int*>*>* #t276 = :sync-for-iterator.{core::Iterator::current};
+          #t275.{core::Map::[]=}{Invariant}(#t276.{core::MapEntry::key}, #t276.{core::MapEntry::value});
         }
       }
-    #t206.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t206;
+    #t275.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t275;
   core::List<core::List<core::int*>*>* list70 = block {
-    final core::List<core::List<core::int*>*>* #t208 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t277 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t208.{core::List::add}{Invariant}(<core::int*>[]);
-  } =>#t208;
+      #t277.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t277;
   core::Set<core::List<core::int*>*>* set70 = block {
-    final core::Set<core::List<core::int*>*>* #t209 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t278 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t209.{core::Set::add}{Invariant}(<core::int*>[]);
-    #t209.{core::Set::add}{Invariant}(null);
-  } =>#t209;
+      #t278.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t278.{core::Set::add}{Invariant}(null);
+  } =>#t278;
   core::Map<core::String*, core::List<core::int*>*>* map70 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t210 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t279 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t210.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
-    #t210.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t210;
+      #t279.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
+    #t279.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t279;
   core::List<core::List<core::int*>*>* list71 = block {
-    final core::List<core::List<core::int*>*>* #t211 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t280 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t211.{core::List::add}{Invariant}(<core::int*>[]);
-  } =>#t211;
+        #t280.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t280;
   core::Set<core::List<core::int*>*>* set71 = block {
-    final core::Set<core::List<core::int*>*>* #t212 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t281 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t212.{core::Set::add}{Invariant}(<core::int*>[]);
-    #t212.{core::Set::add}{Invariant}(null);
-  } =>#t212;
+        #t281.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t281.{core::Set::add}{Invariant}(null);
+  } =>#t281;
   core::Map<core::String*, core::List<core::int*>*>* map71 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t213 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t282 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t213.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
-    #t213.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t213;
+        #t282.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
+    #t282.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t282;
   core::List<core::num*>* list80 = block {
-    final core::List<core::num*>* #t214 = <core::num*>[];
+    final core::List<core::num*>* #t283 = <core::num*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t214.{core::List::add}{Invariant}(42);
+        #t283.{core::List::add}{Invariant}(42);
       else
-        #t214.{core::List::add}{Invariant}(3.14);
-  } =>#t214;
+        #t283.{core::List::add}{Invariant}(3.14);
+  } =>#t283;
   core::Set<core::num*>* set80 = block {
-    final core::Set<core::num*>* #t215 = new col::_CompactLinkedHashSet::•<core::num*>();
+    final core::Set<core::num*>* #t284 = new col::_CompactLinkedHashSet::•<core::num*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t215.{core::Set::add}{Invariant}(42);
+        #t284.{core::Set::add}{Invariant}(42);
       else
-        #t215.{core::Set::add}{Invariant}(3.14);
-    #t215.{core::Set::add}{Invariant}(null);
-  } =>#t215;
+        #t284.{core::Set::add}{Invariant}(3.14);
+    #t284.{core::Set::add}{Invariant}(null);
+  } =>#t284;
   core::Map<core::String*, core::num*>* map80 = block {
-    final core::Map<core::String*, core::num*>* #t216 = <core::String*, core::num*>{};
+    final core::Map<core::String*, core::num*>* #t285 = <core::String*, core::num*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t216.{core::Map::[]=}{Invariant}("bar", 42);
+        #t285.{core::Map::[]=}{Invariant}("bar", 42);
       else
-        #t216.{core::Map::[]=}{Invariant}("bar", 3.14);
-    #t216.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t216;
+        #t285.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t285.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t285;
   core::List<core::num*>* list81 = block {
-    final core::List<core::num*>* #t217 = <core::num*>[];
+    final core::List<core::num*>* #t286 = <core::num*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t217.{core::List::addAll}{Invariant}(listInt);
-      else
-        #t217.{core::List::addAll}{Invariant}(listDouble);
-  } =>#t217;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::num* #t287 = :sync-for-iterator.{core::Iterator::current};
+          #t286.{core::List::add}{Invariant}(#t287);
+        }
+      }
+      else {
+        core::Iterator<core::double*>* :sync-for-iterator = listDouble.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::num* #t288 = :sync-for-iterator.{core::Iterator::current};
+          #t286.{core::List::add}{Invariant}(#t288);
+        }
+      }
+  } =>#t286;
   core::Set<core::num*>* set81 = block {
-    final core::Set<core::num*>* #t218 = new col::_CompactLinkedHashSet::•<core::num*>();
+    final core::Set<core::num*>* #t289 = new col::_CompactLinkedHashSet::•<core::num*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t218.{core::Set::addAll}{Invariant}(listInt);
-      else
-        #t218.{core::Set::addAll}{Invariant}(listDouble);
-    #t218.{core::Set::add}{Invariant}(null);
-  } =>#t218;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::num* #t290 = :sync-for-iterator.{core::Iterator::current};
+          #t289.{core::Set::add}{Invariant}(#t290);
+        }
+      }
+      else {
+        core::Iterator<core::double*>* :sync-for-iterator = listDouble.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::num* #t291 = :sync-for-iterator.{core::Iterator::current};
+          #t289.{core::Set::add}{Invariant}(#t291);
+        }
+      }
+    #t289.{core::Set::add}{Invariant}(null);
+  } =>#t289;
   core::Map<core::String*, core::num*>* map81 = block {
-    final core::Map<core::String*, core::num*>* #t219 = <core::String*, core::num*>{};
+    final core::Map<core::String*, core::num*>* #t292 = <core::String*, core::num*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapStringInt.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::num*>* #t220 = :sync-for-iterator.{core::Iterator::current};
-          #t219.{core::Map::[]=}{Invariant}(#t220.{core::MapEntry::key}, #t220.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::num*>* #t293 = :sync-for-iterator.{core::Iterator::current};
+          #t292.{core::Map::[]=}{Invariant}(#t293.{core::MapEntry::key}, #t293.{core::MapEntry::value});
         }
       }
       else {
         core::Iterator<core::MapEntry<core::String*, core::double*>>* :sync-for-iterator = mapStringDouble.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::num*>* #t221 = :sync-for-iterator.{core::Iterator::current};
-          #t219.{core::Map::[]=}{Invariant}(#t221.{core::MapEntry::key}, #t221.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::num*>* #t294 = :sync-for-iterator.{core::Iterator::current};
+          #t292.{core::Map::[]=}{Invariant}(#t294.{core::MapEntry::key}, #t294.{core::MapEntry::value});
         }
       }
-    #t219.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t219;
+    #t292.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t292;
   core::List<dynamic>* list82 = block {
-    final core::List<dynamic>* #t222 = <dynamic>[];
+    final core::List<dynamic>* #t295 = <dynamic>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t222.{core::List::addAll}{Invariant}(listInt);
-      else
-        #t222.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-  } =>#t222;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t296 = :sync-for-iterator.{core::Iterator::current};
+          #t295.{core::List::add}{Invariant}(#t296);
+        }
+      }
+      else {
+        core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t297 = :sync-for-iterator.{core::Iterator::current};
+          #t295.{core::List::add}{Invariant}(#t297);
+        }
+      }
+  } =>#t295;
   core::Set<dynamic>* set82 = block {
-    final core::Set<dynamic>* #t223 = new col::_CompactLinkedHashSet::•<dynamic>();
+    final core::Set<dynamic>* #t298 = new col::_CompactLinkedHashSet::•<dynamic>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t223.{core::Set::addAll}{Invariant}(listInt);
-      else
-        #t223.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t223.{core::Set::add}{Invariant}(null);
-  } =>#t223;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t299 = :sync-for-iterator.{core::Iterator::current};
+          #t298.{core::Set::add}{Invariant}(#t299);
+        }
+      }
+      else {
+        core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t300 = :sync-for-iterator.{core::Iterator::current};
+          #t298.{core::Set::add}{Invariant}(#t300);
+        }
+      }
+    #t298.{core::Set::add}{Invariant}(null);
+  } =>#t298;
   core::Map<dynamic, dynamic>* map82 = block {
-    final core::Map<dynamic, dynamic>* #t224 = <dynamic, dynamic>{};
+    final core::Map<dynamic, dynamic>* #t301 = <dynamic, dynamic>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapStringInt.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<dynamic, dynamic>* #t225 = :sync-for-iterator.{core::Iterator::current};
-          #t224.{core::Map::[]=}{Invariant}(#t225.{core::MapEntry::key}, #t225.{core::MapEntry::value});
+          final core::MapEntry<dynamic, dynamic>* #t302 = :sync-for-iterator.{core::Iterator::current};
+          #t301.{core::Map::[]=}{Invariant}(#t302.{core::MapEntry::key}, #t302.{core::MapEntry::value});
         }
       }
       else {
         core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<dynamic, dynamic>* #t226 = :sync-for-iterator.{core::Iterator::current};
-          #t224.{core::Map::[]=}{Invariant}(#t226.{core::MapEntry::key}, #t226.{core::MapEntry::value});
+          final core::MapEntry<dynamic, dynamic>* #t303 = :sync-for-iterator.{core::Iterator::current};
+          #t301.{core::Map::[]=}{Invariant}(#t303.{core::MapEntry::key}, #t303.{core::MapEntry::value});
         }
       }
-    #t224.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t224;
+    #t301.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t301;
   core::List<core::num*>* list83 = block {
-    final core::List<core::num*>* #t227 = <core::num*>[];
+    final core::List<core::num*>* #t304 = <core::num*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t227.{core::List::add}{Invariant}(42);
-      else
-        #t227.{core::List::addAll}{Invariant}(listDouble);
-  } =>#t227;
+        #t304.{core::List::add}{Invariant}(42);
+      else {
+        core::Iterator<core::double*>* :sync-for-iterator = listDouble.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::num* #t305 = :sync-for-iterator.{core::Iterator::current};
+          #t304.{core::List::add}{Invariant}(#t305);
+        }
+      }
+  } =>#t304;
   core::Set<core::num*>* set83 = block {
-    final core::Set<core::num*>* #t228 = new col::_CompactLinkedHashSet::•<core::num*>();
+    final core::Set<core::num*>* #t306 = new col::_CompactLinkedHashSet::•<core::num*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t228.{core::Set::addAll}{Invariant}(listInt);
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::num* #t307 = :sync-for-iterator.{core::Iterator::current};
+          #t306.{core::Set::add}{Invariant}(#t307);
+        }
+      }
       else
-        #t228.{core::Set::add}{Invariant}(3.14);
-    #t228.{core::Set::add}{Invariant}(null);
-  } =>#t228;
+        #t306.{core::Set::add}{Invariant}(3.14);
+    #t306.{core::Set::add}{Invariant}(null);
+  } =>#t306;
   core::Map<core::String*, core::num*>* map83 = block {
-    final core::Map<core::String*, core::num*>* #t229 = <core::String*, core::num*>{};
+    final core::Map<core::String*, core::num*>* #t308 = <core::String*, core::num*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapStringInt.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::num*>* #t230 = :sync-for-iterator.{core::Iterator::current};
-          #t229.{core::Map::[]=}{Invariant}(#t230.{core::MapEntry::key}, #t230.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::num*>* #t309 = :sync-for-iterator.{core::Iterator::current};
+          #t308.{core::Map::[]=}{Invariant}(#t309.{core::MapEntry::key}, #t309.{core::MapEntry::value});
         }
       }
       else
-        #t229.{core::Map::[]=}{Invariant}("bar", 3.14);
-    #t229.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t229;
+        #t308.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t308.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t308;
   core::List<core::int*>* list90 = block {
-    final core::List<core::int*>* #t231 = <core::int*>[];
+    final core::List<core::int*>* #t310 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t231.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
-  } =>#t231;
+      #t310.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+  } =>#t310;
   core::Set<core::int*>* set90 = block {
-    final core::Set<core::int*>* #t232 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t311 = 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))
-      #t232.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
-    #t232.{core::Set::add}{Invariant}(null);
-  } =>#t232;
+      #t311.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+    #t311.{core::Set::add}{Invariant}(null);
+  } =>#t311;
   core::Map<core::String*, core::int*>* map90 = block {
-    final core::Map<core::String*, core::int*>* #t233 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t312 = <core::String*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t233.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
-    #t233.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t233;
+      #t312.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
+    #t312.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t312;
   core::List<core::int*>* list91 = block {
-    final core::List<core::int*>* #t234 = <core::int*>[];
+    final core::List<core::int*>* #t313 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t235 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t314 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int* #t236 = #t235 as{TypeError} core::int*;
-          #t234.{core::List::add}{Invariant}(#t236);
+          final core::int* #t315 = #t314 as{TypeError} core::int*;
+          #t313.{core::List::add}{Invariant}(#t315);
         }
       }
     }
-  } =>#t234;
+  } =>#t313;
   core::Set<core::int*>* set91 = block {
-    final core::Set<core::int*>* #t237 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t316 = 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::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t238 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t317 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int* #t239 = #t238 as{TypeError} core::int*;
-          #t237.{core::Set::add}{Invariant}(#t239);
+          final core::int* #t318 = #t317 as{TypeError} core::int*;
+          #t316.{core::Set::add}{Invariant}(#t318);
         }
       }
     }
-    #t237.{core::Set::add}{Invariant}(null);
-  } =>#t237;
+    #t316.{core::Set::add}{Invariant}(null);
+  } =>#t316;
   core::Map<core::String*, core::int*>* map91 = block {
-    final core::Map<core::String*, core::int*>* #t240 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t319 = <core::String*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic>* #t241 = :sync-for-iterator.{core::Iterator::current};
+        final core::MapEntry<dynamic, dynamic>* #t320 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::String* #t242 = #t241.{core::MapEntry::key} as{TypeError} core::String*;
-          final core::int* #t243 = #t241.{core::MapEntry::value} as{TypeError} core::int*;
-          #t240.{core::Map::[]=}{Invariant}(#t242, #t243);
+          final core::String* #t321 = #t320.{core::MapEntry::key} as{TypeError} core::String*;
+          final core::int* #t322 = #t320.{core::MapEntry::value} as{TypeError} core::int*;
+          #t319.{core::Map::[]=}{Invariant}(#t321, #t322);
         }
       }
     }
-    #t240.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t240;
+    #t319.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t319;
   core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t244 = <core::int*>[];
-    for (final core::int* #t245 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
-      #t244.{core::List::add}{Invariant}(42);
-  } =>#t244;
+    final core::List<core::int*>* #t323 = <core::int*>[];
+    for (final core::int* #t324 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
+      #t323.{core::List::add}{Invariant}(42);
+  } =>#t323;
   core::Set<core::int*>* set100 = block {
-    final core::Set<core::int*>* #t246 = new col::_CompactLinkedHashSet::•<core::int*>();
-    for (final core::int* #t247 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
-      #t246.{core::Set::add}{Invariant}(42);
-  } =>#t246;
+    final core::Set<core::int*>* #t325 = new col::_CompactLinkedHashSet::•<core::int*>();
+    for (final core::int* #t326 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
+      #t325.{core::Set::add}{Invariant}(42);
+  } =>#t325;
   core::Map<core::String*, core::int*>* map100 = block {
-    final core::Map<core::String*, core::int*>* #t248 = <core::String*, core::int*>{};
-    for (final core::int* #t249 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
-      #t248.{core::Map::[]=}{Invariant}("bar", 42);
-  } =>#t248;
+    final core::Map<core::String*, core::int*>* #t327 = <core::String*, core::int*>{};
+    for (final core::int* #t328 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
+      #t327.{core::Map::[]=}{Invariant}("bar", 42);
+  } =>#t327;
   core::List<core::int*>* list110 = block {
-    final core::List<core::int*>* #t250 = <core::int*>[];
+    final core::List<core::int*>* #t329 = <core::int*>[];
     {
       core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
-        #t250.{core::List::add}{Invariant}(i);
+        #t329.{core::List::add}{Invariant}(i);
       }
     }
-  } =>#t250;
+  } =>#t329;
   core::Set<core::int*>* set110 = block {
-    final core::Set<core::int*>* #t251 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t330 = new col::_CompactLinkedHashSet::•<core::int*>();
     {
       core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
-        #t251.{core::Set::add}{Invariant}(i);
+        #t330.{core::Set::add}{Invariant}(i);
       }
     }
-    #t251.{core::Set::add}{Invariant}(null);
-  } =>#t251;
+    #t330.{core::Set::add}{Invariant}(null);
+  } =>#t330;
   core::Map<core::String*, core::int*>* map110 = block {
-    final core::Map<core::String*, core::int*>* #t252 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t331 = <core::String*, core::int*>{};
     {
       core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
-        #t252.{core::Map::[]=}{Invariant}("bar", i);
+        #t331.{core::Map::[]=}{Invariant}("bar", i);
       }
     }
-    #t252.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t252;
+    #t331.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t331;
   core::List<core::int*>* list120 = block {
-    final core::List<core::int*>* #t253 = <core::int*>[];
+    final core::List<core::int*>* #t332 = <core::int*>[];
     {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         dynamic i = :sync-for-iterator.{core::Iterator::current};
-        #t253.{core::List::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
+        #t332.{core::List::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
       }
     }
-  } =>#t253;
+  } =>#t332;
   core::Set<core::int*>* set120 = block {
-    final core::Set<core::int*>* #t254 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t333 = new col::_CompactLinkedHashSet::•<core::int*>();
     {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         dynamic i = :sync-for-iterator.{core::Iterator::current};
-        #t254.{core::Set::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
+        #t333.{core::Set::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
       }
     }
-    #t254.{core::Set::add}{Invariant}(null);
-  } =>#t254;
+    #t333.{core::Set::add}{Invariant}(null);
+  } =>#t333;
   core::Map<core::String*, core::int*>* map120 = block {
-    final core::Map<core::String*, core::int*>* #t255 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t334 = <core::String*, core::int*>{};
     {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         dynamic i = :sync-for-iterator.{core::Iterator::current};
-        #t255.{core::Map::[]=}{Invariant}("bar", i as{TypeError,ForDynamic} core::int*);
+        #t334.{core::Map::[]=}{Invariant}("bar", i as{TypeError,ForDynamic} core::int*);
       }
     }
-    #t255.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t255;
+    #t334.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t334;
   core::List<core::int*>* list130 = block {
-    final core::List<core::int*>* #t256 = <core::int*>[];
+    final core::List<core::int*>* #t335 = <core::int*>[];
     for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
-      #t256.{core::List::add}{Invariant}(i);
-  } =>#t256;
+      #t335.{core::List::add}{Invariant}(i);
+  } =>#t335;
   core::Set<core::int*>* set130 = block {
-    final core::Set<core::int*>* #t257 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t336 = new col::_CompactLinkedHashSet::•<core::int*>();
     for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
-      #t257.{core::Set::add}{Invariant}(i);
-  } =>#t257;
+      #t336.{core::Set::add}{Invariant}(i);
+  } =>#t336;
   core::Map<core::int*, core::int*>* map130 = block {
-    final core::Map<core::int*, core::int*>* #t258 = <core::int*, core::int*>{};
+    final core::Map<core::int*, core::int*>* #t337 = <core::int*, core::int*>{};
     for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
-      #t258.{core::Map::[]=}{Invariant}(i, i);
-  } =>#t258;
+      #t337.{core::Map::[]=}{Invariant}(i, i);
+  } =>#t337;
 }
 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>();
@@ -1961,81 +2356,91 @@
       #L1:
       {
         block {
-          final core::List<core::int*>* #t259 = <core::int*>[];
+          final core::List<core::int*>* #t338 = <core::int*>[];
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-            #t259.{core::List::add}{Invariant}(let final<BottomType> #t260 = 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'.
+            #t338.{core::List::add}{Invariant}(let final<BottomType> #t339 = 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'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) \"bar\"];
                                             ^" in "bar" as{TypeError} core::int*);
-        } =>#t259;
+        } =>#t338;
         block {
-          final core::Set<core::int*>* #t261 = new col::_CompactLinkedHashSet::•<core::int*>();
+          final core::Set<core::int*>* #t340 = 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))
-            #t261.{core::Set::add}{Invariant}(let final<BottomType> #t262 = 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'.
+            #t340.{core::Set::add}{Invariant}(let final<BottomType> #t341 = 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'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\", null};
                                             ^" in "bar" as{TypeError} core::int*);
-          #t261.{core::Set::add}{Invariant}(null);
-        } =>#t261;
+          #t340.{core::Set::add}{Invariant}(null);
+        } =>#t340;
         block {
-          final core::Map<core::int*, core::int*>* #t263 = <core::int*, core::int*>{};
+          final core::Map<core::int*, core::int*>* #t342 = <core::int*, core::int*>{};
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-            #t263.{core::Map::[]=}{Invariant}(let final<BottomType> #t264 = 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'.
+            #t342.{core::Map::[]=}{Invariant}(let final<BottomType> #t343 = 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'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
-                                                 ^" in "bar" as{TypeError} core::int*, let final<BottomType> #t265 = 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*, let final<BottomType> #t344 = 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'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
                                                         ^" in "bar" as{TypeError} core::int*);
-          #t263.{core::Map::[]=}{Invariant}(let final<BottomType> #t266 = 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'.
+          #t342.{core::Map::[]=}{Invariant}(let final<BottomType> #t345 = 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'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
                                                                ^" in "baz" as{TypeError} core::int*, null);
-        } =>#t263;
+        } =>#t342;
         block {
-          final core::List<core::int*>* #t267 = <core::int*>[];
-          for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-            #t267.{core::List::addAll}{Invariant}(<core::int*>[let final<BottomType> #t268 = 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'.
-  <int>[for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"]];
-                                                ^" in "bar" as{TypeError} core::int*]);
-        } =>#t267;
-        block {
-          final core::Set<core::int*>* #t269 = 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))
-            #t269.{core::Set::addAll}{Invariant}(<core::int*>[let final<BottomType> #t270 = 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'.
-  <int>{for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"], null};
-                                                ^" in "bar" as{TypeError} core::int*]);
-          #t269.{core::Set::add}{Invariant}(null);
-        } =>#t269;
-        block {
-          final core::Map<core::int*, core::int*>* #t271 = <core::int*, core::int*>{};
+          final core::List<core::int*>* #t346 = <core::int*>[];
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
-            core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = <core::int*, core::int*>{let final<BottomType> #t272 = 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::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t347 = 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'.
+  <int>[for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"]];
+                                                ^" in "bar" as{TypeError} core::int*].{core::Iterable::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final core::int* #t348 = :sync-for-iterator.{core::Iterator::current};
+              #t346.{core::List::add}{Invariant}(#t348);
+            }
+          }
+        } =>#t346;
+        block {
+          final core::Set<core::int*>* #t349 = 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::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t350 = 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'.
+  <int>{for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"], null};
+                                                ^" in "bar" as{TypeError} core::int*].{core::Iterable::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final core::int* #t351 = :sync-for-iterator.{core::Iterator::current};
+              #t349.{core::Set::add}{Invariant}(#t351);
+            }
+          }
+          #t349.{core::Set::add}{Invariant}(null);
+        } =>#t349;
+        block {
+          final core::Map<core::int*, core::int*>* #t352 = <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::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = <core::int*, core::int*>{let final<BottomType> #t353 = 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'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
-                                                     ^" in "bar" as{TypeError} core::int*: let final<BottomType> #t273 = 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*: let final<BottomType> #t354 = 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'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
                                                             ^" in "bar" as{TypeError} core::int*}.{core::Map::entries}.{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-              final core::MapEntry<core::int*, core::int*>* #t274 = :sync-for-iterator.{core::Iterator::current};
-              #t271.{core::Map::[]=}{Invariant}(#t274.{core::MapEntry::key}, #t274.{core::MapEntry::value});
+              final core::MapEntry<core::int*, core::int*>* #t355 = :sync-for-iterator.{core::Iterator::current};
+              #t352.{core::Map::[]=}{Invariant}(#t355.{core::MapEntry::key}, #t355.{core::MapEntry::value});
             }
           }
-          #t271.{core::Map::[]=}{Invariant}(let final<BottomType> #t275 = 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'.
+          #t352.{core::Map::[]=}{Invariant}(let final<BottomType> #t356 = 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'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
                                                                     ^" in "baz" as{TypeError} core::int*, null);
-        } =>#t271;
+        } =>#t352;
         block {
-          final core::List<core::int*>* #t276 = <core::int*>[];
+          final core::List<core::int*>* #t357 = <core::int*>[];
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-            #t276.{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.
+            #t357.{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.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) ...map];
                                                ^");
-        } =>#t276;
+        } =>#t357;
         block {
-          final core::Set<core::int*>* #t277 = new col::_CompactLinkedHashSet::•<core::int*>();
+          final core::Set<core::int*>* #t358 = 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))
-            #t277.{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.
+            #t358.{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.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) ...map, null};
                                                ^");
-          #t277.{core::Set::add}{Invariant}(null);
-        } =>#t277;
+          #t358.{core::Set::add}{Invariant}(null);
+        } =>#t358;
         <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.
  - 'List' is from 'dart:core'.
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
@@ -2044,66 +2449,66 @@
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
                                                     ^": null};
         block {
-          final core::List<core::String*>* #t278 = <core::String*>[];
+          final core::List<core::String*>* #t359 = <core::String*>[];
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t278.{core::List::add}{Invariant}(let final<BottomType> #t279 = 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'.
+              #t359.{core::List::add}{Invariant}(let final<BottomType> #t360 = 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'.
   <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
                                                              ^" in 42 as{TypeError} core::String*);
             else
-              #t278.{core::List::add}{Invariant}(let final<BottomType> #t280 = 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'.
+              #t359.{core::List::add}{Invariant}(let final<BottomType> #t361 = 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'.
   <String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
                                                                      ^" in 3.14 as{TypeError} core::String*);
-        } =>#t278;
+        } =>#t359;
         block {
-          final core::Set<core::String*>* #t281 = new col::_CompactLinkedHashSet::•<core::String*>();
+          final core::Set<core::String*>* #t362 = 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))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t281.{core::Set::add}{Invariant}(let final<BottomType> #t282 = 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'.
+              #t362.{core::Set::add}{Invariant}(let final<BottomType> #t363 = 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'.
   <String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
                                                              ^" in 42 as{TypeError} core::String*);
             else
-              #t281.{core::Set::add}{Invariant}(let final<BottomType> #t283 = 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'.
+              #t362.{core::Set::add}{Invariant}(let final<BottomType> #t364 = 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'.
   <String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
                                                                      ^" in 3.14 as{TypeError} core::String*);
-          #t281.{core::Set::add}{Invariant}(null);
-        } =>#t281;
+          #t362.{core::Set::add}{Invariant}(null);
+        } =>#t362;
         block {
-          final core::Map<core::String*, core::String*>* #t284 = <core::String*, core::String*>{};
+          final core::Map<core::String*, core::String*>* #t365 = <core::String*, core::String*>{};
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t284.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t285 = 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'.
+              #t365.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t366 = 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'.
   <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*);
             else
-              #t284.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t286 = 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'.
+              #t365.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t367 = 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'.
   <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*);
-          #t284.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t284;
+          #t365.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t365;
         block {
-          final core::List<core::int*>* #t287 = <core::int*>[];
+          final core::List<core::int*>* #t368 = <core::int*>[];
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t287.{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.
+              #t368.{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.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42];
                                                              ^");
             else
-              #t287.{core::List::add}{Invariant}(42);
-        } =>#t287;
+              #t368.{core::List::add}{Invariant}(42);
+        } =>#t368;
         block {
-          final core::Set<core::int*>* #t288 = new col::_CompactLinkedHashSet::•<core::int*>();
+          final core::Set<core::int*>* #t369 = 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))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t288.{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.
+              #t369.{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.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42, null};
                                                              ^");
             else
-              #t288.{core::Set::add}{Invariant}(42);
-          #t288.{core::Set::add}{Invariant}(null);
-        } =>#t288;
+              #t369.{core::Set::add}{Invariant}(42);
+          #t369.{core::Set::add}{Invariant}(null);
+        } =>#t369;
         <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.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
@@ -2112,28 +2517,28 @@
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
                                                                      ^": null};
         block {
-          final core::List<core::int*>* #t289 = <core::int*>[];
+          final core::List<core::int*>* #t370 = <core::int*>[];
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t289.{core::List::add}{Invariant}(42);
+              #t370.{core::List::add}{Invariant}(42);
             else
-              #t289.{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.
+              #t370.{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.
  - 'Map' is from 'dart:core'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map];
                                                                      ^");
-        } =>#t289;
+        } =>#t370;
         block {
-          final core::Set<core::int*>* #t290 = new col::_CompactLinkedHashSet::•<core::int*>();
+          final core::Set<core::int*>* #t371 = 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))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t290.{core::Set::add}{Invariant}(42);
+              #t371.{core::Set::add}{Invariant}(42);
             else
-              #t290.{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.
+              #t371.{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.
  - 'Map' is from 'dart:core'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map, null};
                                                                      ^");
-          #t290.{core::Set::add}{Invariant}(null);
-        } =>#t290;
+          #t371.{core::Set::add}{Invariant}(null);
+        } =>#t371;
         <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.
  - 'List' is from 'dart:core'.
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else ...list, \"baz\": null};
@@ -2143,140 +2548,140 @@
                                                                                     ^": null};
         final core::int* i = 0;
         block {
-          final core::List<core::int*>* #t291 = <core::int*>[];
+          final core::List<core::int*>* #t372 = <core::int*>[];
           {
             core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1].{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-              final core::int* #t292 = :sync-for-iterator.{core::Iterator::current};
+              final core::int* #t373 = :sync-for-iterator.{core::Iterator::current};
               {
                 invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:230:14: Error: Can't assign to the final variable 'i'.
   <int>[for (i in <int>[1]) i];
              ^";
-                #t291.{core::List::add}{Invariant}(i);
+                #t372.{core::List::add}{Invariant}(i);
               }
             }
           }
-        } =>#t291;
+        } =>#t372;
         block {
-          final core::Set<core::int*>* #t293 = new col::_CompactLinkedHashSet::•<core::int*>();
+          final core::Set<core::int*>* #t374 = new col::_CompactLinkedHashSet::•<core::int*>();
           {
             core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1].{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-              final core::int* #t294 = :sync-for-iterator.{core::Iterator::current};
+              final core::int* #t375 = :sync-for-iterator.{core::Iterator::current};
               {
                 invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:231:14: Error: Can't assign to the final variable 'i'.
   <int>{for (i in <int>[1]) i, null};
              ^";
-                #t293.{core::Set::add}{Invariant}(i);
+                #t374.{core::Set::add}{Invariant}(i);
               }
             }
           }
-          #t293.{core::Set::add}{Invariant}(null);
-        } =>#t293;
+          #t374.{core::Set::add}{Invariant}(null);
+        } =>#t374;
         block {
-          final core::Map<core::String*, core::int*>* #t295 = <core::String*, core::int*>{};
+          final core::Map<core::String*, core::int*>* #t376 = <core::String*, core::int*>{};
           {
             core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1].{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-              final core::int* #t296 = :sync-for-iterator.{core::Iterator::current};
+              final core::int* #t377 = :sync-for-iterator.{core::Iterator::current};
               {
                 invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:21: Error: Can't assign to the final variable 'i'.
 \t<String, int>{for (i in <int>[1]) \"bar\": i, \"baz\": null};
 \t                   ^";
-                #t295.{core::Map::[]=}{Invariant}("bar", i);
+                #t376.{core::Map::[]=}{Invariant}("bar", i);
               }
             }
           }
-          #t295.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t295;
+          #t376.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t376;
         core::List<dynamic>* list10 = block {
-          final core::List<dynamic>* #t297 = <dynamic>[];
+          final core::List<dynamic>* #t378 = <dynamic>[];
           {
-            core::Iterator<dynamic>* :sync-for-iterator = (let final<BottomType> #t298 = 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<dynamic>* :sync-for-iterator = (let final<BottomType> #t379 = 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>'.
  - '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};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               dynamic i = :sync-for-iterator.{core::Iterator::current};
-              #t297.{core::List::add}{Invariant}(i);
+              #t378.{core::List::add}{Invariant}(i);
             }
           }
-        } =>#t297;
+        } =>#t378;
         core::Set<dynamic>* set10 = block {
-          final core::Set<dynamic>* #t299 = new col::_CompactLinkedHashSet::•<dynamic>();
+          final core::Set<dynamic>* #t380 = new col::_CompactLinkedHashSet::•<dynamic>();
           {
-            core::Iterator<dynamic>* :sync-for-iterator = (let final<BottomType> #t300 = 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<dynamic>* :sync-for-iterator = (let final<BottomType> #t381 = 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>'.
  - '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};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               dynamic i = :sync-for-iterator.{core::Iterator::current};
-              #t299.{core::Set::add}{Invariant}(i);
+              #t380.{core::Set::add}{Invariant}(i);
             }
           }
-          #t299.{core::Set::add}{Invariant}(null);
-        } =>#t299;
+          #t380.{core::Set::add}{Invariant}(null);
+        } =>#t380;
         core::Map<core::String*, dynamic>* map10 = block {
-          final core::Map<core::String*, dynamic>* #t301 = <core::String*, dynamic>{};
+          final core::Map<core::String*, dynamic>* #t382 = <core::String*, dynamic>{};
           {
-            core::Iterator<dynamic>* :sync-for-iterator = (let final<BottomType> #t302 = 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<dynamic>* :sync-for-iterator = (let final<BottomType> #t383 = 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>'.
  - '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};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               dynamic i = :sync-for-iterator.{core::Iterator::current};
-              #t301.{core::Map::[]=}{Invariant}("bar", i);
+              #t382.{core::Map::[]=}{Invariant}("bar", i);
             }
           }
-          #t301.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t301;
+          #t382.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t382;
         core::List<core::int*>* list20 = block {
-          final core::List<core::int*>* #t303 = <core::int*>[];
+          final core::List<core::int*>* #t384 = <core::int*>[];
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t304 = 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::int*>[let final<BottomType> #t385 = 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'.
   var list20 = [for (int i in [\"not\", \"int\"]) i];
-                               ^" in "not" as{TypeError} core::int*, let final<BottomType> #t305 = 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*, let final<BottomType> #t386 = 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'.
   var list20 = [for (int i in [\"not\", \"int\"]) i];
                                       ^" in "int" as{TypeError} core::int*].{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               core::int* i = :sync-for-iterator.{core::Iterator::current};
-              #t303.{core::List::add}{Invariant}(i);
+              #t384.{core::List::add}{Invariant}(i);
             }
           }
-        } =>#t303;
+        } =>#t384;
         core::Set<core::int*>* set20 = block {
-          final core::Set<core::int*>* #t306 = new col::_CompactLinkedHashSet::•<core::int*>();
+          final core::Set<core::int*>* #t387 = new col::_CompactLinkedHashSet::•<core::int*>();
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t307 = 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::int*>[let final<BottomType> #t388 = 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'.
   var set20 = {for (int i in [\"not\", \"int\"]) i, null};
-                              ^" in "not" as{TypeError} core::int*, let final<BottomType> #t308 = 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*, let final<BottomType> #t389 = 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'.
   var set20 = {for (int i in [\"not\", \"int\"]) i, null};
                                      ^" in "int" as{TypeError} core::int*].{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               core::int* i = :sync-for-iterator.{core::Iterator::current};
-              #t306.{core::Set::add}{Invariant}(i);
+              #t387.{core::Set::add}{Invariant}(i);
             }
           }
-          #t306.{core::Set::add}{Invariant}(null);
-        } =>#t306;
+          #t387.{core::Set::add}{Invariant}(null);
+        } =>#t387;
         core::Map<core::String*, core::int*>* map20 = block {
-          final core::Map<core::String*, core::int*>* #t309 = <core::String*, core::int*>{};
+          final core::Map<core::String*, core::int*>* #t390 = <core::String*, core::int*>{};
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t310 = 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::int*>[let final<BottomType> #t391 = 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'.
   var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
-                              ^" in "not" as{TypeError} core::int*, let final<BottomType> #t311 = 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*, let final<BottomType> #t392 = 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'.
   var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
                                      ^" in "int" as{TypeError} core::int*].{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               core::int* i = :sync-for-iterator.{core::Iterator::current};
-              #t309.{core::Map::[]=}{Invariant}("bar", i);
+              #t390.{core::Map::[]=}{Invariant}("bar", i);
             }
           }
-          #t309.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t309;
-        final core::List<dynamic>* #t312 = <dynamic>[];
+          #t390.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t390;
+        final core::List<dynamic>* #t393 = <dynamic>[];
         {
-          asy::Stream<dynamic>* :stream = let final<BottomType> #t313 = 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>'.
+          asy::Stream<dynamic>* :stream = let final<BottomType> #t394 = 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>'.
  - 'Stream' is from 'dart:async'.
   var list30 = [await for (var i in \"not stream\") i];
                                     ^" in "not stream" as{TypeError} asy::Stream<dynamic>*;
@@ -2284,25 +2689,25 @@
           try
             #L2:
             while (true) {
-              dynamic #t314 = asy::_asyncStarMoveNextHelper(:stream);
-              [yield] let dynamic #t315 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
+              dynamic #t395 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t396 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
               if(_in::unsafeCast<core::bool>(:result)) {
                 dynamic i = :for-iterator.{asy::_StreamIterator::current};
-                #t312.{core::List::add}{Invariant}(i);
+                #t393.{core::List::add}{Invariant}(i);
               }
               else
                 break #L2;
             }
           finally
             if(!:for-iterator.{asy::_StreamIterator::_subscription}.{core::Object::==}(null)) {
-              [yield] let dynamic #t316 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
+              [yield] let dynamic #t397 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
               :result;
             }
         }
-        core::List<dynamic>* list30 = block {} =>#t312;
-        final core::Set<dynamic>* #t317 = new col::_CompactLinkedHashSet::•<dynamic>();
+        core::List<dynamic>* list30 = block {} =>#t393;
+        final core::Set<dynamic>* #t398 = new col::_CompactLinkedHashSet::•<dynamic>();
         {
-          asy::Stream<dynamic>* :stream = let final<BottomType> #t318 = 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>'.
+          asy::Stream<dynamic>* :stream = let final<BottomType> #t399 = 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>'.
  - 'Stream' is from 'dart:async'.
   var set30 = {await for (var i in \"not stream\") i, null};
                                    ^" in "not stream" as{TypeError} asy::Stream<dynamic>*;
@@ -2310,27 +2715,27 @@
           try
             #L3:
             while (true) {
-              dynamic #t319 = asy::_asyncStarMoveNextHelper(:stream);
-              [yield] let dynamic #t320 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
+              dynamic #t400 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t401 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
               if(_in::unsafeCast<core::bool>(:result)) {
                 dynamic i = :for-iterator.{asy::_StreamIterator::current};
-                #t317.{core::Set::add}{Invariant}(i);
+                #t398.{core::Set::add}{Invariant}(i);
               }
               else
                 break #L3;
             }
           finally
             if(!:for-iterator.{asy::_StreamIterator::_subscription}.{core::Object::==}(null)) {
-              [yield] let dynamic #t321 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
+              [yield] let dynamic #t402 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
               :result;
             }
         }
         core::Set<dynamic>* set30 = block {
-          #t317.{core::Set::add}{Invariant}(null);
-        } =>#t317;
-        final core::Map<core::String*, dynamic>* #t322 = <core::String*, dynamic>{};
+          #t398.{core::Set::add}{Invariant}(null);
+        } =>#t398;
+        final core::Map<core::String*, dynamic>* #t403 = <core::String*, dynamic>{};
         {
-          asy::Stream<dynamic>* :stream = let final<BottomType> #t323 = 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>'.
+          asy::Stream<dynamic>* :stream = let final<BottomType> #t404 = 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>'.
  - '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>*;
@@ -2338,149 +2743,149 @@
           try
             #L4:
             while (true) {
-              dynamic #t324 = asy::_asyncStarMoveNextHelper(:stream);
-              [yield] let dynamic #t325 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
+              dynamic #t405 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t406 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
               if(_in::unsafeCast<core::bool>(:result)) {
                 dynamic i = :for-iterator.{asy::_StreamIterator::current};
-                #t322.{core::Map::[]=}{Invariant}("bar", i);
+                #t403.{core::Map::[]=}{Invariant}("bar", i);
               }
               else
                 break #L4;
             }
           finally
             if(!:for-iterator.{asy::_StreamIterator::_subscription}.{core::Object::==}(null)) {
-              [yield] let dynamic #t326 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
+              [yield] let dynamic #t407 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
               :result;
             }
         }
         core::Map<core::String*, dynamic>* map30 = block {
-          #t322.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t322;
-        final core::List<core::int*>* #t327 = <core::int*>[];
+          #t403.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t403;
+        final core::List<core::int*>* #t408 = <core::int*>[];
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t328 = 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::int*>[let final<BottomType> #t409 = 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'.
   var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
-                                                         ^" in "not" as{TypeError} core::int*, let final<BottomType> #t329 = 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*, let final<BottomType> #t410 = 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'.
   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);
           try
             #L5:
             while (true) {
-              dynamic #t330 = asy::_asyncStarMoveNextHelper(:stream);
-              [yield] let dynamic #t331 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
+              dynamic #t411 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t412 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
               if(_in::unsafeCast<core::bool>(:result)) {
                 core::int* i = :for-iterator.{asy::_StreamIterator::current};
-                #t327.{core::List::add}{Invariant}(i);
+                #t408.{core::List::add}{Invariant}(i);
               }
               else
                 break #L5;
             }
           finally
             if(!:for-iterator.{asy::_StreamIterator::_subscription}.{core::Object::==}(null)) {
-              [yield] let dynamic #t332 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
+              [yield] let dynamic #t413 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
               :result;
             }
         }
-        core::List<core::int*>* list40 = block {} =>#t327;
-        final core::Set<core::int*>* #t333 = new col::_CompactLinkedHashSet::•<core::int*>();
+        core::List<core::int*>* list40 = block {} =>#t408;
+        final core::Set<core::int*>* #t414 = new col::_CompactLinkedHashSet::•<core::int*>();
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t334 = 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::int*>[let final<BottomType> #t415 = 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'.
   var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
-                                                        ^" in "not" as{TypeError} core::int*, let final<BottomType> #t335 = 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*, let final<BottomType> #t416 = 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'.
   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);
           try
             #L6:
             while (true) {
-              dynamic #t336 = asy::_asyncStarMoveNextHelper(:stream);
-              [yield] let dynamic #t337 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
+              dynamic #t417 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t418 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
               if(_in::unsafeCast<core::bool>(:result)) {
                 core::int* i = :for-iterator.{asy::_StreamIterator::current};
-                #t333.{core::Set::add}{Invariant}(i);
+                #t414.{core::Set::add}{Invariant}(i);
               }
               else
                 break #L6;
             }
           finally
             if(!:for-iterator.{asy::_StreamIterator::_subscription}.{core::Object::==}(null)) {
-              [yield] let dynamic #t338 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
+              [yield] let dynamic #t419 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
               :result;
             }
         }
         core::Set<core::int*>* set40 = block {
-          #t333.{core::Set::add}{Invariant}(null);
-        } =>#t333;
-        final core::Map<core::String*, core::int*>* #t339 = <core::String*, core::int*>{};
+          #t414.{core::Set::add}{Invariant}(null);
+        } =>#t414;
+        final core::Map<core::String*, core::int*>* #t420 = <core::String*, core::int*>{};
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t340 = 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::int*>[let final<BottomType> #t421 = 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'.
   var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
-                                                        ^" in "not" as{TypeError} core::int*, let final<BottomType> #t341 = 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*, let final<BottomType> #t422 = 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'.
   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);
           try
             #L7:
             while (true) {
-              dynamic #t342 = asy::_asyncStarMoveNextHelper(:stream);
-              [yield] let dynamic #t343 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
+              dynamic #t423 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t424 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
               if(_in::unsafeCast<core::bool>(:result)) {
                 core::int* i = :for-iterator.{asy::_StreamIterator::current};
-                #t339.{core::Map::[]=}{Invariant}("bar", i);
+                #t420.{core::Map::[]=}{Invariant}("bar", i);
               }
               else
                 break #L7;
             }
           finally
             if(!:for-iterator.{asy::_StreamIterator::_subscription}.{core::Object::==}(null)) {
-              [yield] let dynamic #t344 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
+              [yield] let dynamic #t425 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
               :result;
             }
         }
         core::Map<core::String*, core::int*>* map40 = block {
-          #t339.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t339;
+          #t420.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t420;
         core::List<core::int*>* list50 = block {
-          final core::List<core::int*>* #t345 = <core::int*>[];
+          final core::List<core::int*>* #t426 = <core::int*>[];
           for (; ; )
-            #t345.{core::List::add}{Invariant}(42);
-        } =>#t345;
+            #t426.{core::List::add}{Invariant}(42);
+        } =>#t426;
         core::Set<core::int*>* set50 = block {
-          final core::Set<core::int*>* #t346 = new col::_CompactLinkedHashSet::•<core::int*>();
+          final core::Set<core::int*>* #t427 = new col::_CompactLinkedHashSet::•<core::int*>();
           for (; ; )
-            #t346.{core::Set::add}{Invariant}(42);
-          #t346.{core::Set::add}{Invariant}(null);
-        } =>#t346;
+            #t427.{core::Set::add}{Invariant}(42);
+          #t427.{core::Set::add}{Invariant}(null);
+        } =>#t427;
         core::Map<core::String*, core::int*>* map50 = block {
-          final core::Map<core::String*, core::int*>* #t347 = <core::String*, core::int*>{};
+          final core::Map<core::String*, core::int*>* #t428 = <core::String*, core::int*>{};
           for (; ; )
-            #t347.{core::Map::[]=}{Invariant}("bar", 42);
-          #t347.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t347;
+            #t428.{core::Map::[]=}{Invariant}("bar", 42);
+          #t428.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t428;
         core::List<core::int*>* list60 = block {
-          final core::List<core::int*>* #t348 = <core::int*>[];
-          for (; let final<BottomType> #t349 = 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'.
+          final core::List<core::int*>* #t429 = <core::int*>[];
+          for (; let final<BottomType> #t430 = 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'.
   var list60 = [for (; \"not bool\";) 42];
                        ^" in "not bool" as{TypeError} core::bool*; )
-            #t348.{core::List::add}{Invariant}(42);
-        } =>#t348;
+            #t429.{core::List::add}{Invariant}(42);
+        } =>#t429;
         core::Set<core::int*>* set60 = block {
-          final core::Set<core::int*>* #t350 = new col::_CompactLinkedHashSet::•<core::int*>();
-          for (; let final<BottomType> #t351 = 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'.
+          final core::Set<core::int*>* #t431 = new col::_CompactLinkedHashSet::•<core::int*>();
+          for (; let final<BottomType> #t432 = 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'.
   var set60 = {for (; \"not bool\";) 42, null};
                       ^" in "not bool" as{TypeError} core::bool*; )
-            #t350.{core::Set::add}{Invariant}(42);
-          #t350.{core::Set::add}{Invariant}(null);
-        } =>#t350;
+            #t431.{core::Set::add}{Invariant}(42);
+          #t431.{core::Set::add}{Invariant}(null);
+        } =>#t431;
         core::Map<core::String*, core::int*>* map60 = block {
-          final core::Map<core::String*, core::int*>* #t352 = <core::String*, core::int*>{};
-          for (; let final<BottomType> #t353 = 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'.
+          final core::Map<core::String*, core::int*>* #t433 = <core::String*, core::int*>{};
+          for (; let final<BottomType> #t434 = 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'.
   var map60 = {for (; \"not bool\";) \"bar\": 42, \"baz\": null};
                       ^" in "not bool" as{TypeError} core::bool*; )
-            #t352.{core::Map::[]=}{Invariant}("bar", 42);
-          #t352.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t352;
+            #t433.{core::Map::[]=}{Invariant}("bar", 42);
+          #t433.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t433;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
@@ -2497,37 +2902,37 @@
 }
 static method testForElementErrorsNotAsync(asy::Stream<core::int*>* stream) → dynamic {
   block {
-    final core::List<core::int*>* #t354 = <core::int*>[];
+    final core::List<core::int*>* #t435 = <core::int*>[];
     await for (core::int* i in stream)
-      #t354.{core::List::add}{Invariant}(i);
-  } =>#t354;
+      #t435.{core::List::add}{Invariant}(i);
+  } =>#t435;
   block {
-    final core::Set<core::int*>* #t355 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t436 = new col::_CompactLinkedHashSet::•<core::int*>();
     await for (core::int* i in stream)
-      #t355.{core::Set::add}{Invariant}(i);
-  } =>#t355;
+      #t436.{core::Set::add}{Invariant}(i);
+  } =>#t436;
   block {
-    final core::Map<core::String*, core::int*>* #t356 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t437 = <core::String*, core::int*>{};
     await for (core::int* i in stream)
-      #t356.{core::Map::[]=}{Invariant}("bar", i);
-  } =>#t356;
+      #t437.{core::Map::[]=}{Invariant}("bar", i);
+  } =>#t437;
 }
 static method testPromotion(self::A* a) → dynamic {
   core::List<core::int*>* list10 = block {
-    final core::List<core::int*>* #t357 = <core::int*>[];
+    final core::List<core::int*>* #t438 = <core::int*>[];
     if(a is self::B*)
-      #t357.{core::List::add}{Invariant}(a{self::B*}.{self::B::foo});
-  } =>#t357;
+      #t438.{core::List::add}{Invariant}(a{self::B*}.{self::B::foo});
+  } =>#t438;
   core::Set<core::int*>* set10 = block {
-    final core::Set<core::int*>* #t358 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t439 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(a is self::B*)
-      #t358.{core::Set::add}{Invariant}(a{self::B*}.{self::B::foo});
-  } =>#t358;
+      #t439.{core::Set::add}{Invariant}(a{self::B*}.{self::B::foo});
+  } =>#t439;
   core::Map<core::int*, core::int*>* map10 = block {
-    final core::Map<core::int*, core::int*>* #t359 = <core::int*, core::int*>{};
+    final core::Map<core::int*, core::int*>* #t440 = <core::int*, core::int*>{};
     if(a is self::B*)
-      #t359.{core::Map::[]=}{Invariant}(a{self::B*}.{self::B::foo}, a{self::B*}.{self::B::foo});
-  } =>#t359;
+      #t440.{core::Map::[]=}{Invariant}(a{self::B*}.{self::B::foo}, a{self::B*}.{self::B::foo});
+  } =>#t440;
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/general/null_aware_spread.dart.strong.expect b/pkg/front_end/testcases/general/null_aware_spread.dart.strong.expect
index 807a6b5..bd5bf0d 100644
--- a/pkg/front_end/testcases/general/null_aware_spread.dart.strong.expect
+++ b/pkg/front_end/testcases/general/null_aware_spread.dart.strong.expect
@@ -5,30 +5,33 @@
 
 static method nullAwareListSpread(core::List<core::String*>* list) → dynamic {
   list = block {
-    final core::List<core::String*>* #t1 = <core::String*>["foo"];
+    final core::List<core::String*>* #t1 = <core::String*>[];
+    #t1.{core::List::add}{Invariant}("foo");
     final core::Iterable<core::String*>* #t2 = list;
     if(!#t2.{core::Object::==}(null))
-      #t1.{core::List::addAll}{Invariant}(#t2);
+      for (final core::String* #t3 in #t2)
+        #t1.{core::List::add}{Invariant}(#t3);
   } =>#t1;
 }
 static method nullAwareSetSpread(core::Set<core::String*>* set) → dynamic {
   set = block {
-    final core::Set<core::String*>* #t3 = col::LinkedHashSet::•<core::String*>();
-    #t3.{core::Set::add}{Invariant}("foo");
-    final core::Iterable<core::String*>* #t4 = set;
-    if(!#t4.{core::Object::==}(null))
-      #t3.{core::Set::addAll}{Invariant}(#t4);
-  } =>#t3;
+    final core::Set<core::String*>* #t4 = col::LinkedHashSet::•<core::String*>();
+    #t4.{core::Set::add}{Invariant}("foo");
+    final core::Iterable<core::String*>* #t5 = set;
+    if(!#t5.{core::Object::==}(null))
+      for (final core::String* #t6 in #t5)
+        #t4.{core::Set::add}{Invariant}(#t6);
+  } =>#t4;
 }
 static method nullAwareMapSpread(core::Map<core::int*, core::String*>* map) → dynamic {
   map = block {
-    final core::Map<core::int*, core::String*>* #t5 = <core::int*, core::String*>{};
-    #t5.{core::Map::[]=}{Invariant}(0, "foo");
-    final core::Map<core::int*, core::String*>* #t6 = map;
-    if(!#t6.{core::Object::==}(null))
-      for (final core::MapEntry<core::int*, core::String*>* #t7 in #t6.{core::Map::entries})
-        #t5.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}, #t7.{core::MapEntry::value});
-  } =>#t5;
+    final core::Map<core::int*, core::String*>* #t7 = <core::int*, core::String*>{};
+    #t7.{core::Map::[]=}{Invariant}(0, "foo");
+    final core::Map<core::int*, core::String*>* #t8 = map;
+    if(!#t8.{core::Object::==}(null))
+      for (final core::MapEntry<core::int*, core::String*>* #t9 in #t8.{core::Map::entries})
+        #t7.{core::Map::[]=}{Invariant}(#t9.{core::MapEntry::key}, #t9.{core::MapEntry::value});
+  } =>#t7;
 }
 static method main() → dynamic {
   self::nullAwareListSpread(null);
diff --git a/pkg/front_end/testcases/general/null_aware_spread.dart.strong.transformed.expect b/pkg/front_end/testcases/general/null_aware_spread.dart.strong.transformed.expect
index e5e1b00..67a6d44 100644
--- a/pkg/front_end/testcases/general/null_aware_spread.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/null_aware_spread.dart.strong.transformed.expect
@@ -5,34 +5,45 @@
 
 static method nullAwareListSpread(core::List<core::String*>* list) → dynamic {
   list = block {
-    final core::List<core::String*>* #t1 = <core::String*>["foo"];
+    final core::List<core::String*>* #t1 = <core::String*>[];
+    #t1.{core::List::add}{Invariant}("foo");
     final core::Iterable<core::String*>* #t2 = list;
-    if(!#t2.{core::Object::==}(null))
-      #t1.{core::List::addAll}{Invariant}(#t2);
+    if(!#t2.{core::Object::==}(null)) {
+      core::Iterator<core::String*>* :sync-for-iterator = #t2.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::String* #t3 = :sync-for-iterator.{core::Iterator::current};
+        #t1.{core::List::add}{Invariant}(#t3);
+      }
+    }
   } =>#t1;
 }
 static method nullAwareSetSpread(core::Set<core::String*>* set) → dynamic {
   set = block {
-    final core::Set<core::String*>* #t3 = new col::_CompactLinkedHashSet::•<core::String*>();
-    #t3.{core::Set::add}{Invariant}("foo");
-    final core::Iterable<core::String*>* #t4 = set;
-    if(!#t4.{core::Object::==}(null))
-      #t3.{core::Set::addAll}{Invariant}(#t4);
-  } =>#t3;
+    final core::Set<core::String*>* #t4 = new col::_CompactLinkedHashSet::•<core::String*>();
+    #t4.{core::Set::add}{Invariant}("foo");
+    final core::Iterable<core::String*>* #t5 = set;
+    if(!#t5.{core::Object::==}(null)) {
+      core::Iterator<core::String*>* :sync-for-iterator = #t5.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::String* #t6 = :sync-for-iterator.{core::Iterator::current};
+        #t4.{core::Set::add}{Invariant}(#t6);
+      }
+    }
+  } =>#t4;
 }
 static method nullAwareMapSpread(core::Map<core::int*, core::String*>* map) → dynamic {
   map = block {
-    final core::Map<core::int*, core::String*>* #t5 = <core::int*, core::String*>{};
-    #t5.{core::Map::[]=}{Invariant}(0, "foo");
-    final core::Map<core::int*, core::String*>* #t6 = map;
-    if(!#t6.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::int*, core::String*>>* :sync-for-iterator = #t6.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::int*, core::String*>* #t7 = <core::int*, core::String*>{};
+    #t7.{core::Map::[]=}{Invariant}(0, "foo");
+    final core::Map<core::int*, core::String*>* #t8 = map;
+    if(!#t8.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int*, core::String*>>* :sync-for-iterator = #t8.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int*, core::String*>* #t7 = :sync-for-iterator.{core::Iterator::current};
-        #t5.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}, #t7.{core::MapEntry::value});
+        final core::MapEntry<core::int*, core::String*>* #t9 = :sync-for-iterator.{core::Iterator::current};
+        #t7.{core::Map::[]=}{Invariant}(#t9.{core::MapEntry::key}, #t9.{core::MapEntry::value});
       }
     }
-  } =>#t5;
+  } =>#t7;
 }
 static method main() → dynamic {
   self::nullAwareListSpread(null);
diff --git a/pkg/front_end/testcases/general/spread_collection.dart.strong.expect b/pkg/front_end/testcases/general/spread_collection.dart.strong.expect
index 049bc9f..45566e9 100644
--- a/pkg/front_end/testcases/general/spread_collection.dart.strong.expect
+++ b/pkg/front_end/testcases/general/spread_collection.dart.strong.expect
@@ -13,30 +13,35 @@
 
 static method main() → dynamic {
   final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = <core::int*>[1];
-    #t1.{core::List::addAll}{Invariant}(<core::int*>[2]);
-    final core::Iterable<core::int*>* #t2 = <core::int*>[3];
-    if(!#t2.{core::Object::==}(null))
-      #t1.{core::List::addAll}{Invariant}(#t2);
+    final core::List<core::int*>* #t1 = <core::int*>[];
+    #t1.{core::List::add}{Invariant}(1);
+    for (final core::int* #t2 in <core::int*>[2])
+      #t1.{core::List::add}{Invariant}(#t2);
+    final core::Iterable<core::int*>* #t3 = <core::int*>[3];
+    if(!#t3.{core::Object::==}(null))
+      for (final core::int* #t4 in #t3)
+        #t1.{core::List::add}{Invariant}(#t4);
   } =>#t1;
   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);
-    for (final core::MapEntry<core::int*, core::int*>* #t4 in <core::int*, core::int*>{2: 2}.{core::Map::entries})
-      #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}, #t4.{core::MapEntry::value});
-    final core::Map<core::int*, core::int*>* #t5 = <core::int*, core::int*>{3: 3};
-    if(!#t5.{core::Object::==}(null))
-      for (final core::MapEntry<core::int*, core::int*>* #t6 in #t5.{core::Map::entries})
-        #t3.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}, #t6.{core::MapEntry::value});
-  } =>#t3;
+    final core::Map<core::int*, core::int*>* #t5 = <core::int*, core::int*>{};
+    #t5.{core::Map::[]=}{Invariant}(1, 1);
+    for (final core::MapEntry<core::int*, core::int*>* #t6 in <core::int*, core::int*>{2: 2}.{core::Map::entries})
+      #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}, #t6.{core::MapEntry::value});
+    final core::Map<core::int*, core::int*>* #t7 = <core::int*, core::int*>{3: 3};
+    if(!#t7.{core::Object::==}(null))
+      for (final core::MapEntry<core::int*, core::int*>* #t8 in #t7.{core::Map::entries})
+        #t5.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}, #t8.{core::MapEntry::value});
+  } =>#t5;
   final core::Set<core::int*>* aSet = block {
-    final core::Set<core::int*>* #t7 = col::LinkedHashSet::•<core::int*>();
-    #t7.{core::Set::add}{Invariant}(1);
-    #t7.{core::Set::addAll}{Invariant}(<core::int*>[2]);
-    final core::Iterable<core::int*>* #t8 = <core::int*>[3];
-    if(!#t8.{core::Object::==}(null))
-      #t7.{core::Set::addAll}{Invariant}(#t8);
-  } =>#t7;
+    final core::Set<core::int*>* #t9 = col::LinkedHashSet::•<core::int*>();
+    #t9.{core::Set::add}{Invariant}(1);
+    for (final core::int* #t10 in <core::int*>[2])
+      #t9.{core::Set::add}{Invariant}(#t10);
+    final core::Iterable<core::int*>* #t11 = <core::int*>[3];
+    if(!#t11.{core::Object::==}(null))
+      for (final core::int* #t12 in #t11)
+        #t9.{core::Set::add}{Invariant}(#t12);
+  } =>#t9;
   final dynamic aSetOrMap = invalid-expression "pkg/front_end/testcases/general/spread_collection.dart:21:21: Error: Not enough type information to disambiguate between literal set and literal map.
 Try providing type arguments for the literal explicitly to disambiguate it.
   final aSetOrMap = {...foo()};
diff --git a/pkg/front_end/testcases/general/spread_collection.dart.strong.transformed.expect b/pkg/front_end/testcases/general/spread_collection.dart.strong.transformed.expect
index ff4b46b..d6d75a5 100644
--- a/pkg/front_end/testcases/general/spread_collection.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/spread_collection.dart.strong.transformed.expect
@@ -13,39 +13,62 @@
 
 static method main() → dynamic {
   final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = <core::int*>[1];
-    #t1.{core::List::addAll}{Invariant}(<core::int*>[2]);
-    final core::Iterable<core::int*>* #t2 = <core::int*>[3];
-    if(!#t2.{core::Object::==}(null))
-      #t1.{core::List::addAll}{Invariant}(#t2);
+    final core::List<core::int*>* #t1 = <core::int*>[];
+    #t1.{core::List::add}{Invariant}(1);
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[2].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t2 = :sync-for-iterator.{core::Iterator::current};
+        #t1.{core::List::add}{Invariant}(#t2);
+      }
+    }
+    final core::Iterable<core::int*>* #t3 = <core::int*>[3];
+    if(!#t3.{core::Object::==}(null)) {
+      core::Iterator<core::int*>* :sync-for-iterator = #t3.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t4 = :sync-for-iterator.{core::Iterator::current};
+        #t1.{core::List::add}{Invariant}(#t4);
+      }
+    }
   } =>#t1;
   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);
+    final core::Map<core::int*, core::int*>* #t5 = <core::int*, core::int*>{};
+    #t5.{core::Map::[]=}{Invariant}(1, 1);
     {
       core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = <core::int*, core::int*>{2: 2}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int*, core::int*>* #t4 = :sync-for-iterator.{core::Iterator::current};
-        #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}, #t4.{core::MapEntry::value});
-      }
-    }
-    final core::Map<core::int*, core::int*>* #t5 = <core::int*, core::int*>{3: 3};
-    if(!#t5.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = #t5.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::MapEntry<core::int*, core::int*>* #t6 = :sync-for-iterator.{core::Iterator::current};
-        #t3.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}, #t6.{core::MapEntry::value});
+        #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}, #t6.{core::MapEntry::value});
       }
     }
-  } =>#t3;
+    final core::Map<core::int*, core::int*>* #t7 = <core::int*, core::int*>{3: 3};
+    if(!#t7.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = #t7.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<core::int*, core::int*>* #t8 = :sync-for-iterator.{core::Iterator::current};
+        #t5.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}, #t8.{core::MapEntry::value});
+      }
+    }
+  } =>#t5;
   final core::Set<core::int*>* aSet = block {
-    final core::Set<core::int*>* #t7 = new col::_CompactLinkedHashSet::•<core::int*>();
-    #t7.{core::Set::add}{Invariant}(1);
-    #t7.{core::Set::addAll}{Invariant}(<core::int*>[2]);
-    final core::Iterable<core::int*>* #t8 = <core::int*>[3];
-    if(!#t8.{core::Object::==}(null))
-      #t7.{core::Set::addAll}{Invariant}(#t8);
-  } =>#t7;
+    final core::Set<core::int*>* #t9 = new col::_CompactLinkedHashSet::•<core::int*>();
+    #t9.{core::Set::add}{Invariant}(1);
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[2].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t10 = :sync-for-iterator.{core::Iterator::current};
+        #t9.{core::Set::add}{Invariant}(#t10);
+      }
+    }
+    final core::Iterable<core::int*>* #t11 = <core::int*>[3];
+    if(!#t11.{core::Object::==}(null)) {
+      core::Iterator<core::int*>* :sync-for-iterator = #t11.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t12 = :sync-for-iterator.{core::Iterator::current};
+        #t9.{core::Set::add}{Invariant}(#t12);
+      }
+    }
+  } =>#t9;
   final dynamic aSetOrMap = invalid-expression "pkg/front_end/testcases/general/spread_collection.dart:21:21: Error: Not enough type information to disambiguate between literal set and literal map.
 Try providing type arguments for the literal explicitly to disambiguate it.
   final aSetOrMap = {...foo()};
diff --git a/pkg/front_end/testcases/general/spread_collection_inference.dart.strong.expect b/pkg/front_end/testcases/general/spread_collection_inference.dart.strong.expect
index 65bf53e..e2acef4 100644
--- a/pkg/front_end/testcases/general/spread_collection_inference.dart.strong.expect
+++ b/pkg/front_end/testcases/general/spread_collection_inference.dart.strong.expect
@@ -110,153 +110,177 @@
   core::Map<core::int*, core::num*>* mapIntNum = <core::int*, core::num*>{42: 42};
   core::List<core::num*>* listNum = <core::num*>[42];
   core::List<dynamic>* lhs10 = block {
-    final core::List<dynamic>* #t1 = core::List::of<dynamic>(<dynamic>[]);
+    final core::List<dynamic>* #t1 = <dynamic>[];
+    for (final dynamic #t2 in <dynamic>[])
+      #t1.{core::List::add}{Invariant}(#t2);
   } =>#t1;
   core::Set<dynamic>* set10 = block {
-    final core::Set<dynamic>* #t2 = col::LinkedHashSet::of<dynamic>(<dynamic>[]);
-  } =>#t2;
-  core::Map<dynamic, dynamic>* map10 = block {
-    final core::Map<dynamic, dynamic>* #t3 = <dynamic, dynamic>{};
-    for (final core::MapEntry<dynamic, dynamic>* #t4 in <dynamic, dynamic>{}.{core::Map::entries})
-      #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}, #t4.{core::MapEntry::value});
+    final core::Set<dynamic>* #t3 = col::LinkedHashSet::•<dynamic>();
+    for (final dynamic #t4 in <dynamic>[])
+      #t3.{core::Set::add}{Invariant}(#t4);
   } =>#t3;
-  core::Map<dynamic, dynamic>* map10ambiguous = block {
+  core::Map<dynamic, dynamic>* map10 = block {
     final core::Map<dynamic, dynamic>* #t5 = <dynamic, dynamic>{};
     for (final core::MapEntry<dynamic, dynamic>* #t6 in <dynamic, dynamic>{}.{core::Map::entries})
       #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}, #t6.{core::MapEntry::value});
   } =>#t5;
-  core::List<core::int*>* lhs20 = block {
-    final core::List<core::int*>* #t7 = core::List::of<core::int*>(spread);
+  core::Map<dynamic, dynamic>* map10ambiguous = block {
+    final core::Map<dynamic, dynamic>* #t7 = <dynamic, dynamic>{};
+    for (final core::MapEntry<dynamic, dynamic>* #t8 in <dynamic, dynamic>{}.{core::Map::entries})
+      #t7.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}, #t8.{core::MapEntry::value});
   } =>#t7;
-  core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t8 = col::LinkedHashSet::of<core::int*>(spread);
-    #t8.{core::Set::add}{Invariant}(42);
-  } =>#t8;
-  core::Set<core::int*>* set20ambiguous = block {
-    final core::Set<core::int*>* #t9 = col::LinkedHashSet::•<core::int*>();
-    for (final dynamic #t10 in spread) {
-      final core::int* #t11 = #t10 as{TypeError} core::int*;
-      #t9.{core::Set::add}{Invariant}(#t11);
-    }
+  core::List<core::int*>* lhs20 = block {
+    final core::List<core::int*>* #t9 = <core::int*>[];
+    for (final core::int* #t10 in spread)
+      #t9.{core::List::add}{Invariant}(#t10);
   } =>#t9;
+  core::Set<core::int*>* set20 = block {
+    final core::Set<core::int*>* #t11 = col::LinkedHashSet::•<core::int*>();
+    for (final core::int* #t12 in spread)
+      #t11.{core::Set::add}{Invariant}(#t12);
+    #t11.{core::Set::add}{Invariant}(42);
+  } =>#t11;
+  core::Set<core::int*>* set20ambiguous = block {
+    final core::Set<core::int*>* #t13 = col::LinkedHashSet::•<core::int*>();
+    for (final dynamic #t14 in spread) {
+      final core::int* #t15 = #t14 as{TypeError} core::int*;
+      #t13.{core::Set::add}{Invariant}(#t15);
+    }
+  } =>#t13;
   core::Map<core::String*, core::int*>* map20 = block {
-    final core::Map<core::String*, core::int*>* #t12 = <core::String*, core::int*>{};
-    for (final core::MapEntry<core::String*, core::int*>* #t13 in mapSpread.{core::Map::entries})
-      #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}, #t13.{core::MapEntry::value});
-    #t12.{core::Map::[]=}{Invariant}("baz", 42);
-  } =>#t12;
-  core::Map<core::String*, core::int*>* map20ambiguous = block {
-    final core::Map<core::String*, core::int*>* #t14 = <core::String*, core::int*>{};
-    for (final core::MapEntry<core::String*, core::int*>* #t15 in mapSpread.{core::Map::entries})
-      #t14.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}, #t15.{core::MapEntry::value});
-  } =>#t14;
-  core::List<dynamic>* lhs21 = block {
-    final core::List<dynamic>* #t16 = core::List::of<dynamic>((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*);
+    final core::Map<core::String*, core::int*>* #t16 = <core::String*, core::int*>{};
+    for (final core::MapEntry<core::String*, core::int*>* #t17 in mapSpread.{core::Map::entries})
+      #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}, #t17.{core::MapEntry::value});
+    #t16.{core::Map::[]=}{Invariant}("baz", 42);
   } =>#t16;
-  core::Set<dynamic>* set21 = block {
-    final core::Set<dynamic>* #t17 = col::LinkedHashSet::of<dynamic>((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t17.{core::Set::add}{Invariant}(42);
-  } =>#t17;
-  core::Map<dynamic, dynamic>* map21 = block {
-    final core::Map<dynamic, dynamic>* #t18 = <dynamic, dynamic>{};
-    for (final core::MapEntry<dynamic, dynamic>* #t19 in ((mapSpread as dynamic) as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries})
+  core::Map<core::String*, core::int*>* map20ambiguous = block {
+    final core::Map<core::String*, core::int*>* #t18 = <core::String*, core::int*>{};
+    for (final core::MapEntry<core::String*, core::int*>* #t19 in mapSpread.{core::Map::entries})
       #t18.{core::Map::[]=}{Invariant}(#t19.{core::MapEntry::key}, #t19.{core::MapEntry::value});
-    #t18.{core::Map::[]=}{Invariant}("baz", 42);
   } =>#t18;
+  core::List<dynamic>* lhs21 = block {
+    final core::List<dynamic>* #t20 = <dynamic>[];
+    for (final dynamic #t21 in (spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+      #t20.{core::List::add}{Invariant}(#t21);
+  } =>#t20;
+  core::Set<dynamic>* set21 = block {
+    final core::Set<dynamic>* #t22 = col::LinkedHashSet::•<dynamic>();
+    for (final dynamic #t23 in (spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+      #t22.{core::Set::add}{Invariant}(#t23);
+    #t22.{core::Set::add}{Invariant}(42);
+  } =>#t22;
+  core::Map<dynamic, dynamic>* map21 = block {
+    final core::Map<dynamic, dynamic>* #t24 = <dynamic, dynamic>{};
+    for (final core::MapEntry<dynamic, dynamic>* #t25 in ((mapSpread as dynamic) as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries})
+      #t24.{core::Map::[]=}{Invariant}(#t25.{core::MapEntry::key}, #t25.{core::MapEntry::value});
+    #t24.{core::Map::[]=}{Invariant}("baz", 42);
+  } =>#t24;
   dynamic map21ambiguous = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:64:28: Error: Not enough type information to disambiguate between literal set and literal map.
 Try providing type arguments for the literal explicitly to disambiguate it.
   dynamic map21ambiguous = {...(mapSpread as dynamic)};
                            ^";
   core::List<core::int*>* lhs22 = block {
-    final core::List<core::int*>* #t20 = core::List::of<core::int*>(<core::int*>[]);
-  } =>#t20;
+    final core::List<core::int*>* #t26 = <core::int*>[];
+    for (final core::int* #t27 in <core::int*>[])
+      #t26.{core::List::add}{Invariant}(#t27);
+  } =>#t26;
   core::Set<core::int*>* set22 = block {
-    final core::Set<core::int*>* #t21 = col::LinkedHashSet::of<core::int*>(<core::int*>[]);
-    #t21.{core::Set::add}{Invariant}(42);
-  } =>#t21;
-  core::Set<core::int*>* set22ambiguous = block {
-    final core::Set<core::int*>* #t22 = col::LinkedHashSet::•<core::int*>();
-    for (final dynamic #t23 in <core::int*>[]) {
-      final core::int* #t24 = #t23 as{TypeError} core::int*;
-      #t22.{core::Set::add}{Invariant}(#t24);
-    }
-  } =>#t22;
-  core::Map<core::String*, core::int*>* map22 = block {
-    final core::Map<core::String*, core::int*>* #t25 = <core::String*, core::int*>{};
-    for (final core::MapEntry<core::String*, core::int*>* #t26 in <core::String*, core::int*>{}.{core::Map::entries})
-      #t25.{core::Map::[]=}{Invariant}(#t26.{core::MapEntry::key}, #t26.{core::MapEntry::value});
-  } =>#t25;
-  core::List<core::List<core::int*>*>* lhs23 = block {
-    final core::List<core::List<core::int*>*>* #t27 = core::List::of<core::List<core::int*>*>(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t27;
-  core::Set<core::List<core::int*>*>* set23 = block {
-    final core::Set<core::List<core::int*>*>* #t28 = col::LinkedHashSet::of<core::List<core::int*>*>(<core::List<core::int*>*>[<core::int*>[]]);
-    #t28.{core::Set::add}{Invariant}(<core::int*>[42]);
+    final core::Set<core::int*>* #t28 = col::LinkedHashSet::•<core::int*>();
+    for (final core::int* #t29 in <core::int*>[])
+      #t28.{core::Set::add}{Invariant}(#t29);
+    #t28.{core::Set::add}{Invariant}(42);
   } =>#t28;
-  core::Set<core::List<core::int*>*>* set23ambiguous = block {
-    final core::Set<core::List<core::int*>*>* #t29 = col::LinkedHashSet::•<core::List<core::int*>*>();
-    for (final dynamic #t30 in <core::List<core::int*>*>[<core::int*>[]]) {
-      final core::List<core::int*>* #t31 = #t30 as{TypeError} core::List<core::int*>*;
-      #t29.{core::Set::add}{Invariant}(#t31);
+  core::Set<core::int*>* set22ambiguous = block {
+    final core::Set<core::int*>* #t30 = col::LinkedHashSet::•<core::int*>();
+    for (final dynamic #t31 in <core::int*>[]) {
+      final core::int* #t32 = #t31 as{TypeError} core::int*;
+      #t30.{core::Set::add}{Invariant}(#t32);
     }
-  } =>#t29;
+  } =>#t30;
+  core::Map<core::String*, core::int*>* map22 = block {
+    final core::Map<core::String*, core::int*>* #t33 = <core::String*, core::int*>{};
+    for (final core::MapEntry<core::String*, core::int*>* #t34 in <core::String*, core::int*>{}.{core::Map::entries})
+      #t33.{core::Map::[]=}{Invariant}(#t34.{core::MapEntry::key}, #t34.{core::MapEntry::value});
+  } =>#t33;
+  core::List<core::List<core::int*>*>* lhs23 = block {
+    final core::List<core::List<core::int*>*>* #t35 = <core::List<core::int*>*>[];
+    for (final core::List<core::int*>* #t36 in <core::List<core::int*>*>[<core::int*>[]])
+      #t35.{core::List::add}{Invariant}(#t36);
+  } =>#t35;
+  core::Set<core::List<core::int*>*>* set23 = block {
+    final core::Set<core::List<core::int*>*>* #t37 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    for (final core::List<core::int*>* #t38 in <core::List<core::int*>*>[<core::int*>[]])
+      #t37.{core::Set::add}{Invariant}(#t38);
+    #t37.{core::Set::add}{Invariant}(<core::int*>[42]);
+  } =>#t37;
+  core::Set<core::List<core::int*>*>* set23ambiguous = block {
+    final core::Set<core::List<core::int*>*>* #t39 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    for (final dynamic #t40 in <core::List<core::int*>*>[<core::int*>[]]) {
+      final core::List<core::int*>* #t41 = #t40 as{TypeError} core::List<core::int*>*;
+      #t39.{core::Set::add}{Invariant}(#t41);
+    }
+  } =>#t39;
   core::Map<core::String*, core::List<core::int*>*>* map23 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t32 = <core::String*, core::List<core::int*>*>{};
-    for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t33 in <core::String*, core::List<core::int*>*>{"baz": <core::int*>[]}.{core::Map::entries})
-      #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
-  } =>#t32;
+    final core::Map<core::String*, core::List<core::int*>*>* #t42 = <core::String*, core::List<core::int*>*>{};
+    for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t43 in <core::String*, core::List<core::int*>*>{"baz": <core::int*>[]}.{core::Map::entries})
+      #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
+  } =>#t42;
   dynamic map24ambiguous = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:96:28: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
   dynamic map24ambiguous = {...spread, ...mapSpread};
                            ^";
-  core::int* lhs30 = let final<BottomType> #t34 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:98:36: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
+  core::int* lhs30 = let final<BottomType> #t44 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:98:36: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
  - 'List' is from 'dart:core'.
   int lhs30 = /*@ typeArgs=int* */ [...spread];
                                    ^" in ( block {
-    final core::List<core::int*>* #t35 = core::List::of<core::int*>(spread);
-  } =>#t35) as{TypeError} core::int*;
-  core::int* set30 = let final<BottomType> #t36 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:100:36: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
+    final core::List<core::int*>* #t45 = <core::int*>[];
+    for (final core::int* #t46 in spread)
+      #t45.{core::List::add}{Invariant}(#t46);
+  } =>#t45) as{TypeError} core::int*;
+  core::int* set30 = let final<BottomType> #t47 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:100:36: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
  - 'Set' is from 'dart:core'.
   int set30 = /*@ typeArgs=int* */ {...spread, 42};
                                    ^" in ( block {
-    final core::Set<core::int*>* #t37 = col::LinkedHashSet::of<core::int*>(spread);
-    #t37.{core::Set::add}{Invariant}(42);
-  } =>#t37) as{TypeError} core::int*;
-  core::int* set30ambiguous = let final<BottomType> #t38 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:103:7: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
+    final core::Set<core::int*>* #t48 = col::LinkedHashSet::•<core::int*>();
+    for (final core::int* #t49 in spread)
+      #t48.{core::Set::add}{Invariant}(#t49);
+    #t48.{core::Set::add}{Invariant}(42);
+  } =>#t48) as{TypeError} core::int*;
+  core::int* set30ambiguous = let final<BottomType> #t50 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:103:7: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
  - 'Set' is from 'dart:core'.
       {...spread};
       ^" in ( block {
-    final core::Set<core::int*>* #t39 = col::LinkedHashSet::•<core::int*>();
-    for (final dynamic #t40 in spread) {
-      final core::int* #t41 = #t40 as{TypeError} core::int*;
-      #t39.{core::Set::add}{Invariant}(#t41);
+    final core::Set<core::int*>* #t51 = col::LinkedHashSet::•<core::int*>();
+    for (final dynamic #t52 in spread) {
+      final core::int* #t53 = #t52 as{TypeError} core::int*;
+      #t51.{core::Set::add}{Invariant}(#t53);
     }
-  } =>#t39) as{TypeError} core::int*;
-  core::int* map30 = let final<BottomType> #t42 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:106:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
+  } =>#t51) as{TypeError} core::int*;
+  core::int* map30 = let final<BottomType> #t54 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:106:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
  - 'Map' is from 'dart:core'.
       {...mapSpread, \"baz\": 42};
       ^" in ( block {
-    final core::Map<core::String*, core::int*>* #t43 = <core::String*, core::int*>{};
-    for (final core::MapEntry<core::String*, core::int*>* #t44 in mapSpread.{core::Map::entries})
-      #t43.{core::Map::[]=}{Invariant}(#t44.{core::MapEntry::key}, #t44.{core::MapEntry::value});
-    #t43.{core::Map::[]=}{Invariant}("baz", 42);
-  } =>#t43) as{TypeError} core::int*;
-  core::int* map30ambiguous = let final<BottomType> #t45 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:109:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
+    final core::Map<core::String*, core::int*>* #t55 = <core::String*, core::int*>{};
+    for (final core::MapEntry<core::String*, core::int*>* #t56 in mapSpread.{core::Map::entries})
+      #t55.{core::Map::[]=}{Invariant}(#t56.{core::MapEntry::key}, #t56.{core::MapEntry::value});
+    #t55.{core::Map::[]=}{Invariant}("baz", 42);
+  } =>#t55) as{TypeError} core::int*;
+  core::int* map30ambiguous = let final<BottomType> #t57 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:109:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
  - 'Map' is from 'dart:core'.
       {...mapSpread};
       ^" in ( block {
-    final core::Map<core::String*, core::int*>* #t46 = <core::String*, core::int*>{};
-    for (final core::MapEntry<core::String*, core::int*>* #t47 in mapSpread.{core::Map::entries})
-      #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}, #t47.{core::MapEntry::value});
-  } =>#t46) as{TypeError} core::int*;
+    final core::Map<core::String*, core::int*>* #t58 = <core::String*, core::int*>{};
+    for (final core::MapEntry<core::String*, core::int*>* #t59 in mapSpread.{core::Map::entries})
+      #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}, #t59.{core::MapEntry::value});
+  } =>#t58) as{TypeError} core::int*;
   core::List<dynamic>* lhs40 = <dynamic>[invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:111:38: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
   List<dynamic> lhs40 = <dynamic>[...notSpreadInt];
                                      ^"];
   core::Set<dynamic>* set40 = block {
-    final core::Set<dynamic>* #t48 = col::LinkedHashSet::•<dynamic>();
-    #t48.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:113:37: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
+    final core::Set<dynamic>* #t60 = col::LinkedHashSet::•<dynamic>();
+    #t60.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:113:37: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
   Set<dynamic> set40 = <dynamic>{...notSpreadInt};
                                     ^");
-  } =>#t48;
+  } =>#t60;
   core::Map<dynamic, dynamic>* map40 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:115:55: Error: Unexpected type 'int' of a map spread entry.  Expected 'dynamic' or a Map.
   Map<dynamic, dynamic> map40 = <dynamic, dynamic>{...notSpreadInt};
                                                       ^": null};
@@ -264,11 +288,11 @@
   List<dynamic> lhs50 = <dynamic>[...notSpreadFunction];
                                      ^"];
   core::Set<dynamic>* set50 = block {
-    final core::Set<dynamic>* #t49 = col::LinkedHashSet::•<dynamic>();
-    #t49.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:119:37: Error: Unexpected type 'int Function()' of a spread.  Expected 'dynamic' or an Iterable.
+    final core::Set<dynamic>* #t61 = col::LinkedHashSet::•<dynamic>();
+    #t61.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:119:37: Error: Unexpected type 'int Function()' of a spread.  Expected 'dynamic' or an Iterable.
   Set<dynamic> set50 = <dynamic>{...notSpreadFunction};
                                     ^");
-  } =>#t49;
+  } =>#t61;
   core::Map<dynamic, dynamic>* map50 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:121:55: Error: Unexpected type 'int Function()' of a map spread entry.  Expected 'dynamic' or a Map.
   Map<dynamic, dynamic> map50 = <dynamic, dynamic>{...notSpreadFunction};
                                                       ^": null};
@@ -276,11 +300,11 @@
   List<String> lhs60 = <String>[...spread];
                                    ^"];
   core::Set<core::String*>* set60 = block {
-    final core::Set<core::String*>* #t50 = col::LinkedHashSet::•<core::String*>();
-    #t50.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:125:35: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
+    final core::Set<core::String*>* #t62 = col::LinkedHashSet::•<core::String*>();
+    #t62.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:125:35: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
   Set<String> set60 = <String>{...spread};
                                   ^");
-  } =>#t50;
+  } =>#t62;
   core::Map<core::int*, core::int*>* map60 = <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:127:39: Error: Can't assign spread entry keys of type 'String' to map entry keys of type 'int'.
   Map<int, int> map60 = <int, int>{...mapSpread};
                                       ^": null};
@@ -291,90 +315,92 @@
   List<int> lhs70 = <int>[...null];
                              ^"];
   core::Set<core::int*>* set70 = block {
-    final core::Set<core::int*>* #t51 = col::LinkedHashSet::•<core::int*>();
-    #t51.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:133:29: Error: Can't spread a value with static type 'Null'.
+    final core::Set<core::int*>* #t63 = col::LinkedHashSet::•<core::int*>();
+    #t63.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:133:29: Error: Can't spread a value with static type 'Null'.
   Set<int> set70 = <int>{...null};
                             ^");
-  } =>#t51;
+  } =>#t63;
   core::Set<dynamic>* set71ambiguous = block {
-    final core::Set<dynamic>* #t52 = col::LinkedHashSet::•<dynamic>();
-    #t52.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:137:8: Error: Expected ',' before this.
+    final core::Set<dynamic>* #t64 = col::LinkedHashSet::•<dynamic>();
+    #t64.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:137:8: Error: Expected ',' before this.
     ...null,
        ^");
-    for (final dynamic #t53 in <dynamic>[]) {
-      final dynamic #t54 = #t53 as{TypeError} dynamic;
-      #t52.{core::Set::add}{Invariant}(#t54);
+    for (final dynamic #t65 in <dynamic>[]) {
+      final dynamic #t66 = #t65 as{TypeError} dynamic;
+      #t64.{core::Set::add}{Invariant}(#t66);
     }
-  } =>#t52;
+  } =>#t64;
   core::Map<core::String*, core::int*>* map70 = <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:142:45: Error: Can't spread a value with static type 'Null'.
   Map<String, int> map70 = <String, int>{...null};
                                             ^": null};
   core::List<core::int*>* lhs80 = block {
-    final core::List<core::int*>* #t55 = <core::int*>[];
-    final core::Iterable<core::int*>* #t56 = null;
-    if(!#t56.{core::Object::==}(null))
-      #t55.{core::List::addAll}{Invariant}(#t56);
-  } =>#t55;
+    final core::List<core::int*>* #t67 = <core::int*>[];
+    final core::Iterable<core::int*>* #t68 = null;
+    if(!#t68.{core::Object::==}(null))
+      for (final core::int* #t69 in #t68)
+        #t67.{core::List::add}{Invariant}(#t69);
+  } =>#t67;
   core::Set<core::int*>* set80 = block {
-    final core::Set<core::int*>* #t57 = col::LinkedHashSet::•<core::int*>();
-    final core::Iterable<core::int*>* #t58 = null;
-    if(!#t58.{core::Object::==}(null))
-      #t57.{core::Set::addAll}{Invariant}(#t58);
-  } =>#t57;
-  core::Set<dynamic>* set81ambiguous = block {
-    final core::Set<dynamic>* #t59 = col::LinkedHashSet::•<dynamic>();
-    final core::Iterable<dynamic>* #t60 = null;
-    if(!#t60.{core::Object::==}(null))
-      for (final dynamic #t61 in #t60) {
-        final dynamic #t62 = #t61 as{TypeError} dynamic;
-        #t59.{core::Set::add}{Invariant}(#t62);
-      }
-    for (final dynamic #t63 in <dynamic>[]) {
-      final dynamic #t64 = #t63 as{TypeError} dynamic;
-      #t59.{core::Set::add}{Invariant}(#t64);
-    }
-  } =>#t59;
-  core::Map<core::String*, core::int*>* map80 = block {
-    final core::Map<core::String*, core::int*>* #t65 = <core::String*, core::int*>{};
-    final core::Map<core::String*, core::int*>* #t66 = null;
-    if(!#t66.{core::Object::==}(null))
-      for (final core::MapEntry<core::String*, core::int*>* #t67 in #t66.{core::Map::entries})
-        #t65.{core::Map::[]=}{Invariant}(#t67.{core::MapEntry::key}, #t67.{core::MapEntry::value});
-  } =>#t65;
-  core::Map<core::String*, core::int*>* map90 = block {
-    final core::Map<core::String*, core::int*>* #t68 = <core::String*, core::int*>{};
-    for (final core::MapEntry<core::String*, core::int*>* #t69 in self::bar<core::String*, core::int*>().{core::Map::entries})
-      #t68.{core::Map::[]=}{Invariant}(#t69.{core::MapEntry::key}, #t69.{core::MapEntry::value});
-  } =>#t68;
-  core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t70 = <core::int*>[];
-    for (final dynamic #t71 in listNum) {
-      final core::int* #t72 = #t71 as{TypeError} core::int*;
-      #t70.{core::List::add}{Invariant}(#t72);
-    }
+    final core::Set<core::int*>* #t70 = col::LinkedHashSet::•<core::int*>();
+    final core::Iterable<core::int*>* #t71 = null;
+    if(!#t71.{core::Object::==}(null))
+      for (final core::int* #t72 in #t71)
+        #t70.{core::Set::add}{Invariant}(#t72);
   } =>#t70;
-  core::Map<core::num*, core::int*>* map100 = block {
-    final core::Map<core::num*, core::int*>* #t73 = <core::num*, core::int*>{};
-    for (final core::MapEntry<dynamic, dynamic>* #t74 in mapIntNum.{core::Map::entries}) {
-      final core::num* #t75 = #t74.{core::MapEntry::key} as{TypeError} core::num*;
-      final core::int* #t76 = #t74.{core::MapEntry::value} as{TypeError} core::int*;
-      #t73.{core::Map::[]=}{Invariant}(#t75, #t76);
+  core::Set<dynamic>* set81ambiguous = block {
+    final core::Set<dynamic>* #t73 = col::LinkedHashSet::•<dynamic>();
+    final core::Iterable<dynamic>* #t74 = null;
+    if(!#t74.{core::Object::==}(null))
+      for (final dynamic #t75 in #t74) {
+        final dynamic #t76 = #t75 as{TypeError} dynamic;
+        #t73.{core::Set::add}{Invariant}(#t76);
+      }
+    for (final dynamic #t77 in <dynamic>[]) {
+      final dynamic #t78 = #t77 as{TypeError} dynamic;
+      #t73.{core::Set::add}{Invariant}(#t78);
     }
   } =>#t73;
+  core::Map<core::String*, core::int*>* map80 = block {
+    final core::Map<core::String*, core::int*>* #t79 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t80 = null;
+    if(!#t80.{core::Object::==}(null))
+      for (final core::MapEntry<core::String*, core::int*>* #t81 in #t80.{core::Map::entries})
+        #t79.{core::Map::[]=}{Invariant}(#t81.{core::MapEntry::key}, #t81.{core::MapEntry::value});
+  } =>#t79;
+  core::Map<core::String*, core::int*>* map90 = block {
+    final core::Map<core::String*, core::int*>* #t82 = <core::String*, core::int*>{};
+    for (final core::MapEntry<core::String*, core::int*>* #t83 in self::bar<core::String*, core::int*>().{core::Map::entries})
+      #t82.{core::Map::[]=}{Invariant}(#t83.{core::MapEntry::key}, #t83.{core::MapEntry::value});
+  } =>#t82;
+  core::List<core::int*>* list100 = block {
+    final core::List<core::int*>* #t84 = <core::int*>[];
+    for (final dynamic #t85 in listNum) {
+      final core::int* #t86 = #t85 as{TypeError} core::int*;
+      #t84.{core::List::add}{Invariant}(#t86);
+    }
+  } =>#t84;
+  core::Map<core::num*, core::int*>* map100 = block {
+    final core::Map<core::num*, core::int*>* #t87 = <core::num*, core::int*>{};
+    for (final core::MapEntry<dynamic, dynamic>* #t88 in mapIntNum.{core::Map::entries}) {
+      final core::num* #t89 = #t88.{core::MapEntry::key} as{TypeError} core::num*;
+      final core::int* #t90 = #t88.{core::MapEntry::value} as{TypeError} core::int*;
+      #t87.{core::Map::[]=}{Invariant}(#t89, #t90);
+    }
+  } =>#t87;
   core::List<core::int*>* list110 = block {
-    final core::List<core::int*>* #t77 = <core::int*>[];
-    for (final dynamic #t78 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-      final core::int* #t79 = #t78 as{TypeError} core::int*;
-      #t77.{core::List::add}{Invariant}(#t79);
+    final core::List<core::int*>* #t91 = <core::int*>[];
+    for (final dynamic #t92 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+      final core::int* #t93 = #t92 as{TypeError} core::int*;
+      #t91.{core::List::add}{Invariant}(#t93);
     }
-  } =>#t77;
+  } =>#t91;
   core::Map<core::num*, core::int*>* map110 = block {
-    final core::Map<core::num*, core::int*>* #t80 = <core::num*, core::int*>{};
-    for (final core::MapEntry<dynamic, dynamic>* #t81 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}) {
-      final core::num* #t82 = #t81.{core::MapEntry::key} as{TypeError} core::num*;
-      final core::int* #t83 = #t81.{core::MapEntry::value} as{TypeError} core::int*;
-      #t80.{core::Map::[]=}{Invariant}(#t82, #t83);
+    final core::Map<core::num*, core::int*>* #t94 = <core::num*, core::int*>{};
+    for (final core::MapEntry<dynamic, dynamic>* #t95 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}) {
+      final core::num* #t96 = #t95.{core::MapEntry::key} as{TypeError} core::num*;
+      final core::int* #t97 = #t95.{core::MapEntry::value} as{TypeError} core::int*;
+      #t94.{core::Map::[]=}{Invariant}(#t96, #t97);
     }
-  } =>#t80;
+  } =>#t94;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/spread_collection_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/general/spread_collection_inference.dart.strong.transformed.expect
index 8638624..6ecdd84 100644
--- a/pkg/front_end/testcases/general/spread_collection_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/spread_collection_inference.dart.strong.transformed.expect
@@ -110,22 +110,26 @@
   core::Map<core::int*, core::num*>* mapIntNum = <core::int*, core::num*>{42: 42};
   core::List<core::num*>* listNum = <core::num*>[42];
   core::List<dynamic>* lhs10 = block {
-    final core::List<dynamic>* #t1 = core::List::of<dynamic>(<dynamic>[]);
+    final core::List<dynamic>* #t1 = <dynamic>[];
+    {
+      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t2 = :sync-for-iterator.{core::Iterator::current};
+        #t1.{core::List::add}{Invariant}(#t2);
+      }
+    }
   } =>#t1;
   core::Set<dynamic>* set10 = block {
-    final core::Set<dynamic>* #t2 = col::LinkedHashSet::of<dynamic>(<dynamic>[]);
-  } =>#t2;
-  core::Map<dynamic, dynamic>* map10 = block {
-    final core::Map<dynamic, dynamic>* #t3 = <dynamic, dynamic>{};
+    final core::Set<dynamic>* #t3 = new col::_CompactLinkedHashSet::•<dynamic>();
     {
-      core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = <dynamic, dynamic>{}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic>* #t4 = :sync-for-iterator.{core::Iterator::current};
-        #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}, #t4.{core::MapEntry::value});
+        final dynamic #t4 = :sync-for-iterator.{core::Iterator::current};
+        #t3.{core::Set::add}{Invariant}(#t4);
       }
     }
   } =>#t3;
-  core::Map<dynamic, dynamic>* map10ambiguous = block {
+  core::Map<dynamic, dynamic>* map10 = block {
     final core::Map<dynamic, dynamic>* #t5 = <dynamic, dynamic>{};
     {
       core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = <dynamic, dynamic>{}.{core::Map::entries}.{core::Iterable::iterator};
@@ -135,197 +139,277 @@
       }
     }
   } =>#t5;
-  core::List<core::int*>* lhs20 = block {
-    final core::List<core::int*>* #t7 = core::List::of<core::int*>(spread);
+  core::Map<dynamic, dynamic>* map10ambiguous = block {
+    final core::Map<dynamic, dynamic>* #t7 = <dynamic, dynamic>{};
+    {
+      core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = <dynamic, dynamic>{}.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<dynamic, dynamic>* #t8 = :sync-for-iterator.{core::Iterator::current};
+        #t7.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}, #t8.{core::MapEntry::value});
+      }
+    }
   } =>#t7;
-  core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t8 = col::LinkedHashSet::of<core::int*>(spread);
-    #t8.{core::Set::add}{Invariant}(42);
-  } =>#t8;
-  core::Set<core::int*>* set20ambiguous = block {
-    final core::Set<core::int*>* #t9 = new col::_CompactLinkedHashSet::•<core::int*>();
+  core::List<core::int*>* lhs20 = block {
+    final core::List<core::int*>* #t9 = <core::int*>[];
     {
       core::Iterator<core::int*>* :sync-for-iterator = spread.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t10 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t11 = #t10 as{TypeError} core::int*;
-          #t9.{core::Set::add}{Invariant}(#t11);
-        }
+        final core::int* #t10 = :sync-for-iterator.{core::Iterator::current};
+        #t9.{core::List::add}{Invariant}(#t10);
       }
     }
   } =>#t9;
+  core::Set<core::int*>* set20 = block {
+    final core::Set<core::int*>* #t11 = new col::_CompactLinkedHashSet::•<core::int*>();
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = spread.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t12 = :sync-for-iterator.{core::Iterator::current};
+        #t11.{core::Set::add}{Invariant}(#t12);
+      }
+    }
+    #t11.{core::Set::add}{Invariant}(42);
+  } =>#t11;
+  core::Set<core::int*>* set20ambiguous = block {
+    final core::Set<core::int*>* #t13 = new col::_CompactLinkedHashSet::•<core::int*>();
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = spread.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t14 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int* #t15 = #t14 as{TypeError} core::int*;
+          #t13.{core::Set::add}{Invariant}(#t15);
+        }
+      }
+    }
+  } =>#t13;
   core::Map<core::String*, core::int*>* map20 = block {
-    final core::Map<core::String*, core::int*>* #t12 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t16 = <core::String*, core::int*>{};
     {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapSpread.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t13 = :sync-for-iterator.{core::Iterator::current};
-        #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}, #t13.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t17 = :sync-for-iterator.{core::Iterator::current};
+        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}, #t17.{core::MapEntry::value});
       }
     }
-    #t12.{core::Map::[]=}{Invariant}("baz", 42);
-  } =>#t12;
-  core::Map<core::String*, core::int*>* map20ambiguous = block {
-    final core::Map<core::String*, core::int*>* #t14 = <core::String*, core::int*>{};
-    {
-      core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapSpread.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t15 = :sync-for-iterator.{core::Iterator::current};
-        #t14.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}, #t15.{core::MapEntry::value});
-      }
-    }
-  } =>#t14;
-  core::List<dynamic>* lhs21 = block {
-    final core::List<dynamic>* #t16 = core::List::of<dynamic>((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*);
+    #t16.{core::Map::[]=}{Invariant}("baz", 42);
   } =>#t16;
-  core::Set<dynamic>* set21 = block {
-    final core::Set<dynamic>* #t17 = col::LinkedHashSet::of<dynamic>((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t17.{core::Set::add}{Invariant}(42);
-  } =>#t17;
-  core::Map<dynamic, dynamic>* map21 = block {
-    final core::Map<dynamic, dynamic>* #t18 = <dynamic, dynamic>{};
+  core::Map<core::String*, core::int*>* map20ambiguous = block {
+    final core::Map<core::String*, core::int*>* #t18 = <core::String*, core::int*>{};
     {
-      core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = ((mapSpread as dynamic) as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapSpread.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic>* #t19 = :sync-for-iterator.{core::Iterator::current};
+        final core::MapEntry<core::String*, core::int*>* #t19 = :sync-for-iterator.{core::Iterator::current};
         #t18.{core::Map::[]=}{Invariant}(#t19.{core::MapEntry::key}, #t19.{core::MapEntry::value});
       }
     }
-    #t18.{core::Map::[]=}{Invariant}("baz", 42);
   } =>#t18;
+  core::List<dynamic>* lhs21 = block {
+    final core::List<dynamic>* #t20 = <dynamic>[];
+    {
+      core::Iterator<dynamic>* :sync-for-iterator = ((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t21 = :sync-for-iterator.{core::Iterator::current};
+        #t20.{core::List::add}{Invariant}(#t21);
+      }
+    }
+  } =>#t20;
+  core::Set<dynamic>* set21 = block {
+    final core::Set<dynamic>* #t22 = new col::_CompactLinkedHashSet::•<dynamic>();
+    {
+      core::Iterator<dynamic>* :sync-for-iterator = ((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t23 = :sync-for-iterator.{core::Iterator::current};
+        #t22.{core::Set::add}{Invariant}(#t23);
+      }
+    }
+    #t22.{core::Set::add}{Invariant}(42);
+  } =>#t22;
+  core::Map<dynamic, dynamic>* map21 = block {
+    final core::Map<dynamic, dynamic>* #t24 = <dynamic, dynamic>{};
+    {
+      core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = ((mapSpread as dynamic) as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<dynamic, dynamic>* #t25 = :sync-for-iterator.{core::Iterator::current};
+        #t24.{core::Map::[]=}{Invariant}(#t25.{core::MapEntry::key}, #t25.{core::MapEntry::value});
+      }
+    }
+    #t24.{core::Map::[]=}{Invariant}("baz", 42);
+  } =>#t24;
   dynamic map21ambiguous = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:64:28: Error: Not enough type information to disambiguate between literal set and literal map.
 Try providing type arguments for the literal explicitly to disambiguate it.
   dynamic map21ambiguous = {...(mapSpread as dynamic)};
                            ^";
   core::List<core::int*>* lhs22 = block {
-    final core::List<core::int*>* #t20 = core::List::of<core::int*>(<core::int*>[]);
-  } =>#t20;
-  core::Set<core::int*>* set22 = block {
-    final core::Set<core::int*>* #t21 = col::LinkedHashSet::of<core::int*>(<core::int*>[]);
-    #t21.{core::Set::add}{Invariant}(42);
-  } =>#t21;
-  core::Set<core::int*>* set22ambiguous = block {
-    final core::Set<core::int*>* #t22 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::List<core::int*>* #t26 = <core::int*>[];
     {
       core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t23 = :sync-for-iterator.{core::Iterator::current};
+        final core::int* #t27 = :sync-for-iterator.{core::Iterator::current};
+        #t26.{core::List::add}{Invariant}(#t27);
+      }
+    }
+  } =>#t26;
+  core::Set<core::int*>* set22 = block {
+    final core::Set<core::int*>* #t28 = new col::_CompactLinkedHashSet::•<core::int*>();
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t29 = :sync-for-iterator.{core::Iterator::current};
+        #t28.{core::Set::add}{Invariant}(#t29);
+      }
+    }
+    #t28.{core::Set::add}{Invariant}(42);
+  } =>#t28;
+  core::Set<core::int*>* set22ambiguous = block {
+    final core::Set<core::int*>* #t30 = new col::_CompactLinkedHashSet::•<core::int*>();
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t31 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int* #t24 = #t23 as{TypeError} core::int*;
-          #t22.{core::Set::add}{Invariant}(#t24);
+          final core::int* #t32 = #t31 as{TypeError} core::int*;
+          #t30.{core::Set::add}{Invariant}(#t32);
         }
       }
     }
-  } =>#t22;
+  } =>#t30;
   core::Map<core::String*, core::int*>* map22 = block {
-    final core::Map<core::String*, core::int*>* #t25 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t33 = <core::String*, core::int*>{};
     {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t26 = :sync-for-iterator.{core::Iterator::current};
-        #t25.{core::Map::[]=}{Invariant}(#t26.{core::MapEntry::key}, #t26.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t34 = :sync-for-iterator.{core::Iterator::current};
+        #t33.{core::Map::[]=}{Invariant}(#t34.{core::MapEntry::key}, #t34.{core::MapEntry::value});
       }
     }
-  } =>#t25;
+  } =>#t33;
   core::List<core::List<core::int*>*>* lhs23 = block {
-    final core::List<core::List<core::int*>*>* #t27 = core::List::of<core::List<core::int*>*>(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t27;
-  core::Set<core::List<core::int*>*>* set23 = block {
-    final core::Set<core::List<core::int*>*>* #t28 = col::LinkedHashSet::of<core::List<core::int*>*>(<core::List<core::int*>*>[<core::int*>[]]);
-    #t28.{core::Set::add}{Invariant}(<core::int*>[42]);
-  } =>#t28;
-  core::Set<core::List<core::int*>*>* set23ambiguous = block {
-    final core::Set<core::List<core::int*>*>* #t29 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::List<core::List<core::int*>*>* #t35 = <core::List<core::int*>*>[];
     {
       core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t30 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::List<core::int*>* #t31 = #t30 as{TypeError} core::List<core::int*>*;
-          #t29.{core::Set::add}{Invariant}(#t31);
-        }
+        final core::List<core::int*>* #t36 = :sync-for-iterator.{core::Iterator::current};
+        #t35.{core::List::add}{Invariant}(#t36);
       }
     }
-  } =>#t29;
-  core::Map<core::String*, core::List<core::int*>*>* map23 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t32 = <core::String*, core::List<core::int*>*>{};
+  } =>#t35;
+  core::Set<core::List<core::int*>*>* set23 = block {
+    final core::Set<core::List<core::int*>*>* #t37 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"baz": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::List<core::int*>*>* #t33 = :sync-for-iterator.{core::Iterator::current};
-        #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
+        final core::List<core::int*>* #t38 = :sync-for-iterator.{core::Iterator::current};
+        #t37.{core::Set::add}{Invariant}(#t38);
       }
     }
-  } =>#t32;
-  dynamic map24ambiguous = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:96:28: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
-  dynamic map24ambiguous = {...spread, ...mapSpread};
-                           ^";
-  core::int* lhs30 = let final<BottomType> #t34 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:98:36: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
- - 'List' is from 'dart:core'.
-  int lhs30 = /*@ typeArgs=int* */ [...spread];
-                                   ^" in ( block {
-    final core::List<core::int*>* #t35 = core::List::of<core::int*>(spread);
-  } =>#t35) as{TypeError} core::int*;
-  core::int* set30 = let final<BottomType> #t36 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:100:36: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
- - 'Set' is from 'dart:core'.
-  int set30 = /*@ typeArgs=int* */ {...spread, 42};
-                                   ^" in ( block {
-    final core::Set<core::int*>* #t37 = col::LinkedHashSet::of<core::int*>(spread);
-    #t37.{core::Set::add}{Invariant}(42);
-  } =>#t37) as{TypeError} core::int*;
-  core::int* set30ambiguous = let final<BottomType> #t38 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:103:7: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
- - 'Set' is from 'dart:core'.
-      {...spread};
-      ^" in ( block {
-    final core::Set<core::int*>* #t39 = new col::_CompactLinkedHashSet::•<core::int*>();
+    #t37.{core::Set::add}{Invariant}(<core::int*>[42]);
+  } =>#t37;
+  core::Set<core::List<core::int*>*>* set23ambiguous = block {
+    final core::Set<core::List<core::int*>*>* #t39 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     {
-      core::Iterator<core::int*>* :sync-for-iterator = spread.{core::Iterable::iterator};
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t40 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int* #t41 = #t40 as{TypeError} core::int*;
+          final core::List<core::int*>* #t41 = #t40 as{TypeError} core::List<core::int*>*;
           #t39.{core::Set::add}{Invariant}(#t41);
         }
       }
     }
-  } =>#t39) as{TypeError} core::int*;
-  core::int* map30 = let final<BottomType> #t42 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:106:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
+  } =>#t39;
+  core::Map<core::String*, core::List<core::int*>*>* map23 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t42 = <core::String*, core::List<core::int*>*>{};
+    {
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"baz": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<core::String*, core::List<core::int*>*>* #t43 = :sync-for-iterator.{core::Iterator::current};
+        #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
+      }
+    }
+  } =>#t42;
+  dynamic map24ambiguous = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:96:28: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  dynamic map24ambiguous = {...spread, ...mapSpread};
+                           ^";
+  core::int* lhs30 = let final<BottomType> #t44 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:98:36: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
+ - 'List' is from 'dart:core'.
+  int lhs30 = /*@ typeArgs=int* */ [...spread];
+                                   ^" in ( block {
+    final core::List<core::int*>* #t45 = <core::int*>[];
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = spread.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t46 = :sync-for-iterator.{core::Iterator::current};
+        #t45.{core::List::add}{Invariant}(#t46);
+      }
+    }
+  } =>#t45) as{TypeError} core::int*;
+  core::int* set30 = let final<BottomType> #t47 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:100:36: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
+ - 'Set' is from 'dart:core'.
+  int set30 = /*@ typeArgs=int* */ {...spread, 42};
+                                   ^" in ( block {
+    final core::Set<core::int*>* #t48 = new col::_CompactLinkedHashSet::•<core::int*>();
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = spread.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t49 = :sync-for-iterator.{core::Iterator::current};
+        #t48.{core::Set::add}{Invariant}(#t49);
+      }
+    }
+    #t48.{core::Set::add}{Invariant}(42);
+  } =>#t48) as{TypeError} core::int*;
+  core::int* set30ambiguous = let final<BottomType> #t50 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:103:7: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
+ - 'Set' is from 'dart:core'.
+      {...spread};
+      ^" in ( block {
+    final core::Set<core::int*>* #t51 = new col::_CompactLinkedHashSet::•<core::int*>();
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = spread.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t52 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int* #t53 = #t52 as{TypeError} core::int*;
+          #t51.{core::Set::add}{Invariant}(#t53);
+        }
+      }
+    }
+  } =>#t51) as{TypeError} core::int*;
+  core::int* map30 = let final<BottomType> #t54 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:106:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
  - 'Map' is from 'dart:core'.
       {...mapSpread, \"baz\": 42};
       ^" in ( block {
-    final core::Map<core::String*, core::int*>* #t43 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t55 = <core::String*, core::int*>{};
     {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapSpread.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t44 = :sync-for-iterator.{core::Iterator::current};
-        #t43.{core::Map::[]=}{Invariant}(#t44.{core::MapEntry::key}, #t44.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t56 = :sync-for-iterator.{core::Iterator::current};
+        #t55.{core::Map::[]=}{Invariant}(#t56.{core::MapEntry::key}, #t56.{core::MapEntry::value});
       }
     }
-    #t43.{core::Map::[]=}{Invariant}("baz", 42);
-  } =>#t43) as{TypeError} core::int*;
-  core::int* map30ambiguous = let final<BottomType> #t45 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:109:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
+    #t55.{core::Map::[]=}{Invariant}("baz", 42);
+  } =>#t55) as{TypeError} core::int*;
+  core::int* map30ambiguous = let final<BottomType> #t57 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:109:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
  - 'Map' is from 'dart:core'.
       {...mapSpread};
       ^" in ( block {
-    final core::Map<core::String*, core::int*>* #t46 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t58 = <core::String*, core::int*>{};
     {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapSpread.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t47 = :sync-for-iterator.{core::Iterator::current};
-        #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}, #t47.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t59 = :sync-for-iterator.{core::Iterator::current};
+        #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}, #t59.{core::MapEntry::value});
       }
     }
-  } =>#t46) as{TypeError} core::int*;
+  } =>#t58) as{TypeError} core::int*;
   core::List<dynamic>* lhs40 = <dynamic>[invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:111:38: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
   List<dynamic> lhs40 = <dynamic>[...notSpreadInt];
                                      ^"];
   core::Set<dynamic>* set40 = block {
-    final core::Set<dynamic>* #t48 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t48.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:113:37: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
+    final core::Set<dynamic>* #t60 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t60.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:113:37: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
   Set<dynamic> set40 = <dynamic>{...notSpreadInt};
                                     ^");
-  } =>#t48;
+  } =>#t60;
   core::Map<dynamic, dynamic>* map40 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:115:55: Error: Unexpected type 'int' of a map spread entry.  Expected 'dynamic' or a Map.
   Map<dynamic, dynamic> map40 = <dynamic, dynamic>{...notSpreadInt};
                                                       ^": null};
@@ -333,11 +417,11 @@
   List<dynamic> lhs50 = <dynamic>[...notSpreadFunction];
                                      ^"];
   core::Set<dynamic>* set50 = block {
-    final core::Set<dynamic>* #t49 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t49.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:119:37: Error: Unexpected type 'int Function()' of a spread.  Expected 'dynamic' or an Iterable.
+    final core::Set<dynamic>* #t61 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t61.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:119:37: Error: Unexpected type 'int Function()' of a spread.  Expected 'dynamic' or an Iterable.
   Set<dynamic> set50 = <dynamic>{...notSpreadFunction};
                                     ^");
-  } =>#t49;
+  } =>#t61;
   core::Map<dynamic, dynamic>* map50 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:121:55: Error: Unexpected type 'int Function()' of a map spread entry.  Expected 'dynamic' or a Map.
   Map<dynamic, dynamic> map50 = <dynamic, dynamic>{...notSpreadFunction};
                                                       ^": null};
@@ -345,11 +429,11 @@
   List<String> lhs60 = <String>[...spread];
                                    ^"];
   core::Set<core::String*>* set60 = block {
-    final core::Set<core::String*>* #t50 = new col::_CompactLinkedHashSet::•<core::String*>();
-    #t50.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:125:35: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
+    final core::Set<core::String*>* #t62 = new col::_CompactLinkedHashSet::•<core::String*>();
+    #t62.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:125:35: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
   Set<String> set60 = <String>{...spread};
                                   ^");
-  } =>#t50;
+  } =>#t62;
   core::Map<core::int*, core::int*>* map60 = <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:127:39: Error: Can't assign spread entry keys of type 'String' to map entry keys of type 'int'.
   Map<int, int> map60 = <int, int>{...mapSpread};
                                       ^": null};
@@ -360,140 +444,150 @@
   List<int> lhs70 = <int>[...null];
                              ^"];
   core::Set<core::int*>* set70 = block {
-    final core::Set<core::int*>* #t51 = new col::_CompactLinkedHashSet::•<core::int*>();
-    #t51.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:133:29: Error: Can't spread a value with static type 'Null'.
+    final core::Set<core::int*>* #t63 = new col::_CompactLinkedHashSet::•<core::int*>();
+    #t63.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:133:29: Error: Can't spread a value with static type 'Null'.
   Set<int> set70 = <int>{...null};
                             ^");
-  } =>#t51;
+  } =>#t63;
   core::Set<dynamic>* set71ambiguous = block {
-    final core::Set<dynamic>* #t52 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t52.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:137:8: Error: Expected ',' before this.
+    final core::Set<dynamic>* #t64 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t64.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:137:8: Error: Expected ',' before this.
     ...null,
        ^");
     {
       core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t53 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t65 = :sync-for-iterator.{core::Iterator::current};
         {
-          final dynamic #t54 = #t53 as{TypeError} dynamic;
-          #t52.{core::Set::add}{Invariant}(#t54);
+          final dynamic #t66 = #t65 as{TypeError} dynamic;
+          #t64.{core::Set::add}{Invariant}(#t66);
         }
       }
     }
-  } =>#t52;
+  } =>#t64;
   core::Map<core::String*, core::int*>* map70 = <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:142:45: Error: Can't spread a value with static type 'Null'.
   Map<String, int> map70 = <String, int>{...null};
                                             ^": null};
   core::List<core::int*>* lhs80 = block {
-    final core::List<core::int*>* #t55 = <core::int*>[];
-    final core::Iterable<core::int*>* #t56 = null;
-    if(!#t56.{core::Object::==}(null))
-      #t55.{core::List::addAll}{Invariant}(#t56);
-  } =>#t55;
-  core::Set<core::int*>* set80 = block {
-    final core::Set<core::int*>* #t57 = new col::_CompactLinkedHashSet::•<core::int*>();
-    final core::Iterable<core::int*>* #t58 = null;
-    if(!#t58.{core::Object::==}(null))
-      #t57.{core::Set::addAll}{Invariant}(#t58);
-  } =>#t57;
-  core::Set<dynamic>* set81ambiguous = block {
-    final core::Set<dynamic>* #t59 = new col::_CompactLinkedHashSet::•<dynamic>();
-    final core::Iterable<dynamic>* #t60 = null;
-    if(!#t60.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t60.{core::Iterable::iterator};
+    final core::List<core::int*>* #t67 = <core::int*>[];
+    final core::Iterable<core::int*>* #t68 = null;
+    if(!#t68.{core::Object::==}(null)) {
+      core::Iterator<core::int*>* :sync-for-iterator = #t68.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t61 = :sync-for-iterator.{core::Iterator::current};
+        final core::int* #t69 = :sync-for-iterator.{core::Iterator::current};
+        #t67.{core::List::add}{Invariant}(#t69);
+      }
+    }
+  } =>#t67;
+  core::Set<core::int*>* set80 = block {
+    final core::Set<core::int*>* #t70 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Iterable<core::int*>* #t71 = null;
+    if(!#t71.{core::Object::==}(null)) {
+      core::Iterator<core::int*>* :sync-for-iterator = #t71.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t72 = :sync-for-iterator.{core::Iterator::current};
+        #t70.{core::Set::add}{Invariant}(#t72);
+      }
+    }
+  } =>#t70;
+  core::Set<dynamic>* set81ambiguous = block {
+    final core::Set<dynamic>* #t73 = new col::_CompactLinkedHashSet::•<dynamic>();
+    final core::Iterable<dynamic>* #t74 = null;
+    if(!#t74.{core::Object::==}(null)) {
+      core::Iterator<dynamic>* :sync-for-iterator = #t74.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t75 = :sync-for-iterator.{core::Iterator::current};
         {
-          final dynamic #t62 = #t61 as{TypeError} dynamic;
-          #t59.{core::Set::add}{Invariant}(#t62);
+          final dynamic #t76 = #t75 as{TypeError} dynamic;
+          #t73.{core::Set::add}{Invariant}(#t76);
         }
       }
     }
     {
       core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t63 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t77 = :sync-for-iterator.{core::Iterator::current};
         {
-          final dynamic #t64 = #t63 as{TypeError} dynamic;
-          #t59.{core::Set::add}{Invariant}(#t64);
-        }
-      }
-    }
-  } =>#t59;
-  core::Map<core::String*, core::int*>* map80 = block {
-    final core::Map<core::String*, core::int*>* #t65 = <core::String*, core::int*>{};
-    final core::Map<core::String*, core::int*>* #t66 = null;
-    if(!#t66.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = #t66.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t67 = :sync-for-iterator.{core::Iterator::current};
-        #t65.{core::Map::[]=}{Invariant}(#t67.{core::MapEntry::key}, #t67.{core::MapEntry::value});
-      }
-    }
-  } =>#t65;
-  core::Map<core::String*, core::int*>* map90 = block {
-    final core::Map<core::String*, core::int*>* #t68 = <core::String*, core::int*>{};
-    {
-      core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = self::bar<core::String*, core::int*>().{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t69 = :sync-for-iterator.{core::Iterator::current};
-        #t68.{core::Map::[]=}{Invariant}(#t69.{core::MapEntry::key}, #t69.{core::MapEntry::value});
-      }
-    }
-  } =>#t68;
-  core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t70 = <core::int*>[];
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = listNum.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t71 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t72 = #t71 as{TypeError} core::int*;
-          #t70.{core::List::add}{Invariant}(#t72);
-        }
-      }
-    }
-  } =>#t70;
-  core::Map<core::num*, core::int*>* map100 = block {
-    final core::Map<core::num*, core::int*>* #t73 = <core::num*, core::int*>{};
-    {
-      core::Iterator<core::MapEntry<core::int*, core::num*>>* :sync-for-iterator = mapIntNum.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic>* #t74 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num* #t75 = #t74.{core::MapEntry::key} as{TypeError} core::num*;
-          final core::int* #t76 = #t74.{core::MapEntry::value} as{TypeError} core::int*;
-          #t73.{core::Map::[]=}{Invariant}(#t75, #t76);
+          final dynamic #t78 = #t77 as{TypeError} dynamic;
+          #t73.{core::Set::add}{Invariant}(#t78);
         }
       }
     }
   } =>#t73;
+  core::Map<core::String*, core::int*>* map80 = block {
+    final core::Map<core::String*, core::int*>* #t79 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t80 = null;
+    if(!#t80.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = #t80.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<core::String*, core::int*>* #t81 = :sync-for-iterator.{core::Iterator::current};
+        #t79.{core::Map::[]=}{Invariant}(#t81.{core::MapEntry::key}, #t81.{core::MapEntry::value});
+      }
+    }
+  } =>#t79;
+  core::Map<core::String*, core::int*>* map90 = block {
+    final core::Map<core::String*, core::int*>* #t82 = <core::String*, core::int*>{};
+    {
+      core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = self::bar<core::String*, core::int*>().{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<core::String*, core::int*>* #t83 = :sync-for-iterator.{core::Iterator::current};
+        #t82.{core::Map::[]=}{Invariant}(#t83.{core::MapEntry::key}, #t83.{core::MapEntry::value});
+      }
+    }
+  } =>#t82;
+  core::List<core::int*>* list100 = block {
+    final core::List<core::int*>* #t84 = <core::int*>[];
+    {
+      core::Iterator<core::num*>* :sync-for-iterator = listNum.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t85 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int* #t86 = #t85 as{TypeError} core::int*;
+          #t84.{core::List::add}{Invariant}(#t86);
+        }
+      }
+    }
+  } =>#t84;
+  core::Map<core::num*, core::int*>* map100 = block {
+    final core::Map<core::num*, core::int*>* #t87 = <core::num*, core::int*>{};
+    {
+      core::Iterator<core::MapEntry<core::int*, core::num*>>* :sync-for-iterator = mapIntNum.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<dynamic, dynamic>* #t88 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::num* #t89 = #t88.{core::MapEntry::key} as{TypeError} core::num*;
+          final core::int* #t90 = #t88.{core::MapEntry::value} as{TypeError} core::int*;
+          #t87.{core::Map::[]=}{Invariant}(#t89, #t90);
+        }
+      }
+    }
+  } =>#t87;
   core::List<core::int*>* list110 = block {
-    final core::List<core::int*>* #t77 = <core::int*>[];
+    final core::List<core::int*>* #t91 = <core::int*>[];
     {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t78 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t92 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int* #t79 = #t78 as{TypeError} core::int*;
-          #t77.{core::List::add}{Invariant}(#t79);
+          final core::int* #t93 = #t92 as{TypeError} core::int*;
+          #t91.{core::List::add}{Invariant}(#t93);
         }
       }
     }
-  } =>#t77;
+  } =>#t91;
   core::Map<core::num*, core::int*>* map110 = block {
-    final core::Map<core::num*, core::int*>* #t80 = <core::num*, core::int*>{};
+    final core::Map<core::num*, core::int*>* #t94 = <core::num*, core::int*>{};
     {
       core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic>* #t81 = :sync-for-iterator.{core::Iterator::current};
+        final core::MapEntry<dynamic, dynamic>* #t95 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::num* #t82 = #t81.{core::MapEntry::key} as{TypeError} core::num*;
-          final core::int* #t83 = #t81.{core::MapEntry::value} as{TypeError} core::int*;
-          #t80.{core::Map::[]=}{Invariant}(#t82, #t83);
+          final core::num* #t96 = #t95.{core::MapEntry::key} as{TypeError} core::num*;
+          final core::int* #t97 = #t95.{core::MapEntry::value} as{TypeError} core::int*;
+          #t94.{core::Map::[]=}{Invariant}(#t96, #t97);
         }
       }
     }
-  } =>#t80;
+  } =>#t94;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection.dart.weak.expect
index bc26325..dffdbc4 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection.dart.weak.expect
@@ -5,7 +5,8 @@
 
 static method main() → dynamic {
   final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = <core::int*>[1];
+    final core::List<core::int*>* #t1 = <core::int*>[];
+    #t1.{core::List::add}{Invariant}(1);
     if(self::oracle() as{TypeError,ForDynamic} core::bool*)
       #t1.{core::List::add}{Invariant}(2);
     if(self::oracle() as{TypeError,ForDynamic} core::bool*)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection.dart.weak.transformed.expect
index 09e88b5..c62af95 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection.dart.weak.transformed.expect
@@ -5,7 +5,8 @@
 
 static method main() → dynamic {
   final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = <core::int*>[1];
+    final core::List<core::int*>* #t1 = <core::int*>[];
+    #t1.{core::List::add}{Invariant}(1);
     if(self::oracle() as{TypeError,ForDynamic} core::bool*)
       #t1.{core::List::add}{Invariant}(2);
     if(self::oracle() as{TypeError,ForDynamic} core::bool*)
@@ -106,4 +107,4 @@
 Evaluated: MethodInvocation @ org-dartlang-testcase:///control_flow_collection.dart:20:26 -> IntConstant(-1)
 Evaluated: MethodInvocation @ org-dartlang-testcase:///control_flow_collection.dart:29:29 -> IntConstant(-1)
 Evaluated: MethodInvocation @ org-dartlang-testcase:///control_flow_collection.dart:29:33 -> IntConstant(-1)
-Extra constant evaluation: evaluated: 158, effectively constant: 4
+Extra constant evaluation: evaluated: 160, effectively constant: 4
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.expect
index c3d3cee..9301e7e 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.expect
@@ -505,512 +505,553 @@
   core::List<core::int*>* list20 = block {
     final core::List<core::int*>* #t10 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t10.{core::List::addAll}{Invariant}(<core::int*>[42]);
+      for (final core::int* #t11 in <core::int*>[42])
+        #t10.{core::List::add}{Invariant}(#t11);
   } =>#t10;
   core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t11 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t12 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t11.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t11.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      for (final core::MapEntry<core::String*, core::int*>* #t13 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
-        #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}, #t13.{core::MapEntry::value});
-    #t12.{core::Map::[]=}{Invariant}("baz", null);
+      for (final core::int* #t13 in <core::int*>[42])
+        #t12.{core::Set::add}{Invariant}(#t13);
+    #t12.{core::Set::add}{Invariant}(null);
   } =>#t12;
-  core::List<dynamic>* list21 = block {
-    final core::List<dynamic>* #t14 = <dynamic>[];
+  core::Map<core::String*, core::int*>* map20 = block {
+    final core::Map<core::String*, core::int*>* #t14 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t14.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
+      for (final core::MapEntry<core::String*, core::int*>* #t15 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
+        #t14.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}, #t15.{core::MapEntry::value});
+    #t14.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t14;
-  core::Set<dynamic>* set21 = block {
-    final core::Set<dynamic>* #t15 = col::LinkedHashSet::•<dynamic>();
+  core::List<dynamic>* list21 = block {
+    final core::List<dynamic>* #t16 = <dynamic>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t15.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t15.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      for (final core::MapEntry<core::String*, dynamic>* #t17 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
-        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}, #t17.{core::MapEntry::value});
-    #t16.{core::Map::[]=}{Invariant}("baz", null);
+      for (final dynamic #t17 in <dynamic>[dynVar])
+        #t16.{core::List::add}{Invariant}(#t17);
   } =>#t16;
-  core::List<core::List<core::int*>*>* list22 = block {
-    final core::List<core::List<core::int*>*>* #t18 = <core::List<core::int*>*>[];
+  core::Set<dynamic>* set21 = block {
+    final core::Set<dynamic>* #t18 = col::LinkedHashSet::•<dynamic>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t18.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+      for (final dynamic #t19 in <dynamic>[dynVar])
+        #t18.{core::Set::add}{Invariant}(#t19);
+    #t18.{core::Set::add}{Invariant}(null);
   } =>#t18;
-  core::Set<core::List<core::int*>*>* set22 = block {
-    final core::Set<core::List<core::int*>*>* #t19 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::Map<core::String*, dynamic>* map21 = block {
+    final core::Map<core::String*, dynamic>* #t20 = <core::String*, dynamic>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t19.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t19.{core::Set::add}{Invariant}(null);
-  } =>#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} 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})
+      for (final core::MapEntry<core::String*, dynamic>* #t21 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
         #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}, #t21.{core::MapEntry::value});
     #t20.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t20;
-  core::List<core::int*>* list30 = block {
-    final core::List<core::int*>* #t22 = <core::int*>[];
+  core::List<core::List<core::int*>*>* list22 = block {
+    final core::List<core::List<core::int*>*>* #t22 = <core::List<core::int*>*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t22.{core::List::addAll}{Invariant}(<core::int*>[42]);
+      for (final core::List<core::int*>* #t23 in <core::List<core::int*>*>[<core::int*>[42]])
+        #t22.{core::List::add}{Invariant}(#t23);
   } =>#t22;
-  core::Set<core::int*>* set30 = block {
-    final core::Set<core::int*>* #t23 = col::LinkedHashSet::•<core::int*>();
+  core::Set<core::List<core::int*>*>* set22 = block {
+    final core::Set<core::List<core::int*>*>* #t24 = col::LinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t23.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t23.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::int*>* #t25 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
-          #t24.{core::Map::[]=}{Invariant}(#t25.{core::MapEntry::key}, #t25.{core::MapEntry::value});
-    #t24.{core::Map::[]=}{Invariant}("baz", null);
+      for (final core::List<core::int*>* #t25 in <core::List<core::int*>*>[<core::int*>[42]])
+        #t24.{core::Set::add}{Invariant}(#t25);
+    #t24.{core::Set::add}{Invariant}(null);
   } =>#t24;
-  core::List<dynamic>* list31 = block {
-    final core::List<dynamic>* #t26 = <dynamic>[];
+  core::Map<core::String*, core::List<core::int*>*>* map22 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t26 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t26.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
+      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t27 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries})
+        #t26.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}, #t27.{core::MapEntry::value});
+    #t26.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t26;
-  core::Set<dynamic>* set31 = block {
-    final core::Set<dynamic>* #t27 = col::LinkedHashSet::•<dynamic>();
+  core::List<core::int*>* list30 = block {
+    final core::List<core::int*>* #t28 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t27.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t27.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, dynamic>* #t29 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
-          #t28.{core::Map::[]=}{Invariant}(#t29.{core::MapEntry::key}, #t29.{core::MapEntry::value});
-    #t28.{core::Map::[]=}{Invariant}("baz", null);
+        for (final core::int* #t29 in <core::int*>[42])
+          #t28.{core::List::add}{Invariant}(#t29);
   } =>#t28;
-  core::List<core::List<core::int*>*>* list33 = block {
-    final core::List<core::List<core::int*>*>* #t30 = <core::List<core::int*>*>[];
+  core::Set<core::int*>* set30 = block {
+    final core::Set<core::int*>* #t30 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t30.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+        for (final core::int* #t31 in <core::int*>[42])
+          #t30.{core::Set::add}{Invariant}(#t31);
+    #t30.{core::Set::add}{Invariant}(null);
   } =>#t30;
-  core::Set<core::List<core::int*>*>* set33 = block {
-    final core::Set<core::List<core::int*>*>* #t31 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::Map<core::String*, core::int*>* map30 = block {
+    final core::Map<core::String*, core::int*>* #t32 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t31.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t31.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} 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})
+        for (final core::MapEntry<core::String*, core::int*>* #t33 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
           #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
     #t32.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t32;
-  core::List<core::List<core::int*>*>* list40 = block {
-    final core::List<core::List<core::int*>*>* #t34 = <core::List<core::int*>*>[];
+  core::List<dynamic>* list31 = block {
+    final core::List<dynamic>* #t34 = <dynamic>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t34.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final dynamic #t35 in <dynamic>[dynVar])
+          #t34.{core::List::add}{Invariant}(#t35);
   } =>#t34;
-  core::Set<core::List<core::int*>*>* set40 = block {
-    final core::Set<core::List<core::int*>*>* #t35 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::Set<dynamic>* set31 = block {
+    final core::Set<dynamic>* #t36 = col::LinkedHashSet::•<dynamic>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t35.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t35.{core::Set::add}{Invariant}(null);
-  } =>#t35;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final dynamic #t37 in <dynamic>[dynVar])
+          #t36.{core::Set::add}{Invariant}(#t37);
+    #t36.{core::Set::add}{Invariant}(null);
+  } =>#t36;
+  core::Map<core::String*, dynamic>* map31 = block {
+    final core::Map<core::String*, dynamic>* #t38 = <core::String*, dynamic>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, dynamic>* #t39 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
+          #t38.{core::Map::[]=}{Invariant}(#t39.{core::MapEntry::key}, #t39.{core::MapEntry::value});
+    #t38.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t38;
+  core::List<core::List<core::int*>*>* list33 = block {
+    final core::List<core::List<core::int*>*>* #t40 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t41 in <core::List<core::int*>*>[<core::int*>[42]])
+          #t40.{core::List::add}{Invariant}(#t41);
+  } =>#t40;
+  core::Set<core::List<core::int*>*>* set33 = block {
+    final core::Set<core::List<core::int*>*>* #t42 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t43 in <core::List<core::int*>*>[<core::int*>[42]])
+          #t42.{core::Set::add}{Invariant}(#t43);
+    #t42.{core::Set::add}{Invariant}(null);
+  } =>#t42;
+  core::Map<core::String*, core::List<core::int*>*>* map33 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t44 = <core::String*, core::List<core::int*>*>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t45 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries})
+          #t44.{core::Map::[]=}{Invariant}(#t45.{core::MapEntry::key}, #t45.{core::MapEntry::value});
+    #t44.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t44;
+  core::List<core::List<core::int*>*>* list40 = block {
+    final core::List<core::List<core::int*>*>* #t46 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::List<core::int*>* #t47 in <core::List<core::int*>*>[<core::int*>[]])
+        #t46.{core::List::add}{Invariant}(#t47);
+  } =>#t46;
+  core::Set<core::List<core::int*>*>* set40 = block {
+    final core::Set<core::List<core::int*>*>* #t48 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::List<core::int*>* #t49 in <core::List<core::int*>*>[<core::int*>[]])
+        #t48.{core::Set::add}{Invariant}(#t49);
+    #t48.{core::Set::add}{Invariant}(null);
+  } =>#t48;
   core::Map<core::String*, core::List<core::int*>*>* map40 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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 {
-    final core::List<core::List<core::int*>*>* #t36 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t50 = <core::List<core::int*>*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} 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*>[]);
-      } =>#t37);
-  } =>#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} 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*>[]);
-      } =>#t39);
-    #t38.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t40.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t41.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t41.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} 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})
-          #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
-    #t42.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t42;
-  core::List<core::int*>* list50 = block {
-    final core::List<core::int*>* #t44 = <core::int*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t44.{core::List::addAll}{Invariant}(<core::int*>[]);
-  } =>#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} core::bool*)
-      #t45.{core::Set::addAll}{Invariant}(<core::int*>[]);
-    #t45.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      for (final core::MapEntry<core::String*, core::int*>* #t47 in <core::String*, core::int*>{}.{core::Map::entries})
-        #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}, #t47.{core::MapEntry::value});
-    #t46.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t46;
-  core::List<core::int*>* list51 = block {
-    final core::List<core::int*>* #t48 = <core::int*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t48.{core::List::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t49 = col::LinkedHashSet::•<core::int*>();
-      } =>#t49);
-  } =>#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} core::bool*)
-      #t50.{core::Set::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t51 = col::LinkedHashSet::•<core::int*>();
-      } =>#t51);
-    #t50.{core::Set::add}{Invariant}(null);
+      for (final core::List<core::int*>* #t51 in block {
+        final core::Set<core::List<core::int*>*>* #t52 = col::LinkedHashSet::•<core::List<core::int*>*>();
+        #t52.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t52)
+        #t50.{core::List::add}{Invariant}(#t51);
   } =>#t50;
-  core::List<core::int*>* list52 = block {
-    final core::List<core::int*>* #t52 = <core::int*>[];
+  core::Set<core::List<core::int*>*>* set41 = block {
+    final core::Set<core::List<core::int*>*>* #t53 = col::LinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t52.{core::List::addAll}{Invariant}(<core::int*>[]);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t53.{core::Set::addAll}{Invariant}(<core::int*>[]);
+      for (final core::List<core::int*>* #t54 in block {
+        final core::Set<core::List<core::int*>*>* #t55 = col::LinkedHashSet::•<core::List<core::int*>*>();
+        #t55.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t55)
+        #t53.{core::Set::add}{Invariant}(#t54);
     #t53.{core::Set::add}{Invariant}(null);
   } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::int*>* #t55 in <core::String*, core::int*>{}.{core::Map::entries})
-          #t54.{core::Map::[]=}{Invariant}(#t55.{core::MapEntry::key}, #t55.{core::MapEntry::value});
-    #t54.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t54;
-  core::List<core::List<core::int*>*>* list60 = block {
+  core::List<core::List<core::int*>*>* list42 = block {
     final core::List<core::List<core::int*>*>* #t56 = <core::List<core::int*>*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t56.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t57 in <core::List<core::int*>*>[<core::int*>[]])
+          #t56.{core::List::add}{Invariant}(#t57);
   } =>#t56;
-  core::Set<core::List<core::int*>*>* set60 = block {
-    final core::Set<core::List<core::int*>*>* #t57 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::Set<core::List<core::int*>*>* set42 = block {
+    final core::Set<core::List<core::int*>*>* #t58 = col::LinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t57.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t57.{core::Set::add}{Invariant}(null);
-  } =>#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} 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})
-        #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}, #t59.{core::MapEntry::value});
-    #t58.{core::Map::[]=}{Invariant}("baz", null);
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t59 in <core::List<core::int*>*>[<core::int*>[]])
+          #t58.{core::Set::add}{Invariant}(#t59);
+    #t58.{core::Set::add}{Invariant}(null);
   } =>#t58;
-  core::List<core::List<core::int*>*>* list61 = block {
-    final core::List<core::List<core::int*>*>* #t60 = <core::List<core::int*>*>[];
+  core::Map<core::String*, core::List<core::int*>*>* map42 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t60 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t60.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t61 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
+          #t60.{core::Map::[]=}{Invariant}(#t61.{core::MapEntry::key}, #t61.{core::MapEntry::value});
+    #t60.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t60;
-  core::Set<core::List<core::int*>*>* set61 = block {
-    final core::Set<core::List<core::int*>*>* #t61 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::List<core::int*>* list50 = block {
+    final core::List<core::int*>* #t62 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t61.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t61.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} 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})
-          #t62.{core::Map::[]=}{Invariant}(#t63.{core::MapEntry::key}, #t63.{core::MapEntry::value});
-    #t62.{core::Map::[]=}{Invariant}("baz", null);
+      for (final core::int* #t63 in <core::int*>[])
+        #t62.{core::List::add}{Invariant}(#t63);
   } =>#t62;
-  core::List<core::List<core::int*>*>* list70 = block {
-    final core::List<core::List<core::int*>*>* #t64 = <core::List<core::int*>*>[];
+  core::Set<core::int*>* set50 = block {
+    final core::Set<core::int*>* #t64 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t64.{core::List::add}{Invariant}(<core::int*>[]);
+      for (final core::int* #t65 in <core::int*>[])
+        #t64.{core::Set::add}{Invariant}(#t65);
+    #t64.{core::Set::add}{Invariant}(null);
   } =>#t64;
-  core::Set<core::List<core::int*>*>* set70 = block {
-    final core::Set<core::List<core::int*>*>* #t65 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::Map<core::String*, core::int*>* map50 = block {
+    final core::Map<core::String*, core::int*>* #t66 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t65.{core::Set::add}{Invariant}(<core::int*>[]);
-    #t65.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t66.{core::List::add}{Invariant}(<core::int*>[]);
+      for (final core::MapEntry<core::String*, core::int*>* #t67 in <core::String*, core::int*>{}.{core::Map::entries})
+        #t66.{core::Map::[]=}{Invariant}(#t67.{core::MapEntry::key}, #t67.{core::MapEntry::value});
+    #t66.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t66;
-  core::Set<core::List<core::int*>*>* set71 = block {
-    final core::Set<core::List<core::int*>*>* #t67 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::List<core::int*>* list51 = block {
+    final core::List<core::int*>* #t68 = <core::int*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::int* #t69 in block {
+        final core::Set<core::int*>* #t70 = col::LinkedHashSet::•<core::int*>();
+      } =>#t70)
+        #t68.{core::List::add}{Invariant}(#t69);
+  } =>#t68;
+  core::Set<core::int*>* set51 = block {
+    final core::Set<core::int*>* #t71 = col::LinkedHashSet::•<core::int*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::int* #t72 in block {
+        final core::Set<core::int*>* #t73 = col::LinkedHashSet::•<core::int*>();
+      } =>#t73)
+        #t71.{core::Set::add}{Invariant}(#t72);
+    #t71.{core::Set::add}{Invariant}(null);
+  } =>#t71;
+  core::List<core::int*>* list52 = block {
+    final core::List<core::int*>* #t74 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t67.{core::Set::add}{Invariant}(<core::int*>[]);
-    #t67.{core::Set::add}{Invariant}(null);
-  } =>#t67;
-  core::List<core::num*>* list80 = block {
-    final core::List<core::num*>* #t68 = <core::num*>[];
+        for (final core::int* #t75 in <core::int*>[])
+          #t74.{core::List::add}{Invariant}(#t75);
+  } =>#t74;
+  core::Set<core::int*>* set52 = block {
+    final core::Set<core::int*>* #t76 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t68.{core::List::add}{Invariant}(42);
-    else
-      #t68.{core::List::add}{Invariant}(3.14);
-  } =>#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} core::bool*)
-      #t69.{core::Set::add}{Invariant}(42);
-    else
-      #t69.{core::Set::add}{Invariant}(3.14);
-    #t69.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      #t70.{core::Map::[]=}{Invariant}("bar", 42);
-    else
-      #t70.{core::Map::[]=}{Invariant}("bar", 3.14);
-    #t70.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t70;
-  core::List<core::num*>* list81 = block {
-    final core::List<core::num*>* #t71 = <core::num*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t71.{core::List::addAll}{Invariant}(listInt);
-    else
-      #t71.{core::List::addAll}{Invariant}(listDouble);
-  } =>#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} core::bool*)
-      #t72.{core::Set::addAll}{Invariant}(listInt);
-    else
-      #t72.{core::Set::addAll}{Invariant}(listDouble);
-    #t72.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      for (final core::MapEntry<core::String*, core::num*>* #t74 in mapToInt.{core::Map::entries})
-        #t73.{core::Map::[]=}{Invariant}(#t74.{core::MapEntry::key}, #t74.{core::MapEntry::value});
-    else
-      for (final core::MapEntry<core::String*, core::num*>* #t75 in mapToDouble.{core::Map::entries})
-        #t73.{core::Map::[]=}{Invariant}(#t75.{core::MapEntry::key}, #t75.{core::MapEntry::value});
-    #t73.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t73;
-  core::List<dynamic>* list82 = block {
-    final core::List<dynamic>* #t76 = <dynamic>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t76.{core::List::addAll}{Invariant}(listInt);
-    else
-      #t76.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::int* #t77 in <core::int*>[])
+          #t76.{core::Set::add}{Invariant}(#t77);
+    #t76.{core::Set::add}{Invariant}(null);
   } =>#t76;
-  core::Set<dynamic>* set82 = block {
-    final core::Set<dynamic>* #t77 = col::LinkedHashSet::•<dynamic>();
+  core::Map<core::String*, core::int*>* map52 = block {
+    final core::Map<core::String*, core::int*>* #t78 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t77.{core::Set::addAll}{Invariant}(listInt);
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, core::int*>* #t79 in <core::String*, core::int*>{}.{core::Map::entries})
+          #t78.{core::Map::[]=}{Invariant}(#t79.{core::MapEntry::key}, #t79.{core::MapEntry::value});
+    #t78.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t78;
+  core::List<core::List<core::int*>*>* list60 = block {
+    final core::List<core::List<core::int*>*>* #t80 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::List<core::int*>* #t81 in <core::List<core::int*>*>[<core::int*>[]])
+        #t80.{core::List::add}{Invariant}(#t81);
+  } =>#t80;
+  core::Set<core::List<core::int*>*>* set60 = block {
+    final core::Set<core::List<core::int*>*>* #t82 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::List<core::int*>* #t83 in <core::List<core::int*>*>[<core::int*>[]])
+        #t82.{core::Set::add}{Invariant}(#t83);
+    #t82.{core::Set::add}{Invariant}(null);
+  } =>#t82;
+  core::Map<core::String*, core::List<core::int*>*>* map60 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t84 = <core::String*, core::List<core::int*>*>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t85 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
+        #t84.{core::Map::[]=}{Invariant}(#t85.{core::MapEntry::key}, #t85.{core::MapEntry::value});
+    #t84.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t84;
+  core::List<core::List<core::int*>*>* list61 = block {
+    final core::List<core::List<core::int*>*>* #t86 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t87 in <core::List<core::int*>*>[<core::int*>[]])
+          #t86.{core::List::add}{Invariant}(#t87);
+  } =>#t86;
+  core::Set<core::List<core::int*>*>* set61 = block {
+    final core::Set<core::List<core::int*>*>* #t88 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t89 in <core::List<core::int*>*>[<core::int*>[]])
+          #t88.{core::Set::add}{Invariant}(#t89);
+    #t88.{core::Set::add}{Invariant}(null);
+  } =>#t88;
+  core::Map<core::String*, core::List<core::int*>*>* map61 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t90 = <core::String*, core::List<core::int*>*>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t91 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
+          #t90.{core::Map::[]=}{Invariant}(#t91.{core::MapEntry::key}, #t91.{core::MapEntry::value});
+    #t90.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t90;
+  core::List<core::List<core::int*>*>* list70 = block {
+    final core::List<core::List<core::int*>*>* #t92 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      #t92.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t92;
+  core::Set<core::List<core::int*>*>* set70 = block {
+    final core::Set<core::List<core::int*>*>* #t93 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      #t93.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t93.{core::Set::add}{Invariant}(null);
+  } =>#t93;
+  core::List<core::List<core::int*>*>* list71 = block {
+    final core::List<core::List<core::int*>*>* #t94 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t94.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t94;
+  core::Set<core::List<core::int*>*>* set71 = block {
+    final core::Set<core::List<core::int*>*>* #t95 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t95.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t95.{core::Set::add}{Invariant}(null);
+  } =>#t95;
+  core::List<core::num*>* list80 = block {
+    final core::List<core::num*>* #t96 = <core::num*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      #t96.{core::List::add}{Invariant}(42);
     else
-      #t77.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t77.{core::Set::add}{Invariant}(null);
-  } =>#t77;
-  core::Set<dynamic>* map82 = block {
-    final core::Set<dynamic>* #t78 = col::LinkedHashSet::•<dynamic>();
+      #t96.{core::List::add}{Invariant}(3.14);
+  } =>#t96;
+  core::Set<core::num*>* set80 = block {
+    final core::Set<core::num*>* #t97 = col::LinkedHashSet::•<core::num*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t78.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:73:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t97.{core::Set::add}{Invariant}(42);
+    else
+      #t97.{core::Set::add}{Invariant}(3.14);
+    #t97.{core::Set::add}{Invariant}(null);
+  } =>#t97;
+  core::Map<core::String*, core::num*>* map80 = block {
+    final core::Map<core::String*, core::num*>* #t98 = <core::String*, core::num*>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      #t98.{core::Map::[]=}{Invariant}("bar", 42);
+    else
+      #t98.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t98.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t98;
+  core::List<core::num*>* list81 = block {
+    final core::List<core::num*>* #t99 = <core::num*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::num* #t100 in listInt)
+        #t99.{core::List::add}{Invariant}(#t100);
+    else
+      for (final core::num* #t101 in listDouble)
+        #t99.{core::List::add}{Invariant}(#t101);
+  } =>#t99;
+  core::Set<core::num*>* set81 = block {
+    final core::Set<core::num*>* #t102 = col::LinkedHashSet::•<core::num*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::num* #t103 in listInt)
+        #t102.{core::Set::add}{Invariant}(#t103);
+    else
+      for (final core::num* #t104 in listDouble)
+        #t102.{core::Set::add}{Invariant}(#t104);
+    #t102.{core::Set::add}{Invariant}(null);
+  } =>#t102;
+  core::Map<core::String*, core::num*>* map81 = block {
+    final core::Map<core::String*, core::num*>* #t105 = <core::String*, core::num*>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final core::MapEntry<core::String*, core::num*>* #t106 in mapToInt.{core::Map::entries})
+        #t105.{core::Map::[]=}{Invariant}(#t106.{core::MapEntry::key}, #t106.{core::MapEntry::value});
+    else
+      for (final core::MapEntry<core::String*, core::num*>* #t107 in mapToDouble.{core::Map::entries})
+        #t105.{core::Map::[]=}{Invariant}(#t107.{core::MapEntry::key}, #t107.{core::MapEntry::value});
+    #t105.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t105;
+  core::List<dynamic>* list82 = block {
+    final core::List<dynamic>* #t108 = <dynamic>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final dynamic #t109 in listInt)
+        #t108.{core::List::add}{Invariant}(#t109);
+    else
+      for (final dynamic #t110 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+        #t108.{core::List::add}{Invariant}(#t110);
+  } =>#t108;
+  core::Set<dynamic>* set82 = block {
+    final core::Set<dynamic>* #t111 = col::LinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      for (final dynamic #t112 in listInt)
+        #t111.{core::Set::add}{Invariant}(#t112);
+    else
+      for (final dynamic #t113 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+        #t111.{core::Set::add}{Invariant}(#t113);
+    #t111.{core::Set::add}{Invariant}(null);
+  } =>#t111;
+  core::Set<dynamic>* map82 = block {
+    final core::Set<dynamic>* #t114 = col::LinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      #t114.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
                                      ^");
     else
-      #t78.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t78.{core::Set::add}{Invariant}(null);
-  } =>#t78;
+      for (final dynamic #t115 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+        #t114.{core::Set::add}{Invariant}(#t115);
+    #t114.{core::Set::add}{Invariant}(null);
+  } =>#t114;
   core::List<core::num*>* list83 = block {
-    final core::List<core::num*>* #t79 = <core::num*>[];
+    final core::List<core::num*>* #t116 = <core::num*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t79.{core::List::add}{Invariant}(42);
+      #t116.{core::List::add}{Invariant}(42);
     else
-      #t79.{core::List::addAll}{Invariant}(listDouble);
-  } =>#t79;
+      for (final core::num* #t117 in listDouble)
+        #t116.{core::List::add}{Invariant}(#t117);
+  } =>#t116;
   core::Set<core::num*>* set83 = block {
-    final core::Set<core::num*>* #t80 = col::LinkedHashSet::•<core::num*>();
+    final core::Set<core::num*>* #t118 = col::LinkedHashSet::•<core::num*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t80.{core::Set::addAll}{Invariant}(listInt);
+      for (final core::num* #t119 in listInt)
+        #t118.{core::Set::add}{Invariant}(#t119);
     else
-      #t80.{core::Set::add}{Invariant}(3.14);
-    #t80.{core::Set::add}{Invariant}(null);
-  } =>#t80;
+      #t118.{core::Set::add}{Invariant}(3.14);
+    #t118.{core::Set::add}{Invariant}(null);
+  } =>#t118;
   core::Map<core::String*, core::num*>* map83 = block {
-    final core::Map<core::String*, core::num*>* #t81 = <core::String*, core::num*>{};
+    final core::Map<core::String*, core::num*>* #t120 = <core::String*, core::num*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      for (final core::MapEntry<core::String*, core::num*>* #t82 in mapToInt.{core::Map::entries})
-        #t81.{core::Map::[]=}{Invariant}(#t82.{core::MapEntry::key}, #t82.{core::MapEntry::value});
+      for (final core::MapEntry<core::String*, core::num*>* #t121 in mapToInt.{core::Map::entries})
+        #t120.{core::Map::[]=}{Invariant}(#t121.{core::MapEntry::key}, #t121.{core::MapEntry::value});
     else
-      #t81.{core::Map::[]=}{Invariant}("bar", 3.14);
-    #t81.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t81;
+      #t120.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t120.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t120;
   core::List<core::int*>* list90 = block {
-    final core::List<core::int*>* #t83 = <core::int*>[];
+    final core::List<core::int*>* #t122 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t83.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
-  } =>#t83;
+      #t122.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+  } =>#t122;
   core::Set<core::int*>* set90 = block {
-    final core::Set<core::int*>* #t84 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t123 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t84.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
-    #t84.{core::Set::add}{Invariant}(null);
-  } =>#t84;
+      #t123.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+    #t123.{core::Set::add}{Invariant}(null);
+  } =>#t123;
   core::Map<core::String*, core::int*>* map90 = block {
-    final core::Map<core::String*, core::int*>* #t85 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t124 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t85.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
-    #t85.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t85;
+      #t124.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
+    #t124.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t124;
   core::List<core::int*>* list91 = block {
-    final core::List<core::int*>* #t86 = <core::int*>[];
+    final core::List<core::int*>* #t125 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      for (final dynamic #t87 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-        final core::int* #t88 = #t87 as{TypeError} core::int*;
-        #t86.{core::List::add}{Invariant}(#t88);
+      for (final dynamic #t126 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+        final core::int* #t127 = #t126 as{TypeError} core::int*;
+        #t125.{core::List::add}{Invariant}(#t127);
       }
-  } =>#t86;
+  } =>#t125;
   core::Set<core::int*>* set91 = block {
-    final core::Set<core::int*>* #t89 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t128 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      for (final dynamic #t90 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-        final core::int* #t91 = #t90 as{TypeError} core::int*;
-        #t89.{core::Set::add}{Invariant}(#t91);
+      for (final dynamic #t129 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+        final core::int* #t130 = #t129 as{TypeError} core::int*;
+        #t128.{core::Set::add}{Invariant}(#t130);
       }
-    #t89.{core::Set::add}{Invariant}(null);
-  } =>#t89;
+    #t128.{core::Set::add}{Invariant}(null);
+  } =>#t128;
   core::Map<core::String*, core::int*>* map91 = block {
-    final core::Map<core::String*, core::int*>* #t92 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t131 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      for (final core::MapEntry<dynamic, dynamic>* #t93 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}) {
-        final core::String* #t94 = #t93.{core::MapEntry::key} as{TypeError} core::String*;
-        final core::int* #t95 = #t93.{core::MapEntry::value} as{TypeError} core::int*;
-        #t92.{core::Map::[]=}{Invariant}(#t94, #t95);
+      for (final core::MapEntry<dynamic, dynamic>* #t132 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}) {
+        final core::String* #t133 = #t132.{core::MapEntry::key} as{TypeError} core::String*;
+        final core::int* #t134 = #t132.{core::MapEntry::value} as{TypeError} core::int*;
+        #t131.{core::Map::[]=}{Invariant}(#t133, #t134);
       }
-    #t92.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t92;
+    #t131.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t131;
   core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t96 = <core::int*>[];
+    final core::List<core::int*>* #t135 = <core::int*>[];
     if(dynVar as{TypeError,ForDynamic} core::bool*)
-      #t96.{core::List::add}{Invariant}(42);
-  } =>#t96;
+      #t135.{core::List::add}{Invariant}(42);
+  } =>#t135;
   core::Set<core::int*>* set100 = block {
-    final core::Set<core::int*>* #t97 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t136 = col::LinkedHashSet::•<core::int*>();
     if(dynVar as{TypeError,ForDynamic} core::bool*)
-      #t97.{core::Set::add}{Invariant}(42);
-  } =>#t97;
+      #t136.{core::Set::add}{Invariant}(42);
+  } =>#t136;
   core::Map<core::int*, core::int*>* map100 = block {
-    final core::Map<core::int*, core::int*>* #t98 = <core::int*, core::int*>{};
+    final core::Map<core::int*, core::int*>* #t137 = <core::int*, core::int*>{};
     if(dynVar as{TypeError,ForDynamic} core::bool*)
-      #t98.{core::Map::[]=}{Invariant}(42, 42);
-  } =>#t98;
+      #t137.{core::Map::[]=}{Invariant}(42, 42);
+  } =>#t137;
 }
 static method testIfElementErrors(core::Map<core::int*, core::int*>* map) → dynamic {
   block {
-    final core::List<core::int*>* #t99 = <core::int*>[];
+    final core::List<core::int*>* #t138 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t99.{core::List::add}{Invariant}(let final<BottomType> #t100 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:89:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t138.{core::List::add}{Invariant}(let final<BottomType> #t139 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-  } =>#t99;
+  } =>#t138;
   block {
-    final core::Set<core::int*>* #t101 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t140 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t101.{core::Set::add}{Invariant}(let final<BottomType> #t102 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:90:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t140.{core::Set::add}{Invariant}(let final<BottomType> #t141 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-    #t101.{core::Set::add}{Invariant}(null);
-  } =>#t101;
+    #t140.{core::Set::add}{Invariant}(null);
+  } =>#t140;
   block {
-    final core::Map<core::String*, core::int*>* #t103 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t142 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t103.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t104 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:91:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t142.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t143 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-    #t103.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t103;
+    #t142.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t142;
   block {
-    final core::List<core::int*>* #t105 = <core::int*>[];
+    final core::List<core::int*>* #t144 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t105.{core::List::addAll}{Invariant}(<core::int*>[let final<BottomType> #t106 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:92:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      for (final core::int* #t145 in <core::int*>[let final<BottomType> #t146 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*]);
-  } =>#t105;
+                               ^" in "bar" as{TypeError} core::int*])
+        #t144.{core::List::add}{Invariant}(#t145);
+  } =>#t144;
   block {
-    final core::Set<core::int*>* #t107 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t147 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t107.{core::Set::addAll}{Invariant}(<core::int*>[let final<BottomType> #t108 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:93:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      for (final core::int* #t148 in <core::int*>[let final<BottomType> #t149 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*]);
-    #t107.{core::Set::add}{Invariant}(null);
-  } =>#t107;
+                               ^" in "bar" as{TypeError} core::int*])
+        #t147.{core::Set::add}{Invariant}(#t148);
+    #t147.{core::Set::add}{Invariant}(null);
+  } =>#t147;
   block {
-    final core::Map<core::String*, core::int*>* #t109 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t150 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      for (final core::MapEntry<core::String*, core::int*>* #t110 in <core::String*, core::int*>{"bar": let final<BottomType> #t111 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:94: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*>* #t151 in <core::String*, core::int*>{"bar": let final<BottomType> #t152 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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})
-        #t109.{core::Map::[]=}{Invariant}(#t110.{core::MapEntry::key}, #t110.{core::MapEntry::value});
-    #t109.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t109;
+        #t150.{core::Map::[]=}{Invariant}(#t151.{core::MapEntry::key}, #t151.{core::MapEntry::value});
+    #t150.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t150;
   block {
-    final core::List<core::int*>* #t112 = <core::int*>[];
+    final core::List<core::int*>* #t153 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t112.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:95:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t153.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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];
                               ^");
-  } =>#t112;
+  } =>#t153;
   block {
-    final core::Set<core::int*>* #t113 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t154 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t113.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:96:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t154.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
                               ^");
-    #t113.{core::Set::add}{Invariant}(null);
-  } =>#t113;
+    #t154.{core::Set::add}{Invariant}(null);
+  } =>#t154;
   <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
@@ -1019,61 +1060,61 @@
   <String, int>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
                                       ^": null};
   block {
-    final core::List<core::String*>* #t114 = <core::String*>[];
+    final core::List<core::String*>* #t155 = <core::String*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t114.{core::List::add}{Invariant}(let final<BottomType> #t115 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:98:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t155.{core::List::add}{Invariant}(let final<BottomType> #t156 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
     else
-      #t114.{core::List::add}{Invariant}(let final<BottomType> #t116 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:98:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t155.{core::List::add}{Invariant}(let final<BottomType> #t157 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-  } =>#t114;
+  } =>#t155;
   block {
-    final core::Set<core::String*>* #t117 = col::LinkedHashSet::•<core::String*>();
+    final core::Set<core::String*>* #t158 = col::LinkedHashSet::•<core::String*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t117.{core::Set::add}{Invariant}(let final<BottomType> #t118 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:99:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t158.{core::Set::add}{Invariant}(let final<BottomType> #t159 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
     else
-      #t117.{core::Set::add}{Invariant}(let final<BottomType> #t119 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:99:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t158.{core::Set::add}{Invariant}(let final<BottomType> #t160 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-    #t117.{core::Set::add}{Invariant}(null);
-  } =>#t117;
+    #t158.{core::Set::add}{Invariant}(null);
+  } =>#t158;
   block {
-    final core::Map<core::String*, core::String*>* #t120 = <core::String*, core::String*>{};
+    final core::Map<core::String*, core::String*>* #t161 = <core::String*, core::String*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t120.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t121 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:100:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t161.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t162 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
     else
-      #t120.{core::Map::[]=}{Invariant}("baz", let final<BottomType> #t122 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:100:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t161.{core::Map::[]=}{Invariant}("baz", let final<BottomType> #t163 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-    #t120.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t120;
+    #t161.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t161;
   block {
-    final core::List<core::int*>* #t123 = <core::int*>[];
+    final core::List<core::int*>* #t164 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t123.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:101:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t164.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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];
                               ^");
     else
-      #t123.{core::List::add}{Invariant}(42);
-  } =>#t123;
+      #t164.{core::List::add}{Invariant}(42);
+  } =>#t164;
   block {
-    final core::Set<core::int*>* #t124 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t165 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t124.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:102:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t165.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
                               ^");
     else
-      #t124.{core::Set::add}{Invariant}(42);
-    #t124.{core::Set::add}{Invariant}(null);
-  } =>#t124;
+      #t165.{core::Set::add}{Invariant}(42);
+    #t165.{core::Set::add}{Invariant}(null);
+  } =>#t165;
   <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
@@ -1082,26 +1123,26 @@
   <String, int>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
                                       ^": null};
   block {
-    final core::List<core::int*>* #t125 = <core::int*>[];
+    final core::List<core::int*>* #t166 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t125.{core::List::add}{Invariant}(42);
+      #t166.{core::List::add}{Invariant}(42);
     else
-      #t125.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:104:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t166.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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];
                                       ^");
-  } =>#t125;
+  } =>#t166;
   block {
-    final core::Set<core::int*>* #t126 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t167 = col::LinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t126.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:105:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t167.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
                               ^");
     else
-      #t126.{core::Set::add}{Invariant}(42);
-    #t126.{core::Set::add}{Invariant}(null);
-  } =>#t126;
+      #t167.{core::Set::add}{Invariant}(42);
+    #t167.{core::Set::add}{Invariant}(null);
+  } =>#t167;
   <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
@@ -1128,709 +1169,749 @@
   var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                                                    ^": null};
   core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t127 = <core::int*>[];
-    if(let final<BottomType> #t128 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:114:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    final core::List<core::int*>* #t168 = <core::int*>[];
+    if(let final<BottomType> #t169 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*)
-      #t127.{core::List::add}{Invariant}(42);
-  } =>#t127;
+      #t168.{core::List::add}{Invariant}(42);
+  } =>#t168;
   core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t129 = col::LinkedHashSet::•<core::int*>();
-    if(let final<BottomType> #t130 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:115:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    final core::Set<core::int*>* #t170 = col::LinkedHashSet::•<core::int*>();
+    if(let final<BottomType> #t171 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*)
-      #t129.{core::Set::add}{Invariant}(42);
-  } =>#t129;
+      #t170.{core::Set::add}{Invariant}(42);
+  } =>#t170;
   core::Map<core::int*, core::int*>* map30 = block {
-    final core::Map<core::int*, core::int*>* #t131 = <core::int*, core::int*>{};
-    if(let final<BottomType> #t132 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:116:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    final core::Map<core::int*, core::int*>* #t172 = <core::int*, core::int*>{};
+    if(let final<BottomType> #t173 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*)
-      #t131.{core::Map::[]=}{Invariant}(42, 42);
-  } =>#t131;
+      #t172.{core::Map::[]=}{Invariant}(42, 42);
+  } =>#t172;
   core::List<core::String*>* list40 = block {
-    final core::List<core::String*>* #t133 = <core::String*>[];
+    final core::List<core::String*>* #t174 = <core::String*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t133.{core::List::add}{Invariant}(let final<BottomType> #t134 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:117:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t174.{core::List::add}{Invariant}(let final<BottomType> #t175 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
     else
-      #t133.{core::List::add}{Invariant}(let final<BottomType> #t135 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:117:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t174.{core::List::add}{Invariant}(let final<BottomType> #t176 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-  } =>#t133;
+  } =>#t174;
   core::Set<core::String*>* set40 = block {
-    final core::Set<core::String*>* #t136 = col::LinkedHashSet::•<core::String*>();
+    final core::Set<core::String*>* #t177 = col::LinkedHashSet::•<core::String*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t136.{core::Set::add}{Invariant}(let final<BottomType> #t137 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:118:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t177.{core::Set::add}{Invariant}(let final<BottomType> #t178 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
     else
-      #t136.{core::Set::add}{Invariant}(let final<BottomType> #t138 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:118:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t177.{core::Set::add}{Invariant}(let final<BottomType> #t179 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-  } =>#t136;
+  } =>#t177;
   core::Map<core::String*, core::int*>* map40 = block {
-    final core::Map<core::String*, core::int*>* #t139 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t180 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t139.{core::Map::[]=}{Invariant}(let final<BottomType> #t140 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:119:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t180.{core::Map::[]=}{Invariant}(let final<BottomType> #t181 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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);
     else
-      #t139.{core::Map::[]=}{Invariant}(let final<BottomType> #t141 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:119:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t180.{core::Map::[]=}{Invariant}(let final<BottomType> #t182 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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);
-  } =>#t139;
+  } =>#t180;
   core::Map<core::int*, core::String*>* map41 = block {
-    final core::Map<core::int*, core::String*>* #t142 = <core::int*, core::String*>{};
+    final core::Map<core::int*, core::String*>* #t183 = <core::int*, core::String*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t142.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t143 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:120:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t183.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t184 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
     else
-      #t142.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t144 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:120:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t183.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t185 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-  } =>#t142;
+  } =>#t183;
 }
 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*>* #t145 = <core::int*>[];
+    final core::List<core::int*>* #t186 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t145.{core::List::add}{Invariant}(42);
-  } =>#t145;
-  core::Set<core::int*>* set10 = block {
-    final core::Set<core::int*>* #t146 = col::LinkedHashSet::•<core::int*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t146.{core::Set::add}{Invariant}(42);
-    #t146.{core::Set::add}{Invariant}(null);
-  } =>#t146;
-  core::Map<core::String*, core::int*>* map10 = block {
-    final core::Map<core::String*, core::int*>* #t147 = <core::String*, core::int*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t147.{core::Map::[]=}{Invariant}("bar", 42);
-    #t147.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t147;
-  core::List<dynamic>* list11 = block {
-    final core::List<dynamic>* #t148 = <dynamic>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t148.{core::List::add}{Invariant}(dynVar);
-  } =>#t148;
-  core::Set<dynamic>* set11 = block {
-    final core::Set<dynamic>* #t149 = col::LinkedHashSet::•<dynamic>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t149.{core::Set::add}{Invariant}(dynVar);
-    #t149.{core::Set::add}{Invariant}(null);
-  } =>#t149;
-  core::Map<core::String*, dynamic>* map11 = block {
-    final core::Map<core::String*, dynamic>* #t150 = <core::String*, dynamic>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t150.{core::Map::[]=}{Invariant}("bar", dynVar);
-    #t150.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t150;
-  core::List<core::List<core::int*>*>* list12 = 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} core::bool*; i = i.{core::num::+}(1))
-      #t151.{core::List::add}{Invariant}(<core::int*>[42]);
-  } =>#t151;
-  core::Set<core::List<core::int*>*>* set12 = 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} core::bool*; i = i.{core::num::+}(1))
-      #t152.{core::Set::add}{Invariant}(<core::int*>[42]);
-    #t152.{core::Set::add}{Invariant}(null);
-  } =>#t152;
-  core::Map<core::String*, core::List<core::int*>*>* map12 = 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} core::bool*; i = i.{core::num::+}(1))
-      #t153.{core::Map::[]=}{Invariant}("bar", <core::int*>[42]);
-    #t153.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t153;
-  core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t154 = <core::int*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t154.{core::List::addAll}{Invariant}(<core::int*>[42]);
-  } =>#t154;
-  core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t155 = col::LinkedHashSet::•<core::int*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t155.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t155.{core::Set::add}{Invariant}(null);
-  } =>#t155;
-  core::Map<core::String*, core::int*>* map20 = block {
-    final core::Map<core::String*, core::int*>* #t156 = <core::String*, core::int*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<core::String*, core::int*>* #t157 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
-        #t156.{core::Map::[]=}{Invariant}(#t157.{core::MapEntry::key}, #t157.{core::MapEntry::value});
-    #t156.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t156;
-  core::List<dynamic>* list21 = block {
-    final core::List<dynamic>* #t158 = <dynamic>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t158.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
-  } =>#t158;
-  core::Set<dynamic>* set21 = block {
-    final core::Set<dynamic>* #t159 = col::LinkedHashSet::•<dynamic>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t159.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t159.{core::Set::add}{Invariant}(null);
-  } =>#t159;
-  core::Map<core::String*, dynamic>* map21 = block {
-    final core::Map<core::String*, dynamic>* #t160 = <core::String*, dynamic>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<core::String*, dynamic>* #t161 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
-        #t160.{core::Map::[]=}{Invariant}(#t161.{core::MapEntry::key}, #t161.{core::MapEntry::value});
-    #t160.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t160;
-  core::List<core::List<core::int*>*>* list22 = block {
-    final core::List<core::List<core::int*>*>* #t162 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t162.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-  } =>#t162;
-  core::Set<core::List<core::int*>*>* set22 = block {
-    final core::Set<core::List<core::int*>*>* #t163 = col::LinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t163.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t163.{core::Set::add}{Invariant}(null);
-  } =>#t163;
-  core::Map<core::String*, core::List<core::int*>*>* map22 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t164 = <core::String*, core::List<core::int*>*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t165 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries})
-        #t164.{core::Map::[]=}{Invariant}(#t165.{core::MapEntry::key}, #t165.{core::MapEntry::value});
-    #t164.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t164;
-  core::List<core::int*>* list30 = block {
-    final core::List<core::int*>* #t166 = <core::int*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t166.{core::List::addAll}{Invariant}(<core::int*>[42]);
-  } =>#t166;
-  core::Set<core::int*>* set30 = block {
-    final core::Set<core::int*>* #t167 = col::LinkedHashSet::•<core::int*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t167.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t167.{core::Set::add}{Invariant}(null);
-  } =>#t167;
-  core::Map<core::String*, core::int*>* map30 = block {
-    final core::Map<core::String*, core::int*>* #t168 = <core::String*, core::int*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::int*>* #t169 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
-          #t168.{core::Map::[]=}{Invariant}(#t169.{core::MapEntry::key}, #t169.{core::MapEntry::value});
-    #t168.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t168;
-  core::List<dynamic>* list31 = block {
-    final core::List<dynamic>* #t170 = <dynamic>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t170.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
-  } =>#t170;
-  core::Set<dynamic>* set31 = block {
-    final core::Set<dynamic>* #t171 = col::LinkedHashSet::•<dynamic>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t171.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t171.{core::Set::add}{Invariant}(null);
-  } =>#t171;
-  core::Map<core::String*, dynamic>* map31 = block {
-    final core::Map<core::String*, dynamic>* #t172 = <core::String*, dynamic>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, dynamic>* #t173 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
-          #t172.{core::Map::[]=}{Invariant}(#t173.{core::MapEntry::key}, #t173.{core::MapEntry::value});
-    #t172.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t172;
-  core::List<core::List<core::int*>*>* list33 = block {
-    final core::List<core::List<core::int*>*>* #t174 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t174.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-  } =>#t174;
-  core::Set<core::List<core::int*>*>* set33 = block {
-    final core::Set<core::List<core::int*>*>* #t175 = col::LinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t175.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t175.{core::Set::add}{Invariant}(null);
-  } =>#t175;
-  core::Map<core::String*, core::List<core::int*>*>* map33 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t176 = <core::String*, core::List<core::int*>*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t177 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries})
-          #t176.{core::Map::[]=}{Invariant}(#t177.{core::MapEntry::key}, #t177.{core::MapEntry::value});
-    #t176.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t176;
-  core::List<core::List<core::int*>*>* list40 = block {
-    final core::List<core::List<core::int*>*>* #t178 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t178.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t178;
-  core::Set<core::List<core::int*>*>* set40 = block {
-    final core::Set<core::List<core::int*>*>* #t179 = col::LinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t179.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t179.{core::Set::add}{Invariant}(null);
-  } =>#t179;
-  core::Map<core::String*, core::List<core::int*>*>* map40 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t180 = <core::String*, core::List<core::int*>*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t181 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
-        #t180.{core::Map::[]=}{Invariant}(#t181.{core::MapEntry::key}, #t181.{core::MapEntry::value});
-    #t180.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t180;
-  core::List<core::List<core::int*>*>* list41 = block {
-    final core::List<core::List<core::int*>*>* #t182 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t182.{core::List::addAll}{Invariant}( block {
-        final core::Set<core::List<core::int*>*>* #t183 = col::LinkedHashSet::•<core::List<core::int*>*>();
-        #t183.{core::Set::add}{Invariant}(<core::int*>[]);
-      } =>#t183);
-  } =>#t182;
-  core::Set<core::List<core::int*>*>* set41 = block {
-    final core::Set<core::List<core::int*>*>* #t184 = col::LinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t184.{core::Set::addAll}{Invariant}( block {
-        final core::Set<core::List<core::int*>*>* #t185 = col::LinkedHashSet::•<core::List<core::int*>*>();
-        #t185.{core::Set::add}{Invariant}(<core::int*>[]);
-      } =>#t185);
-    #t184.{core::Set::add}{Invariant}(null);
-  } =>#t184;
-  core::List<core::List<core::int*>*>* list42 = block {
-    final core::List<core::List<core::int*>*>* #t186 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t186.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t186.{core::List::add}{Invariant}(42);
   } =>#t186;
-  core::Set<core::List<core::int*>*>* set42 = block {
-    final core::Set<core::List<core::int*>*>* #t187 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::Set<core::int*>* set10 = block {
+    final core::Set<core::int*>* #t187 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t187.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t187.{core::Set::add}{Invariant}(42);
     #t187.{core::Set::add}{Invariant}(null);
   } =>#t187;
-  core::Map<core::String*, core::List<core::int*>*>* map42 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t188 = <core::String*, core::List<core::int*>*>{};
+  core::Map<core::String*, core::int*>* map10 = block {
+    final core::Map<core::String*, core::int*>* #t188 = <core::String*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t189 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
-          #t188.{core::Map::[]=}{Invariant}(#t189.{core::MapEntry::key}, #t189.{core::MapEntry::value});
+      #t188.{core::Map::[]=}{Invariant}("bar", 42);
     #t188.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t188;
-  core::List<core::int*>* list50 = block {
-    final core::List<core::int*>* #t190 = <core::int*>[];
+  core::List<dynamic>* list11 = block {
+    final core::List<dynamic>* #t189 = <dynamic>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t190.{core::List::addAll}{Invariant}(<core::int*>[]);
+      #t189.{core::List::add}{Invariant}(dynVar);
+  } =>#t189;
+  core::Set<dynamic>* set11 = block {
+    final core::Set<dynamic>* #t190 = col::LinkedHashSet::•<dynamic>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t190.{core::Set::add}{Invariant}(dynVar);
+    #t190.{core::Set::add}{Invariant}(null);
   } =>#t190;
-  core::Set<core::int*>* set50 = block {
-    final core::Set<core::int*>* #t191 = col::LinkedHashSet::•<core::int*>();
+  core::Map<core::String*, dynamic>* map11 = block {
+    final core::Map<core::String*, dynamic>* #t191 = <core::String*, dynamic>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t191.{core::Set::addAll}{Invariant}(<core::int*>[]);
-    #t191.{core::Set::add}{Invariant}(null);
+      #t191.{core::Map::[]=}{Invariant}("bar", dynVar);
+    #t191.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t191;
-  core::Map<core::String*, core::int*>* map50 = block {
-    final core::Map<core::String*, core::int*>* #t192 = <core::String*, core::int*>{};
+  core::List<core::List<core::int*>*>* list12 = block {
+    final core::List<core::List<core::int*>*>* #t192 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<core::String*, core::int*>* #t193 in <core::String*, core::int*>{}.{core::Map::entries})
-        #t192.{core::Map::[]=}{Invariant}(#t193.{core::MapEntry::key}, #t193.{core::MapEntry::value});
-    #t192.{core::Map::[]=}{Invariant}("baz", null);
+      #t192.{core::List::add}{Invariant}(<core::int*>[42]);
   } =>#t192;
-  core::List<core::int*>* list51 = block {
-    final core::List<core::int*>* #t194 = <core::int*>[];
+  core::Set<core::List<core::int*>*>* set12 = block {
+    final core::Set<core::List<core::int*>*>* #t193 = col::LinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t194.{core::List::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t195 = col::LinkedHashSet::•<core::int*>();
-      } =>#t195);
+      #t193.{core::Set::add}{Invariant}(<core::int*>[42]);
+    #t193.{core::Set::add}{Invariant}(null);
+  } =>#t193;
+  core::Map<core::String*, core::List<core::int*>*>* map12 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t194 = <core::String*, core::List<core::int*>*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t194.{core::Map::[]=}{Invariant}("bar", <core::int*>[42]);
+    #t194.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t194;
-  core::Set<core::int*>* set51 = block {
-    final core::Set<core::int*>* #t196 = col::LinkedHashSet::•<core::int*>();
+  core::List<core::int*>* list20 = block {
+    final core::List<core::int*>* #t195 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t196.{core::Set::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t197 = col::LinkedHashSet::•<core::int*>();
-      } =>#t197);
-    #t196.{core::Set::add}{Invariant}(null);
-  } =>#t196;
-  core::List<core::int*>* list52 = block {
-    final core::List<core::int*>* #t198 = <core::int*>[];
+      for (final core::int* #t196 in <core::int*>[42])
+        #t195.{core::List::add}{Invariant}(#t196);
+  } =>#t195;
+  core::Set<core::int*>* set20 = block {
+    final core::Set<core::int*>* #t197 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t198.{core::List::addAll}{Invariant}(<core::int*>[]);
-  } =>#t198;
-  core::Set<core::int*>* set52 = block {
-    final core::Set<core::int*>* #t199 = col::LinkedHashSet::•<core::int*>();
+      for (final core::int* #t198 in <core::int*>[42])
+        #t197.{core::Set::add}{Invariant}(#t198);
+    #t197.{core::Set::add}{Invariant}(null);
+  } =>#t197;
+  core::Map<core::String*, core::int*>* map20 = block {
+    final core::Map<core::String*, core::int*>* #t199 = <core::String*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t199.{core::Set::addAll}{Invariant}(<core::int*>[]);
-    #t199.{core::Set::add}{Invariant}(null);
+      for (final core::MapEntry<core::String*, core::int*>* #t200 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
+        #t199.{core::Map::[]=}{Invariant}(#t200.{core::MapEntry::key}, #t200.{core::MapEntry::value});
+    #t199.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t199;
-  core::List<core::List<core::int*>*>* list60 = block {
-    final core::List<core::List<core::int*>*>* #t200 = <core::List<core::int*>*>[];
+  core::List<dynamic>* list21 = block {
+    final core::List<dynamic>* #t201 = <dynamic>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t200.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t200;
-  core::Set<core::List<core::int*>*>* set60 = block {
-    final core::Set<core::List<core::int*>*>* #t201 = col::LinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t201.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t201.{core::Set::add}{Invariant}(null);
+      for (final dynamic #t202 in <dynamic>[dynVar])
+        #t201.{core::List::add}{Invariant}(#t202);
   } =>#t201;
-  core::Map<core::String*, core::List<core::int*>*>* map60 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t202 = <core::String*, core::List<core::int*>*>{};
+  core::Set<dynamic>* set21 = block {
+    final core::Set<dynamic>* #t203 = col::LinkedHashSet::•<dynamic>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t203 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
-        #t202.{core::Map::[]=}{Invariant}(#t203.{core::MapEntry::key}, #t203.{core::MapEntry::value});
-    #t202.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t202;
-  core::List<core::List<core::int*>*>* list61 = block {
-    final core::List<core::List<core::int*>*>* #t204 = <core::List<core::int*>*>[];
+      for (final dynamic #t204 in <dynamic>[dynVar])
+        #t203.{core::Set::add}{Invariant}(#t204);
+    #t203.{core::Set::add}{Invariant}(null);
+  } =>#t203;
+  core::Map<core::String*, dynamic>* map21 = block {
+    final core::Map<core::String*, dynamic>* #t205 = <core::String*, dynamic>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t204.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t204;
-  core::Set<core::List<core::int*>*>* set61 = block {
-    final core::Set<core::List<core::int*>*>* #t205 = col::LinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t205.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t205.{core::Set::add}{Invariant}(null);
+      for (final core::MapEntry<core::String*, dynamic>* #t206 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
+        #t205.{core::Map::[]=}{Invariant}(#t206.{core::MapEntry::key}, #t206.{core::MapEntry::value});
+    #t205.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t205;
-  core::Map<core::String*, core::List<core::int*>*>* map61 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t206 = <core::String*, core::List<core::int*>*>{};
+  core::List<core::List<core::int*>*>* list22 = block {
+    final core::List<core::List<core::int*>*>* #t207 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t207 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
-          #t206.{core::Map::[]=}{Invariant}(#t207.{core::MapEntry::key}, #t207.{core::MapEntry::value});
-    #t206.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t206;
-  core::List<core::List<core::int*>*>* list70 = block {
-    final core::List<core::List<core::int*>*>* #t208 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t208.{core::List::add}{Invariant}(<core::int*>[]);
-  } =>#t208;
-  core::Set<core::List<core::int*>*>* set70 = block {
+      for (final core::List<core::int*>* #t208 in <core::List<core::int*>*>[<core::int*>[42]])
+        #t207.{core::List::add}{Invariant}(#t208);
+  } =>#t207;
+  core::Set<core::List<core::int*>*>* set22 = block {
     final core::Set<core::List<core::int*>*>* #t209 = col::LinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t209.{core::Set::add}{Invariant}(<core::int*>[]);
+      for (final core::List<core::int*>* #t210 in <core::List<core::int*>*>[<core::int*>[42]])
+        #t209.{core::Set::add}{Invariant}(#t210);
     #t209.{core::Set::add}{Invariant}(null);
   } =>#t209;
-  core::Map<core::String*, core::List<core::int*>*>* map70 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t210 = <core::String*, core::List<core::int*>*>{};
+  core::Map<core::String*, core::List<core::int*>*>* map22 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t211 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t210.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
-    #t210.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t210;
-  core::List<core::List<core::int*>*>* list71 = block {
-    final core::List<core::List<core::int*>*>* #t211 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t211.{core::List::add}{Invariant}(<core::int*>[]);
+      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t212 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries})
+        #t211.{core::Map::[]=}{Invariant}(#t212.{core::MapEntry::key}, #t212.{core::MapEntry::value});
+    #t211.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t211;
-  core::Set<core::List<core::int*>*>* set71 = block {
-    final core::Set<core::List<core::int*>*>* #t212 = col::LinkedHashSet::•<core::List<core::int*>*>();
+  core::List<core::int*>* list30 = block {
+    final core::List<core::int*>* #t213 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t212.{core::Set::add}{Invariant}(<core::int*>[]);
-    #t212.{core::Set::add}{Invariant}(null);
-  } =>#t212;
-  core::Map<core::String*, core::List<core::int*>*>* map71 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t213 = <core::String*, core::List<core::int*>*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t213.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
-    #t213.{core::Map::[]=}{Invariant}("baz", null);
+        for (final core::int* #t214 in <core::int*>[42])
+          #t213.{core::List::add}{Invariant}(#t214);
   } =>#t213;
-  core::List<core::num*>* list80 = block {
-    final core::List<core::num*>* #t214 = <core::num*>[];
+  core::Set<core::int*>* set30 = block {
+    final core::Set<core::int*>* #t215 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t214.{core::List::add}{Invariant}(42);
-      else
-        #t214.{core::List::add}{Invariant}(3.14);
-  } =>#t214;
-  core::Set<core::num*>* set80 = block {
-    final core::Set<core::num*>* #t215 = col::LinkedHashSet::•<core::num*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t215.{core::Set::add}{Invariant}(42);
-      else
-        #t215.{core::Set::add}{Invariant}(3.14);
+        for (final core::int* #t216 in <core::int*>[42])
+          #t215.{core::Set::add}{Invariant}(#t216);
     #t215.{core::Set::add}{Invariant}(null);
   } =>#t215;
-  core::Map<core::String*, core::num*>* map80 = block {
-    final core::Map<core::String*, core::num*>* #t216 = <core::String*, core::num*>{};
+  core::Map<core::String*, core::int*>* map30 = 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} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t216.{core::Map::[]=}{Invariant}("bar", 42);
-      else
-        #t216.{core::Map::[]=}{Invariant}("bar", 3.14);
-    #t216.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t216;
-  core::List<core::num*>* list81 = block {
-    final core::List<core::num*>* #t217 = <core::num*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t217.{core::List::addAll}{Invariant}(listInt);
-      else
-        #t217.{core::List::addAll}{Invariant}(listDouble);
+        for (final core::MapEntry<core::String*, core::int*>* #t218 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries})
+          #t217.{core::Map::[]=}{Invariant}(#t218.{core::MapEntry::key}, #t218.{core::MapEntry::value});
+    #t217.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t217;
-  core::Set<core::num*>* set81 = block {
-    final core::Set<core::num*>* #t218 = col::LinkedHashSet::•<core::num*>();
+  core::List<dynamic>* list31 = block {
+    final core::List<dynamic>* #t219 = <dynamic>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t218.{core::Set::addAll}{Invariant}(listInt);
-      else
-        #t218.{core::Set::addAll}{Invariant}(listDouble);
-    #t218.{core::Set::add}{Invariant}(null);
-  } =>#t218;
-  core::Map<core::String*, core::num*>* map81 = block {
-    final core::Map<core::String*, core::num*>* #t219 = <core::String*, core::num*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::num*>* #t220 in mapStringInt.{core::Map::entries})
-          #t219.{core::Map::[]=}{Invariant}(#t220.{core::MapEntry::key}, #t220.{core::MapEntry::value});
-      else
-        for (final core::MapEntry<core::String*, core::num*>* #t221 in mapStringDouble.{core::Map::entries})
-          #t219.{core::Map::[]=}{Invariant}(#t221.{core::MapEntry::key}, #t221.{core::MapEntry::value});
-    #t219.{core::Map::[]=}{Invariant}("baz", null);
+        for (final dynamic #t220 in <dynamic>[dynVar])
+          #t219.{core::List::add}{Invariant}(#t220);
   } =>#t219;
-  core::List<dynamic>* list82 = block {
-    final core::List<dynamic>* #t222 = <dynamic>[];
+  core::Set<dynamic>* set31 = block {
+    final core::Set<dynamic>* #t221 = col::LinkedHashSet::•<dynamic>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t222.{core::List::addAll}{Invariant}(listInt);
-      else
-        #t222.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-  } =>#t222;
-  core::Set<dynamic>* set82 = block {
-    final core::Set<dynamic>* #t223 = col::LinkedHashSet::•<dynamic>();
+        for (final dynamic #t222 in <dynamic>[dynVar])
+          #t221.{core::Set::add}{Invariant}(#t222);
+    #t221.{core::Set::add}{Invariant}(null);
+  } =>#t221;
+  core::Map<core::String*, dynamic>* map31 = block {
+    final core::Map<core::String*, dynamic>* #t223 = <core::String*, dynamic>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t223.{core::Set::addAll}{Invariant}(listInt);
-      else
-        #t223.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t223.{core::Set::add}{Invariant}(null);
+        for (final core::MapEntry<core::String*, dynamic>* #t224 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries})
+          #t223.{core::Map::[]=}{Invariant}(#t224.{core::MapEntry::key}, #t224.{core::MapEntry::value});
+    #t223.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t223;
-  core::Map<dynamic, dynamic>* map82 = block {
-    final core::Map<dynamic, dynamic>* #t224 = <dynamic, dynamic>{};
+  core::List<core::List<core::int*>*>* list33 = block {
+    final core::List<core::List<core::int*>*>* #t225 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<dynamic, dynamic>* #t225 in mapStringInt.{core::Map::entries})
-          #t224.{core::Map::[]=}{Invariant}(#t225.{core::MapEntry::key}, #t225.{core::MapEntry::value});
-      else
-        for (final core::MapEntry<dynamic, dynamic>* #t226 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries})
-          #t224.{core::Map::[]=}{Invariant}(#t226.{core::MapEntry::key}, #t226.{core::MapEntry::value});
-    #t224.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t224;
-  core::List<core::num*>* list83 = block {
-    final core::List<core::num*>* #t227 = <core::num*>[];
+        for (final core::List<core::int*>* #t226 in <core::List<core::int*>*>[<core::int*>[42]])
+          #t225.{core::List::add}{Invariant}(#t226);
+  } =>#t225;
+  core::Set<core::List<core::int*>*>* set33 = block {
+    final core::Set<core::List<core::int*>*>* #t227 = col::LinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t227.{core::List::add}{Invariant}(42);
-      else
-        #t227.{core::List::addAll}{Invariant}(listDouble);
+        for (final core::List<core::int*>* #t228 in <core::List<core::int*>*>[<core::int*>[42]])
+          #t227.{core::Set::add}{Invariant}(#t228);
+    #t227.{core::Set::add}{Invariant}(null);
   } =>#t227;
-  core::Set<core::num*>* set83 = block {
-    final core::Set<core::num*>* #t228 = col::LinkedHashSet::•<core::num*>();
+  core::Map<core::String*, core::List<core::int*>*>* map33 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t229 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t228.{core::Set::addAll}{Invariant}(listInt);
-      else
-        #t228.{core::Set::add}{Invariant}(3.14);
-    #t228.{core::Set::add}{Invariant}(null);
-  } =>#t228;
-  core::Map<core::String*, core::num*>* map83 = block {
-    final core::Map<core::String*, core::num*>* #t229 = <core::String*, core::num*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        for (final core::MapEntry<core::String*, core::num*>* #t230 in mapStringInt.{core::Map::entries})
+        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t230 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries})
           #t229.{core::Map::[]=}{Invariant}(#t230.{core::MapEntry::key}, #t230.{core::MapEntry::value});
-      else
-        #t229.{core::Map::[]=}{Invariant}("bar", 3.14);
     #t229.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t229;
-  core::List<core::int*>* list90 = block {
-    final core::List<core::int*>* #t231 = <core::int*>[];
+  core::List<core::List<core::int*>*>* list40 = block {
+    final core::List<core::List<core::int*>*>* #t231 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t231.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+      for (final core::List<core::int*>* #t232 in <core::List<core::int*>*>[<core::int*>[]])
+        #t231.{core::List::add}{Invariant}(#t232);
   } =>#t231;
-  core::Set<core::int*>* set90 = block {
-    final core::Set<core::int*>* #t232 = col::LinkedHashSet::•<core::int*>();
+  core::Set<core::List<core::int*>*>* set40 = block {
+    final core::Set<core::List<core::int*>*>* #t233 = col::LinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t232.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
-    #t232.{core::Set::add}{Invariant}(null);
-  } =>#t232;
-  core::Map<core::String*, core::int*>* map90 = block {
-    final core::Map<core::String*, core::int*>* #t233 = <core::String*, core::int*>{};
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t233.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
-    #t233.{core::Map::[]=}{Invariant}("baz", null);
+      for (final core::List<core::int*>* #t234 in <core::List<core::int*>*>[<core::int*>[]])
+        #t233.{core::Set::add}{Invariant}(#t234);
+    #t233.{core::Set::add}{Invariant}(null);
   } =>#t233;
-  core::List<core::int*>* list91 = block {
-    final core::List<core::int*>* #t234 = <core::int*>[];
+  core::Map<core::String*, core::List<core::int*>*>* map40 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t235 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final dynamic #t235 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-        final core::int* #t236 = #t235 as{TypeError} core::int*;
-        #t234.{core::List::add}{Invariant}(#t236);
-      }
-  } =>#t234;
-  core::Set<core::int*>* set91 = block {
-    final core::Set<core::int*>* #t237 = col::LinkedHashSet::•<core::int*>();
+      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t236 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
+        #t235.{core::Map::[]=}{Invariant}(#t236.{core::MapEntry::key}, #t236.{core::MapEntry::value});
+    #t235.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t235;
+  core::List<core::List<core::int*>*>* list41 = block {
+    final core::List<core::List<core::int*>*>* #t237 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final dynamic #t238 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-        final core::int* #t239 = #t238 as{TypeError} core::int*;
-        #t237.{core::Set::add}{Invariant}(#t239);
-      }
-    #t237.{core::Set::add}{Invariant}(null);
+      for (final core::List<core::int*>* #t238 in block {
+        final core::Set<core::List<core::int*>*>* #t239 = col::LinkedHashSet::•<core::List<core::int*>*>();
+        #t239.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t239)
+        #t237.{core::List::add}{Invariant}(#t238);
   } =>#t237;
-  core::Map<core::String*, core::int*>* map91 = block {
-    final core::Map<core::String*, core::int*>* #t240 = <core::String*, core::int*>{};
+  core::Set<core::List<core::int*>*>* set41 = block {
+    final core::Set<core::List<core::int*>*>* #t240 = col::LinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<dynamic, dynamic>* #t241 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}) {
-        final core::String* #t242 = #t241.{core::MapEntry::key} as{TypeError} core::String*;
-        final core::int* #t243 = #t241.{core::MapEntry::value} as{TypeError} core::int*;
-        #t240.{core::Map::[]=}{Invariant}(#t242, #t243);
-      }
-    #t240.{core::Map::[]=}{Invariant}("baz", null);
+      for (final core::List<core::int*>* #t241 in block {
+        final core::Set<core::List<core::int*>*>* #t242 = col::LinkedHashSet::•<core::List<core::int*>*>();
+        #t242.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t242)
+        #t240.{core::Set::add}{Invariant}(#t241);
+    #t240.{core::Set::add}{Invariant}(null);
   } =>#t240;
-  core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t244 = <core::int*>[];
-    for (final core::int* #t245 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
-      #t244.{core::List::add}{Invariant}(42);
-  } =>#t244;
-  core::Set<core::int*>* set100 = block {
-    final core::Set<core::int*>* #t246 = col::LinkedHashSet::•<core::int*>();
-    for (final core::int* #t247 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
-      #t246.{core::Set::add}{Invariant}(42);
-  } =>#t246;
-  core::Map<core::String*, core::int*>* map100 = block {
-    final core::Map<core::String*, core::int*>* #t248 = <core::String*, core::int*>{};
-    for (final core::int* #t249 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
-      #t248.{core::Map::[]=}{Invariant}("bar", 42);
-  } =>#t248;
-  core::List<core::int*>* list110 = block {
-    final core::List<core::int*>* #t250 = <core::int*>[];
-    for (core::int* i in <core::int*>[1, 2, 3])
-      #t250.{core::List::add}{Invariant}(i);
-  } =>#t250;
-  core::Set<core::int*>* set110 = block {
+  core::List<core::List<core::int*>*>* list42 = block {
+    final core::List<core::List<core::int*>*>* #t243 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t244 in <core::List<core::int*>*>[<core::int*>[]])
+          #t243.{core::List::add}{Invariant}(#t244);
+  } =>#t243;
+  core::Set<core::List<core::int*>*>* set42 = block {
+    final core::Set<core::List<core::int*>*>* #t245 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t246 in <core::List<core::int*>*>[<core::int*>[]])
+          #t245.{core::Set::add}{Invariant}(#t246);
+    #t245.{core::Set::add}{Invariant}(null);
+  } =>#t245;
+  core::Map<core::String*, core::List<core::int*>*>* map42 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t247 = <core::String*, core::List<core::int*>*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t248 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
+          #t247.{core::Map::[]=}{Invariant}(#t248.{core::MapEntry::key}, #t248.{core::MapEntry::value});
+    #t247.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t247;
+  core::List<core::int*>* list50 = block {
+    final core::List<core::int*>* #t249 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::int* #t250 in <core::int*>[])
+        #t249.{core::List::add}{Invariant}(#t250);
+  } =>#t249;
+  core::Set<core::int*>* set50 = block {
     final core::Set<core::int*>* #t251 = col::LinkedHashSet::•<core::int*>();
-    for (core::int* i in <core::int*>[1, 2, 3])
-      #t251.{core::Set::add}{Invariant}(i);
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::int* #t252 in <core::int*>[])
+        #t251.{core::Set::add}{Invariant}(#t252);
     #t251.{core::Set::add}{Invariant}(null);
   } =>#t251;
-  core::Map<core::String*, core::int*>* map110 = block {
-    final core::Map<core::String*, core::int*>* #t252 = <core::String*, core::int*>{};
-    for (core::int* i in <core::int*>[1, 2, 3])
-      #t252.{core::Map::[]=}{Invariant}("bar", i);
-    #t252.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t252;
-  core::List<core::int*>* list120 = block {
-    final core::List<core::int*>* #t253 = <core::int*>[];
-    for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
-      #t253.{core::List::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
+  core::Map<core::String*, core::int*>* map50 = block {
+    final core::Map<core::String*, core::int*>* #t253 = <core::String*, core::int*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::MapEntry<core::String*, core::int*>* #t254 in <core::String*, core::int*>{}.{core::Map::entries})
+        #t253.{core::Map::[]=}{Invariant}(#t254.{core::MapEntry::key}, #t254.{core::MapEntry::value});
+    #t253.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t253;
-  core::Set<core::int*>* set120 = block {
-    final core::Set<core::int*>* #t254 = col::LinkedHashSet::•<core::int*>();
-    for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
-      #t254.{core::Set::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
-    #t254.{core::Set::add}{Invariant}(null);
-  } =>#t254;
-  core::Map<core::String*, core::int*>* map120 = block {
-    final core::Map<core::String*, core::int*>* #t255 = <core::String*, core::int*>{};
-    for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
-      #t255.{core::Map::[]=}{Invariant}("bar", i as{TypeError,ForDynamic} core::int*);
-    #t255.{core::Map::[]=}{Invariant}("baz", null);
+  core::List<core::int*>* list51 = block {
+    final core::List<core::int*>* #t255 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::int* #t256 in block {
+        final core::Set<core::int*>* #t257 = col::LinkedHashSet::•<core::int*>();
+      } =>#t257)
+        #t255.{core::List::add}{Invariant}(#t256);
   } =>#t255;
-  core::List<core::int*>* list130 = block {
-    final core::List<core::int*>* #t256 = <core::int*>[];
-    for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
-      #t256.{core::List::add}{Invariant}(i);
-  } =>#t256;
-  core::Set<core::int*>* set130 = block {
-    final core::Set<core::int*>* #t257 = col::LinkedHashSet::•<core::int*>();
-    for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
-      #t257.{core::Set::add}{Invariant}(i);
-  } =>#t257;
-  core::Map<core::int*, core::int*>* map130 = block {
-    final core::Map<core::int*, core::int*>* #t258 = <core::int*, core::int*>{};
-    for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
-      #t258.{core::Map::[]=}{Invariant}(i, i);
+  core::Set<core::int*>* set51 = block {
+    final core::Set<core::int*>* #t258 = col::LinkedHashSet::•<core::int*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::int* #t259 in block {
+        final core::Set<core::int*>* #t260 = col::LinkedHashSet::•<core::int*>();
+      } =>#t260)
+        #t258.{core::Set::add}{Invariant}(#t259);
+    #t258.{core::Set::add}{Invariant}(null);
   } =>#t258;
+  core::List<core::int*>* list52 = block {
+    final core::List<core::int*>* #t261 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::int* #t262 in <core::int*>[])
+          #t261.{core::List::add}{Invariant}(#t262);
+  } =>#t261;
+  core::Set<core::int*>* set52 = block {
+    final core::Set<core::int*>* #t263 = col::LinkedHashSet::•<core::int*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::int* #t264 in <core::int*>[])
+          #t263.{core::Set::add}{Invariant}(#t264);
+    #t263.{core::Set::add}{Invariant}(null);
+  } =>#t263;
+  core::List<core::List<core::int*>*>* list60 = block {
+    final core::List<core::List<core::int*>*>* #t265 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::List<core::int*>* #t266 in <core::List<core::int*>*>[<core::int*>[]])
+        #t265.{core::List::add}{Invariant}(#t266);
+  } =>#t265;
+  core::Set<core::List<core::int*>*>* set60 = block {
+    final core::Set<core::List<core::int*>*>* #t267 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::List<core::int*>* #t268 in <core::List<core::int*>*>[<core::int*>[]])
+        #t267.{core::Set::add}{Invariant}(#t268);
+    #t267.{core::Set::add}{Invariant}(null);
+  } =>#t267;
+  core::Map<core::String*, core::List<core::int*>*>* map60 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t269 = <core::String*, core::List<core::int*>*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t270 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
+        #t269.{core::Map::[]=}{Invariant}(#t270.{core::MapEntry::key}, #t270.{core::MapEntry::value});
+    #t269.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t269;
+  core::List<core::List<core::int*>*>* list61 = block {
+    final core::List<core::List<core::int*>*>* #t271 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t272 in <core::List<core::int*>*>[<core::int*>[]])
+          #t271.{core::List::add}{Invariant}(#t272);
+  } =>#t271;
+  core::Set<core::List<core::int*>*>* set61 = block {
+    final core::Set<core::List<core::int*>*>* #t273 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::List<core::int*>* #t274 in <core::List<core::int*>*>[<core::int*>[]])
+          #t273.{core::Set::add}{Invariant}(#t274);
+    #t273.{core::Set::add}{Invariant}(null);
+  } =>#t273;
+  core::Map<core::String*, core::List<core::int*>*>* map61 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t275 = <core::String*, core::List<core::int*>*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t276 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries})
+          #t275.{core::Map::[]=}{Invariant}(#t276.{core::MapEntry::key}, #t276.{core::MapEntry::value});
+    #t275.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t275;
+  core::List<core::List<core::int*>*>* list70 = block {
+    final core::List<core::List<core::int*>*>* #t277 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t277.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t277;
+  core::Set<core::List<core::int*>*>* set70 = block {
+    final core::Set<core::List<core::int*>*>* #t278 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t278.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t278.{core::Set::add}{Invariant}(null);
+  } =>#t278;
+  core::Map<core::String*, core::List<core::int*>*>* map70 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t279 = <core::String*, core::List<core::int*>*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t279.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
+    #t279.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t279;
+  core::List<core::List<core::int*>*>* list71 = block {
+    final core::List<core::List<core::int*>*>* #t280 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t280.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t280;
+  core::Set<core::List<core::int*>*>* set71 = block {
+    final core::Set<core::List<core::int*>*>* #t281 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t281.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t281.{core::Set::add}{Invariant}(null);
+  } =>#t281;
+  core::Map<core::String*, core::List<core::int*>*>* map71 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t282 = <core::String*, core::List<core::int*>*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t282.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
+    #t282.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t282;
+  core::List<core::num*>* list80 = block {
+    final core::List<core::num*>* #t283 = <core::num*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t283.{core::List::add}{Invariant}(42);
+      else
+        #t283.{core::List::add}{Invariant}(3.14);
+  } =>#t283;
+  core::Set<core::num*>* set80 = block {
+    final core::Set<core::num*>* #t284 = col::LinkedHashSet::•<core::num*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t284.{core::Set::add}{Invariant}(42);
+      else
+        #t284.{core::Set::add}{Invariant}(3.14);
+    #t284.{core::Set::add}{Invariant}(null);
+  } =>#t284;
+  core::Map<core::String*, core::num*>* map80 = block {
+    final core::Map<core::String*, core::num*>* #t285 = <core::String*, core::num*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t285.{core::Map::[]=}{Invariant}("bar", 42);
+      else
+        #t285.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t285.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t285;
+  core::List<core::num*>* list81 = block {
+    final core::List<core::num*>* #t286 = <core::num*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::num* #t287 in listInt)
+          #t286.{core::List::add}{Invariant}(#t287);
+      else
+        for (final core::num* #t288 in listDouble)
+          #t286.{core::List::add}{Invariant}(#t288);
+  } =>#t286;
+  core::Set<core::num*>* set81 = block {
+    final core::Set<core::num*>* #t289 = col::LinkedHashSet::•<core::num*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::num* #t290 in listInt)
+          #t289.{core::Set::add}{Invariant}(#t290);
+      else
+        for (final core::num* #t291 in listDouble)
+          #t289.{core::Set::add}{Invariant}(#t291);
+    #t289.{core::Set::add}{Invariant}(null);
+  } =>#t289;
+  core::Map<core::String*, core::num*>* map81 = block {
+    final core::Map<core::String*, core::num*>* #t292 = <core::String*, core::num*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, core::num*>* #t293 in mapStringInt.{core::Map::entries})
+          #t292.{core::Map::[]=}{Invariant}(#t293.{core::MapEntry::key}, #t293.{core::MapEntry::value});
+      else
+        for (final core::MapEntry<core::String*, core::num*>* #t294 in mapStringDouble.{core::Map::entries})
+          #t292.{core::Map::[]=}{Invariant}(#t294.{core::MapEntry::key}, #t294.{core::MapEntry::value});
+    #t292.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t292;
+  core::List<dynamic>* list82 = block {
+    final core::List<dynamic>* #t295 = <dynamic>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final dynamic #t296 in listInt)
+          #t295.{core::List::add}{Invariant}(#t296);
+      else
+        for (final dynamic #t297 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+          #t295.{core::List::add}{Invariant}(#t297);
+  } =>#t295;
+  core::Set<dynamic>* set82 = block {
+    final core::Set<dynamic>* #t298 = col::LinkedHashSet::•<dynamic>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final dynamic #t299 in listInt)
+          #t298.{core::Set::add}{Invariant}(#t299);
+      else
+        for (final dynamic #t300 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+          #t298.{core::Set::add}{Invariant}(#t300);
+    #t298.{core::Set::add}{Invariant}(null);
+  } =>#t298;
+  core::Map<dynamic, dynamic>* map82 = block {
+    final core::Map<dynamic, dynamic>* #t301 = <dynamic, dynamic>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<dynamic, dynamic>* #t302 in mapStringInt.{core::Map::entries})
+          #t301.{core::Map::[]=}{Invariant}(#t302.{core::MapEntry::key}, #t302.{core::MapEntry::value});
+      else
+        for (final core::MapEntry<dynamic, dynamic>* #t303 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries})
+          #t301.{core::Map::[]=}{Invariant}(#t303.{core::MapEntry::key}, #t303.{core::MapEntry::value});
+    #t301.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t301;
+  core::List<core::num*>* list83 = block {
+    final core::List<core::num*>* #t304 = <core::num*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        #t304.{core::List::add}{Invariant}(42);
+      else
+        for (final core::num* #t305 in listDouble)
+          #t304.{core::List::add}{Invariant}(#t305);
+  } =>#t304;
+  core::Set<core::num*>* set83 = block {
+    final core::Set<core::num*>* #t306 = col::LinkedHashSet::•<core::num*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::num* #t307 in listInt)
+          #t306.{core::Set::add}{Invariant}(#t307);
+      else
+        #t306.{core::Set::add}{Invariant}(3.14);
+    #t306.{core::Set::add}{Invariant}(null);
+  } =>#t306;
+  core::Map<core::String*, core::num*>* map83 = block {
+    final core::Map<core::String*, core::num*>* #t308 = <core::String*, core::num*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
+        for (final core::MapEntry<core::String*, core::num*>* #t309 in mapStringInt.{core::Map::entries})
+          #t308.{core::Map::[]=}{Invariant}(#t309.{core::MapEntry::key}, #t309.{core::MapEntry::value});
+      else
+        #t308.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t308.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t308;
+  core::List<core::int*>* list90 = block {
+    final core::List<core::int*>* #t310 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t310.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+  } =>#t310;
+  core::Set<core::int*>* set90 = block {
+    final core::Set<core::int*>* #t311 = col::LinkedHashSet::•<core::int*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t311.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+    #t311.{core::Set::add}{Invariant}(null);
+  } =>#t311;
+  core::Map<core::String*, core::int*>* map90 = block {
+    final core::Map<core::String*, core::int*>* #t312 = <core::String*, core::int*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      #t312.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
+    #t312.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t312;
+  core::List<core::int*>* list91 = block {
+    final core::List<core::int*>* #t313 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final dynamic #t314 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+        final core::int* #t315 = #t314 as{TypeError} core::int*;
+        #t313.{core::List::add}{Invariant}(#t315);
+      }
+  } =>#t313;
+  core::Set<core::int*>* set91 = block {
+    final core::Set<core::int*>* #t316 = col::LinkedHashSet::•<core::int*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final dynamic #t317 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+        final core::int* #t318 = #t317 as{TypeError} core::int*;
+        #t316.{core::Set::add}{Invariant}(#t318);
+      }
+    #t316.{core::Set::add}{Invariant}(null);
+  } =>#t316;
+  core::Map<core::String*, core::int*>* map91 = block {
+    final core::Map<core::String*, core::int*>* #t319 = <core::String*, core::int*>{};
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
+      for (final core::MapEntry<dynamic, dynamic>* #t320 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}) {
+        final core::String* #t321 = #t320.{core::MapEntry::key} as{TypeError} core::String*;
+        final core::int* #t322 = #t320.{core::MapEntry::value} as{TypeError} core::int*;
+        #t319.{core::Map::[]=}{Invariant}(#t321, #t322);
+      }
+    #t319.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t319;
+  core::List<core::int*>* list100 = block {
+    final core::List<core::int*>* #t323 = <core::int*>[];
+    for (final core::int* #t324 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
+      #t323.{core::List::add}{Invariant}(42);
+  } =>#t323;
+  core::Set<core::int*>* set100 = block {
+    final core::Set<core::int*>* #t325 = col::LinkedHashSet::•<core::int*>();
+    for (final core::int* #t326 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
+      #t325.{core::Set::add}{Invariant}(42);
+  } =>#t325;
+  core::Map<core::String*, core::int*>* map100 = block {
+    final core::Map<core::String*, core::int*>* #t327 = <core::String*, core::int*>{};
+    for (final core::int* #t328 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
+      #t327.{core::Map::[]=}{Invariant}("bar", 42);
+  } =>#t327;
+  core::List<core::int*>* list110 = block {
+    final core::List<core::int*>* #t329 = <core::int*>[];
+    for (core::int* i in <core::int*>[1, 2, 3])
+      #t329.{core::List::add}{Invariant}(i);
+  } =>#t329;
+  core::Set<core::int*>* set110 = block {
+    final core::Set<core::int*>* #t330 = col::LinkedHashSet::•<core::int*>();
+    for (core::int* i in <core::int*>[1, 2, 3])
+      #t330.{core::Set::add}{Invariant}(i);
+    #t330.{core::Set::add}{Invariant}(null);
+  } =>#t330;
+  core::Map<core::String*, core::int*>* map110 = block {
+    final core::Map<core::String*, core::int*>* #t331 = <core::String*, core::int*>{};
+    for (core::int* i in <core::int*>[1, 2, 3])
+      #t331.{core::Map::[]=}{Invariant}("bar", i);
+    #t331.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t331;
+  core::List<core::int*>* list120 = block {
+    final core::List<core::int*>* #t332 = <core::int*>[];
+    for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+      #t332.{core::List::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
+  } =>#t332;
+  core::Set<core::int*>* set120 = block {
+    final core::Set<core::int*>* #t333 = col::LinkedHashSet::•<core::int*>();
+    for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+      #t333.{core::Set::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
+    #t333.{core::Set::add}{Invariant}(null);
+  } =>#t333;
+  core::Map<core::String*, core::int*>* map120 = block {
+    final core::Map<core::String*, core::int*>* #t334 = <core::String*, core::int*>{};
+    for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+      #t334.{core::Map::[]=}{Invariant}("bar", i as{TypeError,ForDynamic} core::int*);
+    #t334.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t334;
+  core::List<core::int*>* list130 = block {
+    final core::List<core::int*>* #t335 = <core::int*>[];
+    for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
+      #t335.{core::List::add}{Invariant}(i);
+  } =>#t335;
+  core::Set<core::int*>* set130 = block {
+    final core::Set<core::int*>* #t336 = col::LinkedHashSet::•<core::int*>();
+    for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
+      #t336.{core::Set::add}{Invariant}(i);
+  } =>#t336;
+  core::Map<core::int*, core::int*>* map130 = block {
+    final core::Map<core::int*, core::int*>* #t337 = <core::int*, core::int*>{};
+    for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
+      #t337.{core::Map::[]=}{Invariant}(i, i);
+  } =>#t337;
 }
 static method testForElementErrors(core::Map<core::int*, core::int*>* map, core::List<core::int*>* list) → dynamic async {
   block {
-    final core::List<core::int*>* #t259 = <core::int*>[];
+    final core::List<core::int*>* #t338 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t259.{core::List::add}{Invariant}(let final<BottomType> #t260 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:212:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t338.{core::List::add}{Invariant}(let final<BottomType> #t339 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-  } =>#t259;
+  } =>#t338;
   block {
-    final core::Set<core::int*>* #t261 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t340 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t261.{core::Set::add}{Invariant}(let final<BottomType> #t262 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:213:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t340.{core::Set::add}{Invariant}(let final<BottomType> #t341 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-    #t261.{core::Set::add}{Invariant}(null);
-  } =>#t261;
+    #t340.{core::Set::add}{Invariant}(null);
+  } =>#t340;
   block {
-    final core::Map<core::int*, core::int*>* #t263 = <core::int*, core::int*>{};
+    final core::Map<core::int*, core::int*>* #t342 = <core::int*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t263.{core::Map::[]=}{Invariant}(let final<BottomType> #t264 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:214:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t342.{core::Map::[]=}{Invariant}(let final<BottomType> #t343 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*, let final<BottomType> #t265 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:214:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                 ^" in "bar" as{TypeError} core::int*, let final<BottomType> #t344 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-    #t263.{core::Map::[]=}{Invariant}(let final<BottomType> #t266 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:214:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    #t342.{core::Map::[]=}{Invariant}(let final<BottomType> #t345 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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);
-  } =>#t263;
+  } =>#t342;
   block {
-    final core::List<core::int*>* #t267 = <core::int*>[];
+    final core::List<core::int*>* #t346 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t267.{core::List::addAll}{Invariant}(<core::int*>[let final<BottomType> #t268 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:215:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      for (final core::int* #t347 in <core::int*>[let final<BottomType> #t348 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*]);
-  } =>#t267;
+                                                ^" in "bar" as{TypeError} core::int*])
+        #t346.{core::List::add}{Invariant}(#t347);
+  } =>#t346;
   block {
-    final core::Set<core::int*>* #t269 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t349 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t269.{core::Set::addAll}{Invariant}(<core::int*>[let final<BottomType> #t270 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:216:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      for (final core::int* #t350 in <core::int*>[let final<BottomType> #t351 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*]);
-    #t269.{core::Set::add}{Invariant}(null);
-  } =>#t269;
+                                                ^" in "bar" as{TypeError} core::int*])
+        #t349.{core::Set::add}{Invariant}(#t350);
+    #t349.{core::Set::add}{Invariant}(null);
+  } =>#t349;
   block {
-    final core::Map<core::int*, core::int*>* #t271 = <core::int*, core::int*>{};
+    final core::Map<core::int*, core::int*>* #t352 = <core::int*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      for (final core::MapEntry<core::int*, core::int*>* #t272 in <core::int*, core::int*>{let final<BottomType> #t273 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:217: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*>* #t353 in <core::int*, core::int*>{let final<BottomType> #t354 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*: let final<BottomType> #t274 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:217:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                     ^" in "bar" as{TypeError} core::int*: let final<BottomType> #t355 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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})
-        #t271.{core::Map::[]=}{Invariant}(#t272.{core::MapEntry::key}, #t272.{core::MapEntry::value});
-    #t271.{core::Map::[]=}{Invariant}(let final<BottomType> #t275 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:217:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+        #t352.{core::Map::[]=}{Invariant}(#t353.{core::MapEntry::key}, #t353.{core::MapEntry::value});
+    #t352.{core::Map::[]=}{Invariant}(let final<BottomType> #t356 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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);
-  } =>#t271;
+  } =>#t352;
   block {
-    final core::List<core::int*>* #t276 = <core::int*>[];
+    final core::List<core::int*>* #t357 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t276.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:218:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t357.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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];
                                                ^");
-  } =>#t276;
+  } =>#t357;
   block {
-    final core::Set<core::int*>* #t277 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t358 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t277.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:219:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t358.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
                                                ^");
-    #t277.{core::Set::add}{Invariant}(null);
-  } =>#t277;
+    #t358.{core::Set::add}{Invariant}(null);
+  } =>#t358;
   <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
@@ -1839,66 +1920,66 @@
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
                                                     ^": null};
   block {
-    final core::List<core::String*>* #t278 = <core::String*>[];
+    final core::List<core::String*>* #t359 = <core::String*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t278.{core::List::add}{Invariant}(let final<BottomType> #t279 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:221:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+        #t359.{core::List::add}{Invariant}(let final<BottomType> #t360 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
       else
-        #t278.{core::List::add}{Invariant}(let final<BottomType> #t280 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:221:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+        #t359.{core::List::add}{Invariant}(let final<BottomType> #t361 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-  } =>#t278;
+  } =>#t359;
   block {
-    final core::Set<core::String*>* #t281 = col::LinkedHashSet::•<core::String*>();
+    final core::Set<core::String*>* #t362 = col::LinkedHashSet::•<core::String*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t281.{core::Set::add}{Invariant}(let final<BottomType> #t282 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:222:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+        #t362.{core::Set::add}{Invariant}(let final<BottomType> #t363 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
       else
-        #t281.{core::Set::add}{Invariant}(let final<BottomType> #t283 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:222:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+        #t362.{core::Set::add}{Invariant}(let final<BottomType> #t364 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-    #t281.{core::Set::add}{Invariant}(null);
-  } =>#t281;
+    #t362.{core::Set::add}{Invariant}(null);
+  } =>#t362;
   block {
-    final core::Map<core::String*, core::String*>* #t284 = <core::String*, core::String*>{};
+    final core::Map<core::String*, core::String*>* #t365 = <core::String*, core::String*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t284.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t285 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:223:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+        #t365.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t366 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
       else
-        #t284.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t286 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:223:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+        #t365.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t367 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-    #t284.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t284;
+    #t365.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t365;
   block {
-    final core::List<core::int*>* #t287 = <core::int*>[];
+    final core::List<core::int*>* #t368 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t287.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:224:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+        #t368.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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];
                                                              ^");
       else
-        #t287.{core::List::add}{Invariant}(42);
-  } =>#t287;
+        #t368.{core::List::add}{Invariant}(42);
+  } =>#t368;
   block {
-    final core::Set<core::int*>* #t288 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t369 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t288.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:225:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+        #t369.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
                                                              ^");
       else
-        #t288.{core::Set::add}{Invariant}(42);
-    #t288.{core::Set::add}{Invariant}(null);
-  } =>#t288;
+        #t369.{core::Set::add}{Invariant}(42);
+    #t369.{core::Set::add}{Invariant}(null);
+  } =>#t369;
   <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
@@ -1907,28 +1988,28 @@
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
                                                                      ^": null};
   block {
-    final core::List<core::int*>* #t289 = <core::int*>[];
+    final core::List<core::int*>* #t370 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t289.{core::List::add}{Invariant}(42);
+        #t370.{core::List::add}{Invariant}(42);
       else
-        #t289.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:227:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+        #t370.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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];
                                                                      ^");
-  } =>#t289;
+  } =>#t370;
   block {
-    final core::Set<core::int*>* #t290 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t371 = col::LinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t290.{core::Set::add}{Invariant}(42);
+        #t371.{core::Set::add}{Invariant}(42);
       else
-        #t290.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:228:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+        #t371.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
                                                                      ^");
-    #t290.{core::Set::add}{Invariant}(null);
-  } =>#t290;
+    #t371.{core::Set::add}{Invariant}(null);
+  } =>#t371;
   <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
@@ -1938,218 +2019,218 @@
                                                                                     ^": null};
   final core::int* i = 0;
   block {
-    final core::List<core::int*>* #t291 = <core::int*>[];
-    for (final core::int* #t292 in <core::int*>[1]) {
+    final core::List<core::int*>* #t372 = <core::int*>[];
+    for (final core::int* #t373 in <core::int*>[1]) {
       invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:232:14: Error: Can't assign to the final variable 'i'.
   <int>[for (i in <int>[1]) i];
              ^";
-      #t291.{core::List::add}{Invariant}(i);
+      #t372.{core::List::add}{Invariant}(i);
     }
-  } =>#t291;
+  } =>#t372;
   block {
-    final core::Set<core::int*>* #t293 = col::LinkedHashSet::•<core::int*>();
-    for (final core::int* #t294 in <core::int*>[1]) {
+    final core::Set<core::int*>* #t374 = col::LinkedHashSet::•<core::int*>();
+    for (final core::int* #t375 in <core::int*>[1]) {
       invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:233:14: Error: Can't assign to the final variable 'i'.
   <int>{for (i in <int>[1]) i, null};
              ^";
-      #t293.{core::Set::add}{Invariant}(i);
+      #t374.{core::Set::add}{Invariant}(i);
     }
-    #t293.{core::Set::add}{Invariant}(null);
-  } =>#t293;
+    #t374.{core::Set::add}{Invariant}(null);
+  } =>#t374;
   block {
-    final core::Map<core::String*, core::int*>* #t295 = <core::String*, core::int*>{};
-    for (final core::int* #t296 in <core::int*>[1]) {
+    final core::Map<core::String*, core::int*>* #t376 = <core::String*, core::int*>{};
+    for (final core::int* #t377 in <core::int*>[1]) {
       invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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                   ^";
-      #t295.{core::Map::[]=}{Invariant}("bar", i);
+      #t376.{core::Map::[]=}{Invariant}("bar", i);
     }
-    #t295.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t295;
+    #t376.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t376;
   core::List<dynamic>* list10 = block {
-    final core::List<dynamic>* #t297 = <dynamic>[];
-    for (dynamic i in let final<BottomType> #t298 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:236:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+    final core::List<dynamic>* #t378 = <dynamic>[];
+    for (dynamic i in let final<BottomType> #t379 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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>*)
-      #t297.{core::List::add}{Invariant}(i);
-  } =>#t297;
+      #t378.{core::List::add}{Invariant}(i);
+  } =>#t378;
   core::Set<dynamic>* set10 = block {
-    final core::Set<dynamic>* #t299 = col::LinkedHashSet::•<dynamic>();
-    for (dynamic i in let final<BottomType> #t300 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:237:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+    final core::Set<dynamic>* #t380 = col::LinkedHashSet::•<dynamic>();
+    for (dynamic i in let final<BottomType> #t381 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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>*)
-      #t299.{core::Set::add}{Invariant}(i);
-    #t299.{core::Set::add}{Invariant}(null);
-  } =>#t299;
+      #t380.{core::Set::add}{Invariant}(i);
+    #t380.{core::Set::add}{Invariant}(null);
+  } =>#t380;
   core::Map<core::String*, dynamic>* map10 = block {
-    final core::Map<core::String*, dynamic>* #t301 = <core::String*, dynamic>{};
-    for (dynamic i in let final<BottomType> #t302 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:238:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+    final core::Map<core::String*, dynamic>* #t382 = <core::String*, dynamic>{};
+    for (dynamic i in let final<BottomType> #t383 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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>*)
-      #t301.{core::Map::[]=}{Invariant}("bar", i);
-    #t301.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t301;
+      #t382.{core::Map::[]=}{Invariant}("bar", i);
+    #t382.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t382;
   core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t303 = <core::int*>[];
-    for (core::int* i in <core::int*>[let final<BottomType> #t304 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:239:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    final core::List<core::int*>* #t384 = <core::int*>[];
+    for (core::int* i in <core::int*>[let final<BottomType> #t385 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*, let final<BottomType> #t305 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:239:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                               ^" in "not" as{TypeError} core::int*, let final<BottomType> #t386 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*])
-      #t303.{core::List::add}{Invariant}(i);
-  } =>#t303;
+      #t384.{core::List::add}{Invariant}(i);
+  } =>#t384;
   core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t306 = col::LinkedHashSet::•<core::int*>();
-    for (core::int* i in <core::int*>[let final<BottomType> #t307 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:240:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    final core::Set<core::int*>* #t387 = col::LinkedHashSet::•<core::int*>();
+    for (core::int* i in <core::int*>[let final<BottomType> #t388 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*, let final<BottomType> #t308 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:240:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                              ^" in "not" as{TypeError} core::int*, let final<BottomType> #t389 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*])
-      #t306.{core::Set::add}{Invariant}(i);
-    #t306.{core::Set::add}{Invariant}(null);
-  } =>#t306;
+      #t387.{core::Set::add}{Invariant}(i);
+    #t387.{core::Set::add}{Invariant}(null);
+  } =>#t387;
   core::Map<core::String*, core::int*>* map20 = block {
-    final core::Map<core::String*, core::int*>* #t309 = <core::String*, core::int*>{};
-    for (core::int* i in <core::int*>[let final<BottomType> #t310 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:241:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    final core::Map<core::String*, core::int*>* #t390 = <core::String*, core::int*>{};
+    for (core::int* i in <core::int*>[let final<BottomType> #t391 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*, let final<BottomType> #t311 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:241:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                              ^" in "not" as{TypeError} core::int*, let final<BottomType> #t392 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*])
-      #t309.{core::Map::[]=}{Invariant}("bar", i);
-    #t309.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t309;
+      #t390.{core::Map::[]=}{Invariant}("bar", i);
+    #t390.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t390;
   core::List<dynamic>* list30 = block {
-    final core::List<dynamic>* #t312 = <dynamic>[];
-    await for (dynamic i in let final<BottomType> #t313 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:242:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+    final core::List<dynamic>* #t393 = <dynamic>[];
+    await for (dynamic i in let final<BottomType> #t394 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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>*)
-      #t312.{core::List::add}{Invariant}(i);
-  } =>#t312;
+      #t393.{core::List::add}{Invariant}(i);
+  } =>#t393;
   core::Set<dynamic>* set30 = block {
-    final core::Set<dynamic>* #t314 = col::LinkedHashSet::•<dynamic>();
-    await for (dynamic i in let final<BottomType> #t315 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:243:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+    final core::Set<dynamic>* #t395 = col::LinkedHashSet::•<dynamic>();
+    await for (dynamic i in let final<BottomType> #t396 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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>*)
-      #t314.{core::Set::add}{Invariant}(i);
-    #t314.{core::Set::add}{Invariant}(null);
-  } =>#t314;
+      #t395.{core::Set::add}{Invariant}(i);
+    #t395.{core::Set::add}{Invariant}(null);
+  } =>#t395;
   core::Map<core::String*, dynamic>* map30 = block {
-    final core::Map<core::String*, dynamic>* #t316 = <core::String*, dynamic>{};
-    await for (dynamic i in let final<BottomType> #t317 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:244:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+    final core::Map<core::String*, dynamic>* #t397 = <core::String*, dynamic>{};
+    await for (dynamic i in let final<BottomType> #t398 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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>*)
-      #t316.{core::Map::[]=}{Invariant}("bar", i);
-    #t316.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t316;
+      #t397.{core::Map::[]=}{Invariant}("bar", i);
+    #t397.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t397;
   core::List<core::int*>* list40 = block {
-    final core::List<core::int*>* #t318 = <core::int*>[];
-    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t319 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:245:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    final core::List<core::int*>* #t399 = <core::int*>[];
+    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t400 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*, let final<BottomType> #t320 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:245:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                         ^" in "not" as{TypeError} core::int*, let final<BottomType> #t401 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*]))
-      #t318.{core::List::add}{Invariant}(i);
-  } =>#t318;
+      #t399.{core::List::add}{Invariant}(i);
+  } =>#t399;
   core::Set<core::int*>* set40 = block {
-    final core::Set<core::int*>* #t321 = col::LinkedHashSet::•<core::int*>();
-    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t322 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:246:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    final core::Set<core::int*>* #t402 = col::LinkedHashSet::•<core::int*>();
+    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t403 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*, let final<BottomType> #t323 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:246:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                        ^" in "not" as{TypeError} core::int*, let final<BottomType> #t404 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*]))
-      #t321.{core::Set::add}{Invariant}(i);
-    #t321.{core::Set::add}{Invariant}(null);
-  } =>#t321;
+      #t402.{core::Set::add}{Invariant}(i);
+    #t402.{core::Set::add}{Invariant}(null);
+  } =>#t402;
   core::Map<core::String*, core::int*>* map40 = block {
-    final core::Map<core::String*, core::int*>* #t324 = <core::String*, core::int*>{};
-    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t325 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:247:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    final core::Map<core::String*, core::int*>* #t405 = <core::String*, core::int*>{};
+    await for (core::int* i in asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t406 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*, let final<BottomType> #t326 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:247:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                        ^" in "not" as{TypeError} core::int*, let final<BottomType> #t407 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*]))
-      #t324.{core::Map::[]=}{Invariant}("bar", i);
-    #t324.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t324;
+      #t405.{core::Map::[]=}{Invariant}("bar", i);
+    #t405.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t405;
   core::List<core::int*>* list50 = block {
-    final core::List<core::int*>* #t327 = <core::int*>[];
+    final core::List<core::int*>* #t408 = <core::int*>[];
     for (; ; )
-      #t327.{core::List::add}{Invariant}(42);
-  } =>#t327;
+      #t408.{core::List::add}{Invariant}(42);
+  } =>#t408;
   core::Set<core::int*>* set50 = block {
-    final core::Set<core::int*>* #t328 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t409 = col::LinkedHashSet::•<core::int*>();
     for (; ; )
-      #t328.{core::Set::add}{Invariant}(42);
-    #t328.{core::Set::add}{Invariant}(null);
-  } =>#t328;
+      #t409.{core::Set::add}{Invariant}(42);
+    #t409.{core::Set::add}{Invariant}(null);
+  } =>#t409;
   core::Map<core::String*, core::int*>* map50 = block {
-    final core::Map<core::String*, core::int*>* #t329 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t410 = <core::String*, core::int*>{};
     for (; ; )
-      #t329.{core::Map::[]=}{Invariant}("bar", 42);
-    #t329.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t329;
+      #t410.{core::Map::[]=}{Invariant}("bar", 42);
+    #t410.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t410;
   core::List<core::int*>* list60 = block {
-    final core::List<core::int*>* #t330 = <core::int*>[];
-    for (; let final<BottomType> #t331 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:251:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+    final core::List<core::int*>* #t411 = <core::int*>[];
+    for (; let final<BottomType> #t412 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*; )
-      #t330.{core::List::add}{Invariant}(42);
-  } =>#t330;
+      #t411.{core::List::add}{Invariant}(42);
+  } =>#t411;
   core::Set<core::int*>* set60 = block {
-    final core::Set<core::int*>* #t332 = col::LinkedHashSet::•<core::int*>();
-    for (; let final<BottomType> #t333 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:252:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+    final core::Set<core::int*>* #t413 = col::LinkedHashSet::•<core::int*>();
+    for (; let final<BottomType> #t414 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*; )
-      #t332.{core::Set::add}{Invariant}(42);
-    #t332.{core::Set::add}{Invariant}(null);
-  } =>#t332;
+      #t413.{core::Set::add}{Invariant}(42);
+    #t413.{core::Set::add}{Invariant}(null);
+  } =>#t413;
   core::Map<core::String*, core::int*>* map60 = block {
-    final core::Map<core::String*, core::int*>* #t334 = <core::String*, core::int*>{};
-    for (; let final<BottomType> #t335 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:253:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+    final core::Map<core::String*, core::int*>* #t415 = <core::String*, core::int*>{};
+    for (; let final<BottomType> #t416 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*; )
-      #t334.{core::Map::[]=}{Invariant}("bar", 42);
-    #t334.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t334;
+      #t415.{core::Map::[]=}{Invariant}("bar", 42);
+    #t415.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t415;
 }
 static method testForElementErrorsNotAsync(asy::Stream<core::int*>* stream) → dynamic {
   block {
-    final core::List<core::int*>* #t336 = <core::int*>[];
+    final core::List<core::int*>* #t417 = <core::int*>[];
     await for (core::int* i in stream)
-      #t336.{core::List::add}{Invariant}(i);
-  } =>#t336;
+      #t417.{core::List::add}{Invariant}(i);
+  } =>#t417;
   block {
-    final core::Set<core::int*>* #t337 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t418 = col::LinkedHashSet::•<core::int*>();
     await for (core::int* i in stream)
-      #t337.{core::Set::add}{Invariant}(i);
-  } =>#t337;
+      #t418.{core::Set::add}{Invariant}(i);
+  } =>#t418;
   block {
-    final core::Map<core::String*, core::int*>* #t338 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t419 = <core::String*, core::int*>{};
     await for (core::int* i in stream)
-      #t338.{core::Map::[]=}{Invariant}("bar", i);
-  } =>#t338;
+      #t419.{core::Map::[]=}{Invariant}("bar", i);
+  } =>#t419;
 }
 static method testPromotion(self::A* a) → dynamic {
   core::List<core::int*>* list10 = block {
-    final core::List<core::int*>* #t339 = <core::int*>[];
+    final core::List<core::int*>* #t420 = <core::int*>[];
     if(a is self::B*)
-      #t339.{core::List::add}{Invariant}(a{self::B*}.{self::B::foo});
-  } =>#t339;
+      #t420.{core::List::add}{Invariant}(a{self::B*}.{self::B::foo});
+  } =>#t420;
   core::Set<core::int*>* set10 = block {
-    final core::Set<core::int*>* #t340 = col::LinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t421 = col::LinkedHashSet::•<core::int*>();
     if(a is self::B*)
-      #t340.{core::Set::add}{Invariant}(a{self::B*}.{self::B::foo});
-  } =>#t340;
+      #t421.{core::Set::add}{Invariant}(a{self::B*}.{self::B::foo});
+  } =>#t421;
   core::Map<core::int*, core::int*>* map10 = block {
-    final core::Map<core::int*, core::int*>* #t341 = <core::int*, core::int*>{};
+    final core::Map<core::int*, core::int*>* #t422 = <core::int*, core::int*>{};
     if(a is self::B*)
-      #t341.{core::Map::[]=}{Invariant}(a{self::B*}.{self::B::foo}, a{self::B*}.{self::B::foo});
-  } =>#t341;
+      #t422.{core::Map::[]=}{Invariant}(a{self::B*}.{self::B::foo}, a{self::B*}.{self::B::foo});
+  } =>#t422;
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect
index 287f325..b843b32 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect
@@ -505,588 +505,793 @@
   } =>#t9;
   core::List<core::int*>* list20 = block {
     final core::List<core::int*>* #t10 = <core::int*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t10.{core::List::addAll}{Invariant}(<core::int*>[42]);
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t11 = :sync-for-iterator.{core::Iterator::current};
+        #t10.{core::List::add}{Invariant}(#t11);
+      }
+    }
   } =>#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} core::bool*)
-      #t11.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t11.{core::Set::add}{Invariant}(null);
-  } =>#t11;
+    final core::Set<core::int*>* #t12 = new col::_CompactLinkedHashSet::•<core::int*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t13 = :sync-for-iterator.{core::Iterator::current};
+        #t12.{core::Set::add}{Invariant}(#t13);
+      }
+    }
+    #t12.{core::Set::add}{Invariant}(null);
+  } =>#t12;
   core::Map<core::String*, core::int*>* map20 = block {
-    final core::Map<core::String*, core::int*>* #t12 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t14 = <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": 42}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t13 = :sync-for-iterator.{core::Iterator::current};
-        #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}, #t13.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t15 = :sync-for-iterator.{core::Iterator::current};
+        #t14.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}, #t15.{core::MapEntry::value});
       }
     }
-    #t12.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t12;
-  core::List<dynamic>* list21 = block {
-    final core::List<dynamic>* #t14 = <dynamic>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t14.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
+    #t14.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t14;
+  core::List<dynamic>* list21 = block {
+    final core::List<dynamic>* #t16 = <dynamic>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t17 = :sync-for-iterator.{core::Iterator::current};
+        #t16.{core::List::add}{Invariant}(#t17);
+      }
+    }
+  } =>#t16;
   core::Set<dynamic>* set21 = block {
-    final core::Set<dynamic>* #t15 = new col::_CompactLinkedHashSet::•<dynamic>();
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t15.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t15.{core::Set::add}{Invariant}(null);
-  } =>#t15;
+    final core::Set<dynamic>* #t18 = new col::_CompactLinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t19 = :sync-for-iterator.{core::Iterator::current};
+        #t18.{core::Set::add}{Invariant}(#t19);
+      }
+    }
+    #t18.{core::Set::add}{Invariant}(null);
+  } =>#t18;
   core::Map<core::String*, dynamic>* map21 = block {
-    final core::Map<core::String*, dynamic>* #t16 = <core::String*, dynamic>{};
+    final core::Map<core::String*, dynamic>* #t20 = <core::String*, dynamic>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<core::MapEntry<core::String*, dynamic>>* :sync-for-iterator = <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, dynamic>* #t17 = :sync-for-iterator.{core::Iterator::current};
-        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}, #t17.{core::MapEntry::value});
-      }
-    }
-    #t16.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#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} core::bool*)
-      #t18.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-  } =>#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} core::bool*)
-      #t19.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t19.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*) {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::List<core::int*>*>* #t21 = :sync-for-iterator.{core::Iterator::current};
+        final core::MapEntry<core::String*, dynamic>* #t21 = :sync-for-iterator.{core::Iterator::current};
         #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}, #t21.{core::MapEntry::value});
       }
     }
     #t20.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t20;
-  core::List<core::int*>* list30 = block {
-    final core::List<core::int*>* #t22 = <core::int*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t22.{core::List::addAll}{Invariant}(<core::int*>[42]);
+  core::List<core::List<core::int*>*>* list22 = block {
+    final core::List<core::List<core::int*>*>* #t22 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t23 = :sync-for-iterator.{core::Iterator::current};
+        #t22.{core::List::add}{Invariant}(#t23);
+      }
+    }
   } =>#t22;
-  core::Set<core::int*>* set30 = block {
-    final core::Set<core::int*>* #t23 = new col::_CompactLinkedHashSet::•<core::int*>();
+  core::Set<core::List<core::int*>*>* set22 = block {
+    final core::Set<core::List<core::int*>*>* #t24 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t25 = :sync-for-iterator.{core::Iterator::current};
+        #t24.{core::Set::add}{Invariant}(#t25);
+      }
+    }
+    #t24.{core::Set::add}{Invariant}(null);
+  } =>#t24;
+  core::Map<core::String*, core::List<core::int*>*>* map22 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t26 = <core::String*, core::List<core::int*>*>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<core::String*, core::List<core::int*>*>* #t27 = :sync-for-iterator.{core::Iterator::current};
+        #t26.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}, #t27.{core::MapEntry::value});
+      }
+    }
+    #t26.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t26;
+  core::List<core::int*>* list30 = block {
+    final core::List<core::int*>* #t28 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t23.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t23.{core::Set::add}{Invariant}(null);
-  } =>#t23;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t29 = :sync-for-iterator.{core::Iterator::current};
+          #t28.{core::List::add}{Invariant}(#t29);
+        }
+      }
+  } =>#t28;
+  core::Set<core::int*>* set30 = block {
+    final core::Set<core::int*>* #t30 = new col::_CompactLinkedHashSet::•<core::int*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t31 = :sync-for-iterator.{core::Iterator::current};
+          #t30.{core::Set::add}{Invariant}(#t31);
+        }
+      }
+    #t30.{core::Set::add}{Invariant}(null);
+  } =>#t30;
   core::Map<core::String*, core::int*>* map30 = block {
-    final core::Map<core::String*, core::int*>* #t24 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t32 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{"bar": 42}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::int*>* #t25 = :sync-for-iterator.{core::Iterator::current};
-          #t24.{core::Map::[]=}{Invariant}(#t25.{core::MapEntry::key}, #t25.{core::MapEntry::value});
-        }
-      }
-    #t24.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t24;
-  core::List<dynamic>* list31 = block {
-    final core::List<dynamic>* #t26 = <dynamic>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t26.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
-  } =>#t26;
-  core::Set<dynamic>* set31 = block {
-    final core::Set<dynamic>* #t27 = new col::_CompactLinkedHashSet::•<dynamic>();
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t27.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t27.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, dynamic>>* :sync-for-iterator = <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}.{core::Iterable::iterator};
-        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, dynamic>* #t29 = :sync-for-iterator.{core::Iterator::current};
-          #t28.{core::Map::[]=}{Invariant}(#t29.{core::MapEntry::key}, #t29.{core::MapEntry::value});
-        }
-      }
-    #t28.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t30.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t31.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t31.{core::Set::add}{Invariant}(null);
-  } =>#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} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
-        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::List<core::int*>*>* #t33 = :sync-for-iterator.{core::Iterator::current};
+          final core::MapEntry<core::String*, core::int*>* #t33 = :sync-for-iterator.{core::Iterator::current};
           #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
         }
       }
     #t32.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t32;
-  core::List<core::List<core::int*>*>* list40 = block {
-    final core::List<core::List<core::int*>*>* #t34 = <core::List<core::int*>*>[];
+  core::List<dynamic>* list31 = block {
+    final core::List<dynamic>* #t34 = <dynamic>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t34.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t35 = :sync-for-iterator.{core::Iterator::current};
+          #t34.{core::List::add}{Invariant}(#t35);
+        }
+      }
   } =>#t34;
-  core::Set<core::List<core::int*>*>* set40 = block {
-    final core::Set<core::List<core::int*>*>* #t35 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+  core::Set<dynamic>* set31 = block {
+    final core::Set<dynamic>* #t36 = new col::_CompactLinkedHashSet::•<dynamic>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t35.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t35.{core::Set::add}{Invariant}(null);
-  } =>#t35;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t37 = :sync-for-iterator.{core::Iterator::current};
+          #t36.{core::Set::add}{Invariant}(#t37);
+        }
+      }
+    #t36.{core::Set::add}{Invariant}(null);
+  } =>#t36;
+  core::Map<core::String*, dynamic>* map31 = block {
+    final core::Map<core::String*, dynamic>* #t38 = <core::String*, dynamic>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::MapEntry<core::String*, dynamic>>* :sync-for-iterator = <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::MapEntry<core::String*, dynamic>* #t39 = :sync-for-iterator.{core::Iterator::current};
+          #t38.{core::Map::[]=}{Invariant}(#t39.{core::MapEntry::key}, #t39.{core::MapEntry::value});
+        }
+      }
+    #t38.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t38;
+  core::List<core::List<core::int*>*>* list33 = block {
+    final core::List<core::List<core::int*>*>* #t40 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t41 = :sync-for-iterator.{core::Iterator::current};
+          #t40.{core::List::add}{Invariant}(#t41);
+        }
+      }
+  } =>#t40;
+  core::Set<core::List<core::int*>*>* set33 = block {
+    final core::Set<core::List<core::int*>*>* #t42 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t43 = :sync-for-iterator.{core::Iterator::current};
+          #t42.{core::Set::add}{Invariant}(#t43);
+        }
+      }
+    #t42.{core::Set::add}{Invariant}(null);
+  } =>#t42;
+  core::Map<core::String*, core::List<core::int*>*>* map33 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t44 = <core::String*, core::List<core::int*>*>{};
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::MapEntry<core::String*, core::List<core::int*>*>* #t45 = :sync-for-iterator.{core::Iterator::current};
+          #t44.{core::Map::[]=}{Invariant}(#t45.{core::MapEntry::key}, #t45.{core::MapEntry::value});
+        }
+      }
+    #t44.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t44;
+  core::List<core::List<core::int*>*>* list40 = block {
+    final core::List<core::List<core::int*>*>* #t46 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t47 = :sync-for-iterator.{core::Iterator::current};
+        #t46.{core::List::add}{Invariant}(#t47);
+      }
+    }
+  } =>#t46;
+  core::Set<core::List<core::int*>*>* set40 = block {
+    final core::Set<core::List<core::int*>*>* #t48 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t49 = :sync-for-iterator.{core::Iterator::current};
+        #t48.{core::Set::add}{Invariant}(#t49);
+      }
+    }
+    #t48.{core::Set::add}{Invariant}(null);
+  } =>#t48;
   core::Map<core::String*, core::List<core::int*>*>* map40 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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 {
-    final core::List<core::List<core::int*>*>* #t36 = <core::List<core::int*>*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} 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::int*>[]);
-      } =>#t37);
-  } =>#t36;
+    final core::List<core::List<core::int*>*>* #t50 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = ( block {
+        final core::Set<core::List<core::int*>*>* #t51 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+        #t51.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t51).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t52 = :sync-for-iterator.{core::Iterator::current};
+        #t50.{core::List::add}{Invariant}(#t52);
+      }
+    }
+  } =>#t50;
   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} 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::int*>[]);
-      } =>#t39);
-    #t38.{core::Set::add}{Invariant}(null);
-  } =>#t38;
+    final core::Set<core::List<core::int*>*>* #t53 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = ( block {
+        final core::Set<core::List<core::int*>*>* #t54 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+        #t54.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t54).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t55 = :sync-for-iterator.{core::Iterator::current};
+        #t53.{core::Set::add}{Invariant}(#t55);
+      }
+    }
+    #t53.{core::Set::add}{Invariant}(null);
+  } =>#t53;
   core::List<core::List<core::int*>*>* list42 = block {
-    final core::List<core::List<core::int*>*>* #t40 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t56 = <core::List<core::int*>*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t40.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t40;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t57 = :sync-for-iterator.{core::Iterator::current};
+          #t56.{core::List::add}{Invariant}(#t57);
+        }
+      }
+  } =>#t56;
   core::Set<core::List<core::int*>*>* set42 = block {
-    final core::Set<core::List<core::int*>*>* #t41 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t58 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t41.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t41.{core::Set::add}{Invariant}(null);
-  } =>#t41;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t59 = :sync-for-iterator.{core::Iterator::current};
+          #t58.{core::Set::add}{Invariant}(#t59);
+        }
+      }
+    #t58.{core::Set::add}{Invariant}(null);
+  } =>#t58;
   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*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t60 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::List<core::int*>*>* #t43 = :sync-for-iterator.{core::Iterator::current};
-          #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::List<core::int*>*>* #t61 = :sync-for-iterator.{core::Iterator::current};
+          #t60.{core::Map::[]=}{Invariant}(#t61.{core::MapEntry::key}, #t61.{core::MapEntry::value});
         }
       }
-    #t42.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t42;
+    #t60.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t60;
   core::List<core::int*>* list50 = block {
-    final core::List<core::int*>* #t44 = <core::int*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t44.{core::List::addAll}{Invariant}(<core::int*>[]);
-  } =>#t44;
+    final core::List<core::int*>* #t62 = <core::int*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t63 = :sync-for-iterator.{core::Iterator::current};
+        #t62.{core::List::add}{Invariant}(#t63);
+      }
+    }
+  } =>#t62;
   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} core::bool*)
-      #t45.{core::Set::addAll}{Invariant}(<core::int*>[]);
-    #t45.{core::Set::add}{Invariant}(null);
-  } =>#t45;
+    final core::Set<core::int*>* #t64 = new col::_CompactLinkedHashSet::•<core::int*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t65 = :sync-for-iterator.{core::Iterator::current};
+        #t64.{core::Set::add}{Invariant}(#t65);
+      }
+    }
+    #t64.{core::Set::add}{Invariant}(null);
+  } =>#t64;
   core::Map<core::String*, core::int*>* map50 = block {
-    final core::Map<core::String*, core::int*>* #t46 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t66 = <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*>{}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t47 = :sync-for-iterator.{core::Iterator::current};
-        #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}, #t47.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t67 = :sync-for-iterator.{core::Iterator::current};
+        #t66.{core::Map::[]=}{Invariant}(#t67.{core::MapEntry::key}, #t67.{core::MapEntry::value});
       }
     }
-    #t46.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t46;
+    #t66.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t66;
   core::List<core::int*>* list51 = block {
-    final core::List<core::int*>* #t48 = <core::int*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t48.{core::List::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t49 = new col::_CompactLinkedHashSet::•<core::int*>();
-      } =>#t49);
-  } =>#t48;
+    final core::List<core::int*>* #t68 = <core::int*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = ( block {
+        final core::Set<core::int*>* #t69 = new col::_CompactLinkedHashSet::•<core::int*>();
+      } =>#t69).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t70 = :sync-for-iterator.{core::Iterator::current};
+        #t68.{core::List::add}{Invariant}(#t70);
+      }
+    }
+  } =>#t68;
   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} core::bool*)
-      #t50.{core::Set::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t51 = new col::_CompactLinkedHashSet::•<core::int*>();
-      } =>#t51);
-    #t50.{core::Set::add}{Invariant}(null);
-  } =>#t50;
+    final core::Set<core::int*>* #t71 = new col::_CompactLinkedHashSet::•<core::int*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = ( block {
+        final core::Set<core::int*>* #t72 = new col::_CompactLinkedHashSet::•<core::int*>();
+      } =>#t72).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t73 = :sync-for-iterator.{core::Iterator::current};
+        #t71.{core::Set::add}{Invariant}(#t73);
+      }
+    }
+    #t71.{core::Set::add}{Invariant}(null);
+  } =>#t71;
   core::List<core::int*>* list52 = block {
-    final core::List<core::int*>* #t52 = <core::int*>[];
+    final core::List<core::int*>* #t74 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t52.{core::List::addAll}{Invariant}(<core::int*>[]);
-  } =>#t52;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t75 = :sync-for-iterator.{core::Iterator::current};
+          #t74.{core::List::add}{Invariant}(#t75);
+        }
+      }
+  } =>#t74;
   core::Set<core::int*>* set52 = block {
-    final core::Set<core::int*>* #t53 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t76 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t53.{core::Set::addAll}{Invariant}(<core::int*>[]);
-    #t53.{core::Set::add}{Invariant}(null);
-  } =>#t53;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t77 = :sync-for-iterator.{core::Iterator::current};
+          #t76.{core::Set::add}{Invariant}(#t77);
+        }
+      }
+    #t76.{core::Set::add}{Invariant}(null);
+  } =>#t76;
   core::Map<core::String*, core::int*>* map52 = block {
-    final core::Map<core::String*, core::int*>* #t54 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t78 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::int*>* #t55 = :sync-for-iterator.{core::Iterator::current};
-          #t54.{core::Map::[]=}{Invariant}(#t55.{core::MapEntry::key}, #t55.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::int*>* #t79 = :sync-for-iterator.{core::Iterator::current};
+          #t78.{core::Map::[]=}{Invariant}(#t79.{core::MapEntry::key}, #t79.{core::MapEntry::value});
         }
       }
-    #t54.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t54;
+    #t78.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t78;
   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} core::bool*)
-      #t56.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t56;
+    final core::List<core::List<core::int*>*>* #t80 = <core::List<core::int*>*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t81 = :sync-for-iterator.{core::Iterator::current};
+        #t80.{core::List::add}{Invariant}(#t81);
+      }
+    }
+  } =>#t80;
   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} core::bool*)
-      #t57.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t57.{core::Set::add}{Invariant}(null);
-  } =>#t57;
+    final core::Set<core::List<core::int*>*>* #t82 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t83 = :sync-for-iterator.{core::Iterator::current};
+        #t82.{core::Set::add}{Invariant}(#t83);
+      }
+    }
+    #t82.{core::Set::add}{Invariant}(null);
+  } =>#t82;
   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*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t84 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::List<core::int*>*>* #t59 = :sync-for-iterator.{core::Iterator::current};
-        #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}, #t59.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::List<core::int*>*>* #t85 = :sync-for-iterator.{core::Iterator::current};
+        #t84.{core::Map::[]=}{Invariant}(#t85.{core::MapEntry::key}, #t85.{core::MapEntry::value});
       }
     }
-    #t58.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t58;
+    #t84.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t84;
   core::List<core::List<core::int*>*>* list61 = block {
-    final core::List<core::List<core::int*>*>* #t60 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t86 = <core::List<core::int*>*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t60.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t60;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t87 = :sync-for-iterator.{core::Iterator::current};
+          #t86.{core::List::add}{Invariant}(#t87);
+        }
+      }
+  } =>#t86;
   core::Set<core::List<core::int*>*>* set61 = block {
-    final core::Set<core::List<core::int*>*>* #t61 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t88 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t61.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t61.{core::Set::add}{Invariant}(null);
-  } =>#t61;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t89 = :sync-for-iterator.{core::Iterator::current};
+          #t88.{core::Set::add}{Invariant}(#t89);
+        }
+      }
+    #t88.{core::Set::add}{Invariant}(null);
+  } =>#t88;
   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*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t90 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::List<core::int*>*>* #t63 = :sync-for-iterator.{core::Iterator::current};
-          #t62.{core::Map::[]=}{Invariant}(#t63.{core::MapEntry::key}, #t63.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::List<core::int*>*>* #t91 = :sync-for-iterator.{core::Iterator::current};
+          #t90.{core::Map::[]=}{Invariant}(#t91.{core::MapEntry::key}, #t91.{core::MapEntry::value});
         }
       }
-    #t62.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t62;
+    #t90.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t90;
   core::List<core::List<core::int*>*>* list70 = block {
-    final core::List<core::List<core::int*>*>* #t64 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t92 = <core::List<core::int*>*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t64.{core::List::add}{Invariant}(<core::int*>[]);
-  } =>#t64;
+      #t92.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t92;
   core::Set<core::List<core::int*>*>* set70 = block {
-    final core::Set<core::List<core::int*>*>* #t65 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t93 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t65.{core::Set::add}{Invariant}(<core::int*>[]);
-    #t65.{core::Set::add}{Invariant}(null);
-  } =>#t65;
+      #t93.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t93.{core::Set::add}{Invariant}(null);
+  } =>#t93;
   core::List<core::List<core::int*>*>* list71 = block {
-    final core::List<core::List<core::int*>*>* #t66 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t94 = <core::List<core::int*>*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t66.{core::List::add}{Invariant}(<core::int*>[]);
-  } =>#t66;
+        #t94.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t94;
   core::Set<core::List<core::int*>*>* set71 = block {
-    final core::Set<core::List<core::int*>*>* #t67 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t95 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t67.{core::Set::add}{Invariant}(<core::int*>[]);
-    #t67.{core::Set::add}{Invariant}(null);
-  } =>#t67;
+        #t95.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t95.{core::Set::add}{Invariant}(null);
+  } =>#t95;
   core::List<core::num*>* list80 = block {
-    final core::List<core::num*>* #t68 = <core::num*>[];
+    final core::List<core::num*>* #t96 = <core::num*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t68.{core::List::add}{Invariant}(42);
+      #t96.{core::List::add}{Invariant}(42);
     else
-      #t68.{core::List::add}{Invariant}(3.14);
-  } =>#t68;
+      #t96.{core::List::add}{Invariant}(3.14);
+  } =>#t96;
   core::Set<core::num*>* set80 = block {
-    final core::Set<core::num*>* #t69 = new col::_CompactLinkedHashSet::•<core::num*>();
+    final core::Set<core::num*>* #t97 = new col::_CompactLinkedHashSet::•<core::num*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t69.{core::Set::add}{Invariant}(42);
+      #t97.{core::Set::add}{Invariant}(42);
     else
-      #t69.{core::Set::add}{Invariant}(3.14);
-    #t69.{core::Set::add}{Invariant}(null);
-  } =>#t69;
+      #t97.{core::Set::add}{Invariant}(3.14);
+    #t97.{core::Set::add}{Invariant}(null);
+  } =>#t97;
   core::Map<core::String*, core::num*>* map80 = block {
-    final core::Map<core::String*, core::num*>* #t70 = <core::String*, core::num*>{};
+    final core::Map<core::String*, core::num*>* #t98 = <core::String*, core::num*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t70.{core::Map::[]=}{Invariant}("bar", 42);
+      #t98.{core::Map::[]=}{Invariant}("bar", 42);
     else
-      #t70.{core::Map::[]=}{Invariant}("bar", 3.14);
-    #t70.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t70;
+      #t98.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t98.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t98;
   core::List<core::num*>* list81 = block {
-    final core::List<core::num*>* #t71 = <core::num*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t71.{core::List::addAll}{Invariant}(listInt);
-    else
-      #t71.{core::List::addAll}{Invariant}(listDouble);
-  } =>#t71;
+    final core::List<core::num*>* #t99 = <core::num*>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::num* #t100 = :sync-for-iterator.{core::Iterator::current};
+        #t99.{core::List::add}{Invariant}(#t100);
+      }
+    }
+    else {
+      core::Iterator<core::double*>* :sync-for-iterator = listDouble.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::num* #t101 = :sync-for-iterator.{core::Iterator::current};
+        #t99.{core::List::add}{Invariant}(#t101);
+      }
+    }
+  } =>#t99;
   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} core::bool*)
-      #t72.{core::Set::addAll}{Invariant}(listInt);
-    else
-      #t72.{core::Set::addAll}{Invariant}(listDouble);
-    #t72.{core::Set::add}{Invariant}(null);
-  } =>#t72;
+    final core::Set<core::num*>* #t102 = new col::_CompactLinkedHashSet::•<core::num*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::num* #t103 = :sync-for-iterator.{core::Iterator::current};
+        #t102.{core::Set::add}{Invariant}(#t103);
+      }
+    }
+    else {
+      core::Iterator<core::double*>* :sync-for-iterator = listDouble.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::num* #t104 = :sync-for-iterator.{core::Iterator::current};
+        #t102.{core::Set::add}{Invariant}(#t104);
+      }
+    }
+    #t102.{core::Set::add}{Invariant}(null);
+  } =>#t102;
   core::Map<core::String*, core::num*>* map81 = block {
-    final core::Map<core::String*, core::num*>* #t73 = <core::String*, core::num*>{};
+    final core::Map<core::String*, core::num*>* #t105 = <core::String*, core::num*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapToInt.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::num*>* #t74 = :sync-for-iterator.{core::Iterator::current};
-        #t73.{core::Map::[]=}{Invariant}(#t74.{core::MapEntry::key}, #t74.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::num*>* #t106 = :sync-for-iterator.{core::Iterator::current};
+        #t105.{core::Map::[]=}{Invariant}(#t106.{core::MapEntry::key}, #t106.{core::MapEntry::value});
       }
     }
     else {
       core::Iterator<core::MapEntry<core::String*, core::double*>>* :sync-for-iterator = mapToDouble.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::num*>* #t75 = :sync-for-iterator.{core::Iterator::current};
-        #t73.{core::Map::[]=}{Invariant}(#t75.{core::MapEntry::key}, #t75.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::num*>* #t107 = :sync-for-iterator.{core::Iterator::current};
+        #t105.{core::Map::[]=}{Invariant}(#t107.{core::MapEntry::key}, #t107.{core::MapEntry::value});
       }
     }
-    #t73.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t73;
+    #t105.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t105;
   core::List<dynamic>* list82 = block {
-    final core::List<dynamic>* #t76 = <dynamic>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t76.{core::List::addAll}{Invariant}(listInt);
-    else
-      #t76.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-  } =>#t76;
+    final core::List<dynamic>* #t108 = <dynamic>[];
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t109 = :sync-for-iterator.{core::Iterator::current};
+        #t108.{core::List::add}{Invariant}(#t109);
+      }
+    }
+    else {
+      core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t110 = :sync-for-iterator.{core::Iterator::current};
+        #t108.{core::List::add}{Invariant}(#t110);
+      }
+    }
+  } =>#t108;
   core::Set<dynamic>* set82 = block {
-    final core::Set<dynamic>* #t77 = new col::_CompactLinkedHashSet::•<dynamic>();
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t77.{core::Set::addAll}{Invariant}(listInt);
-    else
-      #t77.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t77.{core::Set::add}{Invariant}(null);
-  } =>#t77;
+    final core::Set<dynamic>* #t111 = new col::_CompactLinkedHashSet::•<dynamic>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t112 = :sync-for-iterator.{core::Iterator::current};
+        #t111.{core::Set::add}{Invariant}(#t112);
+      }
+    }
+    else {
+      core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t113 = :sync-for-iterator.{core::Iterator::current};
+        #t111.{core::Set::add}{Invariant}(#t113);
+      }
+    }
+    #t111.{core::Set::add}{Invariant}(null);
+  } =>#t111;
   core::Set<dynamic>* map82 = block {
-    final core::Set<dynamic>* #t78 = new col::_CompactLinkedHashSet::•<dynamic>();
+    final core::Set<dynamic>* #t114 = 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_nnbd_opt_out/control_flow_collection_inference.dart:73:38: Error: Unexpected type 'Map<String, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t114.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
                                      ^");
-    else
-      #t78.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t78.{core::Set::add}{Invariant}(null);
-  } =>#t78;
+    else {
+      core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t115 = :sync-for-iterator.{core::Iterator::current};
+        #t114.{core::Set::add}{Invariant}(#t115);
+      }
+    }
+    #t114.{core::Set::add}{Invariant}(null);
+  } =>#t114;
   core::List<core::num*>* list83 = block {
-    final core::List<core::num*>* #t79 = <core::num*>[];
+    final core::List<core::num*>* #t116 = <core::num*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t79.{core::List::add}{Invariant}(42);
-    else
-      #t79.{core::List::addAll}{Invariant}(listDouble);
-  } =>#t79;
+      #t116.{core::List::add}{Invariant}(42);
+    else {
+      core::Iterator<core::double*>* :sync-for-iterator = listDouble.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::num* #t117 = :sync-for-iterator.{core::Iterator::current};
+        #t116.{core::List::add}{Invariant}(#t117);
+      }
+    }
+  } =>#t116;
   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} core::bool*)
-      #t80.{core::Set::addAll}{Invariant}(listInt);
+    final core::Set<core::num*>* #t118 = new col::_CompactLinkedHashSet::•<core::num*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::num* #t119 = :sync-for-iterator.{core::Iterator::current};
+        #t118.{core::Set::add}{Invariant}(#t119);
+      }
+    }
     else
-      #t80.{core::Set::add}{Invariant}(3.14);
-    #t80.{core::Set::add}{Invariant}(null);
-  } =>#t80;
+      #t118.{core::Set::add}{Invariant}(3.14);
+    #t118.{core::Set::add}{Invariant}(null);
+  } =>#t118;
   core::Map<core::String*, core::num*>* map83 = block {
-    final core::Map<core::String*, core::num*>* #t81 = <core::String*, core::num*>{};
+    final core::Map<core::String*, core::num*>* #t120 = <core::String*, core::num*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapToInt.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::num*>* #t82 = :sync-for-iterator.{core::Iterator::current};
-        #t81.{core::Map::[]=}{Invariant}(#t82.{core::MapEntry::key}, #t82.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::num*>* #t121 = :sync-for-iterator.{core::Iterator::current};
+        #t120.{core::Map::[]=}{Invariant}(#t121.{core::MapEntry::key}, #t121.{core::MapEntry::value});
       }
     }
     else
-      #t81.{core::Map::[]=}{Invariant}("bar", 3.14);
-    #t81.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t81;
+      #t120.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t120.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t120;
   core::List<core::int*>* list90 = block {
-    final core::List<core::int*>* #t83 = <core::int*>[];
+    final core::List<core::int*>* #t122 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t83.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
-  } =>#t83;
+      #t122.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+  } =>#t122;
   core::Set<core::int*>* set90 = block {
-    final core::Set<core::int*>* #t84 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t123 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t84.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
-    #t84.{core::Set::add}{Invariant}(null);
-  } =>#t84;
+      #t123.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+    #t123.{core::Set::add}{Invariant}(null);
+  } =>#t123;
   core::Map<core::String*, core::int*>* map90 = block {
-    final core::Map<core::String*, core::int*>* #t85 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t124 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t85.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
-    #t85.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t85;
+      #t124.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
+    #t124.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t124;
   core::List<core::int*>* list91 = block {
-    final core::List<core::int*>* #t86 = <core::int*>[];
+    final core::List<core::int*>* #t125 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t87 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t126 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int* #t88 = #t87 as{TypeError} core::int*;
-          #t86.{core::List::add}{Invariant}(#t88);
+          final core::int* #t127 = #t126 as{TypeError} core::int*;
+          #t125.{core::List::add}{Invariant}(#t127);
         }
       }
     }
-  } =>#t86;
+  } =>#t125;
   core::Set<core::int*>* set91 = block {
-    final core::Set<core::int*>* #t89 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t128 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t90 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t129 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int* #t91 = #t90 as{TypeError} core::int*;
-          #t89.{core::Set::add}{Invariant}(#t91);
+          final core::int* #t130 = #t129 as{TypeError} core::int*;
+          #t128.{core::Set::add}{Invariant}(#t130);
         }
       }
     }
-    #t89.{core::Set::add}{Invariant}(null);
-  } =>#t89;
+    #t128.{core::Set::add}{Invariant}(null);
+  } =>#t128;
   core::Map<core::String*, core::int*>* map91 = block {
-    final core::Map<core::String*, core::int*>* #t92 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t131 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic>* #t93 = :sync-for-iterator.{core::Iterator::current};
+        final core::MapEntry<dynamic, dynamic>* #t132 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::String* #t94 = #t93.{core::MapEntry::key} as{TypeError} core::String*;
-          final core::int* #t95 = #t93.{core::MapEntry::value} as{TypeError} core::int*;
-          #t92.{core::Map::[]=}{Invariant}(#t94, #t95);
+          final core::String* #t133 = #t132.{core::MapEntry::key} as{TypeError} core::String*;
+          final core::int* #t134 = #t132.{core::MapEntry::value} as{TypeError} core::int*;
+          #t131.{core::Map::[]=}{Invariant}(#t133, #t134);
         }
       }
     }
-    #t92.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t92;
+    #t131.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t131;
   core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t96 = <core::int*>[];
+    final core::List<core::int*>* #t135 = <core::int*>[];
     if(dynVar as{TypeError,ForDynamic} core::bool*)
-      #t96.{core::List::add}{Invariant}(42);
-  } =>#t96;
+      #t135.{core::List::add}{Invariant}(42);
+  } =>#t135;
   core::Set<core::int*>* set100 = block {
-    final core::Set<core::int*>* #t97 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t136 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(dynVar as{TypeError,ForDynamic} core::bool*)
-      #t97.{core::Set::add}{Invariant}(42);
-  } =>#t97;
+      #t136.{core::Set::add}{Invariant}(42);
+  } =>#t136;
   core::Map<core::int*, core::int*>* map100 = block {
-    final core::Map<core::int*, core::int*>* #t98 = <core::int*, core::int*>{};
+    final core::Map<core::int*, core::int*>* #t137 = <core::int*, core::int*>{};
     if(dynVar as{TypeError,ForDynamic} core::bool*)
-      #t98.{core::Map::[]=}{Invariant}(42, 42);
-  } =>#t98;
+      #t137.{core::Map::[]=}{Invariant}(42, 42);
+  } =>#t137;
 }
 static method testIfElementErrors(core::Map<core::int*, core::int*>* map) → dynamic {
   block {
-    final core::List<core::int*>* #t99 = <core::int*>[];
+    final core::List<core::int*>* #t138 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t99.{core::List::add}{Invariant}(let final<BottomType> #t100 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:89:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t138.{core::List::add}{Invariant}(let final<BottomType> #t139 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-  } =>#t99;
+  } =>#t138;
   block {
-    final core::Set<core::int*>* #t101 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t140 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t101.{core::Set::add}{Invariant}(let final<BottomType> #t102 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:90:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t140.{core::Set::add}{Invariant}(let final<BottomType> #t141 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-    #t101.{core::Set::add}{Invariant}(null);
-  } =>#t101;
+    #t140.{core::Set::add}{Invariant}(null);
+  } =>#t140;
   block {
-    final core::Map<core::String*, core::int*>* #t103 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t142 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t103.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t104 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:91:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t142.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t143 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-    #t103.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t103;
+    #t142.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t142;
   block {
-    final core::List<core::int*>* #t105 = <core::int*>[];
-    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t105.{core::List::addAll}{Invariant}(<core::int*>[let final<BottomType> #t106 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*]);
-  } =>#t105;
-  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::addAll}{Invariant}(<core::int*>[let final<BottomType> #t108 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*]);
-    #t107.{core::Set::add}{Invariant}(null);
-  } =>#t107;
-  block {
-    final core::Map<core::String*, core::int*>* #t109 = <core::String*, core::int*>{};
+    final core::List<core::int*>* #t144 = <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": let final<BottomType> #t110 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:94:47: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t145 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t146 = :sync-for-iterator.{core::Iterator::current};
+        #t144.{core::List::add}{Invariant}(#t146);
+      }
+    }
+  } =>#t144;
+  block {
+    final core::Set<core::int*>* #t147 = new col::_CompactLinkedHashSet::•<core::int*>();
+    if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t148 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t149 = :sync-for-iterator.{core::Iterator::current};
+        #t147.{core::Set::add}{Invariant}(#t149);
+      }
+    }
+    #t147.{core::Set::add}{Invariant}(null);
+  } =>#t147;
+  block {
+    final core::Map<core::String*, core::int*>* #t150 = <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": let final<BottomType> #t151 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t111 = :sync-for-iterator.{core::Iterator::current};
-        #t109.{core::Map::[]=}{Invariant}(#t111.{core::MapEntry::key}, #t111.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t152 = :sync-for-iterator.{core::Iterator::current};
+        #t150.{core::Map::[]=}{Invariant}(#t152.{core::MapEntry::key}, #t152.{core::MapEntry::value});
       }
     }
-    #t109.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t109;
+    #t150.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t150;
   block {
-    final core::List<core::int*>* #t112 = <core::int*>[];
+    final core::List<core::int*>* #t153 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t112.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:95:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t153.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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];
                               ^");
-  } =>#t112;
+  } =>#t153;
   block {
-    final core::Set<core::int*>* #t113 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t154 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t113.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:96:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t154.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
                               ^");
-    #t113.{core::Set::add}{Invariant}(null);
-  } =>#t113;
+    #t154.{core::Set::add}{Invariant}(null);
+  } =>#t154;
   <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
@@ -1095,61 +1300,61 @@
   <String, int>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
                                       ^": null};
   block {
-    final core::List<core::String*>* #t114 = <core::String*>[];
+    final core::List<core::String*>* #t155 = <core::String*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t114.{core::List::add}{Invariant}(let final<BottomType> #t115 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:98:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t155.{core::List::add}{Invariant}(let final<BottomType> #t156 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
     else
-      #t114.{core::List::add}{Invariant}(let final<BottomType> #t116 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:98:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t155.{core::List::add}{Invariant}(let final<BottomType> #t157 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-  } =>#t114;
+  } =>#t155;
   block {
-    final core::Set<core::String*>* #t117 = new col::_CompactLinkedHashSet::•<core::String*>();
+    final core::Set<core::String*>* #t158 = new col::_CompactLinkedHashSet::•<core::String*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t117.{core::Set::add}{Invariant}(let final<BottomType> #t118 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:99:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t158.{core::Set::add}{Invariant}(let final<BottomType> #t159 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
     else
-      #t117.{core::Set::add}{Invariant}(let final<BottomType> #t119 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:99:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t158.{core::Set::add}{Invariant}(let final<BottomType> #t160 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-    #t117.{core::Set::add}{Invariant}(null);
-  } =>#t117;
+    #t158.{core::Set::add}{Invariant}(null);
+  } =>#t158;
   block {
-    final core::Map<core::String*, core::String*>* #t120 = <core::String*, core::String*>{};
+    final core::Map<core::String*, core::String*>* #t161 = <core::String*, core::String*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t120.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t121 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:100:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t161.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t162 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
     else
-      #t120.{core::Map::[]=}{Invariant}("baz", let final<BottomType> #t122 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:100:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+      #t161.{core::Map::[]=}{Invariant}("baz", let final<BottomType> #t163 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-    #t120.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t120;
+    #t161.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t161;
   block {
-    final core::List<core::int*>* #t123 = <core::int*>[];
+    final core::List<core::int*>* #t164 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t123.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:101:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t164.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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];
                               ^");
     else
-      #t123.{core::List::add}{Invariant}(42);
-  } =>#t123;
+      #t164.{core::List::add}{Invariant}(42);
+  } =>#t164;
   block {
-    final core::Set<core::int*>* #t124 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t165 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t124.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:102:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t165.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
                               ^");
     else
-      #t124.{core::Set::add}{Invariant}(42);
-    #t124.{core::Set::add}{Invariant}(null);
-  } =>#t124;
+      #t165.{core::Set::add}{Invariant}(42);
+    #t165.{core::Set::add}{Invariant}(null);
+  } =>#t165;
   <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
@@ -1158,26 +1363,26 @@
   <String, int>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
                                       ^": null};
   block {
-    final core::List<core::int*>* #t125 = <core::int*>[];
+    final core::List<core::int*>* #t166 = <core::int*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t125.{core::List::add}{Invariant}(42);
+      #t166.{core::List::add}{Invariant}(42);
     else
-      #t125.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:104:39: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t166.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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];
                                       ^");
-  } =>#t125;
+  } =>#t166;
   block {
-    final core::Set<core::int*>* #t126 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t167 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t126.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:105:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+      #t167.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
                               ^");
     else
-      #t126.{core::Set::add}{Invariant}(42);
-    #t126.{core::Set::add}{Invariant}(null);
-  } =>#t126;
+      #t167.{core::Set::add}{Invariant}(42);
+    #t167.{core::Set::add}{Invariant}(null);
+  } =>#t167;
   <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
@@ -1204,744 +1409,934 @@
   var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                                                    ^": null};
   core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t127 = <core::int*>[];
-    if(let final<BottomType> #t128 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:114:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    final core::List<core::int*>* #t168 = <core::int*>[];
+    if(let final<BottomType> #t169 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*)
-      #t127.{core::List::add}{Invariant}(42);
-  } =>#t127;
+      #t168.{core::List::add}{Invariant}(42);
+  } =>#t168;
   core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t129 = new col::_CompactLinkedHashSet::•<core::int*>();
-    if(let final<BottomType> #t130 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:115:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    final core::Set<core::int*>* #t170 = new col::_CompactLinkedHashSet::•<core::int*>();
+    if(let final<BottomType> #t171 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*)
-      #t129.{core::Set::add}{Invariant}(42);
-  } =>#t129;
+      #t170.{core::Set::add}{Invariant}(42);
+  } =>#t170;
   core::Map<core::int*, core::int*>* map30 = block {
-    final core::Map<core::int*, core::int*>* #t131 = <core::int*, core::int*>{};
-    if(let final<BottomType> #t132 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:116:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
+    final core::Map<core::int*, core::int*>* #t172 = <core::int*, core::int*>{};
+    if(let final<BottomType> #t173 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*)
-      #t131.{core::Map::[]=}{Invariant}(42, 42);
-  } =>#t131;
+      #t172.{core::Map::[]=}{Invariant}(42, 42);
+  } =>#t172;
   core::List<core::String*>* list40 = block {
-    final core::List<core::String*>* #t133 = <core::String*>[];
+    final core::List<core::String*>* #t174 = <core::String*>[];
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t133.{core::List::add}{Invariant}(let final<BottomType> #t134 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:117:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t174.{core::List::add}{Invariant}(let final<BottomType> #t175 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
     else
-      #t133.{core::List::add}{Invariant}(let final<BottomType> #t135 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:117:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t174.{core::List::add}{Invariant}(let final<BottomType> #t176 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-  } =>#t133;
+  } =>#t174;
   core::Set<core::String*>* set40 = block {
-    final core::Set<core::String*>* #t136 = new col::_CompactLinkedHashSet::•<core::String*>();
+    final core::Set<core::String*>* #t177 = new col::_CompactLinkedHashSet::•<core::String*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t136.{core::Set::add}{Invariant}(let final<BottomType> #t137 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:118:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t177.{core::Set::add}{Invariant}(let final<BottomType> #t178 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
     else
-      #t136.{core::Set::add}{Invariant}(let final<BottomType> #t138 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:118:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t177.{core::Set::add}{Invariant}(let final<BottomType> #t179 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-  } =>#t136;
+  } =>#t177;
   core::Map<core::String*, core::int*>* map40 = block {
-    final core::Map<core::String*, core::int*>* #t139 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t180 = <core::String*, core::int*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t139.{core::Map::[]=}{Invariant}(let final<BottomType> #t140 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:119:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t180.{core::Map::[]=}{Invariant}(let final<BottomType> #t181 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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);
     else
-      #t139.{core::Map::[]=}{Invariant}(let final<BottomType> #t141 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:119:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t180.{core::Map::[]=}{Invariant}(let final<BottomType> #t182 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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);
-  } =>#t139;
+  } =>#t180;
   core::Map<core::int*, core::String*>* map41 = block {
-    final core::Map<core::int*, core::String*>* #t142 = <core::int*, core::String*>{};
+    final core::Map<core::int*, core::String*>* #t183 = <core::int*, core::String*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t142.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t143 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:120:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+      #t183.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t184 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
     else
-      #t142.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t144 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:120:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      #t183.{core::Map::[]=}{Invariant}(42, let final<BottomType> #t185 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-  } =>#t142;
+  } =>#t183;
 }
 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*>* #t145 = <core::int*>[];
+    final core::List<core::int*>* #t186 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t145.{core::List::add}{Invariant}(42);
-  } =>#t145;
+      #t186.{core::List::add}{Invariant}(42);
+  } =>#t186;
   core::Set<core::int*>* set10 = block {
-    final core::Set<core::int*>* #t146 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t187 = 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))
-      #t146.{core::Set::add}{Invariant}(42);
-    #t146.{core::Set::add}{Invariant}(null);
-  } =>#t146;
+      #t187.{core::Set::add}{Invariant}(42);
+    #t187.{core::Set::add}{Invariant}(null);
+  } =>#t187;
   core::Map<core::String*, core::int*>* map10 = block {
-    final core::Map<core::String*, core::int*>* #t147 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t188 = <core::String*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t147.{core::Map::[]=}{Invariant}("bar", 42);
-    #t147.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t147;
+      #t188.{core::Map::[]=}{Invariant}("bar", 42);
+    #t188.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t188;
   core::List<dynamic>* list11 = block {
-    final core::List<dynamic>* #t148 = <dynamic>[];
+    final core::List<dynamic>* #t189 = <dynamic>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t148.{core::List::add}{Invariant}(dynVar);
-  } =>#t148;
+      #t189.{core::List::add}{Invariant}(dynVar);
+  } =>#t189;
   core::Set<dynamic>* set11 = block {
-    final core::Set<dynamic>* #t149 = new col::_CompactLinkedHashSet::•<dynamic>();
+    final core::Set<dynamic>* #t190 = new col::_CompactLinkedHashSet::•<dynamic>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t149.{core::Set::add}{Invariant}(dynVar);
-    #t149.{core::Set::add}{Invariant}(null);
-  } =>#t149;
+      #t190.{core::Set::add}{Invariant}(dynVar);
+    #t190.{core::Set::add}{Invariant}(null);
+  } =>#t190;
   core::Map<core::String*, dynamic>* map11 = block {
-    final core::Map<core::String*, dynamic>* #t150 = <core::String*, dynamic>{};
+    final core::Map<core::String*, dynamic>* #t191 = <core::String*, dynamic>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t150.{core::Map::[]=}{Invariant}("bar", dynVar);
-    #t150.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t150;
+      #t191.{core::Map::[]=}{Invariant}("bar", dynVar);
+    #t191.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t191;
   core::List<core::List<core::int*>*>* list12 = block {
-    final core::List<core::List<core::int*>*>* #t151 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t192 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t151.{core::List::add}{Invariant}(<core::int*>[42]);
-  } =>#t151;
+      #t192.{core::List::add}{Invariant}(<core::int*>[42]);
+  } =>#t192;
   core::Set<core::List<core::int*>*>* set12 = block {
-    final core::Set<core::List<core::int*>*>* #t152 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t193 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t152.{core::Set::add}{Invariant}(<core::int*>[42]);
-    #t152.{core::Set::add}{Invariant}(null);
-  } =>#t152;
+      #t193.{core::Set::add}{Invariant}(<core::int*>[42]);
+    #t193.{core::Set::add}{Invariant}(null);
+  } =>#t193;
   core::Map<core::String*, core::List<core::int*>*>* map12 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t153 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t194 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t153.{core::Map::[]=}{Invariant}("bar", <core::int*>[42]);
-    #t153.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t153;
+      #t194.{core::Map::[]=}{Invariant}("bar", <core::int*>[42]);
+    #t194.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t194;
   core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t154 = <core::int*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t154.{core::List::addAll}{Invariant}(<core::int*>[42]);
-  } =>#t154;
+    final core::List<core::int*>* #t195 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t196 = :sync-for-iterator.{core::Iterator::current};
+        #t195.{core::List::add}{Invariant}(#t196);
+      }
+    }
+  } =>#t195;
   core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t155 = 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))
-      #t155.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t155.{core::Set::add}{Invariant}(null);
-  } =>#t155;
+    final core::Set<core::int*>* #t197 = 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::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t198 = :sync-for-iterator.{core::Iterator::current};
+        #t197.{core::Set::add}{Invariant}(#t198);
+      }
+    }
+    #t197.{core::Set::add}{Invariant}(null);
+  } =>#t197;
   core::Map<core::String*, core::int*>* map20 = block {
-    final core::Map<core::String*, core::int*>* #t156 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t199 = <core::String*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{"bar": 42}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t157 = :sync-for-iterator.{core::Iterator::current};
-        #t156.{core::Map::[]=}{Invariant}(#t157.{core::MapEntry::key}, #t157.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t200 = :sync-for-iterator.{core::Iterator::current};
+        #t199.{core::Map::[]=}{Invariant}(#t200.{core::MapEntry::key}, #t200.{core::MapEntry::value});
       }
     }
-    #t156.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t156;
+    #t199.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t199;
   core::List<dynamic>* list21 = block {
-    final core::List<dynamic>* #t158 = <dynamic>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t158.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
-  } =>#t158;
+    final core::List<dynamic>* #t201 = <dynamic>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t202 = :sync-for-iterator.{core::Iterator::current};
+        #t201.{core::List::add}{Invariant}(#t202);
+      }
+    }
+  } =>#t201;
   core::Set<dynamic>* set21 = block {
-    final core::Set<dynamic>* #t159 = new col::_CompactLinkedHashSet::•<dynamic>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t159.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t159.{core::Set::add}{Invariant}(null);
-  } =>#t159;
+    final core::Set<dynamic>* #t203 = new col::_CompactLinkedHashSet::•<dynamic>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t204 = :sync-for-iterator.{core::Iterator::current};
+        #t203.{core::Set::add}{Invariant}(#t204);
+      }
+    }
+    #t203.{core::Set::add}{Invariant}(null);
+  } =>#t203;
   core::Map<core::String*, dynamic>* map21 = block {
-    final core::Map<core::String*, dynamic>* #t160 = <core::String*, dynamic>{};
+    final core::Map<core::String*, dynamic>* #t205 = <core::String*, dynamic>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<core::MapEntry<core::String*, dynamic>>* :sync-for-iterator = <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, dynamic>* #t161 = :sync-for-iterator.{core::Iterator::current};
-        #t160.{core::Map::[]=}{Invariant}(#t161.{core::MapEntry::key}, #t161.{core::MapEntry::value});
+        final core::MapEntry<core::String*, dynamic>* #t206 = :sync-for-iterator.{core::Iterator::current};
+        #t205.{core::Map::[]=}{Invariant}(#t206.{core::MapEntry::key}, #t206.{core::MapEntry::value});
       }
     }
-    #t160.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t160;
+    #t205.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t205;
   core::List<core::List<core::int*>*>* list22 = block {
-    final core::List<core::List<core::int*>*>* #t162 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t162.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-  } =>#t162;
+    final core::List<core::List<core::int*>*>* #t207 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t208 = :sync-for-iterator.{core::Iterator::current};
+        #t207.{core::List::add}{Invariant}(#t208);
+      }
+    }
+  } =>#t207;
   core::Set<core::List<core::int*>*>* set22 = block {
-    final core::Set<core::List<core::int*>*>* #t163 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t163.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t163.{core::Set::add}{Invariant}(null);
-  } =>#t163;
+    final core::Set<core::List<core::int*>*>* #t209 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t210 = :sync-for-iterator.{core::Iterator::current};
+        #t209.{core::Set::add}{Invariant}(#t210);
+      }
+    }
+    #t209.{core::Set::add}{Invariant}(null);
+  } =>#t209;
   core::Map<core::String*, core::List<core::int*>*>* map22 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t164 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t211 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::List<core::int*>*>* #t165 = :sync-for-iterator.{core::Iterator::current};
-        #t164.{core::Map::[]=}{Invariant}(#t165.{core::MapEntry::key}, #t165.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::List<core::int*>*>* #t212 = :sync-for-iterator.{core::Iterator::current};
+        #t211.{core::Map::[]=}{Invariant}(#t212.{core::MapEntry::key}, #t212.{core::MapEntry::value});
       }
     }
-    #t164.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t164;
+    #t211.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t211;
   core::List<core::int*>* list30 = block {
-    final core::List<core::int*>* #t166 = <core::int*>[];
+    final core::List<core::int*>* #t213 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t166.{core::List::addAll}{Invariant}(<core::int*>[42]);
-  } =>#t166;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t214 = :sync-for-iterator.{core::Iterator::current};
+          #t213.{core::List::add}{Invariant}(#t214);
+        }
+      }
+  } =>#t213;
   core::Set<core::int*>* set30 = block {
-    final core::Set<core::int*>* #t167 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t215 = 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))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t167.{core::Set::addAll}{Invariant}(<core::int*>[42]);
-    #t167.{core::Set::add}{Invariant}(null);
-  } =>#t167;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[42].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t216 = :sync-for-iterator.{core::Iterator::current};
+          #t215.{core::Set::add}{Invariant}(#t216);
+        }
+      }
+    #t215.{core::Set::add}{Invariant}(null);
+  } =>#t215;
   core::Map<core::String*, core::int*>* map30 = block {
-    final core::Map<core::String*, core::int*>* #t168 = <core::String*, core::int*>{};
+    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} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{"bar": 42}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::int*>* #t169 = :sync-for-iterator.{core::Iterator::current};
-          #t168.{core::Map::[]=}{Invariant}(#t169.{core::MapEntry::key}, #t169.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::int*>* #t218 = :sync-for-iterator.{core::Iterator::current};
+          #t217.{core::Map::[]=}{Invariant}(#t218.{core::MapEntry::key}, #t218.{core::MapEntry::value});
         }
       }
-    #t168.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t168;
+    #t217.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t217;
   core::List<dynamic>* list31 = block {
-    final core::List<dynamic>* #t170 = <dynamic>[];
+    final core::List<dynamic>* #t219 = <dynamic>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t170.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
-  } =>#t170;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t220 = :sync-for-iterator.{core::Iterator::current};
+          #t219.{core::List::add}{Invariant}(#t220);
+        }
+      }
+  } =>#t219;
   core::Set<dynamic>* set31 = block {
-    final core::Set<dynamic>* #t171 = new col::_CompactLinkedHashSet::•<dynamic>();
+    final core::Set<dynamic>* #t221 = new col::_CompactLinkedHashSet::•<dynamic>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t171.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
-    #t171.{core::Set::add}{Invariant}(null);
-  } =>#t171;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[dynVar].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t222 = :sync-for-iterator.{core::Iterator::current};
+          #t221.{core::Set::add}{Invariant}(#t222);
+        }
+      }
+    #t221.{core::Set::add}{Invariant}(null);
+  } =>#t221;
   core::Map<core::String*, dynamic>* map31 = block {
-    final core::Map<core::String*, dynamic>* #t172 = <core::String*, dynamic>{};
+    final core::Map<core::String*, dynamic>* #t223 = <core::String*, dynamic>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, dynamic>>* :sync-for-iterator = <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, dynamic>* #t173 = :sync-for-iterator.{core::Iterator::current};
-          #t172.{core::Map::[]=}{Invariant}(#t173.{core::MapEntry::key}, #t173.{core::MapEntry::value});
+          final core::MapEntry<core::String*, dynamic>* #t224 = :sync-for-iterator.{core::Iterator::current};
+          #t223.{core::Map::[]=}{Invariant}(#t224.{core::MapEntry::key}, #t224.{core::MapEntry::value});
         }
       }
-    #t172.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t172;
+    #t223.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t223;
   core::List<core::List<core::int*>*>* list33 = block {
-    final core::List<core::List<core::int*>*>* #t174 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t225 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t174.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-  } =>#t174;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t226 = :sync-for-iterator.{core::Iterator::current};
+          #t225.{core::List::add}{Invariant}(#t226);
+        }
+      }
+  } =>#t225;
   core::Set<core::List<core::int*>*>* set33 = block {
-    final core::Set<core::List<core::int*>*>* #t175 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t227 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t175.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
-    #t175.{core::Set::add}{Invariant}(null);
-  } =>#t175;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[42]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t228 = :sync-for-iterator.{core::Iterator::current};
+          #t227.{core::Set::add}{Invariant}(#t228);
+        }
+      }
+    #t227.{core::Set::add}{Invariant}(null);
+  } =>#t227;
   core::Map<core::String*, core::List<core::int*>*>* map33 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t176 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t229 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::List<core::int*>*>* #t177 = :sync-for-iterator.{core::Iterator::current};
-          #t176.{core::Map::[]=}{Invariant}(#t177.{core::MapEntry::key}, #t177.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::List<core::int*>*>* #t230 = :sync-for-iterator.{core::Iterator::current};
+          #t229.{core::Map::[]=}{Invariant}(#t230.{core::MapEntry::key}, #t230.{core::MapEntry::value});
         }
       }
-    #t176.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t176;
+    #t229.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t229;
   core::List<core::List<core::int*>*>* list40 = block {
-    final core::List<core::List<core::int*>*>* #t178 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t178.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t178;
+    final core::List<core::List<core::int*>*>* #t231 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t232 = :sync-for-iterator.{core::Iterator::current};
+        #t231.{core::List::add}{Invariant}(#t232);
+      }
+    }
+  } =>#t231;
   core::Set<core::List<core::int*>*>* set40 = block {
-    final core::Set<core::List<core::int*>*>* #t179 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t179.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t179.{core::Set::add}{Invariant}(null);
-  } =>#t179;
+    final core::Set<core::List<core::int*>*>* #t233 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t234 = :sync-for-iterator.{core::Iterator::current};
+        #t233.{core::Set::add}{Invariant}(#t234);
+      }
+    }
+    #t233.{core::Set::add}{Invariant}(null);
+  } =>#t233;
   core::Map<core::String*, core::List<core::int*>*>* map40 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t180 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t235 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::List<core::int*>*>* #t181 = :sync-for-iterator.{core::Iterator::current};
-        #t180.{core::Map::[]=}{Invariant}(#t181.{core::MapEntry::key}, #t181.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::List<core::int*>*>* #t236 = :sync-for-iterator.{core::Iterator::current};
+        #t235.{core::Map::[]=}{Invariant}(#t236.{core::MapEntry::key}, #t236.{core::MapEntry::value});
       }
     }
-    #t180.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t180;
+    #t235.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t235;
   core::List<core::List<core::int*>*>* list41 = block {
-    final core::List<core::List<core::int*>*>* #t182 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t182.{core::List::addAll}{Invariant}( block {
-        final core::Set<core::List<core::int*>*>* #t183 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-        #t183.{core::Set::add}{Invariant}(<core::int*>[]);
-      } =>#t183);
-  } =>#t182;
+    final core::List<core::List<core::int*>*>* #t237 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = ( block {
+        final core::Set<core::List<core::int*>*>* #t238 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+        #t238.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t238).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t239 = :sync-for-iterator.{core::Iterator::current};
+        #t237.{core::List::add}{Invariant}(#t239);
+      }
+    }
+  } =>#t237;
   core::Set<core::List<core::int*>*>* set41 = block {
-    final core::Set<core::List<core::int*>*>* #t184 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t184.{core::Set::addAll}{Invariant}( block {
-        final core::Set<core::List<core::int*>*>* #t185 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-        #t185.{core::Set::add}{Invariant}(<core::int*>[]);
-      } =>#t185);
-    #t184.{core::Set::add}{Invariant}(null);
-  } =>#t184;
+    final core::Set<core::List<core::int*>*>* #t240 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = ( block {
+        final core::Set<core::List<core::int*>*>* #t241 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+        #t241.{core::Set::add}{Invariant}(<core::int*>[]);
+      } =>#t241).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t242 = :sync-for-iterator.{core::Iterator::current};
+        #t240.{core::Set::add}{Invariant}(#t242);
+      }
+    }
+    #t240.{core::Set::add}{Invariant}(null);
+  } =>#t240;
   core::List<core::List<core::int*>*>* list42 = block {
-    final core::List<core::List<core::int*>*>* #t186 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t243 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t186.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t186;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t244 = :sync-for-iterator.{core::Iterator::current};
+          #t243.{core::List::add}{Invariant}(#t244);
+        }
+      }
+  } =>#t243;
   core::Set<core::List<core::int*>*>* set42 = block {
-    final core::Set<core::List<core::int*>*>* #t187 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t245 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t187.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t187.{core::Set::add}{Invariant}(null);
-  } =>#t187;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t246 = :sync-for-iterator.{core::Iterator::current};
+          #t245.{core::Set::add}{Invariant}(#t246);
+        }
+      }
+    #t245.{core::Set::add}{Invariant}(null);
+  } =>#t245;
   core::Map<core::String*, core::List<core::int*>*>* map42 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t188 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t247 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::List<core::int*>*>* #t189 = :sync-for-iterator.{core::Iterator::current};
-          #t188.{core::Map::[]=}{Invariant}(#t189.{core::MapEntry::key}, #t189.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::List<core::int*>*>* #t248 = :sync-for-iterator.{core::Iterator::current};
+          #t247.{core::Map::[]=}{Invariant}(#t248.{core::MapEntry::key}, #t248.{core::MapEntry::value});
         }
       }
-    #t188.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t188;
+    #t247.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t247;
   core::List<core::int*>* list50 = block {
-    final core::List<core::int*>* #t190 = <core::int*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t190.{core::List::addAll}{Invariant}(<core::int*>[]);
-  } =>#t190;
+    final core::List<core::int*>* #t249 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t250 = :sync-for-iterator.{core::Iterator::current};
+        #t249.{core::List::add}{Invariant}(#t250);
+      }
+    }
+  } =>#t249;
   core::Set<core::int*>* set50 = block {
-    final core::Set<core::int*>* #t191 = 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))
-      #t191.{core::Set::addAll}{Invariant}(<core::int*>[]);
-    #t191.{core::Set::add}{Invariant}(null);
-  } =>#t191;
+    final core::Set<core::int*>* #t251 = 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::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t252 = :sync-for-iterator.{core::Iterator::current};
+        #t251.{core::Set::add}{Invariant}(#t252);
+      }
+    }
+    #t251.{core::Set::add}{Invariant}(null);
+  } =>#t251;
   core::Map<core::String*, core::int*>* map50 = block {
-    final core::Map<core::String*, core::int*>* #t192 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t253 = <core::String*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t193 = :sync-for-iterator.{core::Iterator::current};
-        #t192.{core::Map::[]=}{Invariant}(#t193.{core::MapEntry::key}, #t193.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t254 = :sync-for-iterator.{core::Iterator::current};
+        #t253.{core::Map::[]=}{Invariant}(#t254.{core::MapEntry::key}, #t254.{core::MapEntry::value});
       }
     }
-    #t192.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t192;
+    #t253.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t253;
   core::List<core::int*>* list51 = block {
-    final core::List<core::int*>* #t194 = <core::int*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t194.{core::List::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t195 = new col::_CompactLinkedHashSet::•<core::int*>();
-      } =>#t195);
-  } =>#t194;
+    final core::List<core::int*>* #t255 = <core::int*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::int*>* :sync-for-iterator = ( block {
+        final core::Set<core::int*>* #t256 = new col::_CompactLinkedHashSet::•<core::int*>();
+      } =>#t256).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t257 = :sync-for-iterator.{core::Iterator::current};
+        #t255.{core::List::add}{Invariant}(#t257);
+      }
+    }
+  } =>#t255;
   core::Set<core::int*>* set51 = block {
-    final core::Set<core::int*>* #t196 = 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))
-      #t196.{core::Set::addAll}{Invariant}( block {
-        final core::Set<core::int*>* #t197 = new col::_CompactLinkedHashSet::•<core::int*>();
-      } =>#t197);
-    #t196.{core::Set::add}{Invariant}(null);
-  } =>#t196;
+    final core::Set<core::int*>* #t258 = 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::Iterator<core::int*>* :sync-for-iterator = ( block {
+        final core::Set<core::int*>* #t259 = new col::_CompactLinkedHashSet::•<core::int*>();
+      } =>#t259).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t260 = :sync-for-iterator.{core::Iterator::current};
+        #t258.{core::Set::add}{Invariant}(#t260);
+      }
+    }
+    #t258.{core::Set::add}{Invariant}(null);
+  } =>#t258;
   core::List<core::int*>* list52 = block {
-    final core::List<core::int*>* #t198 = <core::int*>[];
+    final core::List<core::int*>* #t261 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t198.{core::List::addAll}{Invariant}(<core::int*>[]);
-  } =>#t198;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t262 = :sync-for-iterator.{core::Iterator::current};
+          #t261.{core::List::add}{Invariant}(#t262);
+        }
+      }
+  } =>#t261;
   core::Set<core::int*>* set52 = block {
-    final core::Set<core::int*>* #t199 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t263 = 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))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t199.{core::Set::addAll}{Invariant}(<core::int*>[]);
-    #t199.{core::Set::add}{Invariant}(null);
-  } =>#t199;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::int* #t264 = :sync-for-iterator.{core::Iterator::current};
+          #t263.{core::Set::add}{Invariant}(#t264);
+        }
+      }
+    #t263.{core::Set::add}{Invariant}(null);
+  } =>#t263;
   core::List<core::List<core::int*>*>* list60 = block {
-    final core::List<core::List<core::int*>*>* #t200 = <core::List<core::int*>*>[];
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t200.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t200;
+    final core::List<core::List<core::int*>*>* #t265 = <core::List<core::int*>*>[];
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t266 = :sync-for-iterator.{core::Iterator::current};
+        #t265.{core::List::add}{Invariant}(#t266);
+      }
+    }
+  } =>#t265;
   core::Set<core::List<core::int*>*>* set60 = block {
-    final core::Set<core::List<core::int*>*>* #t201 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t201.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t201.{core::Set::add}{Invariant}(null);
-  } =>#t201;
+    final core::Set<core::List<core::int*>*>* #t267 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::List<core::int*>* #t268 = :sync-for-iterator.{core::Iterator::current};
+        #t267.{core::Set::add}{Invariant}(#t268);
+      }
+    }
+    #t267.{core::Set::add}{Invariant}(null);
+  } =>#t267;
   core::Map<core::String*, core::List<core::int*>*>* map60 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t202 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t269 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::List<core::int*>*>* #t203 = :sync-for-iterator.{core::Iterator::current};
-        #t202.{core::Map::[]=}{Invariant}(#t203.{core::MapEntry::key}, #t203.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::List<core::int*>*>* #t270 = :sync-for-iterator.{core::Iterator::current};
+        #t269.{core::Map::[]=}{Invariant}(#t270.{core::MapEntry::key}, #t270.{core::MapEntry::value});
       }
     }
-    #t202.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t202;
+    #t269.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t269;
   core::List<core::List<core::int*>*>* list61 = block {
-    final core::List<core::List<core::int*>*>* #t204 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t271 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t204.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t204;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t272 = :sync-for-iterator.{core::Iterator::current};
+          #t271.{core::List::add}{Invariant}(#t272);
+        }
+      }
+  } =>#t271;
   core::Set<core::List<core::int*>*>* set61 = block {
-    final core::Set<core::List<core::int*>*>* #t205 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t273 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t205.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
-    #t205.{core::Set::add}{Invariant}(null);
-  } =>#t205;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::List<core::int*>* #t274 = :sync-for-iterator.{core::Iterator::current};
+          #t273.{core::Set::add}{Invariant}(#t274);
+        }
+      }
+    #t273.{core::Set::add}{Invariant}(null);
+  } =>#t273;
   core::Map<core::String*, core::List<core::int*>*>* map61 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t206 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t275 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::List<core::int*>*>* #t207 = :sync-for-iterator.{core::Iterator::current};
-          #t206.{core::Map::[]=}{Invariant}(#t207.{core::MapEntry::key}, #t207.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::List<core::int*>*>* #t276 = :sync-for-iterator.{core::Iterator::current};
+          #t275.{core::Map::[]=}{Invariant}(#t276.{core::MapEntry::key}, #t276.{core::MapEntry::value});
         }
       }
-    #t206.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t206;
+    #t275.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t275;
   core::List<core::List<core::int*>*>* list70 = block {
-    final core::List<core::List<core::int*>*>* #t208 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t277 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t208.{core::List::add}{Invariant}(<core::int*>[]);
-  } =>#t208;
+      #t277.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t277;
   core::Set<core::List<core::int*>*>* set70 = block {
-    final core::Set<core::List<core::int*>*>* #t209 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t278 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t209.{core::Set::add}{Invariant}(<core::int*>[]);
-    #t209.{core::Set::add}{Invariant}(null);
-  } =>#t209;
+      #t278.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t278.{core::Set::add}{Invariant}(null);
+  } =>#t278;
   core::Map<core::String*, core::List<core::int*>*>* map70 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t210 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t279 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t210.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
-    #t210.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t210;
+      #t279.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
+    #t279.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t279;
   core::List<core::List<core::int*>*>* list71 = block {
-    final core::List<core::List<core::int*>*>* #t211 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t280 = <core::List<core::int*>*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t211.{core::List::add}{Invariant}(<core::int*>[]);
-  } =>#t211;
+        #t280.{core::List::add}{Invariant}(<core::int*>[]);
+  } =>#t280;
   core::Set<core::List<core::int*>*>* set71 = block {
-    final core::Set<core::List<core::int*>*>* #t212 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::Set<core::List<core::int*>*>* #t281 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t212.{core::Set::add}{Invariant}(<core::int*>[]);
-    #t212.{core::Set::add}{Invariant}(null);
-  } =>#t212;
+        #t281.{core::Set::add}{Invariant}(<core::int*>[]);
+    #t281.{core::Set::add}{Invariant}(null);
+  } =>#t281;
   core::Map<core::String*, core::List<core::int*>*>* map71 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t213 = <core::String*, core::List<core::int*>*>{};
+    final core::Map<core::String*, core::List<core::int*>*>* #t282 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t213.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
-    #t213.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t213;
+        #t282.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
+    #t282.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t282;
   core::List<core::num*>* list80 = block {
-    final core::List<core::num*>* #t214 = <core::num*>[];
+    final core::List<core::num*>* #t283 = <core::num*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t214.{core::List::add}{Invariant}(42);
+        #t283.{core::List::add}{Invariant}(42);
       else
-        #t214.{core::List::add}{Invariant}(3.14);
-  } =>#t214;
+        #t283.{core::List::add}{Invariant}(3.14);
+  } =>#t283;
   core::Set<core::num*>* set80 = block {
-    final core::Set<core::num*>* #t215 = new col::_CompactLinkedHashSet::•<core::num*>();
+    final core::Set<core::num*>* #t284 = new col::_CompactLinkedHashSet::•<core::num*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t215.{core::Set::add}{Invariant}(42);
+        #t284.{core::Set::add}{Invariant}(42);
       else
-        #t215.{core::Set::add}{Invariant}(3.14);
-    #t215.{core::Set::add}{Invariant}(null);
-  } =>#t215;
+        #t284.{core::Set::add}{Invariant}(3.14);
+    #t284.{core::Set::add}{Invariant}(null);
+  } =>#t284;
   core::Map<core::String*, core::num*>* map80 = block {
-    final core::Map<core::String*, core::num*>* #t216 = <core::String*, core::num*>{};
+    final core::Map<core::String*, core::num*>* #t285 = <core::String*, core::num*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t216.{core::Map::[]=}{Invariant}("bar", 42);
+        #t285.{core::Map::[]=}{Invariant}("bar", 42);
       else
-        #t216.{core::Map::[]=}{Invariant}("bar", 3.14);
-    #t216.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t216;
+        #t285.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t285.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t285;
   core::List<core::num*>* list81 = block {
-    final core::List<core::num*>* #t217 = <core::num*>[];
+    final core::List<core::num*>* #t286 = <core::num*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t217.{core::List::addAll}{Invariant}(listInt);
-      else
-        #t217.{core::List::addAll}{Invariant}(listDouble);
-  } =>#t217;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::num* #t287 = :sync-for-iterator.{core::Iterator::current};
+          #t286.{core::List::add}{Invariant}(#t287);
+        }
+      }
+      else {
+        core::Iterator<core::double*>* :sync-for-iterator = listDouble.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::num* #t288 = :sync-for-iterator.{core::Iterator::current};
+          #t286.{core::List::add}{Invariant}(#t288);
+        }
+      }
+  } =>#t286;
   core::Set<core::num*>* set81 = block {
-    final core::Set<core::num*>* #t218 = new col::_CompactLinkedHashSet::•<core::num*>();
+    final core::Set<core::num*>* #t289 = new col::_CompactLinkedHashSet::•<core::num*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t218.{core::Set::addAll}{Invariant}(listInt);
-      else
-        #t218.{core::Set::addAll}{Invariant}(listDouble);
-    #t218.{core::Set::add}{Invariant}(null);
-  } =>#t218;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::num* #t290 = :sync-for-iterator.{core::Iterator::current};
+          #t289.{core::Set::add}{Invariant}(#t290);
+        }
+      }
+      else {
+        core::Iterator<core::double*>* :sync-for-iterator = listDouble.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::num* #t291 = :sync-for-iterator.{core::Iterator::current};
+          #t289.{core::Set::add}{Invariant}(#t291);
+        }
+      }
+    #t289.{core::Set::add}{Invariant}(null);
+  } =>#t289;
   core::Map<core::String*, core::num*>* map81 = block {
-    final core::Map<core::String*, core::num*>* #t219 = <core::String*, core::num*>{};
+    final core::Map<core::String*, core::num*>* #t292 = <core::String*, core::num*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapStringInt.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::num*>* #t220 = :sync-for-iterator.{core::Iterator::current};
-          #t219.{core::Map::[]=}{Invariant}(#t220.{core::MapEntry::key}, #t220.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::num*>* #t293 = :sync-for-iterator.{core::Iterator::current};
+          #t292.{core::Map::[]=}{Invariant}(#t293.{core::MapEntry::key}, #t293.{core::MapEntry::value});
         }
       }
       else {
         core::Iterator<core::MapEntry<core::String*, core::double*>>* :sync-for-iterator = mapStringDouble.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::num*>* #t221 = :sync-for-iterator.{core::Iterator::current};
-          #t219.{core::Map::[]=}{Invariant}(#t221.{core::MapEntry::key}, #t221.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::num*>* #t294 = :sync-for-iterator.{core::Iterator::current};
+          #t292.{core::Map::[]=}{Invariant}(#t294.{core::MapEntry::key}, #t294.{core::MapEntry::value});
         }
       }
-    #t219.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t219;
+    #t292.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t292;
   core::List<dynamic>* list82 = block {
-    final core::List<dynamic>* #t222 = <dynamic>[];
+    final core::List<dynamic>* #t295 = <dynamic>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t222.{core::List::addAll}{Invariant}(listInt);
-      else
-        #t222.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-  } =>#t222;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t296 = :sync-for-iterator.{core::Iterator::current};
+          #t295.{core::List::add}{Invariant}(#t296);
+        }
+      }
+      else {
+        core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t297 = :sync-for-iterator.{core::Iterator::current};
+          #t295.{core::List::add}{Invariant}(#t297);
+        }
+      }
+  } =>#t295;
   core::Set<dynamic>* set82 = block {
-    final core::Set<dynamic>* #t223 = new col::_CompactLinkedHashSet::•<dynamic>();
+    final core::Set<dynamic>* #t298 = new col::_CompactLinkedHashSet::•<dynamic>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t223.{core::Set::addAll}{Invariant}(listInt);
-      else
-        #t223.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t223.{core::Set::add}{Invariant}(null);
-  } =>#t223;
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t299 = :sync-for-iterator.{core::Iterator::current};
+          #t298.{core::Set::add}{Invariant}(#t299);
+        }
+      }
+      else {
+        core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t300 = :sync-for-iterator.{core::Iterator::current};
+          #t298.{core::Set::add}{Invariant}(#t300);
+        }
+      }
+    #t298.{core::Set::add}{Invariant}(null);
+  } =>#t298;
   core::Map<dynamic, dynamic>* map82 = block {
-    final core::Map<dynamic, dynamic>* #t224 = <dynamic, dynamic>{};
+    final core::Map<dynamic, dynamic>* #t301 = <dynamic, dynamic>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapStringInt.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<dynamic, dynamic>* #t225 = :sync-for-iterator.{core::Iterator::current};
-          #t224.{core::Map::[]=}{Invariant}(#t225.{core::MapEntry::key}, #t225.{core::MapEntry::value});
+          final core::MapEntry<dynamic, dynamic>* #t302 = :sync-for-iterator.{core::Iterator::current};
+          #t301.{core::Map::[]=}{Invariant}(#t302.{core::MapEntry::key}, #t302.{core::MapEntry::value});
         }
       }
       else {
         core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<dynamic, dynamic>* #t226 = :sync-for-iterator.{core::Iterator::current};
-          #t224.{core::Map::[]=}{Invariant}(#t226.{core::MapEntry::key}, #t226.{core::MapEntry::value});
+          final core::MapEntry<dynamic, dynamic>* #t303 = :sync-for-iterator.{core::Iterator::current};
+          #t301.{core::Map::[]=}{Invariant}(#t303.{core::MapEntry::key}, #t303.{core::MapEntry::value});
         }
       }
-    #t224.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t224;
+    #t301.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t301;
   core::List<core::num*>* list83 = block {
-    final core::List<core::num*>* #t227 = <core::num*>[];
+    final core::List<core::num*>* #t304 = <core::num*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t227.{core::List::add}{Invariant}(42);
-      else
-        #t227.{core::List::addAll}{Invariant}(listDouble);
-  } =>#t227;
+        #t304.{core::List::add}{Invariant}(42);
+      else {
+        core::Iterator<core::double*>* :sync-for-iterator = listDouble.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::num* #t305 = :sync-for-iterator.{core::Iterator::current};
+          #t304.{core::List::add}{Invariant}(#t305);
+        }
+      }
+  } =>#t304;
   core::Set<core::num*>* set83 = block {
-    final core::Set<core::num*>* #t228 = new col::_CompactLinkedHashSet::•<core::num*>();
+    final core::Set<core::num*>* #t306 = new col::_CompactLinkedHashSet::•<core::num*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t228.{core::Set::addAll}{Invariant}(listInt);
+      if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
+        core::Iterator<core::int*>* :sync-for-iterator = listInt.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::num* #t307 = :sync-for-iterator.{core::Iterator::current};
+          #t306.{core::Set::add}{Invariant}(#t307);
+        }
+      }
       else
-        #t228.{core::Set::add}{Invariant}(3.14);
-    #t228.{core::Set::add}{Invariant}(null);
-  } =>#t228;
+        #t306.{core::Set::add}{Invariant}(3.14);
+    #t306.{core::Set::add}{Invariant}(null);
+  } =>#t306;
   core::Map<core::String*, core::num*>* map83 = block {
-    final core::Map<core::String*, core::num*>* #t229 = <core::String*, core::num*>{};
+    final core::Map<core::String*, core::num*>* #t308 = <core::String*, core::num*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
         core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapStringInt.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-          final core::MapEntry<core::String*, core::num*>* #t230 = :sync-for-iterator.{core::Iterator::current};
-          #t229.{core::Map::[]=}{Invariant}(#t230.{core::MapEntry::key}, #t230.{core::MapEntry::value});
+          final core::MapEntry<core::String*, core::num*>* #t309 = :sync-for-iterator.{core::Iterator::current};
+          #t308.{core::Map::[]=}{Invariant}(#t309.{core::MapEntry::key}, #t309.{core::MapEntry::value});
         }
       }
       else
-        #t229.{core::Map::[]=}{Invariant}("bar", 3.14);
-    #t229.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t229;
+        #t308.{core::Map::[]=}{Invariant}("bar", 3.14);
+    #t308.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t308;
   core::List<core::int*>* list90 = block {
-    final core::List<core::int*>* #t231 = <core::int*>[];
+    final core::List<core::int*>* #t310 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t231.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
-  } =>#t231;
+      #t310.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+  } =>#t310;
   core::Set<core::int*>* set90 = block {
-    final core::Set<core::int*>* #t232 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t311 = 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))
-      #t232.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
-    #t232.{core::Set::add}{Invariant}(null);
-  } =>#t232;
+      #t311.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
+    #t311.{core::Set::add}{Invariant}(null);
+  } =>#t311;
   core::Map<core::String*, core::int*>* map90 = block {
-    final core::Map<core::String*, core::int*>* #t233 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t312 = <core::String*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t233.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
-    #t233.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t233;
+      #t312.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*);
+    #t312.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t312;
   core::List<core::int*>* list91 = block {
-    final core::List<core::int*>* #t234 = <core::int*>[];
+    final core::List<core::int*>* #t313 = <core::int*>[];
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t235 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t314 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int* #t236 = #t235 as{TypeError} core::int*;
-          #t234.{core::List::add}{Invariant}(#t236);
+          final core::int* #t315 = #t314 as{TypeError} core::int*;
+          #t313.{core::List::add}{Invariant}(#t315);
         }
       }
     }
-  } =>#t234;
+  } =>#t313;
   core::Set<core::int*>* set91 = block {
-    final core::Set<core::int*>* #t237 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t316 = 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::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t238 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t317 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int* #t239 = #t238 as{TypeError} core::int*;
-          #t237.{core::Set::add}{Invariant}(#t239);
+          final core::int* #t318 = #t317 as{TypeError} core::int*;
+          #t316.{core::Set::add}{Invariant}(#t318);
         }
       }
     }
-    #t237.{core::Set::add}{Invariant}(null);
-  } =>#t237;
+    #t316.{core::Set::add}{Invariant}(null);
+  } =>#t316;
   core::Map<core::String*, core::int*>* map91 = block {
-    final core::Map<core::String*, core::int*>* #t240 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t319 = <core::String*, core::int*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic>* #t241 = :sync-for-iterator.{core::Iterator::current};
+        final core::MapEntry<dynamic, dynamic>* #t320 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::String* #t242 = #t241.{core::MapEntry::key} as{TypeError} core::String*;
-          final core::int* #t243 = #t241.{core::MapEntry::value} as{TypeError} core::int*;
-          #t240.{core::Map::[]=}{Invariant}(#t242, #t243);
+          final core::String* #t321 = #t320.{core::MapEntry::key} as{TypeError} core::String*;
+          final core::int* #t322 = #t320.{core::MapEntry::value} as{TypeError} core::int*;
+          #t319.{core::Map::[]=}{Invariant}(#t321, #t322);
         }
       }
     }
-    #t240.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t240;
+    #t319.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t319;
   core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t244 = <core::int*>[];
-    for (final core::int* #t245 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
-      #t244.{core::List::add}{Invariant}(42);
-  } =>#t244;
+    final core::List<core::int*>* #t323 = <core::int*>[];
+    for (final core::int* #t324 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
+      #t323.{core::List::add}{Invariant}(42);
+  } =>#t323;
   core::Set<core::int*>* set100 = block {
-    final core::Set<core::int*>* #t246 = new col::_CompactLinkedHashSet::•<core::int*>();
-    for (final core::int* #t247 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
-      #t246.{core::Set::add}{Invariant}(42);
-  } =>#t246;
+    final core::Set<core::int*>* #t325 = new col::_CompactLinkedHashSet::•<core::int*>();
+    for (final core::int* #t326 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
+      #t325.{core::Set::add}{Invariant}(42);
+  } =>#t325;
   core::Map<core::String*, core::int*>* map100 = block {
-    final core::Map<core::String*, core::int*>* #t248 = <core::String*, core::int*>{};
-    for (final core::int* #t249 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
-      #t248.{core::Map::[]=}{Invariant}("bar", 42);
-  } =>#t248;
+    final core::Map<core::String*, core::int*>* #t327 = <core::String*, core::int*>{};
+    for (final core::int* #t328 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
+      #t327.{core::Map::[]=}{Invariant}("bar", 42);
+  } =>#t327;
   core::List<core::int*>* list110 = block {
-    final core::List<core::int*>* #t250 = <core::int*>[];
+    final core::List<core::int*>* #t329 = <core::int*>[];
     {
       core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
-        #t250.{core::List::add}{Invariant}(i);
+        #t329.{core::List::add}{Invariant}(i);
       }
     }
-  } =>#t250;
+  } =>#t329;
   core::Set<core::int*>* set110 = block {
-    final core::Set<core::int*>* #t251 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t330 = new col::_CompactLinkedHashSet::•<core::int*>();
     {
       core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
-        #t251.{core::Set::add}{Invariant}(i);
+        #t330.{core::Set::add}{Invariant}(i);
       }
     }
-    #t251.{core::Set::add}{Invariant}(null);
-  } =>#t251;
+    #t330.{core::Set::add}{Invariant}(null);
+  } =>#t330;
   core::Map<core::String*, core::int*>* map110 = block {
-    final core::Map<core::String*, core::int*>* #t252 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t331 = <core::String*, core::int*>{};
     {
       core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
-        #t252.{core::Map::[]=}{Invariant}("bar", i);
+        #t331.{core::Map::[]=}{Invariant}("bar", i);
       }
     }
-    #t252.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t252;
+    #t331.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t331;
   core::List<core::int*>* list120 = block {
-    final core::List<core::int*>* #t253 = <core::int*>[];
+    final core::List<core::int*>* #t332 = <core::int*>[];
     {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         dynamic i = :sync-for-iterator.{core::Iterator::current};
-        #t253.{core::List::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
+        #t332.{core::List::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
       }
     }
-  } =>#t253;
+  } =>#t332;
   core::Set<core::int*>* set120 = block {
-    final core::Set<core::int*>* #t254 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t333 = new col::_CompactLinkedHashSet::•<core::int*>();
     {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         dynamic i = :sync-for-iterator.{core::Iterator::current};
-        #t254.{core::Set::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
+        #t333.{core::Set::add}{Invariant}(i as{TypeError,ForDynamic} core::int*);
       }
     }
-    #t254.{core::Set::add}{Invariant}(null);
-  } =>#t254;
+    #t333.{core::Set::add}{Invariant}(null);
+  } =>#t333;
   core::Map<core::String*, core::int*>* map120 = block {
-    final core::Map<core::String*, core::int*>* #t255 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t334 = <core::String*, core::int*>{};
     {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         dynamic i = :sync-for-iterator.{core::Iterator::current};
-        #t255.{core::Map::[]=}{Invariant}("bar", i as{TypeError,ForDynamic} core::int*);
+        #t334.{core::Map::[]=}{Invariant}("bar", i as{TypeError,ForDynamic} core::int*);
       }
     }
-    #t255.{core::Map::[]=}{Invariant}("baz", null);
-  } =>#t255;
+    #t334.{core::Map::[]=}{Invariant}("baz", null);
+  } =>#t334;
   core::List<core::int*>* list130 = block {
-    final core::List<core::int*>* #t256 = <core::int*>[];
+    final core::List<core::int*>* #t335 = <core::int*>[];
     for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
-      #t256.{core::List::add}{Invariant}(i);
-  } =>#t256;
+      #t335.{core::List::add}{Invariant}(i);
+  } =>#t335;
   core::Set<core::int*>* set130 = block {
-    final core::Set<core::int*>* #t257 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t336 = new col::_CompactLinkedHashSet::•<core::int*>();
     for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
-      #t257.{core::Set::add}{Invariant}(i);
-  } =>#t257;
+      #t336.{core::Set::add}{Invariant}(i);
+  } =>#t336;
   core::Map<core::int*, core::int*>* map130 = block {
-    final core::Map<core::int*, core::int*>* #t258 = <core::int*, core::int*>{};
+    final core::Map<core::int*, core::int*>* #t337 = <core::int*, core::int*>{};
     for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
-      #t258.{core::Map::[]=}{Invariant}(i, i);
-  } =>#t258;
+      #t337.{core::Map::[]=}{Invariant}(i, i);
+  } =>#t337;
 }
 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>();
@@ -1961,81 +2356,91 @@
       #L1:
       {
         block {
-          final core::List<core::int*>* #t259 = <core::int*>[];
+          final core::List<core::int*>* #t338 = <core::int*>[];
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-            #t259.{core::List::add}{Invariant}(let final<BottomType> #t260 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:212:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            #t338.{core::List::add}{Invariant}(let final<BottomType> #t339 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-        } =>#t259;
+        } =>#t338;
         block {
-          final core::Set<core::int*>* #t261 = new col::_CompactLinkedHashSet::•<core::int*>();
+          final core::Set<core::int*>* #t340 = 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))
-            #t261.{core::Set::add}{Invariant}(let final<BottomType> #t262 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:213:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            #t340.{core::Set::add}{Invariant}(let final<BottomType> #t341 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-          #t261.{core::Set::add}{Invariant}(null);
-        } =>#t261;
+          #t340.{core::Set::add}{Invariant}(null);
+        } =>#t340;
         block {
-          final core::Map<core::int*, core::int*>* #t263 = <core::int*, core::int*>{};
+          final core::Map<core::int*, core::int*>* #t342 = <core::int*, core::int*>{};
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-            #t263.{core::Map::[]=}{Invariant}(let final<BottomType> #t264 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:214:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            #t342.{core::Map::[]=}{Invariant}(let final<BottomType> #t343 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*, let final<BottomType> #t265 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:214:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                 ^" in "bar" as{TypeError} core::int*, let final<BottomType> #t344 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-          #t263.{core::Map::[]=}{Invariant}(let final<BottomType> #t266 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:214:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+          #t342.{core::Map::[]=}{Invariant}(let final<BottomType> #t345 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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);
-        } =>#t263;
+        } =>#t342;
         block {
-          final core::List<core::int*>* #t267 = <core::int*>[];
-          for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-            #t267.{core::List::addAll}{Invariant}(<core::int*>[let final<BottomType> #t268 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*]);
-        } =>#t267;
-        block {
-          final core::Set<core::int*>* #t269 = 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))
-            #t269.{core::Set::addAll}{Invariant}(<core::int*>[let final<BottomType> #t270 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*]);
-          #t269.{core::Set::add}{Invariant}(null);
-        } =>#t269;
-        block {
-          final core::Map<core::int*, core::int*>* #t271 = <core::int*, core::int*>{};
+          final core::List<core::int*>* #t346 = <core::int*>[];
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
-            core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = <core::int*, core::int*>{let final<BottomType> #t272 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:217:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t347 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final core::int* #t348 = :sync-for-iterator.{core::Iterator::current};
+              #t346.{core::List::add}{Invariant}(#t348);
+            }
+          }
+        } =>#t346;
+        block {
+          final core::Set<core::int*>* #t349 = 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::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t350 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final core::int* #t351 = :sync-for-iterator.{core::Iterator::current};
+              #t349.{core::Set::add}{Invariant}(#t351);
+            }
+          }
+          #t349.{core::Set::add}{Invariant}(null);
+        } =>#t349;
+        block {
+          final core::Map<core::int*, core::int*>* #t352 = <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::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = <core::int*, core::int*>{let final<BottomType> #t353 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*: let final<BottomType> #t273 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:217:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                     ^" in "bar" as{TypeError} core::int*: let final<BottomType> #t354 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-              final core::MapEntry<core::int*, core::int*>* #t274 = :sync-for-iterator.{core::Iterator::current};
-              #t271.{core::Map::[]=}{Invariant}(#t274.{core::MapEntry::key}, #t274.{core::MapEntry::value});
+              final core::MapEntry<core::int*, core::int*>* #t355 = :sync-for-iterator.{core::Iterator::current};
+              #t352.{core::Map::[]=}{Invariant}(#t355.{core::MapEntry::key}, #t355.{core::MapEntry::value});
             }
           }
-          #t271.{core::Map::[]=}{Invariant}(let final<BottomType> #t275 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:217:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+          #t352.{core::Map::[]=}{Invariant}(let final<BottomType> #t356 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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);
-        } =>#t271;
+        } =>#t352;
         block {
-          final core::List<core::int*>* #t276 = <core::int*>[];
+          final core::List<core::int*>* #t357 = <core::int*>[];
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-            #t276.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:218:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+            #t357.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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];
                                                ^");
-        } =>#t276;
+        } =>#t357;
         block {
-          final core::Set<core::int*>* #t277 = new col::_CompactLinkedHashSet::•<core::int*>();
+          final core::Set<core::int*>* #t358 = 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))
-            #t277.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:219:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+            #t358.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
                                                ^");
-          #t277.{core::Set::add}{Invariant}(null);
-        } =>#t277;
+          #t358.{core::Set::add}{Invariant}(null);
+        } =>#t358;
         <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
@@ -2044,66 +2449,66 @@
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
                                                     ^": null};
         block {
-          final core::List<core::String*>* #t278 = <core::String*>[];
+          final core::List<core::String*>* #t359 = <core::String*>[];
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t278.{core::List::add}{Invariant}(let final<BottomType> #t279 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:221:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+              #t359.{core::List::add}{Invariant}(let final<BottomType> #t360 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
             else
-              #t278.{core::List::add}{Invariant}(let final<BottomType> #t280 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:221:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+              #t359.{core::List::add}{Invariant}(let final<BottomType> #t361 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-        } =>#t278;
+        } =>#t359;
         block {
-          final core::Set<core::String*>* #t281 = new col::_CompactLinkedHashSet::•<core::String*>();
+          final core::Set<core::String*>* #t362 = 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))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t281.{core::Set::add}{Invariant}(let final<BottomType> #t282 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:222:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+              #t362.{core::Set::add}{Invariant}(let final<BottomType> #t363 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
             else
-              #t281.{core::Set::add}{Invariant}(let final<BottomType> #t283 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:222:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+              #t362.{core::Set::add}{Invariant}(let final<BottomType> #t364 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-          #t281.{core::Set::add}{Invariant}(null);
-        } =>#t281;
+          #t362.{core::Set::add}{Invariant}(null);
+        } =>#t362;
         block {
-          final core::Map<core::String*, core::String*>* #t284 = <core::String*, core::String*>{};
+          final core::Map<core::String*, core::String*>* #t365 = <core::String*, core::String*>{};
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t284.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t285 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:223:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+              #t365.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t366 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
             else
-              #t284.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t286 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:223:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+              #t365.{core::Map::[]=}{Invariant}("bar", let final<BottomType> #t367 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*);
-          #t284.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t284;
+          #t365.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t365;
         block {
-          final core::List<core::int*>* #t287 = <core::int*>[];
+          final core::List<core::int*>* #t368 = <core::int*>[];
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t287.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:224:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+              #t368.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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];
                                                              ^");
             else
-              #t287.{core::List::add}{Invariant}(42);
-        } =>#t287;
+              #t368.{core::List::add}{Invariant}(42);
+        } =>#t368;
         block {
-          final core::Set<core::int*>* #t288 = new col::_CompactLinkedHashSet::•<core::int*>();
+          final core::Set<core::int*>* #t369 = 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))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t288.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:225:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+              #t369.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
                                                              ^");
             else
-              #t288.{core::Set::add}{Invariant}(42);
-          #t288.{core::Set::add}{Invariant}(null);
-        } =>#t288;
+              #t369.{core::Set::add}{Invariant}(42);
+          #t369.{core::Set::add}{Invariant}(null);
+        } =>#t369;
         <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
@@ -2112,28 +2517,28 @@
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
                                                                      ^": null};
         block {
-          final core::List<core::int*>* #t289 = <core::int*>[];
+          final core::List<core::int*>* #t370 = <core::int*>[];
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t289.{core::List::add}{Invariant}(42);
+              #t370.{core::List::add}{Invariant}(42);
             else
-              #t289.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:227:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+              #t370.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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];
                                                                      ^");
-        } =>#t289;
+        } =>#t370;
         block {
-          final core::Set<core::int*>* #t290 = new col::_CompactLinkedHashSet::•<core::int*>();
+          final core::Set<core::int*>* #t371 = 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))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-              #t290.{core::Set::add}{Invariant}(42);
+              #t371.{core::Set::add}{Invariant}(42);
             else
-              #t290.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:228:70: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
+              #t371.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
                                                                      ^");
-          #t290.{core::Set::add}{Invariant}(null);
-        } =>#t290;
+          #t371.{core::Set::add}{Invariant}(null);
+        } =>#t371;
         <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
@@ -2143,140 +2548,140 @@
                                                                                     ^": null};
         final core::int* i = 0;
         block {
-          final core::List<core::int*>* #t291 = <core::int*>[];
+          final core::List<core::int*>* #t372 = <core::int*>[];
           {
             core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1].{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-              final core::int* #t292 = :sync-for-iterator.{core::Iterator::current};
+              final core::int* #t373 = :sync-for-iterator.{core::Iterator::current};
               {
                 invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:232:14: Error: Can't assign to the final variable 'i'.
   <int>[for (i in <int>[1]) i];
              ^";
-                #t291.{core::List::add}{Invariant}(i);
+                #t372.{core::List::add}{Invariant}(i);
               }
             }
           }
-        } =>#t291;
+        } =>#t372;
         block {
-          final core::Set<core::int*>* #t293 = new col::_CompactLinkedHashSet::•<core::int*>();
+          final core::Set<core::int*>* #t374 = new col::_CompactLinkedHashSet::•<core::int*>();
           {
             core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1].{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-              final core::int* #t294 = :sync-for-iterator.{core::Iterator::current};
+              final core::int* #t375 = :sync-for-iterator.{core::Iterator::current};
               {
                 invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:233:14: Error: Can't assign to the final variable 'i'.
   <int>{for (i in <int>[1]) i, null};
              ^";
-                #t293.{core::Set::add}{Invariant}(i);
+                #t374.{core::Set::add}{Invariant}(i);
               }
             }
           }
-          #t293.{core::Set::add}{Invariant}(null);
-        } =>#t293;
+          #t374.{core::Set::add}{Invariant}(null);
+        } =>#t374;
         block {
-          final core::Map<core::String*, core::int*>* #t295 = <core::String*, core::int*>{};
+          final core::Map<core::String*, core::int*>* #t376 = <core::String*, core::int*>{};
           {
             core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1].{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-              final core::int* #t296 = :sync-for-iterator.{core::Iterator::current};
+              final core::int* #t377 = :sync-for-iterator.{core::Iterator::current};
               {
                 invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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                   ^";
-                #t295.{core::Map::[]=}{Invariant}("bar", i);
+                #t376.{core::Map::[]=}{Invariant}("bar", i);
               }
             }
           }
-          #t295.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t295;
+          #t376.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t376;
         core::List<dynamic>* list10 = block {
-          final core::List<dynamic>* #t297 = <dynamic>[];
+          final core::List<dynamic>* #t378 = <dynamic>[];
           {
-            core::Iterator<dynamic>* :sync-for-iterator = (let final<BottomType> #t298 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:236:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+            core::Iterator<dynamic>* :sync-for-iterator = (let final<BottomType> #t379 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               dynamic i = :sync-for-iterator.{core::Iterator::current};
-              #t297.{core::List::add}{Invariant}(i);
+              #t378.{core::List::add}{Invariant}(i);
             }
           }
-        } =>#t297;
+        } =>#t378;
         core::Set<dynamic>* set10 = block {
-          final core::Set<dynamic>* #t299 = new col::_CompactLinkedHashSet::•<dynamic>();
+          final core::Set<dynamic>* #t380 = new col::_CompactLinkedHashSet::•<dynamic>();
           {
-            core::Iterator<dynamic>* :sync-for-iterator = (let final<BottomType> #t300 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:237:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+            core::Iterator<dynamic>* :sync-for-iterator = (let final<BottomType> #t381 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               dynamic i = :sync-for-iterator.{core::Iterator::current};
-              #t299.{core::Set::add}{Invariant}(i);
+              #t380.{core::Set::add}{Invariant}(i);
             }
           }
-          #t299.{core::Set::add}{Invariant}(null);
-        } =>#t299;
+          #t380.{core::Set::add}{Invariant}(null);
+        } =>#t380;
         core::Map<core::String*, dynamic>* map10 = block {
-          final core::Map<core::String*, dynamic>* #t301 = <core::String*, dynamic>{};
+          final core::Map<core::String*, dynamic>* #t382 = <core::String*, dynamic>{};
           {
-            core::Iterator<dynamic>* :sync-for-iterator = (let final<BottomType> #t302 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:238:30: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+            core::Iterator<dynamic>* :sync-for-iterator = (let final<BottomType> #t383 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               dynamic i = :sync-for-iterator.{core::Iterator::current};
-              #t301.{core::Map::[]=}{Invariant}("bar", i);
+              #t382.{core::Map::[]=}{Invariant}("bar", i);
             }
           }
-          #t301.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t301;
+          #t382.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t382;
         core::List<core::int*>* list20 = block {
-          final core::List<core::int*>* #t303 = <core::int*>[];
+          final core::List<core::int*>* #t384 = <core::int*>[];
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t304 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:239: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::int*>[let final<BottomType> #t385 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*, let final<BottomType> #t305 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:239:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                               ^" in "not" as{TypeError} core::int*, let final<BottomType> #t386 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               core::int* i = :sync-for-iterator.{core::Iterator::current};
-              #t303.{core::List::add}{Invariant}(i);
+              #t384.{core::List::add}{Invariant}(i);
             }
           }
-        } =>#t303;
+        } =>#t384;
         core::Set<core::int*>* set20 = block {
-          final core::Set<core::int*>* #t306 = new col::_CompactLinkedHashSet::•<core::int*>();
+          final core::Set<core::int*>* #t387 = new col::_CompactLinkedHashSet::•<core::int*>();
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t307 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:240: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::int*>[let final<BottomType> #t388 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*, let final<BottomType> #t308 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:240:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                              ^" in "not" as{TypeError} core::int*, let final<BottomType> #t389 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               core::int* i = :sync-for-iterator.{core::Iterator::current};
-              #t306.{core::Set::add}{Invariant}(i);
+              #t387.{core::Set::add}{Invariant}(i);
             }
           }
-          #t306.{core::Set::add}{Invariant}(null);
-        } =>#t306;
+          #t387.{core::Set::add}{Invariant}(null);
+        } =>#t387;
         core::Map<core::String*, core::int*>* map20 = block {
-          final core::Map<core::String*, core::int*>* #t309 = <core::String*, core::int*>{};
+          final core::Map<core::String*, core::int*>* #t390 = <core::String*, core::int*>{};
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t310 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:241: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::int*>[let final<BottomType> #t391 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*, let final<BottomType> #t311 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:241:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                              ^" in "not" as{TypeError} core::int*, let final<BottomType> #t392 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               core::int* i = :sync-for-iterator.{core::Iterator::current};
-              #t309.{core::Map::[]=}{Invariant}("bar", i);
+              #t390.{core::Map::[]=}{Invariant}("bar", i);
             }
           }
-          #t309.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t309;
-        final core::List<dynamic>* #t312 = <dynamic>[];
+          #t390.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t390;
+        final core::List<dynamic>* #t393 = <dynamic>[];
         {
-          asy::Stream<dynamic>* :stream = let final<BottomType> #t313 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:242:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+          asy::Stream<dynamic>* :stream = let final<BottomType> #t394 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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>*;
@@ -2284,25 +2689,25 @@
           try
             #L2:
             while (true) {
-              dynamic #t314 = asy::_asyncStarMoveNextHelper(:stream);
-              [yield] let dynamic #t315 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
+              dynamic #t395 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t396 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
               if(_in::unsafeCast<core::bool>(:result)) {
                 dynamic i = :for-iterator.{asy::_StreamIterator::current};
-                #t312.{core::List::add}{Invariant}(i);
+                #t393.{core::List::add}{Invariant}(i);
               }
               else
                 break #L2;
             }
           finally
             if(!:for-iterator.{asy::_StreamIterator::_subscription}.{core::Object::==}(null)) {
-              [yield] let dynamic #t316 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
+              [yield] let dynamic #t397 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
               :result;
             }
         }
-        core::List<dynamic>* list30 = block {} =>#t312;
-        final core::Set<dynamic>* #t317 = new col::_CompactLinkedHashSet::•<dynamic>();
+        core::List<dynamic>* list30 = block {} =>#t393;
+        final core::Set<dynamic>* #t398 = new col::_CompactLinkedHashSet::•<dynamic>();
         {
-          asy::Stream<dynamic>* :stream = let final<BottomType> #t318 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:243:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+          asy::Stream<dynamic>* :stream = let final<BottomType> #t399 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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>*;
@@ -2310,27 +2715,27 @@
           try
             #L3:
             while (true) {
-              dynamic #t319 = asy::_asyncStarMoveNextHelper(:stream);
-              [yield] let dynamic #t320 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
+              dynamic #t400 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t401 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
               if(_in::unsafeCast<core::bool>(:result)) {
                 dynamic i = :for-iterator.{asy::_StreamIterator::current};
-                #t317.{core::Set::add}{Invariant}(i);
+                #t398.{core::Set::add}{Invariant}(i);
               }
               else
                 break #L3;
             }
           finally
             if(!:for-iterator.{asy::_StreamIterator::_subscription}.{core::Object::==}(null)) {
-              [yield] let dynamic #t321 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
+              [yield] let dynamic #t402 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
               :result;
             }
         }
         core::Set<dynamic>* set30 = block {
-          #t317.{core::Set::add}{Invariant}(null);
-        } =>#t317;
-        final core::Map<core::String*, dynamic>* #t322 = <core::String*, dynamic>{};
+          #t398.{core::Set::add}{Invariant}(null);
+        } =>#t398;
+        final core::Map<core::String*, dynamic>* #t403 = <core::String*, dynamic>{};
         {
-          asy::Stream<dynamic>* :stream = let final<BottomType> #t323 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:244:36: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+          asy::Stream<dynamic>* :stream = let final<BottomType> #t404 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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>*;
@@ -2338,149 +2743,149 @@
           try
             #L4:
             while (true) {
-              dynamic #t324 = asy::_asyncStarMoveNextHelper(:stream);
-              [yield] let dynamic #t325 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
+              dynamic #t405 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t406 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
               if(_in::unsafeCast<core::bool>(:result)) {
                 dynamic i = :for-iterator.{asy::_StreamIterator::current};
-                #t322.{core::Map::[]=}{Invariant}("bar", i);
+                #t403.{core::Map::[]=}{Invariant}("bar", i);
               }
               else
                 break #L4;
             }
           finally
             if(!:for-iterator.{asy::_StreamIterator::_subscription}.{core::Object::==}(null)) {
-              [yield] let dynamic #t326 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
+              [yield] let dynamic #t407 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
               :result;
             }
         }
         core::Map<core::String*, dynamic>* map30 = block {
-          #t322.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t322;
-        final core::List<core::int*>* #t327 = <core::int*>[];
+          #t403.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t403;
+        final core::List<core::int*>* #t408 = <core::int*>[];
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t328 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:245: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::int*>[let final<BottomType> #t409 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*, let final<BottomType> #t329 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:245:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                         ^" in "not" as{TypeError} core::int*, let final<BottomType> #t410 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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);
           try
             #L5:
             while (true) {
-              dynamic #t330 = asy::_asyncStarMoveNextHelper(:stream);
-              [yield] let dynamic #t331 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
+              dynamic #t411 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t412 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
               if(_in::unsafeCast<core::bool>(:result)) {
                 core::int* i = :for-iterator.{asy::_StreamIterator::current};
-                #t327.{core::List::add}{Invariant}(i);
+                #t408.{core::List::add}{Invariant}(i);
               }
               else
                 break #L5;
             }
           finally
             if(!:for-iterator.{asy::_StreamIterator::_subscription}.{core::Object::==}(null)) {
-              [yield] let dynamic #t332 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
+              [yield] let dynamic #t413 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
               :result;
             }
         }
-        core::List<core::int*>* list40 = block {} =>#t327;
-        final core::Set<core::int*>* #t333 = new col::_CompactLinkedHashSet::•<core::int*>();
+        core::List<core::int*>* list40 = block {} =>#t408;
+        final core::Set<core::int*>* #t414 = new col::_CompactLinkedHashSet::•<core::int*>();
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t334 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:246: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::int*>[let final<BottomType> #t415 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*, let final<BottomType> #t335 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:246:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                        ^" in "not" as{TypeError} core::int*, let final<BottomType> #t416 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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);
           try
             #L6:
             while (true) {
-              dynamic #t336 = asy::_asyncStarMoveNextHelper(:stream);
-              [yield] let dynamic #t337 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
+              dynamic #t417 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t418 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
               if(_in::unsafeCast<core::bool>(:result)) {
                 core::int* i = :for-iterator.{asy::_StreamIterator::current};
-                #t333.{core::Set::add}{Invariant}(i);
+                #t414.{core::Set::add}{Invariant}(i);
               }
               else
                 break #L6;
             }
           finally
             if(!:for-iterator.{asy::_StreamIterator::_subscription}.{core::Object::==}(null)) {
-              [yield] let dynamic #t338 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
+              [yield] let dynamic #t419 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
               :result;
             }
         }
         core::Set<core::int*>* set40 = block {
-          #t333.{core::Set::add}{Invariant}(null);
-        } =>#t333;
-        final core::Map<core::String*, core::int*>* #t339 = <core::String*, core::int*>{};
+          #t414.{core::Set::add}{Invariant}(null);
+        } =>#t414;
+        final core::Map<core::String*, core::int*>* #t420 = <core::String*, core::int*>{};
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t340 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:247: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::int*>[let final<BottomType> #t421 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*, let final<BottomType> #t341 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:247:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                        ^" in "not" as{TypeError} core::int*, let final<BottomType> #t422 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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);
           try
             #L7:
             while (true) {
-              dynamic #t342 = asy::_asyncStarMoveNextHelper(:stream);
-              [yield] let dynamic #t343 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
+              dynamic #t423 = asy::_asyncStarMoveNextHelper(:stream);
+              [yield] let dynamic #t424 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(), :async_op_then, :async_op_error, :async_op) in null;
               if(_in::unsafeCast<core::bool>(:result)) {
                 core::int* i = :for-iterator.{asy::_StreamIterator::current};
-                #t339.{core::Map::[]=}{Invariant}("bar", i);
+                #t420.{core::Map::[]=}{Invariant}("bar", i);
               }
               else
                 break #L7;
             }
           finally
             if(!:for-iterator.{asy::_StreamIterator::_subscription}.{core::Object::==}(null)) {
-              [yield] let dynamic #t344 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
+              [yield] let dynamic #t425 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::cancel}(), :async_op_then, :async_op_error, :async_op) in null;
               :result;
             }
         }
         core::Map<core::String*, core::int*>* map40 = block {
-          #t339.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t339;
+          #t420.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t420;
         core::List<core::int*>* list50 = block {
-          final core::List<core::int*>* #t345 = <core::int*>[];
+          final core::List<core::int*>* #t426 = <core::int*>[];
           for (; ; )
-            #t345.{core::List::add}{Invariant}(42);
-        } =>#t345;
+            #t426.{core::List::add}{Invariant}(42);
+        } =>#t426;
         core::Set<core::int*>* set50 = block {
-          final core::Set<core::int*>* #t346 = new col::_CompactLinkedHashSet::•<core::int*>();
+          final core::Set<core::int*>* #t427 = new col::_CompactLinkedHashSet::•<core::int*>();
           for (; ; )
-            #t346.{core::Set::add}{Invariant}(42);
-          #t346.{core::Set::add}{Invariant}(null);
-        } =>#t346;
+            #t427.{core::Set::add}{Invariant}(42);
+          #t427.{core::Set::add}{Invariant}(null);
+        } =>#t427;
         core::Map<core::String*, core::int*>* map50 = block {
-          final core::Map<core::String*, core::int*>* #t347 = <core::String*, core::int*>{};
+          final core::Map<core::String*, core::int*>* #t428 = <core::String*, core::int*>{};
           for (; ; )
-            #t347.{core::Map::[]=}{Invariant}("bar", 42);
-          #t347.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t347;
+            #t428.{core::Map::[]=}{Invariant}("bar", 42);
+          #t428.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t428;
         core::List<core::int*>* list60 = block {
-          final core::List<core::int*>* #t348 = <core::int*>[];
-          for (; let final<BottomType> #t349 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:251:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+          final core::List<core::int*>* #t429 = <core::int*>[];
+          for (; let final<BottomType> #t430 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*; )
-            #t348.{core::List::add}{Invariant}(42);
-        } =>#t348;
+            #t429.{core::List::add}{Invariant}(42);
+        } =>#t429;
         core::Set<core::int*>* set60 = block {
-          final core::Set<core::int*>* #t350 = new col::_CompactLinkedHashSet::•<core::int*>();
-          for (; let final<BottomType> #t351 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:252:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+          final core::Set<core::int*>* #t431 = new col::_CompactLinkedHashSet::•<core::int*>();
+          for (; let final<BottomType> #t432 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*; )
-            #t350.{core::Set::add}{Invariant}(42);
-          #t350.{core::Set::add}{Invariant}(null);
-        } =>#t350;
+            #t431.{core::Set::add}{Invariant}(42);
+          #t431.{core::Set::add}{Invariant}(null);
+        } =>#t431;
         core::Map<core::String*, core::int*>* map60 = block {
-          final core::Map<core::String*, core::int*>* #t352 = <core::String*, core::int*>{};
-          for (; let final<BottomType> #t353 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:253:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
+          final core::Map<core::String*, core::int*>* #t433 = <core::String*, core::int*>{};
+          for (; let final<BottomType> #t434 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/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*; )
-            #t352.{core::Map::[]=}{Invariant}("bar", 42);
-          #t352.{core::Map::[]=}{Invariant}("baz", null);
-        } =>#t352;
+            #t433.{core::Map::[]=}{Invariant}("bar", 42);
+          #t433.{core::Map::[]=}{Invariant}("baz", null);
+        } =>#t433;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
       return;
@@ -2497,37 +2902,37 @@
 }
 static method testForElementErrorsNotAsync(asy::Stream<core::int*>* stream) → dynamic {
   block {
-    final core::List<core::int*>* #t354 = <core::int*>[];
+    final core::List<core::int*>* #t435 = <core::int*>[];
     await for (core::int* i in stream)
-      #t354.{core::List::add}{Invariant}(i);
-  } =>#t354;
+      #t435.{core::List::add}{Invariant}(i);
+  } =>#t435;
   block {
-    final core::Set<core::int*>* #t355 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t436 = new col::_CompactLinkedHashSet::•<core::int*>();
     await for (core::int* i in stream)
-      #t355.{core::Set::add}{Invariant}(i);
-  } =>#t355;
+      #t436.{core::Set::add}{Invariant}(i);
+  } =>#t436;
   block {
-    final core::Map<core::String*, core::int*>* #t356 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t437 = <core::String*, core::int*>{};
     await for (core::int* i in stream)
-      #t356.{core::Map::[]=}{Invariant}("bar", i);
-  } =>#t356;
+      #t437.{core::Map::[]=}{Invariant}("bar", i);
+  } =>#t437;
 }
 static method testPromotion(self::A* a) → dynamic {
   core::List<core::int*>* list10 = block {
-    final core::List<core::int*>* #t357 = <core::int*>[];
+    final core::List<core::int*>* #t438 = <core::int*>[];
     if(a is self::B*)
-      #t357.{core::List::add}{Invariant}(a{self::B*}.{self::B::foo});
-  } =>#t357;
+      #t438.{core::List::add}{Invariant}(a{self::B*}.{self::B::foo});
+  } =>#t438;
   core::Set<core::int*>* set10 = block {
-    final core::Set<core::int*>* #t358 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Set<core::int*>* #t439 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(a is self::B*)
-      #t358.{core::Set::add}{Invariant}(a{self::B*}.{self::B::foo});
-  } =>#t358;
+      #t439.{core::Set::add}{Invariant}(a{self::B*}.{self::B::foo});
+  } =>#t439;
   core::Map<core::int*, core::int*>* map10 = block {
-    final core::Map<core::int*, core::int*>* #t359 = <core::int*, core::int*>{};
+    final core::Map<core::int*, core::int*>* #t440 = <core::int*, core::int*>{};
     if(a is self::B*)
-      #t359.{core::Map::[]=}{Invariant}(a{self::B*}.{self::B::foo}, a{self::B*}.{self::B::foo});
-  } =>#t359;
+      #t440.{core::Map::[]=}{Invariant}(a{self::B*}.{self::B::foo}, a{self::B*}.{self::B::foo});
+  } =>#t440;
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/null_aware_spread.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/null_aware_spread.dart.weak.expect
index 807a6b5..bd5bf0d 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/null_aware_spread.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/null_aware_spread.dart.weak.expect
@@ -5,30 +5,33 @@
 
 static method nullAwareListSpread(core::List<core::String*>* list) → dynamic {
   list = block {
-    final core::List<core::String*>* #t1 = <core::String*>["foo"];
+    final core::List<core::String*>* #t1 = <core::String*>[];
+    #t1.{core::List::add}{Invariant}("foo");
     final core::Iterable<core::String*>* #t2 = list;
     if(!#t2.{core::Object::==}(null))
-      #t1.{core::List::addAll}{Invariant}(#t2);
+      for (final core::String* #t3 in #t2)
+        #t1.{core::List::add}{Invariant}(#t3);
   } =>#t1;
 }
 static method nullAwareSetSpread(core::Set<core::String*>* set) → dynamic {
   set = block {
-    final core::Set<core::String*>* #t3 = col::LinkedHashSet::•<core::String*>();
-    #t3.{core::Set::add}{Invariant}("foo");
-    final core::Iterable<core::String*>* #t4 = set;
-    if(!#t4.{core::Object::==}(null))
-      #t3.{core::Set::addAll}{Invariant}(#t4);
-  } =>#t3;
+    final core::Set<core::String*>* #t4 = col::LinkedHashSet::•<core::String*>();
+    #t4.{core::Set::add}{Invariant}("foo");
+    final core::Iterable<core::String*>* #t5 = set;
+    if(!#t5.{core::Object::==}(null))
+      for (final core::String* #t6 in #t5)
+        #t4.{core::Set::add}{Invariant}(#t6);
+  } =>#t4;
 }
 static method nullAwareMapSpread(core::Map<core::int*, core::String*>* map) → dynamic {
   map = block {
-    final core::Map<core::int*, core::String*>* #t5 = <core::int*, core::String*>{};
-    #t5.{core::Map::[]=}{Invariant}(0, "foo");
-    final core::Map<core::int*, core::String*>* #t6 = map;
-    if(!#t6.{core::Object::==}(null))
-      for (final core::MapEntry<core::int*, core::String*>* #t7 in #t6.{core::Map::entries})
-        #t5.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}, #t7.{core::MapEntry::value});
-  } =>#t5;
+    final core::Map<core::int*, core::String*>* #t7 = <core::int*, core::String*>{};
+    #t7.{core::Map::[]=}{Invariant}(0, "foo");
+    final core::Map<core::int*, core::String*>* #t8 = map;
+    if(!#t8.{core::Object::==}(null))
+      for (final core::MapEntry<core::int*, core::String*>* #t9 in #t8.{core::Map::entries})
+        #t7.{core::Map::[]=}{Invariant}(#t9.{core::MapEntry::key}, #t9.{core::MapEntry::value});
+  } =>#t7;
 }
 static method main() → dynamic {
   self::nullAwareListSpread(null);
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/null_aware_spread.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/null_aware_spread.dart.weak.transformed.expect
index e5e1b00..67a6d44 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/null_aware_spread.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/null_aware_spread.dart.weak.transformed.expect
@@ -5,34 +5,45 @@
 
 static method nullAwareListSpread(core::List<core::String*>* list) → dynamic {
   list = block {
-    final core::List<core::String*>* #t1 = <core::String*>["foo"];
+    final core::List<core::String*>* #t1 = <core::String*>[];
+    #t1.{core::List::add}{Invariant}("foo");
     final core::Iterable<core::String*>* #t2 = list;
-    if(!#t2.{core::Object::==}(null))
-      #t1.{core::List::addAll}{Invariant}(#t2);
+    if(!#t2.{core::Object::==}(null)) {
+      core::Iterator<core::String*>* :sync-for-iterator = #t2.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::String* #t3 = :sync-for-iterator.{core::Iterator::current};
+        #t1.{core::List::add}{Invariant}(#t3);
+      }
+    }
   } =>#t1;
 }
 static method nullAwareSetSpread(core::Set<core::String*>* set) → dynamic {
   set = block {
-    final core::Set<core::String*>* #t3 = new col::_CompactLinkedHashSet::•<core::String*>();
-    #t3.{core::Set::add}{Invariant}("foo");
-    final core::Iterable<core::String*>* #t4 = set;
-    if(!#t4.{core::Object::==}(null))
-      #t3.{core::Set::addAll}{Invariant}(#t4);
-  } =>#t3;
+    final core::Set<core::String*>* #t4 = new col::_CompactLinkedHashSet::•<core::String*>();
+    #t4.{core::Set::add}{Invariant}("foo");
+    final core::Iterable<core::String*>* #t5 = set;
+    if(!#t5.{core::Object::==}(null)) {
+      core::Iterator<core::String*>* :sync-for-iterator = #t5.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::String* #t6 = :sync-for-iterator.{core::Iterator::current};
+        #t4.{core::Set::add}{Invariant}(#t6);
+      }
+    }
+  } =>#t4;
 }
 static method nullAwareMapSpread(core::Map<core::int*, core::String*>* map) → dynamic {
   map = block {
-    final core::Map<core::int*, core::String*>* #t5 = <core::int*, core::String*>{};
-    #t5.{core::Map::[]=}{Invariant}(0, "foo");
-    final core::Map<core::int*, core::String*>* #t6 = map;
-    if(!#t6.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::int*, core::String*>>* :sync-for-iterator = #t6.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::int*, core::String*>* #t7 = <core::int*, core::String*>{};
+    #t7.{core::Map::[]=}{Invariant}(0, "foo");
+    final core::Map<core::int*, core::String*>* #t8 = map;
+    if(!#t8.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int*, core::String*>>* :sync-for-iterator = #t8.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int*, core::String*>* #t7 = :sync-for-iterator.{core::Iterator::current};
-        #t5.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}, #t7.{core::MapEntry::value});
+        final core::MapEntry<core::int*, core::String*>* #t9 = :sync-for-iterator.{core::Iterator::current};
+        #t7.{core::Map::[]=}{Invariant}(#t9.{core::MapEntry::key}, #t9.{core::MapEntry::value});
       }
     }
-  } =>#t5;
+  } =>#t7;
 }
 static method main() → dynamic {
   self::nullAwareListSpread(null);
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection.dart.weak.expect
index 3740a07..c862e55 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection.dart.weak.expect
@@ -13,30 +13,35 @@
 
 static method main() → dynamic {
   final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = <core::int*>[1];
-    #t1.{core::List::addAll}{Invariant}(<core::int*>[2]);
-    final core::Iterable<core::int*>* #t2 = <core::int*>[3];
-    if(!#t2.{core::Object::==}(null))
-      #t1.{core::List::addAll}{Invariant}(#t2);
+    final core::List<core::int*>* #t1 = <core::int*>[];
+    #t1.{core::List::add}{Invariant}(1);
+    for (final core::int* #t2 in <core::int*>[2])
+      #t1.{core::List::add}{Invariant}(#t2);
+    final core::Iterable<core::int*>* #t3 = <core::int*>[3];
+    if(!#t3.{core::Object::==}(null))
+      for (final core::int* #t4 in #t3)
+        #t1.{core::List::add}{Invariant}(#t4);
   } =>#t1;
   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);
-    for (final core::MapEntry<core::int*, core::int*>* #t4 in <core::int*, core::int*>{2: 2}.{core::Map::entries})
-      #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}, #t4.{core::MapEntry::value});
-    final core::Map<core::int*, core::int*>* #t5 = <core::int*, core::int*>{3: 3};
-    if(!#t5.{core::Object::==}(null))
-      for (final core::MapEntry<core::int*, core::int*>* #t6 in #t5.{core::Map::entries})
-        #t3.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}, #t6.{core::MapEntry::value});
-  } =>#t3;
+    final core::Map<core::int*, core::int*>* #t5 = <core::int*, core::int*>{};
+    #t5.{core::Map::[]=}{Invariant}(1, 1);
+    for (final core::MapEntry<core::int*, core::int*>* #t6 in <core::int*, core::int*>{2: 2}.{core::Map::entries})
+      #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}, #t6.{core::MapEntry::value});
+    final core::Map<core::int*, core::int*>* #t7 = <core::int*, core::int*>{3: 3};
+    if(!#t7.{core::Object::==}(null))
+      for (final core::MapEntry<core::int*, core::int*>* #t8 in #t7.{core::Map::entries})
+        #t5.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}, #t8.{core::MapEntry::value});
+  } =>#t5;
   final core::Set<core::int*>* aSet = block {
-    final core::Set<core::int*>* #t7 = col::LinkedHashSet::•<core::int*>();
-    #t7.{core::Set::add}{Invariant}(1);
-    #t7.{core::Set::addAll}{Invariant}(<core::int*>[2]);
-    final core::Iterable<core::int*>* #t8 = <core::int*>[3];
-    if(!#t8.{core::Object::==}(null))
-      #t7.{core::Set::addAll}{Invariant}(#t8);
-  } =>#t7;
+    final core::Set<core::int*>* #t9 = col::LinkedHashSet::•<core::int*>();
+    #t9.{core::Set::add}{Invariant}(1);
+    for (final core::int* #t10 in <core::int*>[2])
+      #t9.{core::Set::add}{Invariant}(#t10);
+    final core::Iterable<core::int*>* #t11 = <core::int*>[3];
+    if(!#t11.{core::Object::==}(null))
+      for (final core::int* #t12 in #t11)
+        #t9.{core::Set::add}{Invariant}(#t12);
+  } =>#t9;
   final dynamic aSetOrMap = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection.dart:23:21: Error: Not enough type information to disambiguate between literal set and literal map.
 Try providing type arguments for the literal explicitly to disambiguate it.
   final aSetOrMap = {...foo()};
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection.dart.weak.transformed.expect
index 2972e81..791309b 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection.dart.weak.transformed.expect
@@ -13,39 +13,62 @@
 
 static method main() → dynamic {
   final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = <core::int*>[1];
-    #t1.{core::List::addAll}{Invariant}(<core::int*>[2]);
-    final core::Iterable<core::int*>* #t2 = <core::int*>[3];
-    if(!#t2.{core::Object::==}(null))
-      #t1.{core::List::addAll}{Invariant}(#t2);
+    final core::List<core::int*>* #t1 = <core::int*>[];
+    #t1.{core::List::add}{Invariant}(1);
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[2].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t2 = :sync-for-iterator.{core::Iterator::current};
+        #t1.{core::List::add}{Invariant}(#t2);
+      }
+    }
+    final core::Iterable<core::int*>* #t3 = <core::int*>[3];
+    if(!#t3.{core::Object::==}(null)) {
+      core::Iterator<core::int*>* :sync-for-iterator = #t3.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t4 = :sync-for-iterator.{core::Iterator::current};
+        #t1.{core::List::add}{Invariant}(#t4);
+      }
+    }
   } =>#t1;
   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);
+    final core::Map<core::int*, core::int*>* #t5 = <core::int*, core::int*>{};
+    #t5.{core::Map::[]=}{Invariant}(1, 1);
     {
       core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = <core::int*, core::int*>{2: 2}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int*, core::int*>* #t4 = :sync-for-iterator.{core::Iterator::current};
-        #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}, #t4.{core::MapEntry::value});
-      }
-    }
-    final core::Map<core::int*, core::int*>* #t5 = <core::int*, core::int*>{3: 3};
-    if(!#t5.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = #t5.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::MapEntry<core::int*, core::int*>* #t6 = :sync-for-iterator.{core::Iterator::current};
-        #t3.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}, #t6.{core::MapEntry::value});
+        #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}, #t6.{core::MapEntry::value});
       }
     }
-  } =>#t3;
+    final core::Map<core::int*, core::int*>* #t7 = <core::int*, core::int*>{3: 3};
+    if(!#t7.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = #t7.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<core::int*, core::int*>* #t8 = :sync-for-iterator.{core::Iterator::current};
+        #t5.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}, #t8.{core::MapEntry::value});
+      }
+    }
+  } =>#t5;
   final core::Set<core::int*>* aSet = block {
-    final core::Set<core::int*>* #t7 = new col::_CompactLinkedHashSet::•<core::int*>();
-    #t7.{core::Set::add}{Invariant}(1);
-    #t7.{core::Set::addAll}{Invariant}(<core::int*>[2]);
-    final core::Iterable<core::int*>* #t8 = <core::int*>[3];
-    if(!#t8.{core::Object::==}(null))
-      #t7.{core::Set::addAll}{Invariant}(#t8);
-  } =>#t7;
+    final core::Set<core::int*>* #t9 = new col::_CompactLinkedHashSet::•<core::int*>();
+    #t9.{core::Set::add}{Invariant}(1);
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[2].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t10 = :sync-for-iterator.{core::Iterator::current};
+        #t9.{core::Set::add}{Invariant}(#t10);
+      }
+    }
+    final core::Iterable<core::int*>* #t11 = <core::int*>[3];
+    if(!#t11.{core::Object::==}(null)) {
+      core::Iterator<core::int*>* :sync-for-iterator = #t11.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t12 = :sync-for-iterator.{core::Iterator::current};
+        #t9.{core::Set::add}{Invariant}(#t12);
+      }
+    }
+  } =>#t9;
   final dynamic aSetOrMap = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection.dart:23:21: Error: Not enough type information to disambiguate between literal set and literal map.
 Try providing type arguments for the literal explicitly to disambiguate it.
   final aSetOrMap = {...foo()};
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart.weak.expect
index dc07d28..6d91849 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart.weak.expect
@@ -110,153 +110,177 @@
   core::Map<core::int*, core::num*>* mapIntNum = <core::int*, core::num*>{42: 42};
   core::List<core::num*>* listNum = <core::num*>[42];
   core::List<dynamic>* lhs10 = block {
-    final core::List<dynamic>* #t1 = core::List::of<dynamic>(<dynamic>[]);
+    final core::List<dynamic>* #t1 = <dynamic>[];
+    for (final dynamic #t2 in <dynamic>[])
+      #t1.{core::List::add}{Invariant}(#t2);
   } =>#t1;
   core::Set<dynamic>* set10 = block {
-    final core::Set<dynamic>* #t2 = col::LinkedHashSet::of<dynamic>(<dynamic>[]);
-  } =>#t2;
-  core::Map<dynamic, dynamic>* map10 = block {
-    final core::Map<dynamic, dynamic>* #t3 = <dynamic, dynamic>{};
-    for (final core::MapEntry<dynamic, dynamic>* #t4 in <dynamic, dynamic>{}.{core::Map::entries})
-      #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}, #t4.{core::MapEntry::value});
+    final core::Set<dynamic>* #t3 = col::LinkedHashSet::•<dynamic>();
+    for (final dynamic #t4 in <dynamic>[])
+      #t3.{core::Set::add}{Invariant}(#t4);
   } =>#t3;
-  core::Map<dynamic, dynamic>* map10ambiguous = block {
+  core::Map<dynamic, dynamic>* map10 = block {
     final core::Map<dynamic, dynamic>* #t5 = <dynamic, dynamic>{};
     for (final core::MapEntry<dynamic, dynamic>* #t6 in <dynamic, dynamic>{}.{core::Map::entries})
       #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}, #t6.{core::MapEntry::value});
   } =>#t5;
-  core::List<core::int*>* lhs20 = block {
-    final core::List<core::int*>* #t7 = core::List::of<core::int*>(spread);
+  core::Map<dynamic, dynamic>* map10ambiguous = block {
+    final core::Map<dynamic, dynamic>* #t7 = <dynamic, dynamic>{};
+    for (final core::MapEntry<dynamic, dynamic>* #t8 in <dynamic, dynamic>{}.{core::Map::entries})
+      #t7.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}, #t8.{core::MapEntry::value});
   } =>#t7;
-  core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t8 = col::LinkedHashSet::of<core::int*>(spread);
-    #t8.{core::Set::add}{Invariant}(42);
-  } =>#t8;
-  core::Set<core::int*>* set20ambiguous = block {
-    final core::Set<core::int*>* #t9 = col::LinkedHashSet::•<core::int*>();
-    for (final dynamic #t10 in spread) {
-      final core::int* #t11 = #t10 as{TypeError} core::int*;
-      #t9.{core::Set::add}{Invariant}(#t11);
-    }
+  core::List<core::int*>* lhs20 = block {
+    final core::List<core::int*>* #t9 = <core::int*>[];
+    for (final core::int* #t10 in spread)
+      #t9.{core::List::add}{Invariant}(#t10);
   } =>#t9;
+  core::Set<core::int*>* set20 = block {
+    final core::Set<core::int*>* #t11 = col::LinkedHashSet::•<core::int*>();
+    for (final core::int* #t12 in spread)
+      #t11.{core::Set::add}{Invariant}(#t12);
+    #t11.{core::Set::add}{Invariant}(42);
+  } =>#t11;
+  core::Set<core::int*>* set20ambiguous = block {
+    final core::Set<core::int*>* #t13 = col::LinkedHashSet::•<core::int*>();
+    for (final dynamic #t14 in spread) {
+      final core::int* #t15 = #t14 as{TypeError} core::int*;
+      #t13.{core::Set::add}{Invariant}(#t15);
+    }
+  } =>#t13;
   core::Map<core::String*, core::int*>* map20 = block {
-    final core::Map<core::String*, core::int*>* #t12 = <core::String*, core::int*>{};
-    for (final core::MapEntry<core::String*, core::int*>* #t13 in mapSpread.{core::Map::entries})
-      #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}, #t13.{core::MapEntry::value});
-    #t12.{core::Map::[]=}{Invariant}("baz", 42);
-  } =>#t12;
-  core::Map<core::String*, core::int*>* map20ambiguous = block {
-    final core::Map<core::String*, core::int*>* #t14 = <core::String*, core::int*>{};
-    for (final core::MapEntry<core::String*, core::int*>* #t15 in mapSpread.{core::Map::entries})
-      #t14.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}, #t15.{core::MapEntry::value});
-  } =>#t14;
-  core::List<dynamic>* lhs21 = block {
-    final core::List<dynamic>* #t16 = core::List::of<dynamic>((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*);
+    final core::Map<core::String*, core::int*>* #t16 = <core::String*, core::int*>{};
+    for (final core::MapEntry<core::String*, core::int*>* #t17 in mapSpread.{core::Map::entries})
+      #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}, #t17.{core::MapEntry::value});
+    #t16.{core::Map::[]=}{Invariant}("baz", 42);
   } =>#t16;
-  core::Set<dynamic>* set21 = block {
-    final core::Set<dynamic>* #t17 = col::LinkedHashSet::of<dynamic>((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t17.{core::Set::add}{Invariant}(42);
-  } =>#t17;
-  core::Map<dynamic, dynamic>* map21 = block {
-    final core::Map<dynamic, dynamic>* #t18 = <dynamic, dynamic>{};
-    for (final core::MapEntry<dynamic, dynamic>* #t19 in ((mapSpread as dynamic) as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries})
+  core::Map<core::String*, core::int*>* map20ambiguous = block {
+    final core::Map<core::String*, core::int*>* #t18 = <core::String*, core::int*>{};
+    for (final core::MapEntry<core::String*, core::int*>* #t19 in mapSpread.{core::Map::entries})
       #t18.{core::Map::[]=}{Invariant}(#t19.{core::MapEntry::key}, #t19.{core::MapEntry::value});
-    #t18.{core::Map::[]=}{Invariant}("baz", 42);
   } =>#t18;
+  core::List<dynamic>* lhs21 = block {
+    final core::List<dynamic>* #t20 = <dynamic>[];
+    for (final dynamic #t21 in (spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+      #t20.{core::List::add}{Invariant}(#t21);
+  } =>#t20;
+  core::Set<dynamic>* set21 = block {
+    final core::Set<dynamic>* #t22 = col::LinkedHashSet::•<dynamic>();
+    for (final dynamic #t23 in (spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*)
+      #t22.{core::Set::add}{Invariant}(#t23);
+    #t22.{core::Set::add}{Invariant}(42);
+  } =>#t22;
+  core::Map<dynamic, dynamic>* map21 = block {
+    final core::Map<dynamic, dynamic>* #t24 = <dynamic, dynamic>{};
+    for (final core::MapEntry<dynamic, dynamic>* #t25 in ((mapSpread as dynamic) as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries})
+      #t24.{core::Map::[]=}{Invariant}(#t25.{core::MapEntry::key}, #t25.{core::MapEntry::value});
+    #t24.{core::Map::[]=}{Invariant}("baz", 42);
+  } =>#t24;
   dynamic map21ambiguous = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:66:28: Error: Not enough type information to disambiguate between literal set and literal map.
 Try providing type arguments for the literal explicitly to disambiguate it.
   dynamic map21ambiguous = {...(mapSpread as dynamic)};
                            ^";
   core::List<core::int*>* lhs22 = block {
-    final core::List<core::int*>* #t20 = core::List::of<core::int*>(<core::int*>[]);
-  } =>#t20;
+    final core::List<core::int*>* #t26 = <core::int*>[];
+    for (final core::int* #t27 in <core::int*>[])
+      #t26.{core::List::add}{Invariant}(#t27);
+  } =>#t26;
   core::Set<core::int*>* set22 = block {
-    final core::Set<core::int*>* #t21 = col::LinkedHashSet::of<core::int*>(<core::int*>[]);
-    #t21.{core::Set::add}{Invariant}(42);
-  } =>#t21;
-  core::Set<core::int*>* set22ambiguous = block {
-    final core::Set<core::int*>* #t22 = col::LinkedHashSet::•<core::int*>();
-    for (final dynamic #t23 in <core::int*>[]) {
-      final core::int* #t24 = #t23 as{TypeError} core::int*;
-      #t22.{core::Set::add}{Invariant}(#t24);
-    }
-  } =>#t22;
-  core::Map<core::String*, core::int*>* map22 = block {
-    final core::Map<core::String*, core::int*>* #t25 = <core::String*, core::int*>{};
-    for (final core::MapEntry<core::String*, core::int*>* #t26 in <core::String*, core::int*>{}.{core::Map::entries})
-      #t25.{core::Map::[]=}{Invariant}(#t26.{core::MapEntry::key}, #t26.{core::MapEntry::value});
-  } =>#t25;
-  core::List<core::List<core::int*>*>* lhs23 = block {
-    final core::List<core::List<core::int*>*>* #t27 = core::List::of<core::List<core::int*>*>(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t27;
-  core::Set<core::List<core::int*>*>* set23 = block {
-    final core::Set<core::List<core::int*>*>* #t28 = col::LinkedHashSet::of<core::List<core::int*>*>(<core::List<core::int*>*>[<core::int*>[]]);
-    #t28.{core::Set::add}{Invariant}(<core::int*>[42]);
+    final core::Set<core::int*>* #t28 = col::LinkedHashSet::•<core::int*>();
+    for (final core::int* #t29 in <core::int*>[])
+      #t28.{core::Set::add}{Invariant}(#t29);
+    #t28.{core::Set::add}{Invariant}(42);
   } =>#t28;
-  core::Set<core::List<core::int*>*>* set23ambiguous = block {
-    final core::Set<core::List<core::int*>*>* #t29 = col::LinkedHashSet::•<core::List<core::int*>*>();
-    for (final dynamic #t30 in <core::List<core::int*>*>[<core::int*>[]]) {
-      final core::List<core::int*>* #t31 = #t30 as{TypeError} core::List<core::int*>*;
-      #t29.{core::Set::add}{Invariant}(#t31);
+  core::Set<core::int*>* set22ambiguous = block {
+    final core::Set<core::int*>* #t30 = col::LinkedHashSet::•<core::int*>();
+    for (final dynamic #t31 in <core::int*>[]) {
+      final core::int* #t32 = #t31 as{TypeError} core::int*;
+      #t30.{core::Set::add}{Invariant}(#t32);
     }
-  } =>#t29;
+  } =>#t30;
+  core::Map<core::String*, core::int*>* map22 = block {
+    final core::Map<core::String*, core::int*>* #t33 = <core::String*, core::int*>{};
+    for (final core::MapEntry<core::String*, core::int*>* #t34 in <core::String*, core::int*>{}.{core::Map::entries})
+      #t33.{core::Map::[]=}{Invariant}(#t34.{core::MapEntry::key}, #t34.{core::MapEntry::value});
+  } =>#t33;
+  core::List<core::List<core::int*>*>* lhs23 = block {
+    final core::List<core::List<core::int*>*>* #t35 = <core::List<core::int*>*>[];
+    for (final core::List<core::int*>* #t36 in <core::List<core::int*>*>[<core::int*>[]])
+      #t35.{core::List::add}{Invariant}(#t36);
+  } =>#t35;
+  core::Set<core::List<core::int*>*>* set23 = block {
+    final core::Set<core::List<core::int*>*>* #t37 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    for (final core::List<core::int*>* #t38 in <core::List<core::int*>*>[<core::int*>[]])
+      #t37.{core::Set::add}{Invariant}(#t38);
+    #t37.{core::Set::add}{Invariant}(<core::int*>[42]);
+  } =>#t37;
+  core::Set<core::List<core::int*>*>* set23ambiguous = block {
+    final core::Set<core::List<core::int*>*>* #t39 = col::LinkedHashSet::•<core::List<core::int*>*>();
+    for (final dynamic #t40 in <core::List<core::int*>*>[<core::int*>[]]) {
+      final core::List<core::int*>* #t41 = #t40 as{TypeError} core::List<core::int*>*;
+      #t39.{core::Set::add}{Invariant}(#t41);
+    }
+  } =>#t39;
   core::Map<core::String*, core::List<core::int*>*>* map23 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t32 = <core::String*, core::List<core::int*>*>{};
-    for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t33 in <core::String*, core::List<core::int*>*>{"baz": <core::int*>[]}.{core::Map::entries})
-      #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
-  } =>#t32;
+    final core::Map<core::String*, core::List<core::int*>*>* #t42 = <core::String*, core::List<core::int*>*>{};
+    for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t43 in <core::String*, core::List<core::int*>*>{"baz": <core::int*>[]}.{core::Map::entries})
+      #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
+  } =>#t42;
   dynamic map24ambiguous = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:98:28: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
   dynamic map24ambiguous = {...spread, ...mapSpread};
                            ^";
-  core::int* lhs30 = let final<BottomType> #t34 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:100:36: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
+  core::int* lhs30 = let final<BottomType> #t44 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:100:36: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
  - 'List' is from 'dart:core'.
   int lhs30 = /*@ typeArgs=int* */ [...spread];
                                    ^" in ( block {
-    final core::List<core::int*>* #t35 = core::List::of<core::int*>(spread);
-  } =>#t35) as{TypeError} core::int*;
-  core::int* set30 = let final<BottomType> #t36 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:102:36: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
+    final core::List<core::int*>* #t45 = <core::int*>[];
+    for (final core::int* #t46 in spread)
+      #t45.{core::List::add}{Invariant}(#t46);
+  } =>#t45) as{TypeError} core::int*;
+  core::int* set30 = let final<BottomType> #t47 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:102:36: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
  - 'Set' is from 'dart:core'.
   int set30 = /*@ typeArgs=int* */ {...spread, 42};
                                    ^" in ( block {
-    final core::Set<core::int*>* #t37 = col::LinkedHashSet::of<core::int*>(spread);
-    #t37.{core::Set::add}{Invariant}(42);
-  } =>#t37) as{TypeError} core::int*;
-  core::int* set30ambiguous = let final<BottomType> #t38 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:105:7: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
+    final core::Set<core::int*>* #t48 = col::LinkedHashSet::•<core::int*>();
+    for (final core::int* #t49 in spread)
+      #t48.{core::Set::add}{Invariant}(#t49);
+    #t48.{core::Set::add}{Invariant}(42);
+  } =>#t48) as{TypeError} core::int*;
+  core::int* set30ambiguous = let final<BottomType> #t50 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:105:7: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
  - 'Set' is from 'dart:core'.
       {...spread};
       ^" in ( block {
-    final core::Set<core::int*>* #t39 = col::LinkedHashSet::•<core::int*>();
-    for (final dynamic #t40 in spread) {
-      final core::int* #t41 = #t40 as{TypeError} core::int*;
-      #t39.{core::Set::add}{Invariant}(#t41);
+    final core::Set<core::int*>* #t51 = col::LinkedHashSet::•<core::int*>();
+    for (final dynamic #t52 in spread) {
+      final core::int* #t53 = #t52 as{TypeError} core::int*;
+      #t51.{core::Set::add}{Invariant}(#t53);
     }
-  } =>#t39) as{TypeError} core::int*;
-  core::int* map30 = let final<BottomType> #t42 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:108:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
+  } =>#t51) as{TypeError} core::int*;
+  core::int* map30 = let final<BottomType> #t54 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:108:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
  - 'Map' is from 'dart:core'.
       {...mapSpread, \"baz\": 42};
       ^" in ( block {
-    final core::Map<core::String*, core::int*>* #t43 = <core::String*, core::int*>{};
-    for (final core::MapEntry<core::String*, core::int*>* #t44 in mapSpread.{core::Map::entries})
-      #t43.{core::Map::[]=}{Invariant}(#t44.{core::MapEntry::key}, #t44.{core::MapEntry::value});
-    #t43.{core::Map::[]=}{Invariant}("baz", 42);
-  } =>#t43) as{TypeError} core::int*;
-  core::int* map30ambiguous = let final<BottomType> #t45 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:111:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
+    final core::Map<core::String*, core::int*>* #t55 = <core::String*, core::int*>{};
+    for (final core::MapEntry<core::String*, core::int*>* #t56 in mapSpread.{core::Map::entries})
+      #t55.{core::Map::[]=}{Invariant}(#t56.{core::MapEntry::key}, #t56.{core::MapEntry::value});
+    #t55.{core::Map::[]=}{Invariant}("baz", 42);
+  } =>#t55) as{TypeError} core::int*;
+  core::int* map30ambiguous = let final<BottomType> #t57 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:111:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
  - 'Map' is from 'dart:core'.
       {...mapSpread};
       ^" in ( block {
-    final core::Map<core::String*, core::int*>* #t46 = <core::String*, core::int*>{};
-    for (final core::MapEntry<core::String*, core::int*>* #t47 in mapSpread.{core::Map::entries})
-      #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}, #t47.{core::MapEntry::value});
-  } =>#t46) as{TypeError} core::int*;
+    final core::Map<core::String*, core::int*>* #t58 = <core::String*, core::int*>{};
+    for (final core::MapEntry<core::String*, core::int*>* #t59 in mapSpread.{core::Map::entries})
+      #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}, #t59.{core::MapEntry::value});
+  } =>#t58) as{TypeError} core::int*;
   core::List<dynamic>* lhs40 = <dynamic>[invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:113:38: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
   List<dynamic> lhs40 = <dynamic>[...notSpreadInt];
                                      ^"];
   core::Set<dynamic>* set40 = block {
-    final core::Set<dynamic>* #t48 = col::LinkedHashSet::•<dynamic>();
-    #t48.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:115:37: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
+    final core::Set<dynamic>* #t60 = col::LinkedHashSet::•<dynamic>();
+    #t60.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:115:37: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
   Set<dynamic> set40 = <dynamic>{...notSpreadInt};
                                     ^");
-  } =>#t48;
+  } =>#t60;
   core::Map<dynamic, dynamic>* map40 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:117:55: Error: Unexpected type 'int' of a map spread entry.  Expected 'dynamic' or a Map.
   Map<dynamic, dynamic> map40 = <dynamic, dynamic>{...notSpreadInt};
                                                       ^": null};
@@ -264,11 +288,11 @@
   List<dynamic> lhs50 = <dynamic>[...notSpreadFunction];
                                      ^"];
   core::Set<dynamic>* set50 = block {
-    final core::Set<dynamic>* #t49 = col::LinkedHashSet::•<dynamic>();
-    #t49.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:121:37: Error: Unexpected type 'int Function()' of a spread.  Expected 'dynamic' or an Iterable.
+    final core::Set<dynamic>* #t61 = col::LinkedHashSet::•<dynamic>();
+    #t61.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:121:37: Error: Unexpected type 'int Function()' of a spread.  Expected 'dynamic' or an Iterable.
   Set<dynamic> set50 = <dynamic>{...notSpreadFunction};
                                     ^");
-  } =>#t49;
+  } =>#t61;
   core::Map<dynamic, dynamic>* map50 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:123:55: Error: Unexpected type 'int Function()' of a map spread entry.  Expected 'dynamic' or a Map.
   Map<dynamic, dynamic> map50 = <dynamic, dynamic>{...notSpreadFunction};
                                                       ^": null};
@@ -276,11 +300,11 @@
   List<String> lhs60 = <String>[...spread];
                                    ^"];
   core::Set<core::String*>* set60 = block {
-    final core::Set<core::String*>* #t50 = col::LinkedHashSet::•<core::String*>();
-    #t50.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:127:35: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
+    final core::Set<core::String*>* #t62 = col::LinkedHashSet::•<core::String*>();
+    #t62.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:127:35: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
   Set<String> set60 = <String>{...spread};
                                   ^");
-  } =>#t50;
+  } =>#t62;
   core::Map<core::int*, core::int*>* map60 = <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:129:39: Error: Can't assign spread entry keys of type 'String' to map entry keys of type 'int'.
   Map<int, int> map60 = <int, int>{...mapSpread};
                                       ^": null};
@@ -291,90 +315,92 @@
   List<int> lhs70 = <int>[...null];
                              ^"];
   core::Set<core::int*>* set70 = block {
-    final core::Set<core::int*>* #t51 = col::LinkedHashSet::•<core::int*>();
-    #t51.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:135:29: Error: Can't spread a value with static type 'Null'.
+    final core::Set<core::int*>* #t63 = col::LinkedHashSet::•<core::int*>();
+    #t63.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:135:29: Error: Can't spread a value with static type 'Null'.
   Set<int> set70 = <int>{...null};
                             ^");
-  } =>#t51;
+  } =>#t63;
   core::Set<dynamic>* set71ambiguous = block {
-    final core::Set<dynamic>* #t52 = col::LinkedHashSet::•<dynamic>();
-    #t52.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:139:8: Error: Expected ',' before this.
+    final core::Set<dynamic>* #t64 = col::LinkedHashSet::•<dynamic>();
+    #t64.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:139:8: Error: Expected ',' before this.
     ...null,
        ^");
-    for (final dynamic #t53 in <dynamic>[]) {
-      final dynamic #t54 = #t53 as{TypeError} dynamic;
-      #t52.{core::Set::add}{Invariant}(#t54);
+    for (final dynamic #t65 in <dynamic>[]) {
+      final dynamic #t66 = #t65 as{TypeError} dynamic;
+      #t64.{core::Set::add}{Invariant}(#t66);
     }
-  } =>#t52;
+  } =>#t64;
   core::Map<core::String*, core::int*>* map70 = <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:144:45: Error: Can't spread a value with static type 'Null'.
   Map<String, int> map70 = <String, int>{...null};
                                             ^": null};
   core::List<core::int*>* lhs80 = block {
-    final core::List<core::int*>* #t55 = <core::int*>[];
-    final core::Iterable<core::int*>* #t56 = null;
-    if(!#t56.{core::Object::==}(null))
-      #t55.{core::List::addAll}{Invariant}(#t56);
-  } =>#t55;
+    final core::List<core::int*>* #t67 = <core::int*>[];
+    final core::Iterable<core::int*>* #t68 = null;
+    if(!#t68.{core::Object::==}(null))
+      for (final core::int* #t69 in #t68)
+        #t67.{core::List::add}{Invariant}(#t69);
+  } =>#t67;
   core::Set<core::int*>* set80 = block {
-    final core::Set<core::int*>* #t57 = col::LinkedHashSet::•<core::int*>();
-    final core::Iterable<core::int*>* #t58 = null;
-    if(!#t58.{core::Object::==}(null))
-      #t57.{core::Set::addAll}{Invariant}(#t58);
-  } =>#t57;
-  core::Set<dynamic>* set81ambiguous = block {
-    final core::Set<dynamic>* #t59 = col::LinkedHashSet::•<dynamic>();
-    final core::Iterable<dynamic>* #t60 = null;
-    if(!#t60.{core::Object::==}(null))
-      for (final dynamic #t61 in #t60) {
-        final dynamic #t62 = #t61 as{TypeError} dynamic;
-        #t59.{core::Set::add}{Invariant}(#t62);
-      }
-    for (final dynamic #t63 in <dynamic>[]) {
-      final dynamic #t64 = #t63 as{TypeError} dynamic;
-      #t59.{core::Set::add}{Invariant}(#t64);
-    }
-  } =>#t59;
-  core::Map<core::String*, core::int*>* map80 = block {
-    final core::Map<core::String*, core::int*>* #t65 = <core::String*, core::int*>{};
-    final core::Map<core::String*, core::int*>* #t66 = null;
-    if(!#t66.{core::Object::==}(null))
-      for (final core::MapEntry<core::String*, core::int*>* #t67 in #t66.{core::Map::entries})
-        #t65.{core::Map::[]=}{Invariant}(#t67.{core::MapEntry::key}, #t67.{core::MapEntry::value});
-  } =>#t65;
-  core::Map<core::String*, core::int*>* map90 = block {
-    final core::Map<core::String*, core::int*>* #t68 = <core::String*, core::int*>{};
-    for (final core::MapEntry<core::String*, core::int*>* #t69 in self::bar<core::String*, core::int*>().{core::Map::entries})
-      #t68.{core::Map::[]=}{Invariant}(#t69.{core::MapEntry::key}, #t69.{core::MapEntry::value});
-  } =>#t68;
-  core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t70 = <core::int*>[];
-    for (final dynamic #t71 in listNum) {
-      final core::int* #t72 = #t71 as{TypeError} core::int*;
-      #t70.{core::List::add}{Invariant}(#t72);
-    }
+    final core::Set<core::int*>* #t70 = col::LinkedHashSet::•<core::int*>();
+    final core::Iterable<core::int*>* #t71 = null;
+    if(!#t71.{core::Object::==}(null))
+      for (final core::int* #t72 in #t71)
+        #t70.{core::Set::add}{Invariant}(#t72);
   } =>#t70;
-  core::Map<core::num*, core::int*>* map100 = block {
-    final core::Map<core::num*, core::int*>* #t73 = <core::num*, core::int*>{};
-    for (final core::MapEntry<dynamic, dynamic>* #t74 in mapIntNum.{core::Map::entries}) {
-      final core::num* #t75 = #t74.{core::MapEntry::key} as{TypeError} core::num*;
-      final core::int* #t76 = #t74.{core::MapEntry::value} as{TypeError} core::int*;
-      #t73.{core::Map::[]=}{Invariant}(#t75, #t76);
+  core::Set<dynamic>* set81ambiguous = block {
+    final core::Set<dynamic>* #t73 = col::LinkedHashSet::•<dynamic>();
+    final core::Iterable<dynamic>* #t74 = null;
+    if(!#t74.{core::Object::==}(null))
+      for (final dynamic #t75 in #t74) {
+        final dynamic #t76 = #t75 as{TypeError} dynamic;
+        #t73.{core::Set::add}{Invariant}(#t76);
+      }
+    for (final dynamic #t77 in <dynamic>[]) {
+      final dynamic #t78 = #t77 as{TypeError} dynamic;
+      #t73.{core::Set::add}{Invariant}(#t78);
     }
   } =>#t73;
+  core::Map<core::String*, core::int*>* map80 = block {
+    final core::Map<core::String*, core::int*>* #t79 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t80 = null;
+    if(!#t80.{core::Object::==}(null))
+      for (final core::MapEntry<core::String*, core::int*>* #t81 in #t80.{core::Map::entries})
+        #t79.{core::Map::[]=}{Invariant}(#t81.{core::MapEntry::key}, #t81.{core::MapEntry::value});
+  } =>#t79;
+  core::Map<core::String*, core::int*>* map90 = block {
+    final core::Map<core::String*, core::int*>* #t82 = <core::String*, core::int*>{};
+    for (final core::MapEntry<core::String*, core::int*>* #t83 in self::bar<core::String*, core::int*>().{core::Map::entries})
+      #t82.{core::Map::[]=}{Invariant}(#t83.{core::MapEntry::key}, #t83.{core::MapEntry::value});
+  } =>#t82;
+  core::List<core::int*>* list100 = block {
+    final core::List<core::int*>* #t84 = <core::int*>[];
+    for (final dynamic #t85 in listNum) {
+      final core::int* #t86 = #t85 as{TypeError} core::int*;
+      #t84.{core::List::add}{Invariant}(#t86);
+    }
+  } =>#t84;
+  core::Map<core::num*, core::int*>* map100 = block {
+    final core::Map<core::num*, core::int*>* #t87 = <core::num*, core::int*>{};
+    for (final core::MapEntry<dynamic, dynamic>* #t88 in mapIntNum.{core::Map::entries}) {
+      final core::num* #t89 = #t88.{core::MapEntry::key} as{TypeError} core::num*;
+      final core::int* #t90 = #t88.{core::MapEntry::value} as{TypeError} core::int*;
+      #t87.{core::Map::[]=}{Invariant}(#t89, #t90);
+    }
+  } =>#t87;
   core::List<core::int*>* list110 = block {
-    final core::List<core::int*>* #t77 = <core::int*>[];
-    for (final dynamic #t78 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-      final core::int* #t79 = #t78 as{TypeError} core::int*;
-      #t77.{core::List::add}{Invariant}(#t79);
+    final core::List<core::int*>* #t91 = <core::int*>[];
+    for (final dynamic #t92 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+      final core::int* #t93 = #t92 as{TypeError} core::int*;
+      #t91.{core::List::add}{Invariant}(#t93);
     }
-  } =>#t77;
+  } =>#t91;
   core::Map<core::num*, core::int*>* map110 = block {
-    final core::Map<core::num*, core::int*>* #t80 = <core::num*, core::int*>{};
-    for (final core::MapEntry<dynamic, dynamic>* #t81 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}) {
-      final core::num* #t82 = #t81.{core::MapEntry::key} as{TypeError} core::num*;
-      final core::int* #t83 = #t81.{core::MapEntry::value} as{TypeError} core::int*;
-      #t80.{core::Map::[]=}{Invariant}(#t82, #t83);
+    final core::Map<core::num*, core::int*>* #t94 = <core::num*, core::int*>{};
+    for (final core::MapEntry<dynamic, dynamic>* #t95 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}) {
+      final core::num* #t96 = #t95.{core::MapEntry::key} as{TypeError} core::num*;
+      final core::int* #t97 = #t95.{core::MapEntry::value} as{TypeError} core::int*;
+      #t94.{core::Map::[]=}{Invariant}(#t96, #t97);
     }
-  } =>#t80;
+  } =>#t94;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart.weak.transformed.expect
index d10c002..4cafcc2 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart.weak.transformed.expect
@@ -110,22 +110,26 @@
   core::Map<core::int*, core::num*>* mapIntNum = <core::int*, core::num*>{42: 42};
   core::List<core::num*>* listNum = <core::num*>[42];
   core::List<dynamic>* lhs10 = block {
-    final core::List<dynamic>* #t1 = core::List::of<dynamic>(<dynamic>[]);
+    final core::List<dynamic>* #t1 = <dynamic>[];
+    {
+      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t2 = :sync-for-iterator.{core::Iterator::current};
+        #t1.{core::List::add}{Invariant}(#t2);
+      }
+    }
   } =>#t1;
   core::Set<dynamic>* set10 = block {
-    final core::Set<dynamic>* #t2 = col::LinkedHashSet::of<dynamic>(<dynamic>[]);
-  } =>#t2;
-  core::Map<dynamic, dynamic>* map10 = block {
-    final core::Map<dynamic, dynamic>* #t3 = <dynamic, dynamic>{};
+    final core::Set<dynamic>* #t3 = new col::_CompactLinkedHashSet::•<dynamic>();
     {
-      core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = <dynamic, dynamic>{}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic>* #t4 = :sync-for-iterator.{core::Iterator::current};
-        #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}, #t4.{core::MapEntry::value});
+        final dynamic #t4 = :sync-for-iterator.{core::Iterator::current};
+        #t3.{core::Set::add}{Invariant}(#t4);
       }
     }
   } =>#t3;
-  core::Map<dynamic, dynamic>* map10ambiguous = block {
+  core::Map<dynamic, dynamic>* map10 = block {
     final core::Map<dynamic, dynamic>* #t5 = <dynamic, dynamic>{};
     {
       core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = <dynamic, dynamic>{}.{core::Map::entries}.{core::Iterable::iterator};
@@ -135,197 +139,277 @@
       }
     }
   } =>#t5;
-  core::List<core::int*>* lhs20 = block {
-    final core::List<core::int*>* #t7 = core::List::of<core::int*>(spread);
+  core::Map<dynamic, dynamic>* map10ambiguous = block {
+    final core::Map<dynamic, dynamic>* #t7 = <dynamic, dynamic>{};
+    {
+      core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = <dynamic, dynamic>{}.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<dynamic, dynamic>* #t8 = :sync-for-iterator.{core::Iterator::current};
+        #t7.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}, #t8.{core::MapEntry::value});
+      }
+    }
   } =>#t7;
-  core::Set<core::int*>* set20 = block {
-    final core::Set<core::int*>* #t8 = col::LinkedHashSet::of<core::int*>(spread);
-    #t8.{core::Set::add}{Invariant}(42);
-  } =>#t8;
-  core::Set<core::int*>* set20ambiguous = block {
-    final core::Set<core::int*>* #t9 = new col::_CompactLinkedHashSet::•<core::int*>();
+  core::List<core::int*>* lhs20 = block {
+    final core::List<core::int*>* #t9 = <core::int*>[];
     {
       core::Iterator<core::int*>* :sync-for-iterator = spread.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t10 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t11 = #t10 as{TypeError} core::int*;
-          #t9.{core::Set::add}{Invariant}(#t11);
-        }
+        final core::int* #t10 = :sync-for-iterator.{core::Iterator::current};
+        #t9.{core::List::add}{Invariant}(#t10);
       }
     }
   } =>#t9;
+  core::Set<core::int*>* set20 = block {
+    final core::Set<core::int*>* #t11 = new col::_CompactLinkedHashSet::•<core::int*>();
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = spread.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t12 = :sync-for-iterator.{core::Iterator::current};
+        #t11.{core::Set::add}{Invariant}(#t12);
+      }
+    }
+    #t11.{core::Set::add}{Invariant}(42);
+  } =>#t11;
+  core::Set<core::int*>* set20ambiguous = block {
+    final core::Set<core::int*>* #t13 = new col::_CompactLinkedHashSet::•<core::int*>();
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = spread.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t14 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int* #t15 = #t14 as{TypeError} core::int*;
+          #t13.{core::Set::add}{Invariant}(#t15);
+        }
+      }
+    }
+  } =>#t13;
   core::Map<core::String*, core::int*>* map20 = block {
-    final core::Map<core::String*, core::int*>* #t12 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t16 = <core::String*, core::int*>{};
     {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapSpread.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t13 = :sync-for-iterator.{core::Iterator::current};
-        #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}, #t13.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t17 = :sync-for-iterator.{core::Iterator::current};
+        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}, #t17.{core::MapEntry::value});
       }
     }
-    #t12.{core::Map::[]=}{Invariant}("baz", 42);
-  } =>#t12;
-  core::Map<core::String*, core::int*>* map20ambiguous = block {
-    final core::Map<core::String*, core::int*>* #t14 = <core::String*, core::int*>{};
-    {
-      core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapSpread.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t15 = :sync-for-iterator.{core::Iterator::current};
-        #t14.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}, #t15.{core::MapEntry::value});
-      }
-    }
-  } =>#t14;
-  core::List<dynamic>* lhs21 = block {
-    final core::List<dynamic>* #t16 = core::List::of<dynamic>((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*);
+    #t16.{core::Map::[]=}{Invariant}("baz", 42);
   } =>#t16;
-  core::Set<dynamic>* set21 = block {
-    final core::Set<dynamic>* #t17 = col::LinkedHashSet::of<dynamic>((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*);
-    #t17.{core::Set::add}{Invariant}(42);
-  } =>#t17;
-  core::Map<dynamic, dynamic>* map21 = block {
-    final core::Map<dynamic, dynamic>* #t18 = <dynamic, dynamic>{};
+  core::Map<core::String*, core::int*>* map20ambiguous = block {
+    final core::Map<core::String*, core::int*>* #t18 = <core::String*, core::int*>{};
     {
-      core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = ((mapSpread as dynamic) as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapSpread.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic>* #t19 = :sync-for-iterator.{core::Iterator::current};
+        final core::MapEntry<core::String*, core::int*>* #t19 = :sync-for-iterator.{core::Iterator::current};
         #t18.{core::Map::[]=}{Invariant}(#t19.{core::MapEntry::key}, #t19.{core::MapEntry::value});
       }
     }
-    #t18.{core::Map::[]=}{Invariant}("baz", 42);
   } =>#t18;
+  core::List<dynamic>* lhs21 = block {
+    final core::List<dynamic>* #t20 = <dynamic>[];
+    {
+      core::Iterator<dynamic>* :sync-for-iterator = ((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t21 = :sync-for-iterator.{core::Iterator::current};
+        #t20.{core::List::add}{Invariant}(#t21);
+      }
+    }
+  } =>#t20;
+  core::Set<dynamic>* set21 = block {
+    final core::Set<dynamic>* #t22 = new col::_CompactLinkedHashSet::•<dynamic>();
+    {
+      core::Iterator<dynamic>* :sync-for-iterator = ((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t23 = :sync-for-iterator.{core::Iterator::current};
+        #t22.{core::Set::add}{Invariant}(#t23);
+      }
+    }
+    #t22.{core::Set::add}{Invariant}(42);
+  } =>#t22;
+  core::Map<dynamic, dynamic>* map21 = block {
+    final core::Map<dynamic, dynamic>* #t24 = <dynamic, dynamic>{};
+    {
+      core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = ((mapSpread as dynamic) as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<dynamic, dynamic>* #t25 = :sync-for-iterator.{core::Iterator::current};
+        #t24.{core::Map::[]=}{Invariant}(#t25.{core::MapEntry::key}, #t25.{core::MapEntry::value});
+      }
+    }
+    #t24.{core::Map::[]=}{Invariant}("baz", 42);
+  } =>#t24;
   dynamic map21ambiguous = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:66:28: Error: Not enough type information to disambiguate between literal set and literal map.
 Try providing type arguments for the literal explicitly to disambiguate it.
   dynamic map21ambiguous = {...(mapSpread as dynamic)};
                            ^";
   core::List<core::int*>* lhs22 = block {
-    final core::List<core::int*>* #t20 = core::List::of<core::int*>(<core::int*>[]);
-  } =>#t20;
-  core::Set<core::int*>* set22 = block {
-    final core::Set<core::int*>* #t21 = col::LinkedHashSet::of<core::int*>(<core::int*>[]);
-    #t21.{core::Set::add}{Invariant}(42);
-  } =>#t21;
-  core::Set<core::int*>* set22ambiguous = block {
-    final core::Set<core::int*>* #t22 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::List<core::int*>* #t26 = <core::int*>[];
     {
       core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t23 = :sync-for-iterator.{core::Iterator::current};
+        final core::int* #t27 = :sync-for-iterator.{core::Iterator::current};
+        #t26.{core::List::add}{Invariant}(#t27);
+      }
+    }
+  } =>#t26;
+  core::Set<core::int*>* set22 = block {
+    final core::Set<core::int*>* #t28 = new col::_CompactLinkedHashSet::•<core::int*>();
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t29 = :sync-for-iterator.{core::Iterator::current};
+        #t28.{core::Set::add}{Invariant}(#t29);
+      }
+    }
+    #t28.{core::Set::add}{Invariant}(42);
+  } =>#t28;
+  core::Set<core::int*>* set22ambiguous = block {
+    final core::Set<core::int*>* #t30 = new col::_CompactLinkedHashSet::•<core::int*>();
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t31 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int* #t24 = #t23 as{TypeError} core::int*;
-          #t22.{core::Set::add}{Invariant}(#t24);
+          final core::int* #t32 = #t31 as{TypeError} core::int*;
+          #t30.{core::Set::add}{Invariant}(#t32);
         }
       }
     }
-  } =>#t22;
+  } =>#t30;
   core::Map<core::String*, core::int*>* map22 = block {
-    final core::Map<core::String*, core::int*>* #t25 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t33 = <core::String*, core::int*>{};
     {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t26 = :sync-for-iterator.{core::Iterator::current};
-        #t25.{core::Map::[]=}{Invariant}(#t26.{core::MapEntry::key}, #t26.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t34 = :sync-for-iterator.{core::Iterator::current};
+        #t33.{core::Map::[]=}{Invariant}(#t34.{core::MapEntry::key}, #t34.{core::MapEntry::value});
       }
     }
-  } =>#t25;
+  } =>#t33;
   core::List<core::List<core::int*>*>* lhs23 = block {
-    final core::List<core::List<core::int*>*>* #t27 = core::List::of<core::List<core::int*>*>(<core::List<core::int*>*>[<core::int*>[]]);
-  } =>#t27;
-  core::Set<core::List<core::int*>*>* set23 = block {
-    final core::Set<core::List<core::int*>*>* #t28 = col::LinkedHashSet::of<core::List<core::int*>*>(<core::List<core::int*>*>[<core::int*>[]]);
-    #t28.{core::Set::add}{Invariant}(<core::int*>[42]);
-  } =>#t28;
-  core::Set<core::List<core::int*>*>* set23ambiguous = block {
-    final core::Set<core::List<core::int*>*>* #t29 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
+    final core::List<core::List<core::int*>*>* #t35 = <core::List<core::int*>*>[];
     {
       core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t30 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::List<core::int*>* #t31 = #t30 as{TypeError} core::List<core::int*>*;
-          #t29.{core::Set::add}{Invariant}(#t31);
-        }
+        final core::List<core::int*>* #t36 = :sync-for-iterator.{core::Iterator::current};
+        #t35.{core::List::add}{Invariant}(#t36);
       }
     }
-  } =>#t29;
-  core::Map<core::String*, core::List<core::int*>*>* map23 = block {
-    final core::Map<core::String*, core::List<core::int*>*>* #t32 = <core::String*, core::List<core::int*>*>{};
+  } =>#t35;
+  core::Set<core::List<core::int*>*>* set23 = block {
+    final core::Set<core::List<core::int*>*>* #t37 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"baz": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::List<core::int*>*>* #t33 = :sync-for-iterator.{core::Iterator::current};
-        #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
+        final core::List<core::int*>* #t38 = :sync-for-iterator.{core::Iterator::current};
+        #t37.{core::Set::add}{Invariant}(#t38);
       }
     }
-  } =>#t32;
-  dynamic map24ambiguous = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:98:28: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
-  dynamic map24ambiguous = {...spread, ...mapSpread};
-                           ^";
-  core::int* lhs30 = let final<BottomType> #t34 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:100:36: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
- - 'List' is from 'dart:core'.
-  int lhs30 = /*@ typeArgs=int* */ [...spread];
-                                   ^" in ( block {
-    final core::List<core::int*>* #t35 = core::List::of<core::int*>(spread);
-  } =>#t35) as{TypeError} core::int*;
-  core::int* set30 = let final<BottomType> #t36 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:102:36: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
- - 'Set' is from 'dart:core'.
-  int set30 = /*@ typeArgs=int* */ {...spread, 42};
-                                   ^" in ( block {
-    final core::Set<core::int*>* #t37 = col::LinkedHashSet::of<core::int*>(spread);
-    #t37.{core::Set::add}{Invariant}(42);
-  } =>#t37) as{TypeError} core::int*;
-  core::int* set30ambiguous = let final<BottomType> #t38 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:105:7: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
- - 'Set' is from 'dart:core'.
-      {...spread};
-      ^" in ( block {
-    final core::Set<core::int*>* #t39 = new col::_CompactLinkedHashSet::•<core::int*>();
+    #t37.{core::Set::add}{Invariant}(<core::int*>[42]);
+  } =>#t37;
+  core::Set<core::List<core::int*>*>* set23ambiguous = block {
+    final core::Set<core::List<core::int*>*>* #t39 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     {
-      core::Iterator<core::int*>* :sync-for-iterator = spread.{core::Iterable::iterator};
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t40 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int* #t41 = #t40 as{TypeError} core::int*;
+          final core::List<core::int*>* #t41 = #t40 as{TypeError} core::List<core::int*>*;
           #t39.{core::Set::add}{Invariant}(#t41);
         }
       }
     }
-  } =>#t39) as{TypeError} core::int*;
-  core::int* map30 = let final<BottomType> #t42 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:108:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
+  } =>#t39;
+  core::Map<core::String*, core::List<core::int*>*>* map23 = block {
+    final core::Map<core::String*, core::List<core::int*>*>* #t42 = <core::String*, core::List<core::int*>*>{};
+    {
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"baz": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<core::String*, core::List<core::int*>*>* #t43 = :sync-for-iterator.{core::Iterator::current};
+        #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
+      }
+    }
+  } =>#t42;
+  dynamic map24ambiguous = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:98:28: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+  dynamic map24ambiguous = {...spread, ...mapSpread};
+                           ^";
+  core::int* lhs30 = let final<BottomType> #t44 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:100:36: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
+ - 'List' is from 'dart:core'.
+  int lhs30 = /*@ typeArgs=int* */ [...spread];
+                                   ^" in ( block {
+    final core::List<core::int*>* #t45 = <core::int*>[];
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = spread.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t46 = :sync-for-iterator.{core::Iterator::current};
+        #t45.{core::List::add}{Invariant}(#t46);
+      }
+    }
+  } =>#t45) as{TypeError} core::int*;
+  core::int* set30 = let final<BottomType> #t47 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:102:36: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
+ - 'Set' is from 'dart:core'.
+  int set30 = /*@ typeArgs=int* */ {...spread, 42};
+                                   ^" in ( block {
+    final core::Set<core::int*>* #t48 = new col::_CompactLinkedHashSet::•<core::int*>();
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = spread.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t49 = :sync-for-iterator.{core::Iterator::current};
+        #t48.{core::Set::add}{Invariant}(#t49);
+      }
+    }
+    #t48.{core::Set::add}{Invariant}(42);
+  } =>#t48) as{TypeError} core::int*;
+  core::int* set30ambiguous = let final<BottomType> #t50 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:105:7: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
+ - 'Set' is from 'dart:core'.
+      {...spread};
+      ^" in ( block {
+    final core::Set<core::int*>* #t51 = new col::_CompactLinkedHashSet::•<core::int*>();
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = spread.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t52 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int* #t53 = #t52 as{TypeError} core::int*;
+          #t51.{core::Set::add}{Invariant}(#t53);
+        }
+      }
+    }
+  } =>#t51) as{TypeError} core::int*;
+  core::int* map30 = let final<BottomType> #t54 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:108:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
  - 'Map' is from 'dart:core'.
       {...mapSpread, \"baz\": 42};
       ^" in ( block {
-    final core::Map<core::String*, core::int*>* #t43 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t55 = <core::String*, core::int*>{};
     {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapSpread.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t44 = :sync-for-iterator.{core::Iterator::current};
-        #t43.{core::Map::[]=}{Invariant}(#t44.{core::MapEntry::key}, #t44.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t56 = :sync-for-iterator.{core::Iterator::current};
+        #t55.{core::Map::[]=}{Invariant}(#t56.{core::MapEntry::key}, #t56.{core::MapEntry::value});
       }
     }
-    #t43.{core::Map::[]=}{Invariant}("baz", 42);
-  } =>#t43) as{TypeError} core::int*;
-  core::int* map30ambiguous = let final<BottomType> #t45 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:111:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
+    #t55.{core::Map::[]=}{Invariant}("baz", 42);
+  } =>#t55) as{TypeError} core::int*;
+  core::int* map30ambiguous = let final<BottomType> #t57 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:111:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
  - 'Map' is from 'dart:core'.
       {...mapSpread};
       ^" in ( block {
-    final core::Map<core::String*, core::int*>* #t46 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t58 = <core::String*, core::int*>{};
     {
       core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapSpread.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t47 = :sync-for-iterator.{core::Iterator::current};
-        #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}, #t47.{core::MapEntry::value});
+        final core::MapEntry<core::String*, core::int*>* #t59 = :sync-for-iterator.{core::Iterator::current};
+        #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}, #t59.{core::MapEntry::value});
       }
     }
-  } =>#t46) as{TypeError} core::int*;
+  } =>#t58) as{TypeError} core::int*;
   core::List<dynamic>* lhs40 = <dynamic>[invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:113:38: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
   List<dynamic> lhs40 = <dynamic>[...notSpreadInt];
                                      ^"];
   core::Set<dynamic>* set40 = block {
-    final core::Set<dynamic>* #t48 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t48.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:115:37: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
+    final core::Set<dynamic>* #t60 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t60.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:115:37: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
   Set<dynamic> set40 = <dynamic>{...notSpreadInt};
                                     ^");
-  } =>#t48;
+  } =>#t60;
   core::Map<dynamic, dynamic>* map40 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:117:55: Error: Unexpected type 'int' of a map spread entry.  Expected 'dynamic' or a Map.
   Map<dynamic, dynamic> map40 = <dynamic, dynamic>{...notSpreadInt};
                                                       ^": null};
@@ -333,11 +417,11 @@
   List<dynamic> lhs50 = <dynamic>[...notSpreadFunction];
                                      ^"];
   core::Set<dynamic>* set50 = block {
-    final core::Set<dynamic>* #t49 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t49.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:121:37: Error: Unexpected type 'int Function()' of a spread.  Expected 'dynamic' or an Iterable.
+    final core::Set<dynamic>* #t61 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t61.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:121:37: Error: Unexpected type 'int Function()' of a spread.  Expected 'dynamic' or an Iterable.
   Set<dynamic> set50 = <dynamic>{...notSpreadFunction};
                                     ^");
-  } =>#t49;
+  } =>#t61;
   core::Map<dynamic, dynamic>* map50 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:123:55: Error: Unexpected type 'int Function()' of a map spread entry.  Expected 'dynamic' or a Map.
   Map<dynamic, dynamic> map50 = <dynamic, dynamic>{...notSpreadFunction};
                                                       ^": null};
@@ -345,11 +429,11 @@
   List<String> lhs60 = <String>[...spread];
                                    ^"];
   core::Set<core::String*>* set60 = block {
-    final core::Set<core::String*>* #t50 = new col::_CompactLinkedHashSet::•<core::String*>();
-    #t50.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:127:35: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
+    final core::Set<core::String*>* #t62 = new col::_CompactLinkedHashSet::•<core::String*>();
+    #t62.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:127:35: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
   Set<String> set60 = <String>{...spread};
                                   ^");
-  } =>#t50;
+  } =>#t62;
   core::Map<core::int*, core::int*>* map60 = <core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:129:39: Error: Can't assign spread entry keys of type 'String' to map entry keys of type 'int'.
   Map<int, int> map60 = <int, int>{...mapSpread};
                                       ^": null};
@@ -360,140 +444,150 @@
   List<int> lhs70 = <int>[...null];
                              ^"];
   core::Set<core::int*>* set70 = block {
-    final core::Set<core::int*>* #t51 = new col::_CompactLinkedHashSet::•<core::int*>();
-    #t51.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:135:29: Error: Can't spread a value with static type 'Null'.
+    final core::Set<core::int*>* #t63 = new col::_CompactLinkedHashSet::•<core::int*>();
+    #t63.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:135:29: Error: Can't spread a value with static type 'Null'.
   Set<int> set70 = <int>{...null};
                             ^");
-  } =>#t51;
+  } =>#t63;
   core::Set<dynamic>* set71ambiguous = block {
-    final core::Set<dynamic>* #t52 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t52.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:139:8: Error: Expected ',' before this.
+    final core::Set<dynamic>* #t64 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t64.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:139:8: Error: Expected ',' before this.
     ...null,
        ^");
     {
       core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t53 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t65 = :sync-for-iterator.{core::Iterator::current};
         {
-          final dynamic #t54 = #t53 as{TypeError} dynamic;
-          #t52.{core::Set::add}{Invariant}(#t54);
+          final dynamic #t66 = #t65 as{TypeError} dynamic;
+          #t64.{core::Set::add}{Invariant}(#t66);
         }
       }
     }
-  } =>#t52;
+  } =>#t64;
   core::Map<core::String*, core::int*>* map70 = <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:144:45: Error: Can't spread a value with static type 'Null'.
   Map<String, int> map70 = <String, int>{...null};
                                             ^": null};
   core::List<core::int*>* lhs80 = block {
-    final core::List<core::int*>* #t55 = <core::int*>[];
-    final core::Iterable<core::int*>* #t56 = null;
-    if(!#t56.{core::Object::==}(null))
-      #t55.{core::List::addAll}{Invariant}(#t56);
-  } =>#t55;
-  core::Set<core::int*>* set80 = block {
-    final core::Set<core::int*>* #t57 = new col::_CompactLinkedHashSet::•<core::int*>();
-    final core::Iterable<core::int*>* #t58 = null;
-    if(!#t58.{core::Object::==}(null))
-      #t57.{core::Set::addAll}{Invariant}(#t58);
-  } =>#t57;
-  core::Set<dynamic>* set81ambiguous = block {
-    final core::Set<dynamic>* #t59 = new col::_CompactLinkedHashSet::•<dynamic>();
-    final core::Iterable<dynamic>* #t60 = null;
-    if(!#t60.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t60.{core::Iterable::iterator};
+    final core::List<core::int*>* #t67 = <core::int*>[];
+    final core::Iterable<core::int*>* #t68 = null;
+    if(!#t68.{core::Object::==}(null)) {
+      core::Iterator<core::int*>* :sync-for-iterator = #t68.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t61 = :sync-for-iterator.{core::Iterator::current};
+        final core::int* #t69 = :sync-for-iterator.{core::Iterator::current};
+        #t67.{core::List::add}{Invariant}(#t69);
+      }
+    }
+  } =>#t67;
+  core::Set<core::int*>* set80 = block {
+    final core::Set<core::int*>* #t70 = new col::_CompactLinkedHashSet::•<core::int*>();
+    final core::Iterable<core::int*>* #t71 = null;
+    if(!#t71.{core::Object::==}(null)) {
+      core::Iterator<core::int*>* :sync-for-iterator = #t71.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t72 = :sync-for-iterator.{core::Iterator::current};
+        #t70.{core::Set::add}{Invariant}(#t72);
+      }
+    }
+  } =>#t70;
+  core::Set<dynamic>* set81ambiguous = block {
+    final core::Set<dynamic>* #t73 = new col::_CompactLinkedHashSet::•<dynamic>();
+    final core::Iterable<dynamic>* #t74 = null;
+    if(!#t74.{core::Object::==}(null)) {
+      core::Iterator<dynamic>* :sync-for-iterator = #t74.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t75 = :sync-for-iterator.{core::Iterator::current};
         {
-          final dynamic #t62 = #t61 as{TypeError} dynamic;
-          #t59.{core::Set::add}{Invariant}(#t62);
+          final dynamic #t76 = #t75 as{TypeError} dynamic;
+          #t73.{core::Set::add}{Invariant}(#t76);
         }
       }
     }
     {
       core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t63 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t77 = :sync-for-iterator.{core::Iterator::current};
         {
-          final dynamic #t64 = #t63 as{TypeError} dynamic;
-          #t59.{core::Set::add}{Invariant}(#t64);
-        }
-      }
-    }
-  } =>#t59;
-  core::Map<core::String*, core::int*>* map80 = block {
-    final core::Map<core::String*, core::int*>* #t65 = <core::String*, core::int*>{};
-    final core::Map<core::String*, core::int*>* #t66 = null;
-    if(!#t66.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = #t66.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t67 = :sync-for-iterator.{core::Iterator::current};
-        #t65.{core::Map::[]=}{Invariant}(#t67.{core::MapEntry::key}, #t67.{core::MapEntry::value});
-      }
-    }
-  } =>#t65;
-  core::Map<core::String*, core::int*>* map90 = block {
-    final core::Map<core::String*, core::int*>* #t68 = <core::String*, core::int*>{};
-    {
-      core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = self::bar<core::String*, core::int*>().{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String*, core::int*>* #t69 = :sync-for-iterator.{core::Iterator::current};
-        #t68.{core::Map::[]=}{Invariant}(#t69.{core::MapEntry::key}, #t69.{core::MapEntry::value});
-      }
-    }
-  } =>#t68;
-  core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t70 = <core::int*>[];
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = listNum.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t71 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t72 = #t71 as{TypeError} core::int*;
-          #t70.{core::List::add}{Invariant}(#t72);
-        }
-      }
-    }
-  } =>#t70;
-  core::Map<core::num*, core::int*>* map100 = block {
-    final core::Map<core::num*, core::int*>* #t73 = <core::num*, core::int*>{};
-    {
-      core::Iterator<core::MapEntry<core::int*, core::num*>>* :sync-for-iterator = mapIntNum.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic>* #t74 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num* #t75 = #t74.{core::MapEntry::key} as{TypeError} core::num*;
-          final core::int* #t76 = #t74.{core::MapEntry::value} as{TypeError} core::int*;
-          #t73.{core::Map::[]=}{Invariant}(#t75, #t76);
+          final dynamic #t78 = #t77 as{TypeError} dynamic;
+          #t73.{core::Set::add}{Invariant}(#t78);
         }
       }
     }
   } =>#t73;
+  core::Map<core::String*, core::int*>* map80 = block {
+    final core::Map<core::String*, core::int*>* #t79 = <core::String*, core::int*>{};
+    final core::Map<core::String*, core::int*>* #t80 = null;
+    if(!#t80.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = #t80.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<core::String*, core::int*>* #t81 = :sync-for-iterator.{core::Iterator::current};
+        #t79.{core::Map::[]=}{Invariant}(#t81.{core::MapEntry::key}, #t81.{core::MapEntry::value});
+      }
+    }
+  } =>#t79;
+  core::Map<core::String*, core::int*>* map90 = block {
+    final core::Map<core::String*, core::int*>* #t82 = <core::String*, core::int*>{};
+    {
+      core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = self::bar<core::String*, core::int*>().{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<core::String*, core::int*>* #t83 = :sync-for-iterator.{core::Iterator::current};
+        #t82.{core::Map::[]=}{Invariant}(#t83.{core::MapEntry::key}, #t83.{core::MapEntry::value});
+      }
+    }
+  } =>#t82;
+  core::List<core::int*>* list100 = block {
+    final core::List<core::int*>* #t84 = <core::int*>[];
+    {
+      core::Iterator<core::num*>* :sync-for-iterator = listNum.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t85 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int* #t86 = #t85 as{TypeError} core::int*;
+          #t84.{core::List::add}{Invariant}(#t86);
+        }
+      }
+    }
+  } =>#t84;
+  core::Map<core::num*, core::int*>* map100 = block {
+    final core::Map<core::num*, core::int*>* #t87 = <core::num*, core::int*>{};
+    {
+      core::Iterator<core::MapEntry<core::int*, core::num*>>* :sync-for-iterator = mapIntNum.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<dynamic, dynamic>* #t88 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::num* #t89 = #t88.{core::MapEntry::key} as{TypeError} core::num*;
+          final core::int* #t90 = #t88.{core::MapEntry::value} as{TypeError} core::int*;
+          #t87.{core::Map::[]=}{Invariant}(#t89, #t90);
+        }
+      }
+    }
+  } =>#t87;
   core::List<core::int*>* list110 = block {
-    final core::List<core::int*>* #t77 = <core::int*>[];
+    final core::List<core::int*>* #t91 = <core::int*>[];
     {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t78 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t92 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int* #t79 = #t78 as{TypeError} core::int*;
-          #t77.{core::List::add}{Invariant}(#t79);
+          final core::int* #t93 = #t92 as{TypeError} core::int*;
+          #t91.{core::List::add}{Invariant}(#t93);
         }
       }
     }
-  } =>#t77;
+  } =>#t91;
   core::Map<core::num*, core::int*>* map110 = block {
-    final core::Map<core::num*, core::int*>* #t80 = <core::num*, core::int*>{};
+    final core::Map<core::num*, core::int*>* #t94 = <core::num*, core::int*>{};
     {
       core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic>* #t81 = :sync-for-iterator.{core::Iterator::current};
+        final core::MapEntry<dynamic, dynamic>* #t95 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::num* #t82 = #t81.{core::MapEntry::key} as{TypeError} core::num*;
-          final core::int* #t83 = #t81.{core::MapEntry::value} as{TypeError} core::int*;
-          #t80.{core::Map::[]=}{Invariant}(#t82, #t83);
+          final core::num* #t96 = #t95.{core::MapEntry::key} as{TypeError} core::num*;
+          final core::int* #t97 = #t95.{core::MapEntry::value} as{TypeError} core::int*;
+          #t94.{core::Map::[]=}{Invariant}(#t96, #t97);
         }
       }
     }
-  } =>#t80;
+  } =>#t94;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.1.expect
index 4547b87..3749032 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.1.expect
@@ -317,8 +317,21 @@
     }
     operator /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ +(generic-covariant-impl dart.core::List<dart.core::int*> other) → dart.core::List<dart.core::int*>
       return block {
-        final dart.core::List<dart.core::int*> #t5 = dart.core::List::of<dart.core::int*>(this);
-        #t5.{dart.core::List::addAll}{Invariant}(other);
+        final dart.core::List<dart.core::int*> #t5 = <dart.core::int*>[];
+        {
+          dart.core::Iterator<dart.core::int*> :sync-for-iterator = this.{dart.core::Iterable::iterator};
+          for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
+            final dart.core::int* #t6 = :sync-for-iterator.{dart.core::Iterator::current};
+            #t5.{dart.core::List::add}{Invariant}(#t6);
+          }
+        }
+        {
+          dart.core::Iterator<dart.core::int*> :sync-for-iterator = other.{dart.core::Iterable::iterator};
+          for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
+            final dart.core::int* #t7 = :sync-for-iterator.{dart.core::Iterator::current};
+            #t5.{dart.core::List::add}{Invariant}(#t7);
+          }
+        }
       } =>#t5;
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ sublist(dart.core::int start, [dart.core::int? end = #C2]) → dart.core::List<dart.core::int*> {
       dart.core::int listLength = this.{dart.core::List::length};
@@ -339,7 +352,7 @@
       }
     }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(dart.core::int start, dart.core::int end, [generic-covariant-impl dart.core::int? fill = #C2]) → void {
-      dart.core::int* value = let dart.core::int? #t6 = fill in #t6.==(null) ?{dart.core::int*} #t6 : #t6{dart.core::int*};
+      dart.core::int* value = let dart.core::int? #t8 = fill in #t8.==(null) ?{dart.core::int*} #t8 : #t8{dart.core::int*};
       dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length});
       for (dart.core::int i = start; i.{dart.core::num::<}(end); i = i.{dart.core::num::+}(1)) {
         this.{dart.core::List::[]=}(i, value);
@@ -517,7 +530,7 @@
           for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
             dart.core::int* element = :sync-for-iterator.{dart.core::Iterator::current};
             {
-              this.{dart.core::List::[]=}(let final dart.core::int #t7 = index in let final dart.core::int #t8 = index = #t7.{dart.core::num::+}(1) in #t7, element);
+              this.{dart.core::List::[]=}(let final dart.core::int #t9 = index in let final dart.core::int #t10 = index = #t9.{dart.core::num::+}(1) in #t9, element);
             }
           }
         }
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.2.expect
index 4547b87..3749032 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.2.expect
@@ -317,8 +317,21 @@
     }
     operator /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ +(generic-covariant-impl dart.core::List<dart.core::int*> other) → dart.core::List<dart.core::int*>
       return block {
-        final dart.core::List<dart.core::int*> #t5 = dart.core::List::of<dart.core::int*>(this);
-        #t5.{dart.core::List::addAll}{Invariant}(other);
+        final dart.core::List<dart.core::int*> #t5 = <dart.core::int*>[];
+        {
+          dart.core::Iterator<dart.core::int*> :sync-for-iterator = this.{dart.core::Iterable::iterator};
+          for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
+            final dart.core::int* #t6 = :sync-for-iterator.{dart.core::Iterator::current};
+            #t5.{dart.core::List::add}{Invariant}(#t6);
+          }
+        }
+        {
+          dart.core::Iterator<dart.core::int*> :sync-for-iterator = other.{dart.core::Iterable::iterator};
+          for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
+            final dart.core::int* #t7 = :sync-for-iterator.{dart.core::Iterator::current};
+            #t5.{dart.core::List::add}{Invariant}(#t7);
+          }
+        }
       } =>#t5;
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ sublist(dart.core::int start, [dart.core::int? end = #C2]) → dart.core::List<dart.core::int*> {
       dart.core::int listLength = this.{dart.core::List::length};
@@ -339,7 +352,7 @@
       }
     }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(dart.core::int start, dart.core::int end, [generic-covariant-impl dart.core::int? fill = #C2]) → void {
-      dart.core::int* value = let dart.core::int? #t6 = fill in #t6.==(null) ?{dart.core::int*} #t6 : #t6{dart.core::int*};
+      dart.core::int* value = let dart.core::int? #t8 = fill in #t8.==(null) ?{dart.core::int*} #t8 : #t8{dart.core::int*};
       dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length});
       for (dart.core::int i = start; i.{dart.core::num::<}(end); i = i.{dart.core::num::+}(1)) {
         this.{dart.core::List::[]=}(i, value);
@@ -517,7 +530,7 @@
           for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
             dart.core::int* element = :sync-for-iterator.{dart.core::Iterator::current};
             {
-              this.{dart.core::List::[]=}(let final dart.core::int #t7 = index in let final dart.core::int #t8 = index = #t7.{dart.core::num::+}(1) in #t7, element);
+              this.{dart.core::List::[]=}(let final dart.core::int #t9 = index in let final dart.core::int #t10 = index = #t9.{dart.core::num::+}(1) in #t9, element);
             }
           }
         }
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_44_flutter.yaml b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_44_flutter.yaml
new file mode 100644
index 0000000..6ace390
--- /dev/null
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_44_flutter.yaml
@@ -0,0 +1,45 @@
+# Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE.md file.
+
+# Reproduce a crash.
+
+type: newworld
+trackWidgetCreation: true
+target: DDC # basically needed for widget creation to be run
+worlds:
+  - entry: flutter_gallery/lib/main.dart
+    experiments: alternative-invalidation-strategy
+    sources:
+      flutter_gallery/.dart_tool/package_config.json: |
+        {
+          "packages": [
+            {
+              "name": "flutter",
+              "rootUri": "../../flutter",
+              "packageUri": "lib/",
+              "languageVersion": "2.12"
+            }
+          ],
+          "configVersion": 2,
+          "generatorVersion": "2.12.0-50.0.dev"
+        }
+      flutter_gallery/lib/main.dart: |
+        import 'package:flutter/src/widgets/framework.dart';
+      flutter/lib/src/widgets/framework.dart: |
+        import 'widget_inspector.dart';
+        abstract class Widget {}
+      flutter/lib/src/widgets/widget_inspector.dart: |
+        abstract class _HasCreationLocation {}
+        class _Location {}
+    expectedLibraryCount: 3
+
+  - entry: flutter_gallery/lib/main.dart
+    experiments: alternative-invalidation-strategy
+    worldType: updated
+    expectInitializeFromDill: false
+    invalidate:
+      - package:flutter/src/widgets/framework.dart
+    expectedLibraryCount: 3
+    expectsRebuildBodiesOnly: true
+
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_44_flutter.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_44_flutter.yaml.world.1.expect
new file mode 100644
index 0000000..0279835
--- /dev/null
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_44_flutter.yaml.world.1.expect
@@ -0,0 +1,33 @@
+main = <No Member>;
+library from "package:flutter/src/widgets/framework.dart" as fra {
+
+  import "package:flutter/src/widgets/widget_inspector.dart";
+
+  abstract class Widget extends dart.core::Object implements wid::_HasCreationLocation {
+    final field wid::_Location? _location /*isNullableByDefault, from null */;
+    synthetic constructor •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → fra::Widget
+      : super dart.core::Object::•(), fra::Widget::_location = $creationLocationd_0dea112b090073317d4
+      ;
+  }
+}
+library from "package:flutter/src/widgets/widget_inspector.dart" as wid {
+
+  abstract class _HasCreationLocation extends dart.core::Object {
+    synthetic constructor •() → wid::_HasCreationLocation
+      : super dart.core::Object::•()
+      ;
+  }
+  class _Location extends dart.core::Object {
+    synthetic constructor •() → wid::_Location
+      : super dart.core::Object::•()
+      ;
+  }
+}
+library from "org-dartlang-test:///flutter_gallery/lib/main.dart" as main {
+
+  import "package:flutter/src/widgets/framework.dart";
+
+}
+constants  {
+  #C1 = null
+}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_44_flutter.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_44_flutter.yaml.world.2.expect
new file mode 100644
index 0000000..0279835
--- /dev/null
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_44_flutter.yaml.world.2.expect
@@ -0,0 +1,33 @@
+main = <No Member>;
+library from "package:flutter/src/widgets/framework.dart" as fra {
+
+  import "package:flutter/src/widgets/widget_inspector.dart";
+
+  abstract class Widget extends dart.core::Object implements wid::_HasCreationLocation {
+    final field wid::_Location? _location /*isNullableByDefault, from null */;
+    synthetic constructor •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → fra::Widget
+      : super dart.core::Object::•(), fra::Widget::_location = $creationLocationd_0dea112b090073317d4
+      ;
+  }
+}
+library from "package:flutter/src/widgets/widget_inspector.dart" as wid {
+
+  abstract class _HasCreationLocation extends dart.core::Object {
+    synthetic constructor •() → wid::_HasCreationLocation
+      : super dart.core::Object::•()
+      ;
+  }
+  class _Location extends dart.core::Object {
+    synthetic constructor •() → wid::_Location
+      : super dart.core::Object::•()
+      ;
+  }
+}
+library from "org-dartlang-test:///flutter_gallery/lib/main.dart" as main {
+
+  import "package:flutter/src/widgets/framework.dart";
+
+}
+constants  {
+  #C1 = null
+}
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect
index 5370148..e18d2d3 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect
@@ -80,210 +80,230 @@
 
 static method test1(Never n1, Never? n2, Null n3) → dynamic {
   core::List<Never> l1 = block {
-    final core::List<Never> #t1 = core::List::of<Never>(n1);
+    final core::List<Never> #t1 = <Never>[];
+    for (final Never #t2 in n1)
+      #t1.{core::List::add}{Invariant}(#t2);
   } =>#t1;
   core::List<Never> l2 = block {
-    final core::List<Never> #t2 = <Never>[];
-    final core::Iterable<Never>? #t3 = n1;
-    if(!#t3.{core::Object::==}(null))
-      #t2.{core::List::addAll}{Invariant}(#t3{core::Iterable<Never>});
-  } =>#t2;
+    final core::List<Never> #t3 = <Never>[];
+    final core::Iterable<Never>? #t4 = n1;
+    if(!#t4.{core::Object::==}(null))
+      for (final Never #t5 in #t4{core::Iterable<Never>})
+        #t3.{core::List::add}{Invariant}(#t5);
+  } =>#t3;
   core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:8:16: Error: Can't spread a value with static type 'Never?'.
   var l3 = [...n2];
                ^"];
   core::List<Never> l4 = block {
-    final core::List<Never> #t4 = <Never>[];
-    final core::Iterable<Never>? #t5 = n2;
-    if(!#t5.{core::Object::==}(null))
-      #t4.{core::List::addAll}{Invariant}(#t5{core::Iterable<Never>});
-  } =>#t4;
+    final core::List<Never> #t6 = <Never>[];
+    final core::Iterable<Never>? #t7 = n2;
+    if(!#t7.{core::Object::==}(null))
+      for (final Never #t8 in #t7{core::Iterable<Never>})
+        #t6.{core::List::add}{Invariant}(#t8);
+  } =>#t6;
   core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:10:16: Error: Can't spread a value with static type 'Null'.
   var l5 = [...n3];
                ^"];
   core::List<Never> l6 = block {
-    final core::List<Never> #t6 = <Never>[];
-    final core::Iterable<Never>? #t7 = n3;
-    if(!#t7.{core::Object::==}(null))
-      #t6.{core::List::addAll}{Invariant}(#t7{core::Iterable<Never>});
-  } =>#t6;
-  core::Set<Never> s1 = block {
-    final core::Set<Never> #t8 = col::LinkedHashSet::of<Never>(n1);
-    #t8.{core::Set::add}{Invariant}(n1);
-  } =>#t8;
-  core::Set<Never> s2 = block {
-    final core::Set<Never> #t9 = col::LinkedHashSet::•<Never>();
-    final core::Iterable<Never>? #t10 = n1;
+    final core::List<Never> #t9 = <Never>[];
+    final core::Iterable<Never>? #t10 = n3;
     if(!#t10.{core::Object::==}(null))
-      #t9.{core::Set::addAll}{Invariant}(#t10{core::Iterable<Never>});
-    #t9.{core::Set::add}{Invariant}(n1);
+      for (final Never #t11 in #t10{core::Iterable<Never>})
+        #t9.{core::List::add}{Invariant}(#t11);
   } =>#t9;
-  core::Set<dynamic> s3 = block {
-    final core::Set<dynamic> #t11 = col::LinkedHashSet::•<dynamic>();
-    #t11.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
-  var s3 = {...n2, n1};
-               ^");
-    #t11.{core::Set::add}{Invariant}(n1);
-  } =>#t11;
-  core::Set<Never> s4 = block {
+  core::Set<Never> s1 = block {
     final core::Set<Never> #t12 = col::LinkedHashSet::•<Never>();
-    final core::Iterable<Never>? #t13 = n2;
-    if(!#t13.{core::Object::==}(null))
-      #t12.{core::Set::addAll}{Invariant}(#t13{core::Iterable<Never>});
+    for (final Never #t13 in n1)
+      #t12.{core::Set::add}{Invariant}(#t13);
     #t12.{core::Set::add}{Invariant}(n1);
   } =>#t12;
-  core::Set<dynamic> s5 = block {
-    final core::Set<dynamic> #t14 = col::LinkedHashSet::•<dynamic>();
-    #t14.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
-  var s5 = {...n3, n1};
-               ^");
+  core::Set<Never> s2 = block {
+    final core::Set<Never> #t14 = col::LinkedHashSet::•<Never>();
+    final core::Iterable<Never>? #t15 = n1;
+    if(!#t15.{core::Object::==}(null))
+      for (final Never #t16 in #t15{core::Iterable<Never>})
+        #t14.{core::Set::add}{Invariant}(#t16);
     #t14.{core::Set::add}{Invariant}(n1);
   } =>#t14;
-  core::Set<Never> s6 = block {
-    final core::Set<Never> #t15 = col::LinkedHashSet::•<Never>();
-    final core::Iterable<Never>? #t16 = n3;
-    if(!#t16.{core::Object::==}(null))
-      #t15.{core::Set::addAll}{Invariant}(#t16{core::Iterable<Never>});
-    #t15.{core::Set::add}{Invariant}(n1);
-  } =>#t15;
-  core::Map<Never, Never> m1 = block {
-    final core::Map<Never, Never> #t17 = <Never, Never>{};
-    for (final core::MapEntry<Never, Never> #t18 in n1.{core::Map::entries})
-      #t17.{core::Map::[]=}{Invariant}(#t18.{core::MapEntry::key}, #t18.{core::MapEntry::value});
-    #t17.{core::Map::[]=}{Invariant}(n1, n1);
+  core::Set<dynamic> s3 = block {
+    final core::Set<dynamic> #t17 = col::LinkedHashSet::•<dynamic>();
+    #t17.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
+  var s3 = {...n2, n1};
+               ^");
+    #t17.{core::Set::add}{Invariant}(n1);
   } =>#t17;
+  core::Set<Never> s4 = block {
+    final core::Set<Never> #t18 = col::LinkedHashSet::•<Never>();
+    final core::Iterable<Never>? #t19 = n2;
+    if(!#t19.{core::Object::==}(null))
+      for (final Never #t20 in #t19{core::Iterable<Never>})
+        #t18.{core::Set::add}{Invariant}(#t20);
+    #t18.{core::Set::add}{Invariant}(n1);
+  } =>#t18;
+  core::Set<dynamic> s5 = block {
+    final core::Set<dynamic> #t21 = col::LinkedHashSet::•<dynamic>();
+    #t21.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
+  var s5 = {...n3, n1};
+               ^");
+    #t21.{core::Set::add}{Invariant}(n1);
+  } =>#t21;
+  core::Set<Never> s6 = block {
+    final core::Set<Never> #t22 = col::LinkedHashSet::•<Never>();
+    final core::Iterable<Never>? #t23 = n3;
+    if(!#t23.{core::Object::==}(null))
+      for (final Never #t24 in #t23{core::Iterable<Never>})
+        #t22.{core::Set::add}{Invariant}(#t24);
+    #t22.{core::Set::add}{Invariant}(n1);
+  } =>#t22;
+  core::Map<Never, Never> m1 = block {
+    final core::Map<Never, Never> #t25 = <Never, Never>{};
+    for (final core::MapEntry<Never, Never> #t26 in n1.{core::Map::entries})
+      #t25.{core::Map::[]=}{Invariant}(#t26.{core::MapEntry::key}, #t26.{core::MapEntry::value});
+    #t25.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t25;
   core::Map<Never, Never> m2 = block {
-    final core::Map<Never, Never> #t19 = <Never, Never>{};
-    final core::Map<Never, Never>? #t20 = n1;
-    if(!#t20.{core::Object::==}(null))
-      for (final core::MapEntry<Never, Never> #t21 in #t20{core::Map<Never, Never>}.{core::Map::entries})
-        #t19.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}, #t21.{core::MapEntry::value});
-    #t19.{core::Map::[]=}{Invariant}(n1, n1);
-  } =>#t19;
+    final core::Map<Never, Never> #t27 = <Never, Never>{};
+    final core::Map<Never, Never>? #t28 = n1;
+    if(!#t28.{core::Object::==}(null))
+      for (final core::MapEntry<Never, Never> #t29 in #t28{core::Map<Never, Never>}.{core::Map::entries})
+        #t27.{core::Map::[]=}{Invariant}(#t29.{core::MapEntry::key}, #t29.{core::MapEntry::value});
+    #t27.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t27;
   core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:20:16: Error: Can't spread a value with static type 'Never?'.
   var m3 = {...n2, n1: n1};
                ^": null, n1: n1};
   core::Map<Never, Never> m4 = block {
-    final core::Map<Never, Never> #t22 = <Never, Never>{};
-    final core::Map<Never, Never>? #t23 = n2;
-    if(!#t23.{core::Object::==}(null))
-      for (final core::MapEntry<Never, Never> #t24 in #t23{core::Map<Never, Never>}.{core::Map::entries})
-        #t22.{core::Map::[]=}{Invariant}(#t24.{core::MapEntry::key}, #t24.{core::MapEntry::value});
-    #t22.{core::Map::[]=}{Invariant}(n1, n1);
-  } =>#t22;
+    final core::Map<Never, Never> #t30 = <Never, Never>{};
+    final core::Map<Never, Never>? #t31 = n2;
+    if(!#t31.{core::Object::==}(null))
+      for (final core::MapEntry<Never, Never> #t32 in #t31{core::Map<Never, Never>}.{core::Map::entries})
+        #t30.{core::Map::[]=}{Invariant}(#t32.{core::MapEntry::key}, #t32.{core::MapEntry::value});
+    #t30.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t30;
   core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:22:16: Error: Can't spread a value with static type 'Null'.
   var m5 = {...n3, n1: n1};
                ^": null, n1: n1};
   core::Map<Never, Never> m6 = block {
-    final core::Map<Never, Never> #t25 = <Never, Never>{};
-    final core::Map<Never, Never>? #t26 = n3;
-    if(!#t26.{core::Object::==}(null))
-      for (final core::MapEntry<Never, Never> #t27 in #t26{core::Map<Never, Never>}.{core::Map::entries})
-        #t25.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}, #t27.{core::MapEntry::value});
-    #t25.{core::Map::[]=}{Invariant}(n1, n1);
-  } =>#t25;
+    final core::Map<Never, Never> #t33 = <Never, Never>{};
+    final core::Map<Never, Never>? #t34 = n3;
+    if(!#t34.{core::Object::==}(null))
+      for (final core::MapEntry<Never, Never> #t35 in #t34{core::Map<Never, Never>}.{core::Map::entries})
+        #t33.{core::Map::[]=}{Invariant}(#t35.{core::MapEntry::key}, #t35.{core::MapEntry::value});
+    #t33.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t33;
 }
 static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends Null = Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
   core::List<Never> l1 = block {
-    final core::List<Never> #t28 = core::List::of<Never>(n1);
-  } =>#t28;
+    final core::List<Never> #t36 = <Never>[];
+    for (final Never #t37 in n1)
+      #t36.{core::List::add}{Invariant}(#t37);
+  } =>#t36;
   core::List<Never> l2 = block {
-    final core::List<Never> #t29 = <Never>[];
-    final core::Iterable<Never>? #t30 = n1;
-    if(!#t30.{core::Object::==}(null))
-      #t29.{core::List::addAll}{Invariant}(#t30{core::Iterable<Never>});
-  } =>#t29;
+    final core::List<Never> #t38 = <Never>[];
+    final core::Iterable<Never>? #t39 = n1;
+    if(!#t39.{core::Object::==}(null))
+      for (final Never #t40 in #t39{core::Iterable<Never>})
+        #t38.{core::List::add}{Invariant}(#t40);
+  } =>#t38;
   core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:30:16: Error: Can't spread a value with static type 'N2'.
   var l3 = [...n2];
                ^"];
   core::List<Never> l4 = block {
-    final core::List<Never> #t31 = <Never>[];
-    final core::Iterable<Never>? #t32 = n2;
-    if(!#t32.{core::Object::==}(null))
-      #t31.{core::List::addAll}{Invariant}(#t32{core::Iterable<Never>});
-  } =>#t31;
+    final core::List<Never> #t41 = <Never>[];
+    final core::Iterable<Never>? #t42 = n2;
+    if(!#t42.{core::Object::==}(null))
+      for (final Never #t43 in #t42{core::Iterable<Never>})
+        #t41.{core::List::add}{Invariant}(#t43);
+  } =>#t41;
   core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:32:16: Error: Can't spread a value with static type 'N3'.
   var l5 = [...n3];
                ^"];
   core::List<Never> l6 = block {
-    final core::List<Never> #t33 = <Never>[];
-    final core::Iterable<Never>? #t34 = n3;
-    if(!#t34.{core::Object::==}(null))
-      #t33.{core::List::addAll}{Invariant}(#t34{core::Iterable<Never>});
-  } =>#t33;
+    final core::List<Never> #t44 = <Never>[];
+    final core::Iterable<Never>? #t45 = n3;
+    if(!#t45.{core::Object::==}(null))
+      for (final Never #t46 in #t45{core::Iterable<Never>})
+        #t44.{core::List::add}{Invariant}(#t46);
+  } =>#t44;
   core::Set<self::test2::N1> s1 = block {
-    final core::Set<self::test2::N1> #t35 = col::LinkedHashSet::of<self::test2::N1>(n1);
-    #t35.{core::Set::add}{Invariant}(n1);
-  } =>#t35;
+    final core::Set<self::test2::N1> #t47 = col::LinkedHashSet::•<self::test2::N1>();
+    for (final self::test2::N1 #t48 in n1)
+      #t47.{core::Set::add}{Invariant}(#t48);
+    #t47.{core::Set::add}{Invariant}(n1);
+  } =>#t47;
   core::Set<self::test2::N1> s2 = block {
-    final core::Set<self::test2::N1> #t36 = col::LinkedHashSet::•<self::test2::N1>();
-    final core::Iterable<self::test2::N1>? #t37 = n1;
-    if(!#t37.{core::Object::==}(null))
-      #t36.{core::Set::addAll}{Invariant}(#t37{core::Iterable<self::test2::N1>});
-    #t36.{core::Set::add}{Invariant}(n1);
-  } =>#t36;
+    final core::Set<self::test2::N1> #t49 = col::LinkedHashSet::•<self::test2::N1>();
+    final core::Iterable<self::test2::N1>? #t50 = n1;
+    if(!#t50.{core::Object::==}(null))
+      for (final self::test2::N1 #t51 in #t50{core::Iterable<self::test2::N1>})
+        #t49.{core::Set::add}{Invariant}(#t51);
+    #t49.{core::Set::add}{Invariant}(n1);
+  } =>#t49;
   core::Set<dynamic> s3 = block {
-    final core::Set<dynamic> #t38 = col::LinkedHashSet::•<dynamic>();
-    #t38.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
+    final core::Set<dynamic> #t52 = col::LinkedHashSet::•<dynamic>();
+    #t52.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
   var s3 = {...n2, n1};
                ^");
-    #t38.{core::Set::add}{Invariant}(n1);
-  } =>#t38;
+    #t52.{core::Set::add}{Invariant}(n1);
+  } =>#t52;
   core::Set<self::test2::N1> s4 = block {
-    final core::Set<self::test2::N1> #t39 = col::LinkedHashSet::•<self::test2::N1>();
-    final core::Iterable<self::test2::N1>? #t40 = n2;
-    if(!#t40.{core::Object::==}(null))
-      #t39.{core::Set::addAll}{Invariant}(#t40{core::Iterable<self::test2::N1>});
-    #t39.{core::Set::add}{Invariant}(n1);
-  } =>#t39;
+    final core::Set<self::test2::N1> #t53 = col::LinkedHashSet::•<self::test2::N1>();
+    final core::Iterable<self::test2::N1>? #t54 = n2;
+    if(!#t54.{core::Object::==}(null))
+      for (final self::test2::N1 #t55 in #t54{core::Iterable<self::test2::N1>})
+        #t53.{core::Set::add}{Invariant}(#t55);
+    #t53.{core::Set::add}{Invariant}(n1);
+  } =>#t53;
   core::Set<dynamic> s5 = block {
-    final core::Set<dynamic> #t41 = col::LinkedHashSet::•<dynamic>();
-    #t41.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
+    final core::Set<dynamic> #t56 = col::LinkedHashSet::•<dynamic>();
+    #t56.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
   var s5 = {...n3, n1};
                ^");
-    #t41.{core::Set::add}{Invariant}(n1);
-  } =>#t41;
+    #t56.{core::Set::add}{Invariant}(n1);
+  } =>#t56;
   core::Set<self::test2::N1> s6 = block {
-    final core::Set<self::test2::N1> #t42 = col::LinkedHashSet::•<self::test2::N1>();
-    final core::Iterable<self::test2::N1>? #t43 = n3;
-    if(!#t43.{core::Object::==}(null))
-      #t42.{core::Set::addAll}{Invariant}(#t43{core::Iterable<self::test2::N1>});
-    #t42.{core::Set::add}{Invariant}(n1);
-  } =>#t42;
+    final core::Set<self::test2::N1> #t57 = col::LinkedHashSet::•<self::test2::N1>();
+    final core::Iterable<self::test2::N1>? #t58 = n3;
+    if(!#t58.{core::Object::==}(null))
+      for (final self::test2::N1 #t59 in #t58{core::Iterable<self::test2::N1>})
+        #t57.{core::Set::add}{Invariant}(#t59);
+    #t57.{core::Set::add}{Invariant}(n1);
+  } =>#t57;
   core::Map<self::test2::N1, self::test2::N1> m1 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t44 = <self::test2::N1, self::test2::N1>{};
-    for (final core::MapEntry<self::test2::N1, self::test2::N1> #t45 in n1.{core::Map::entries})
-      #t44.{core::Map::[]=}{Invariant}(#t45.{core::MapEntry::key}, #t45.{core::MapEntry::value});
-    #t44.{core::Map::[]=}{Invariant}(n1, n1);
-  } =>#t44;
+    final core::Map<self::test2::N1, self::test2::N1> #t60 = <self::test2::N1, self::test2::N1>{};
+    for (final core::MapEntry<self::test2::N1, self::test2::N1> #t61 in n1.{core::Map::entries})
+      #t60.{core::Map::[]=}{Invariant}(#t61.{core::MapEntry::key}, #t61.{core::MapEntry::value});
+    #t60.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t60;
   core::Map<self::test2::N1, self::test2::N1> m2 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t46 = <self::test2::N1, self::test2::N1>{};
-    final core::Map<self::test2::N1, self::test2::N1>? #t47 = n1;
-    if(!#t47.{core::Object::==}(null))
-      for (final core::MapEntry<self::test2::N1, self::test2::N1> #t48 in #t47{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries})
-        #t46.{core::Map::[]=}{Invariant}(#t48.{core::MapEntry::key}, #t48.{core::MapEntry::value});
-    #t46.{core::Map::[]=}{Invariant}(n1, n1);
-  } =>#t46;
+    final core::Map<self::test2::N1, self::test2::N1> #t62 = <self::test2::N1, self::test2::N1>{};
+    final core::Map<self::test2::N1, self::test2::N1>? #t63 = n1;
+    if(!#t63.{core::Object::==}(null))
+      for (final core::MapEntry<self::test2::N1, self::test2::N1> #t64 in #t63{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries})
+        #t62.{core::Map::[]=}{Invariant}(#t64.{core::MapEntry::key}, #t64.{core::MapEntry::value});
+    #t62.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t62;
   core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:42:16: Error: Can't spread a value with static type 'N2'.
   var m3 = {...n2, n1: n1};
                ^": null, n1: n1};
   core::Map<self::test2::N1, self::test2::N1> m4 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t49 = <self::test2::N1, self::test2::N1>{};
-    final core::Map<self::test2::N1, self::test2::N1>? #t50 = n2;
-    if(!#t50.{core::Object::==}(null))
-      for (final core::MapEntry<self::test2::N1, self::test2::N1> #t51 in #t50{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries})
-        #t49.{core::Map::[]=}{Invariant}(#t51.{core::MapEntry::key}, #t51.{core::MapEntry::value});
-    #t49.{core::Map::[]=}{Invariant}(n1, n1);
-  } =>#t49;
+    final core::Map<self::test2::N1, self::test2::N1> #t65 = <self::test2::N1, self::test2::N1>{};
+    final core::Map<self::test2::N1, self::test2::N1>? #t66 = n2;
+    if(!#t66.{core::Object::==}(null))
+      for (final core::MapEntry<self::test2::N1, self::test2::N1> #t67 in #t66{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries})
+        #t65.{core::Map::[]=}{Invariant}(#t67.{core::MapEntry::key}, #t67.{core::MapEntry::value});
+    #t65.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t65;
   core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:44:16: Error: Can't spread a value with static type 'N3'.
   var m5 = {...n3, n1: n1};
                ^": null, n1: n1};
   core::Map<self::test2::N1, self::test2::N1> m6 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t52 = <self::test2::N1, self::test2::N1>{};
-    final core::Map<self::test2::N1, self::test2::N1>? #t53 = n3;
-    if(!#t53.{core::Object::==}(null))
-      for (final core::MapEntry<self::test2::N1, self::test2::N1> #t54 in #t53{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries})
-        #t52.{core::Map::[]=}{Invariant}(#t54.{core::MapEntry::key}, #t54.{core::MapEntry::value});
-    #t52.{core::Map::[]=}{Invariant}(n1, n1);
-  } =>#t52;
+    final core::Map<self::test2::N1, self::test2::N1> #t68 = <self::test2::N1, self::test2::N1>{};
+    final core::Map<self::test2::N1, self::test2::N1>? #t69 = n3;
+    if(!#t69.{core::Object::==}(null))
+      for (final core::MapEntry<self::test2::N1, self::test2::N1> #t70 in #t69{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries})
+        #t68.{core::Map::[]=}{Invariant}(#t70.{core::MapEntry::key}, #t70.{core::MapEntry::value});
+    #t68.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t68;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
index b50eeff..b4eff37 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
@@ -80,244 +80,312 @@
 
 static method test1(Never n1, Never? n2, Null n3) → dynamic {
   core::List<Never> l1 = block {
-    final core::List<Never> #t1 = core::List::of<Never>(n1);
+    final core::List<Never> #t1 = <Never>[];
+    for (final Never #t2 in n1)
+      #t1.{core::List::add}{Invariant}(#t2);
   } =>#t1;
   core::List<Never> l2 = block {
-    final core::List<Never> #t2 = <Never>[];
-    final core::Iterable<Never>? #t3 = n1;
-    if(!#t3.{core::Object::==}(null))
-      #t2.{core::List::addAll}{Invariant}(#t3{core::Iterable<Never>});
-  } =>#t2;
+    final core::List<Never> #t3 = <Never>[];
+    final core::Iterable<Never>? #t4 = n1;
+    if(!#t4.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t4{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t5 = :sync-for-iterator.{core::Iterator::current};
+        #t3.{core::List::add}{Invariant}(#t5);
+      }
+    }
+  } =>#t3;
   core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:8:16: Error: Can't spread a value with static type 'Never?'.
   var l3 = [...n2];
                ^"];
   core::List<Never> l4 = block {
-    final core::List<Never> #t4 = <Never>[];
-    final core::Iterable<Never>? #t5 = n2;
-    if(!#t5.{core::Object::==}(null))
-      #t4.{core::List::addAll}{Invariant}(#t5{core::Iterable<Never>});
-  } =>#t4;
+    final core::List<Never> #t6 = <Never>[];
+    final core::Iterable<Never>? #t7 = n2;
+    if(!#t7.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t7{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t8 = :sync-for-iterator.{core::Iterator::current};
+        #t6.{core::List::add}{Invariant}(#t8);
+      }
+    }
+  } =>#t6;
   core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:10:16: Error: Can't spread a value with static type 'Null'.
   var l5 = [...n3];
                ^"];
   core::List<Never> l6 = block {
-    final core::List<Never> #t6 = <Never>[];
-    final core::Iterable<Never>? #t7 = n3;
-    if(!#t7.{core::Object::==}(null))
-      #t6.{core::List::addAll}{Invariant}(#t7{core::Iterable<Never>});
-  } =>#t6;
-  core::Set<Never> s1 = block {
-    final core::Set<Never> #t8 = col::LinkedHashSet::of<Never>(n1);
-    #t8.{core::Set::add}{Invariant}(n1);
-  } =>#t8;
-  core::Set<Never> s2 = block {
-    final core::Set<Never> #t9 = new col::_CompactLinkedHashSet::•<Never>();
-    final core::Iterable<Never>? #t10 = n1;
-    if(!#t10.{core::Object::==}(null))
-      #t9.{core::Set::addAll}{Invariant}(#t10{core::Iterable<Never>});
-    #t9.{core::Set::add}{Invariant}(n1);
+    final core::List<Never> #t9 = <Never>[];
+    final core::Iterable<Never>? #t10 = n3;
+    if(!#t10.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t10{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t11 = :sync-for-iterator.{core::Iterator::current};
+        #t9.{core::List::add}{Invariant}(#t11);
+      }
+    }
   } =>#t9;
-  core::Set<dynamic> s3 = block {
-    final core::Set<dynamic> #t11 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t11.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
-  var s3 = {...n2, n1};
-               ^");
-    #t11.{core::Set::add}{Invariant}(n1);
-  } =>#t11;
-  core::Set<Never> s4 = block {
+  core::Set<Never> s1 = block {
     final core::Set<Never> #t12 = new col::_CompactLinkedHashSet::•<Never>();
-    final core::Iterable<Never>? #t13 = n2;
-    if(!#t13.{core::Object::==}(null))
-      #t12.{core::Set::addAll}{Invariant}(#t13{core::Iterable<Never>});
+    for (final Never #t13 in n1)
+      #t12.{core::Set::add}{Invariant}(#t13);
     #t12.{core::Set::add}{Invariant}(n1);
   } =>#t12;
-  core::Set<dynamic> s5 = block {
-    final core::Set<dynamic> #t14 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t14.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
-  var s5 = {...n3, n1};
-               ^");
+  core::Set<Never> s2 = block {
+    final core::Set<Never> #t14 = new col::_CompactLinkedHashSet::•<Never>();
+    final core::Iterable<Never>? #t15 = n1;
+    if(!#t15.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t15{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t16 = :sync-for-iterator.{core::Iterator::current};
+        #t14.{core::Set::add}{Invariant}(#t16);
+      }
+    }
     #t14.{core::Set::add}{Invariant}(n1);
   } =>#t14;
+  core::Set<dynamic> s3 = block {
+    final core::Set<dynamic> #t17 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t17.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
+  var s3 = {...n2, n1};
+               ^");
+    #t17.{core::Set::add}{Invariant}(n1);
+  } =>#t17;
+  core::Set<Never> s4 = block {
+    final core::Set<Never> #t18 = new col::_CompactLinkedHashSet::•<Never>();
+    final core::Iterable<Never>? #t19 = n2;
+    if(!#t19.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t19{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t20 = :sync-for-iterator.{core::Iterator::current};
+        #t18.{core::Set::add}{Invariant}(#t20);
+      }
+    }
+    #t18.{core::Set::add}{Invariant}(n1);
+  } =>#t18;
+  core::Set<dynamic> s5 = block {
+    final core::Set<dynamic> #t21 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t21.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
+  var s5 = {...n3, n1};
+               ^");
+    #t21.{core::Set::add}{Invariant}(n1);
+  } =>#t21;
   core::Set<Never> s6 = block {
-    final core::Set<Never> #t15 = new col::_CompactLinkedHashSet::•<Never>();
-    final core::Iterable<Never>? #t16 = n3;
-    if(!#t16.{core::Object::==}(null))
-      #t15.{core::Set::addAll}{Invariant}(#t16{core::Iterable<Never>});
-    #t15.{core::Set::add}{Invariant}(n1);
-  } =>#t15;
+    final core::Set<Never> #t22 = new col::_CompactLinkedHashSet::•<Never>();
+    final core::Iterable<Never>? #t23 = n3;
+    if(!#t23.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t23{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t24 = :sync-for-iterator.{core::Iterator::current};
+        #t22.{core::Set::add}{Invariant}(#t24);
+      }
+    }
+    #t22.{core::Set::add}{Invariant}(n1);
+  } =>#t22;
   core::Map<Never, Never> m1 = block {
-    final core::Map<Never, Never> #t17 = <Never, Never>{};
+    final core::Map<Never, Never> #t25 = <Never, Never>{};
     {
       core::Iterator<core::MapEntry<<BottomType>, <BottomType>>> :sync-for-iterator = n1.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<Never, Never> #t18 = :sync-for-iterator.{core::Iterator::current};
-        #t17.{core::Map::[]=}{Invariant}(#t18.{core::MapEntry::key}, #t18.{core::MapEntry::value});
-      }
-    }
-    #t17.{core::Map::[]=}{Invariant}(n1, n1);
-  } =>#t17;
-  core::Map<Never, Never> m2 = block {
-    final core::Map<Never, Never> #t19 = <Never, Never>{};
-    final core::Map<Never, Never>? #t20 = n1;
-    if(!#t20.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t20{core::Map<Never, Never>}.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<Never, Never> #t21 = :sync-for-iterator.{core::Iterator::current};
-        #t19.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}, #t21.{core::MapEntry::value});
-      }
-    }
-    #t19.{core::Map::[]=}{Invariant}(n1, n1);
-  } =>#t19;
-  core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:20:16: Error: Can't spread a value with static type 'Never?'.
-  var m3 = {...n2, n1: n1};
-               ^": null, n1: n1};
-  core::Map<Never, Never> m4 = block {
-    final core::Map<Never, Never> #t22 = <Never, Never>{};
-    final core::Map<Never, Never>? #t23 = n2;
-    if(!#t23.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t23{core::Map<Never, Never>}.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<Never, Never> #t24 = :sync-for-iterator.{core::Iterator::current};
-        #t22.{core::Map::[]=}{Invariant}(#t24.{core::MapEntry::key}, #t24.{core::MapEntry::value});
-      }
-    }
-    #t22.{core::Map::[]=}{Invariant}(n1, n1);
-  } =>#t22;
-  core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:22:16: Error: Can't spread a value with static type 'Null'.
-  var m5 = {...n3, n1: n1};
-               ^": null, n1: n1};
-  core::Map<Never, Never> m6 = block {
-    final core::Map<Never, Never> #t25 = <Never, Never>{};
-    final core::Map<Never, Never>? #t26 = n3;
-    if(!#t26.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t26{core::Map<Never, Never>}.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<Never, Never> #t27 = :sync-for-iterator.{core::Iterator::current};
-        #t25.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}, #t27.{core::MapEntry::value});
+        final core::MapEntry<Never, Never> #t26 = :sync-for-iterator.{core::Iterator::current};
+        #t25.{core::Map::[]=}{Invariant}(#t26.{core::MapEntry::key}, #t26.{core::MapEntry::value});
       }
     }
     #t25.{core::Map::[]=}{Invariant}(n1, n1);
   } =>#t25;
+  core::Map<Never, Never> m2 = block {
+    final core::Map<Never, Never> #t27 = <Never, Never>{};
+    final core::Map<Never, Never>? #t28 = n1;
+    if(!#t28.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t28{core::Map<Never, Never>}.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<Never, Never> #t29 = :sync-for-iterator.{core::Iterator::current};
+        #t27.{core::Map::[]=}{Invariant}(#t29.{core::MapEntry::key}, #t29.{core::MapEntry::value});
+      }
+    }
+    #t27.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t27;
+  core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:20:16: Error: Can't spread a value with static type 'Never?'.
+  var m3 = {...n2, n1: n1};
+               ^": null, n1: n1};
+  core::Map<Never, Never> m4 = block {
+    final core::Map<Never, Never> #t30 = <Never, Never>{};
+    final core::Map<Never, Never>? #t31 = n2;
+    if(!#t31.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t31{core::Map<Never, Never>}.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<Never, Never> #t32 = :sync-for-iterator.{core::Iterator::current};
+        #t30.{core::Map::[]=}{Invariant}(#t32.{core::MapEntry::key}, #t32.{core::MapEntry::value});
+      }
+    }
+    #t30.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t30;
+  core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:22:16: Error: Can't spread a value with static type 'Null'.
+  var m5 = {...n3, n1: n1};
+               ^": null, n1: n1};
+  core::Map<Never, Never> m6 = block {
+    final core::Map<Never, Never> #t33 = <Never, Never>{};
+    final core::Map<Never, Never>? #t34 = n3;
+    if(!#t34.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t34{core::Map<Never, Never>}.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<Never, Never> #t35 = :sync-for-iterator.{core::Iterator::current};
+        #t33.{core::Map::[]=}{Invariant}(#t35.{core::MapEntry::key}, #t35.{core::MapEntry::value});
+      }
+    }
+    #t33.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t33;
 }
 static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends Null = Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
   core::List<Never> l1 = block {
-    final core::List<Never> #t28 = core::List::of<Never>(n1);
-  } =>#t28;
+    final core::List<Never> #t36 = <Never>[];
+    for (final Never #t37 in n1)
+      #t36.{core::List::add}{Invariant}(#t37);
+  } =>#t36;
   core::List<Never> l2 = block {
-    final core::List<Never> #t29 = <Never>[];
-    final core::Iterable<Never>? #t30 = n1;
-    if(!#t30.{core::Object::==}(null))
-      #t29.{core::List::addAll}{Invariant}(#t30{core::Iterable<Never>});
-  } =>#t29;
+    final core::List<Never> #t38 = <Never>[];
+    final core::Iterable<Never>? #t39 = n1;
+    if(!#t39.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t39{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t40 = :sync-for-iterator.{core::Iterator::current};
+        #t38.{core::List::add}{Invariant}(#t40);
+      }
+    }
+  } =>#t38;
   core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:30:16: Error: Can't spread a value with static type 'N2'.
   var l3 = [...n2];
                ^"];
   core::List<Never> l4 = block {
-    final core::List<Never> #t31 = <Never>[];
-    final core::Iterable<Never>? #t32 = n2;
-    if(!#t32.{core::Object::==}(null))
-      #t31.{core::List::addAll}{Invariant}(#t32{core::Iterable<Never>});
-  } =>#t31;
+    final core::List<Never> #t41 = <Never>[];
+    final core::Iterable<Never>? #t42 = n2;
+    if(!#t42.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t42{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t43 = :sync-for-iterator.{core::Iterator::current};
+        #t41.{core::List::add}{Invariant}(#t43);
+      }
+    }
+  } =>#t41;
   core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:32:16: Error: Can't spread a value with static type 'N3'.
   var l5 = [...n3];
                ^"];
   core::List<Never> l6 = block {
-    final core::List<Never> #t33 = <Never>[];
-    final core::Iterable<Never>? #t34 = n3;
-    if(!#t34.{core::Object::==}(null))
-      #t33.{core::List::addAll}{Invariant}(#t34{core::Iterable<Never>});
-  } =>#t33;
+    final core::List<Never> #t44 = <Never>[];
+    final core::Iterable<Never>? #t45 = n3;
+    if(!#t45.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t45{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t46 = :sync-for-iterator.{core::Iterator::current};
+        #t44.{core::List::add}{Invariant}(#t46);
+      }
+    }
+  } =>#t44;
   core::Set<self::test2::N1> s1 = block {
-    final core::Set<self::test2::N1> #t35 = col::LinkedHashSet::of<self::test2::N1>(n1);
-    #t35.{core::Set::add}{Invariant}(n1);
-  } =>#t35;
+    final core::Set<self::test2::N1> #t47 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
+    for (final self::test2::N1 #t48 in n1)
+      #t47.{core::Set::add}{Invariant}(#t48);
+    #t47.{core::Set::add}{Invariant}(n1);
+  } =>#t47;
   core::Set<self::test2::N1> s2 = block {
-    final core::Set<self::test2::N1> #t36 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
-    final core::Iterable<self::test2::N1>? #t37 = n1;
-    if(!#t37.{core::Object::==}(null))
-      #t36.{core::Set::addAll}{Invariant}(#t37{core::Iterable<self::test2::N1>});
-    #t36.{core::Set::add}{Invariant}(n1);
-  } =>#t36;
+    final core::Set<self::test2::N1> #t49 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
+    final core::Iterable<self::test2::N1>? #t50 = n1;
+    if(!#t50.{core::Object::==}(null)) {
+      core::Iterator<self::test2::N1> :sync-for-iterator = #t50{core::Iterable<self::test2::N1>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final self::test2::N1 #t51 = :sync-for-iterator.{core::Iterator::current};
+        #t49.{core::Set::add}{Invariant}(#t51);
+      }
+    }
+    #t49.{core::Set::add}{Invariant}(n1);
+  } =>#t49;
   core::Set<dynamic> s3 = block {
-    final core::Set<dynamic> #t38 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t38.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
+    final core::Set<dynamic> #t52 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t52.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
   var s3 = {...n2, n1};
                ^");
-    #t38.{core::Set::add}{Invariant}(n1);
-  } =>#t38;
+    #t52.{core::Set::add}{Invariant}(n1);
+  } =>#t52;
   core::Set<self::test2::N1> s4 = block {
-    final core::Set<self::test2::N1> #t39 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
-    final core::Iterable<self::test2::N1>? #t40 = n2;
-    if(!#t40.{core::Object::==}(null))
-      #t39.{core::Set::addAll}{Invariant}(#t40{core::Iterable<self::test2::N1>});
-    #t39.{core::Set::add}{Invariant}(n1);
-  } =>#t39;
+    final core::Set<self::test2::N1> #t53 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
+    final core::Iterable<self::test2::N1>? #t54 = n2;
+    if(!#t54.{core::Object::==}(null)) {
+      core::Iterator<self::test2::N1> :sync-for-iterator = #t54{core::Iterable<self::test2::N1>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final self::test2::N1 #t55 = :sync-for-iterator.{core::Iterator::current};
+        #t53.{core::Set::add}{Invariant}(#t55);
+      }
+    }
+    #t53.{core::Set::add}{Invariant}(n1);
+  } =>#t53;
   core::Set<dynamic> s5 = block {
-    final core::Set<dynamic> #t41 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t41.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
+    final core::Set<dynamic> #t56 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t56.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
   var s5 = {...n3, n1};
                ^");
-    #t41.{core::Set::add}{Invariant}(n1);
-  } =>#t41;
+    #t56.{core::Set::add}{Invariant}(n1);
+  } =>#t56;
   core::Set<self::test2::N1> s6 = block {
-    final core::Set<self::test2::N1> #t42 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
-    final core::Iterable<self::test2::N1>? #t43 = n3;
-    if(!#t43.{core::Object::==}(null))
-      #t42.{core::Set::addAll}{Invariant}(#t43{core::Iterable<self::test2::N1>});
-    #t42.{core::Set::add}{Invariant}(n1);
-  } =>#t42;
+    final core::Set<self::test2::N1> #t57 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
+    final core::Iterable<self::test2::N1>? #t58 = n3;
+    if(!#t58.{core::Object::==}(null)) {
+      core::Iterator<self::test2::N1> :sync-for-iterator = #t58{core::Iterable<self::test2::N1>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final self::test2::N1 #t59 = :sync-for-iterator.{core::Iterator::current};
+        #t57.{core::Set::add}{Invariant}(#t59);
+      }
+    }
+    #t57.{core::Set::add}{Invariant}(n1);
+  } =>#t57;
   core::Map<self::test2::N1, self::test2::N1> m1 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t44 = <self::test2::N1, self::test2::N1>{};
+    final core::Map<self::test2::N1, self::test2::N1> #t60 = <self::test2::N1, self::test2::N1>{};
     {
       core::Iterator<core::MapEntry<<BottomType>, <BottomType>>> :sync-for-iterator = n1.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<self::test2::N1, self::test2::N1> #t45 = :sync-for-iterator.{core::Iterator::current};
-        #t44.{core::Map::[]=}{Invariant}(#t45.{core::MapEntry::key}, #t45.{core::MapEntry::value});
+        final core::MapEntry<self::test2::N1, self::test2::N1> #t61 = :sync-for-iterator.{core::Iterator::current};
+        #t60.{core::Map::[]=}{Invariant}(#t61.{core::MapEntry::key}, #t61.{core::MapEntry::value});
       }
     }
-    #t44.{core::Map::[]=}{Invariant}(n1, n1);
-  } =>#t44;
+    #t60.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t60;
   core::Map<self::test2::N1, self::test2::N1> m2 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t46 = <self::test2::N1, self::test2::N1>{};
-    final core::Map<self::test2::N1, self::test2::N1>? #t47 = n1;
-    if(!#t47.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t47{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<self::test2::N1, self::test2::N1> #t62 = <self::test2::N1, self::test2::N1>{};
+    final core::Map<self::test2::N1, self::test2::N1>? #t63 = n1;
+    if(!#t63.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t63{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<self::test2::N1, self::test2::N1> #t48 = :sync-for-iterator.{core::Iterator::current};
-        #t46.{core::Map::[]=}{Invariant}(#t48.{core::MapEntry::key}, #t48.{core::MapEntry::value});
+        final core::MapEntry<self::test2::N1, self::test2::N1> #t64 = :sync-for-iterator.{core::Iterator::current};
+        #t62.{core::Map::[]=}{Invariant}(#t64.{core::MapEntry::key}, #t64.{core::MapEntry::value});
       }
     }
-    #t46.{core::Map::[]=}{Invariant}(n1, n1);
-  } =>#t46;
+    #t62.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t62;
   core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:42:16: Error: Can't spread a value with static type 'N2'.
   var m3 = {...n2, n1: n1};
                ^": null, n1: n1};
   core::Map<self::test2::N1, self::test2::N1> m4 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t49 = <self::test2::N1, self::test2::N1>{};
-    final core::Map<self::test2::N1, self::test2::N1>? #t50 = n2;
-    if(!#t50.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t50{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<self::test2::N1, self::test2::N1> #t65 = <self::test2::N1, self::test2::N1>{};
+    final core::Map<self::test2::N1, self::test2::N1>? #t66 = n2;
+    if(!#t66.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t66{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<self::test2::N1, self::test2::N1> #t51 = :sync-for-iterator.{core::Iterator::current};
-        #t49.{core::Map::[]=}{Invariant}(#t51.{core::MapEntry::key}, #t51.{core::MapEntry::value});
+        final core::MapEntry<self::test2::N1, self::test2::N1> #t67 = :sync-for-iterator.{core::Iterator::current};
+        #t65.{core::Map::[]=}{Invariant}(#t67.{core::MapEntry::key}, #t67.{core::MapEntry::value});
       }
     }
-    #t49.{core::Map::[]=}{Invariant}(n1, n1);
-  } =>#t49;
+    #t65.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t65;
   core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:44:16: Error: Can't spread a value with static type 'N3'.
   var m5 = {...n3, n1: n1};
                ^": null, n1: n1};
   core::Map<self::test2::N1, self::test2::N1> m6 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t52 = <self::test2::N1, self::test2::N1>{};
-    final core::Map<self::test2::N1, self::test2::N1>? #t53 = n3;
-    if(!#t53.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t53{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<self::test2::N1, self::test2::N1> #t68 = <self::test2::N1, self::test2::N1>{};
+    final core::Map<self::test2::N1, self::test2::N1>? #t69 = n3;
+    if(!#t69.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t69{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<self::test2::N1, self::test2::N1> #t54 = :sync-for-iterator.{core::Iterator::current};
-        #t52.{core::Map::[]=}{Invariant}(#t54.{core::MapEntry::key}, #t54.{core::MapEntry::value});
+        final core::MapEntry<self::test2::N1, self::test2::N1> #t70 = :sync-for-iterator.{core::Iterator::current};
+        #t68.{core::Map::[]=}{Invariant}(#t70.{core::MapEntry::key}, #t70.{core::MapEntry::value});
       }
     }
-    #t52.{core::Map::[]=}{Invariant}(n1, n1);
-  } =>#t52;
+    #t68.{core::Map::[]=}{Invariant}(n1, n1);
+  } =>#t68;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect
index 79c5408..5672439 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect
@@ -81,210 +81,230 @@
 
 static method test1(Never n1, Never? n2, Null n3) → dynamic {
   core::List<Never> l1 = block {
-    final core::List<Never> #t1 = core::List::of<Never>(let final Never #t2 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+    final core::List<Never> #t1 = <Never>[];
+    for (final Never #t2 in let final Never #t3 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."))
+      #t1.{core::List::add}{Invariant}(#t2);
   } =>#t1;
   core::List<Never> l2 = block {
-    final core::List<Never> #t3 = <Never>[];
-    final core::Iterable<Never>? #t4 = let final Never #t5 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
-    if(!#t4.{core::Object::==}(null))
-      #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<Never>});
-  } =>#t3;
+    final core::List<Never> #t4 = <Never>[];
+    final core::Iterable<Never>? #t5 = let final Never #t6 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+    if(!#t5.{core::Object::==}(null))
+      for (final Never #t7 in #t5{core::Iterable<Never>})
+        #t4.{core::List::add}{Invariant}(#t7);
+  } =>#t4;
   core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:8:16: Error: Can't spread a value with static type 'Never?'.
   var l3 = [...n2];
                ^"];
   core::List<Never> l4 = block {
-    final core::List<Never> #t6 = <Never>[];
-    final core::Iterable<Never>? #t7 = n2;
-    if(!#t7.{core::Object::==}(null))
-      #t6.{core::List::addAll}{Invariant}(#t7{core::Iterable<Never>});
-  } =>#t6;
+    final core::List<Never> #t8 = <Never>[];
+    final core::Iterable<Never>? #t9 = n2;
+    if(!#t9.{core::Object::==}(null))
+      for (final Never #t10 in #t9{core::Iterable<Never>})
+        #t8.{core::List::add}{Invariant}(#t10);
+  } =>#t8;
   core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:10:16: Error: Can't spread a value with static type 'Null'.
   var l5 = [...n3];
                ^"];
   core::List<Never> l6 = block {
-    final core::List<Never> #t8 = <Never>[];
-    final core::Iterable<Never>? #t9 = n3;
-    if(!#t9.{core::Object::==}(null))
-      #t8.{core::List::addAll}{Invariant}(#t9{core::Iterable<Never>});
-  } =>#t8;
+    final core::List<Never> #t11 = <Never>[];
+    final core::Iterable<Never>? #t12 = n3;
+    if(!#t12.{core::Object::==}(null))
+      for (final Never #t13 in #t12{core::Iterable<Never>})
+        #t11.{core::List::add}{Invariant}(#t13);
+  } =>#t11;
   core::Set<Never> s1 = block {
-    final core::Set<Never> #t10 = col::LinkedHashSet::of<Never>(let final Never #t11 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-    #t10.{core::Set::add}{Invariant}(let final Never #t12 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t10;
+    final core::Set<Never> #t14 = col::LinkedHashSet::•<Never>();
+    for (final Never #t15 in let final Never #t16 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."))
+      #t14.{core::Set::add}{Invariant}(#t15);
+    #t14.{core::Set::add}{Invariant}(let final Never #t17 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t14;
   core::Set<Never> s2 = block {
-    final core::Set<Never> #t13 = col::LinkedHashSet::•<Never>();
-    final core::Iterable<Never>? #t14 = let final Never #t15 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
-    if(!#t14.{core::Object::==}(null))
-      #t13.{core::Set::addAll}{Invariant}(#t14{core::Iterable<Never>});
-    #t13.{core::Set::add}{Invariant}(let final Never #t16 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t13;
+    final core::Set<Never> #t18 = col::LinkedHashSet::•<Never>();
+    final core::Iterable<Never>? #t19 = let final Never #t20 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+    if(!#t19.{core::Object::==}(null))
+      for (final Never #t21 in #t19{core::Iterable<Never>})
+        #t18.{core::Set::add}{Invariant}(#t21);
+    #t18.{core::Set::add}{Invariant}(let final Never #t22 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t18;
   core::Set<dynamic> s3 = block {
-    final core::Set<dynamic> #t17 = col::LinkedHashSet::•<dynamic>();
-    #t17.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
+    final core::Set<dynamic> #t23 = col::LinkedHashSet::•<dynamic>();
+    #t23.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
   var s3 = {...n2, n1};
                ^");
-    #t17.{core::Set::add}{Invariant}(let final Never #t18 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t17;
+    #t23.{core::Set::add}{Invariant}(let final Never #t24 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t23;
   core::Set<Never> s4 = block {
-    final core::Set<Never> #t19 = col::LinkedHashSet::•<Never>();
-    final core::Iterable<Never>? #t20 = n2;
-    if(!#t20.{core::Object::==}(null))
-      #t19.{core::Set::addAll}{Invariant}(#t20{core::Iterable<Never>});
-    #t19.{core::Set::add}{Invariant}(let final Never #t21 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t19;
+    final core::Set<Never> #t25 = col::LinkedHashSet::•<Never>();
+    final core::Iterable<Never>? #t26 = n2;
+    if(!#t26.{core::Object::==}(null))
+      for (final Never #t27 in #t26{core::Iterable<Never>})
+        #t25.{core::Set::add}{Invariant}(#t27);
+    #t25.{core::Set::add}{Invariant}(let final Never #t28 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t25;
   core::Set<dynamic> s5 = block {
-    final core::Set<dynamic> #t22 = col::LinkedHashSet::•<dynamic>();
-    #t22.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
+    final core::Set<dynamic> #t29 = col::LinkedHashSet::•<dynamic>();
+    #t29.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
   var s5 = {...n3, n1};
                ^");
-    #t22.{core::Set::add}{Invariant}(let final Never #t23 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t22;
+    #t29.{core::Set::add}{Invariant}(let final Never #t30 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t29;
   core::Set<Never> s6 = block {
-    final core::Set<Never> #t24 = col::LinkedHashSet::•<Never>();
-    final core::Iterable<Never>? #t25 = n3;
-    if(!#t25.{core::Object::==}(null))
-      #t24.{core::Set::addAll}{Invariant}(#t25{core::Iterable<Never>});
-    #t24.{core::Set::add}{Invariant}(let final Never #t26 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t24;
+    final core::Set<Never> #t31 = col::LinkedHashSet::•<Never>();
+    final core::Iterable<Never>? #t32 = n3;
+    if(!#t32.{core::Object::==}(null))
+      for (final Never #t33 in #t32{core::Iterable<Never>})
+        #t31.{core::Set::add}{Invariant}(#t33);
+    #t31.{core::Set::add}{Invariant}(let final Never #t34 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t31;
   core::Map<Never, Never> m1 = block {
-    final core::Map<Never, Never> #t27 = <Never, Never>{};
-    for (final core::MapEntry<Never, Never> #t28 in (let final Never #t29 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).{core::Map::entries})
-      #t27.{core::Map::[]=}{Invariant}(#t28.{core::MapEntry::key}, #t28.{core::MapEntry::value});
-    #t27.{core::Map::[]=}{Invariant}(let final Never #t30 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t31 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t27;
+    final core::Map<Never, Never> #t35 = <Never, Never>{};
+    for (final core::MapEntry<Never, Never> #t36 in (let final Never #t37 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).{core::Map::entries})
+      #t35.{core::Map::[]=}{Invariant}(#t36.{core::MapEntry::key}, #t36.{core::MapEntry::value});
+    #t35.{core::Map::[]=}{Invariant}(let final Never #t38 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t39 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t35;
   core::Map<Never, Never> m2 = block {
-    final core::Map<Never, Never> #t32 = <Never, Never>{};
-    final core::Map<Never, Never>? #t33 = let final Never #t34 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
-    if(!#t33.{core::Object::==}(null))
-      for (final core::MapEntry<Never, Never> #t35 in #t33{core::Map<Never, Never>}.{core::Map::entries})
-        #t32.{core::Map::[]=}{Invariant}(#t35.{core::MapEntry::key}, #t35.{core::MapEntry::value});
-    #t32.{core::Map::[]=}{Invariant}(let final Never #t36 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t37 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t32;
+    final core::Map<Never, Never> #t40 = <Never, Never>{};
+    final core::Map<Never, Never>? #t41 = let final Never #t42 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+    if(!#t41.{core::Object::==}(null))
+      for (final core::MapEntry<Never, Never> #t43 in #t41{core::Map<Never, Never>}.{core::Map::entries})
+        #t40.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
+    #t40.{core::Map::[]=}{Invariant}(let final Never #t44 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t45 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t40;
   core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:20:16: Error: Can't spread a value with static type 'Never?'.
   var m3 = {...n2, n1: n1};
-               ^": null, let final Never #t38 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final Never #t39 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
+               ^": null, let final Never #t46 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final Never #t47 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
   core::Map<Never, Never> m4 = block {
-    final core::Map<Never, Never> #t40 = <Never, Never>{};
-    final core::Map<Never, Never>? #t41 = n2;
-    if(!#t41.{core::Object::==}(null))
-      for (final core::MapEntry<Never, Never> #t42 in #t41{core::Map<Never, Never>}.{core::Map::entries})
-        #t40.{core::Map::[]=}{Invariant}(#t42.{core::MapEntry::key}, #t42.{core::MapEntry::value});
-    #t40.{core::Map::[]=}{Invariant}(let final Never #t43 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t44 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t40;
+    final core::Map<Never, Never> #t48 = <Never, Never>{};
+    final core::Map<Never, Never>? #t49 = n2;
+    if(!#t49.{core::Object::==}(null))
+      for (final core::MapEntry<Never, Never> #t50 in #t49{core::Map<Never, Never>}.{core::Map::entries})
+        #t48.{core::Map::[]=}{Invariant}(#t50.{core::MapEntry::key}, #t50.{core::MapEntry::value});
+    #t48.{core::Map::[]=}{Invariant}(let final Never #t51 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t52 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t48;
   core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:22:16: Error: Can't spread a value with static type 'Null'.
   var m5 = {...n3, n1: n1};
-               ^": null, let final Never #t45 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final Never #t46 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
+               ^": null, let final Never #t53 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final Never #t54 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
   core::Map<Never, Never> m6 = block {
-    final core::Map<Never, Never> #t47 = <Never, Never>{};
-    final core::Map<Never, Never>? #t48 = n3;
-    if(!#t48.{core::Object::==}(null))
-      for (final core::MapEntry<Never, Never> #t49 in #t48{core::Map<Never, Never>}.{core::Map::entries})
-        #t47.{core::Map::[]=}{Invariant}(#t49.{core::MapEntry::key}, #t49.{core::MapEntry::value});
-    #t47.{core::Map::[]=}{Invariant}(let final Never #t50 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t51 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t47;
+    final core::Map<Never, Never> #t55 = <Never, Never>{};
+    final core::Map<Never, Never>? #t56 = n3;
+    if(!#t56.{core::Object::==}(null))
+      for (final core::MapEntry<Never, Never> #t57 in #t56{core::Map<Never, Never>}.{core::Map::entries})
+        #t55.{core::Map::[]=}{Invariant}(#t57.{core::MapEntry::key}, #t57.{core::MapEntry::value});
+    #t55.{core::Map::[]=}{Invariant}(let final Never #t58 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t59 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t55;
 }
 static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends Null = Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
   core::List<Never> l1 = block {
-    final core::List<Never> #t52 = core::List::of<Never>(let final self::test2::N1 #t53 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t52;
+    final core::List<Never> #t60 = <Never>[];
+    for (final Never #t61 in let final self::test2::N1 #t62 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."))
+      #t60.{core::List::add}{Invariant}(#t61);
+  } =>#t60;
   core::List<Never> l2 = block {
-    final core::List<Never> #t54 = <Never>[];
-    final core::Iterable<Never>? #t55 = let final self::test2::N1 #t56 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
-    if(!#t55.{core::Object::==}(null))
-      #t54.{core::List::addAll}{Invariant}(#t55{core::Iterable<Never>});
-  } =>#t54;
+    final core::List<Never> #t63 = <Never>[];
+    final core::Iterable<Never>? #t64 = let final self::test2::N1 #t65 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+    if(!#t64.{core::Object::==}(null))
+      for (final Never #t66 in #t64{core::Iterable<Never>})
+        #t63.{core::List::add}{Invariant}(#t66);
+  } =>#t63;
   core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:30:16: Error: Can't spread a value with static type 'N2'.
   var l3 = [...n2];
                ^"];
   core::List<Never> l4 = block {
-    final core::List<Never> #t57 = <Never>[];
-    final core::Iterable<Never>? #t58 = n2;
-    if(!#t58.{core::Object::==}(null))
-      #t57.{core::List::addAll}{Invariant}(#t58{core::Iterable<Never>});
-  } =>#t57;
+    final core::List<Never> #t67 = <Never>[];
+    final core::Iterable<Never>? #t68 = n2;
+    if(!#t68.{core::Object::==}(null))
+      for (final Never #t69 in #t68{core::Iterable<Never>})
+        #t67.{core::List::add}{Invariant}(#t69);
+  } =>#t67;
   core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:32:16: Error: Can't spread a value with static type 'N3'.
   var l5 = [...n3];
                ^"];
   core::List<Never> l6 = block {
-    final core::List<Never> #t59 = <Never>[];
-    final core::Iterable<Never>? #t60 = n3;
-    if(!#t60.{core::Object::==}(null))
-      #t59.{core::List::addAll}{Invariant}(#t60{core::Iterable<Never>});
-  } =>#t59;
+    final core::List<Never> #t70 = <Never>[];
+    final core::Iterable<Never>? #t71 = n3;
+    if(!#t71.{core::Object::==}(null))
+      for (final Never #t72 in #t71{core::Iterable<Never>})
+        #t70.{core::List::add}{Invariant}(#t72);
+  } =>#t70;
   core::Set<self::test2::N1> s1 = block {
-    final core::Set<self::test2::N1> #t61 = col::LinkedHashSet::of<self::test2::N1>(let final self::test2::N1 #t62 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-    #t61.{core::Set::add}{Invariant}(let final self::test2::N1 #t63 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t61;
+    final core::Set<self::test2::N1> #t73 = col::LinkedHashSet::•<self::test2::N1>();
+    for (final self::test2::N1 #t74 in let final self::test2::N1 #t75 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."))
+      #t73.{core::Set::add}{Invariant}(#t74);
+    #t73.{core::Set::add}{Invariant}(let final self::test2::N1 #t76 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t73;
   core::Set<self::test2::N1> s2 = block {
-    final core::Set<self::test2::N1> #t64 = col::LinkedHashSet::•<self::test2::N1>();
-    final core::Iterable<self::test2::N1>? #t65 = let final self::test2::N1 #t66 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
-    if(!#t65.{core::Object::==}(null))
-      #t64.{core::Set::addAll}{Invariant}(#t65{core::Iterable<self::test2::N1>});
-    #t64.{core::Set::add}{Invariant}(let final self::test2::N1 #t67 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t64;
+    final core::Set<self::test2::N1> #t77 = col::LinkedHashSet::•<self::test2::N1>();
+    final core::Iterable<self::test2::N1>? #t78 = let final self::test2::N1 #t79 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+    if(!#t78.{core::Object::==}(null))
+      for (final self::test2::N1 #t80 in #t78{core::Iterable<self::test2::N1>})
+        #t77.{core::Set::add}{Invariant}(#t80);
+    #t77.{core::Set::add}{Invariant}(let final self::test2::N1 #t81 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t77;
   core::Set<dynamic> s3 = block {
-    final core::Set<dynamic> #t68 = col::LinkedHashSet::•<dynamic>();
-    #t68.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
+    final core::Set<dynamic> #t82 = col::LinkedHashSet::•<dynamic>();
+    #t82.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
   var s3 = {...n2, n1};
                ^");
-    #t68.{core::Set::add}{Invariant}(let final self::test2::N1 #t69 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t68;
+    #t82.{core::Set::add}{Invariant}(let final self::test2::N1 #t83 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t82;
   core::Set<self::test2::N1> s4 = block {
-    final core::Set<self::test2::N1> #t70 = col::LinkedHashSet::•<self::test2::N1>();
-    final core::Iterable<self::test2::N1>? #t71 = n2;
-    if(!#t71.{core::Object::==}(null))
-      #t70.{core::Set::addAll}{Invariant}(#t71{core::Iterable<self::test2::N1>});
-    #t70.{core::Set::add}{Invariant}(let final self::test2::N1 #t72 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t70;
+    final core::Set<self::test2::N1> #t84 = col::LinkedHashSet::•<self::test2::N1>();
+    final core::Iterable<self::test2::N1>? #t85 = n2;
+    if(!#t85.{core::Object::==}(null))
+      for (final self::test2::N1 #t86 in #t85{core::Iterable<self::test2::N1>})
+        #t84.{core::Set::add}{Invariant}(#t86);
+    #t84.{core::Set::add}{Invariant}(let final self::test2::N1 #t87 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t84;
   core::Set<dynamic> s5 = block {
-    final core::Set<dynamic> #t73 = col::LinkedHashSet::•<dynamic>();
-    #t73.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
+    final core::Set<dynamic> #t88 = col::LinkedHashSet::•<dynamic>();
+    #t88.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
   var s5 = {...n3, n1};
                ^");
-    #t73.{core::Set::add}{Invariant}(let final self::test2::N1 #t74 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t73;
+    #t88.{core::Set::add}{Invariant}(let final self::test2::N1 #t89 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t88;
   core::Set<self::test2::N1> s6 = block {
-    final core::Set<self::test2::N1> #t75 = col::LinkedHashSet::•<self::test2::N1>();
-    final core::Iterable<self::test2::N1>? #t76 = n3;
-    if(!#t76.{core::Object::==}(null))
-      #t75.{core::Set::addAll}{Invariant}(#t76{core::Iterable<self::test2::N1>});
-    #t75.{core::Set::add}{Invariant}(let final self::test2::N1 #t77 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t75;
+    final core::Set<self::test2::N1> #t90 = col::LinkedHashSet::•<self::test2::N1>();
+    final core::Iterable<self::test2::N1>? #t91 = n3;
+    if(!#t91.{core::Object::==}(null))
+      for (final self::test2::N1 #t92 in #t91{core::Iterable<self::test2::N1>})
+        #t90.{core::Set::add}{Invariant}(#t92);
+    #t90.{core::Set::add}{Invariant}(let final self::test2::N1 #t93 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t90;
   core::Map<self::test2::N1, self::test2::N1> m1 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t78 = <self::test2::N1, self::test2::N1>{};
-    for (final core::MapEntry<self::test2::N1, self::test2::N1> #t79 in (let final self::test2::N1 #t80 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).{core::Map::entries})
-      #t78.{core::Map::[]=}{Invariant}(#t79.{core::MapEntry::key}, #t79.{core::MapEntry::value});
-    #t78.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t81 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t82 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t78;
+    final core::Map<self::test2::N1, self::test2::N1> #t94 = <self::test2::N1, self::test2::N1>{};
+    for (final core::MapEntry<self::test2::N1, self::test2::N1> #t95 in (let final self::test2::N1 #t96 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).{core::Map::entries})
+      #t94.{core::Map::[]=}{Invariant}(#t95.{core::MapEntry::key}, #t95.{core::MapEntry::value});
+    #t94.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t97 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t98 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t94;
   core::Map<self::test2::N1, self::test2::N1> m2 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t83 = <self::test2::N1, self::test2::N1>{};
-    final core::Map<self::test2::N1, self::test2::N1>? #t84 = let final self::test2::N1 #t85 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
-    if(!#t84.{core::Object::==}(null))
-      for (final core::MapEntry<self::test2::N1, self::test2::N1> #t86 in #t84{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries})
-        #t83.{core::Map::[]=}{Invariant}(#t86.{core::MapEntry::key}, #t86.{core::MapEntry::value});
-    #t83.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t87 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t88 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t83;
+    final core::Map<self::test2::N1, self::test2::N1> #t99 = <self::test2::N1, self::test2::N1>{};
+    final core::Map<self::test2::N1, self::test2::N1>? #t100 = let final self::test2::N1 #t101 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+    if(!#t100.{core::Object::==}(null))
+      for (final core::MapEntry<self::test2::N1, self::test2::N1> #t102 in #t100{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries})
+        #t99.{core::Map::[]=}{Invariant}(#t102.{core::MapEntry::key}, #t102.{core::MapEntry::value});
+    #t99.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t103 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t104 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t99;
   core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:42:16: Error: Can't spread a value with static type 'N2'.
   var m3 = {...n2, n1: n1};
-               ^": null, let final self::test2::N1 #t89 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final self::test2::N1 #t90 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
+               ^": null, let final self::test2::N1 #t105 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final self::test2::N1 #t106 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
   core::Map<self::test2::N1, self::test2::N1> m4 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t91 = <self::test2::N1, self::test2::N1>{};
-    final core::Map<self::test2::N1, self::test2::N1>? #t92 = n2;
-    if(!#t92.{core::Object::==}(null))
-      for (final core::MapEntry<self::test2::N1, self::test2::N1> #t93 in #t92{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries})
-        #t91.{core::Map::[]=}{Invariant}(#t93.{core::MapEntry::key}, #t93.{core::MapEntry::value});
-    #t91.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t94 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t95 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t91;
+    final core::Map<self::test2::N1, self::test2::N1> #t107 = <self::test2::N1, self::test2::N1>{};
+    final core::Map<self::test2::N1, self::test2::N1>? #t108 = n2;
+    if(!#t108.{core::Object::==}(null))
+      for (final core::MapEntry<self::test2::N1, self::test2::N1> #t109 in #t108{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries})
+        #t107.{core::Map::[]=}{Invariant}(#t109.{core::MapEntry::key}, #t109.{core::MapEntry::value});
+    #t107.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t110 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t111 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t107;
   core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:44:16: Error: Can't spread a value with static type 'N3'.
   var m5 = {...n3, n1: n1};
-               ^": null, let final self::test2::N1 #t96 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final self::test2::N1 #t97 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
+               ^": null, let final self::test2::N1 #t112 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final self::test2::N1 #t113 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
   core::Map<self::test2::N1, self::test2::N1> m6 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t98 = <self::test2::N1, self::test2::N1>{};
-    final core::Map<self::test2::N1, self::test2::N1>? #t99 = n3;
-    if(!#t99.{core::Object::==}(null))
-      for (final core::MapEntry<self::test2::N1, self::test2::N1> #t100 in #t99{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries})
-        #t98.{core::Map::[]=}{Invariant}(#t100.{core::MapEntry::key}, #t100.{core::MapEntry::value});
-    #t98.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t101 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t102 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t98;
+    final core::Map<self::test2::N1, self::test2::N1> #t114 = <self::test2::N1, self::test2::N1>{};
+    final core::Map<self::test2::N1, self::test2::N1>? #t115 = n3;
+    if(!#t115.{core::Object::==}(null))
+      for (final core::MapEntry<self::test2::N1, self::test2::N1> #t116 in #t115{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries})
+        #t114.{core::Map::[]=}{Invariant}(#t116.{core::MapEntry::key}, #t116.{core::MapEntry::value});
+    #t114.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t117 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t118 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t114;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
index ffce698..3c95716 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
@@ -81,244 +81,312 @@
 
 static method test1(Never n1, Never? n2, Null n3) → dynamic {
   core::List<Never> l1 = block {
-    final core::List<Never> #t1 = core::List::of<Never>(let final Never #t2 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+    final core::List<Never> #t1 = <Never>[];
+    for (final Never #t2 in let final Never #t3 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."))
+      #t1.{core::List::add}{Invariant}(#t2);
   } =>#t1;
   core::List<Never> l2 = block {
-    final core::List<Never> #t3 = <Never>[];
-    final core::Iterable<Never>? #t4 = let final Never #t5 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
-    if(!#t4.{core::Object::==}(null))
-      #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<Never>});
-  } =>#t3;
+    final core::List<Never> #t4 = <Never>[];
+    final core::Iterable<Never>? #t5 = let final Never #t6 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+    if(!#t5.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t5{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t7 = :sync-for-iterator.{core::Iterator::current};
+        #t4.{core::List::add}{Invariant}(#t7);
+      }
+    }
+  } =>#t4;
   core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:8:16: Error: Can't spread a value with static type 'Never?'.
   var l3 = [...n2];
                ^"];
   core::List<Never> l4 = block {
-    final core::List<Never> #t6 = <Never>[];
-    final core::Iterable<Never>? #t7 = n2;
-    if(!#t7.{core::Object::==}(null))
-      #t6.{core::List::addAll}{Invariant}(#t7{core::Iterable<Never>});
-  } =>#t6;
+    final core::List<Never> #t8 = <Never>[];
+    final core::Iterable<Never>? #t9 = n2;
+    if(!#t9.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t9{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t10 = :sync-for-iterator.{core::Iterator::current};
+        #t8.{core::List::add}{Invariant}(#t10);
+      }
+    }
+  } =>#t8;
   core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:10:16: Error: Can't spread a value with static type 'Null'.
   var l5 = [...n3];
                ^"];
   core::List<Never> l6 = block {
-    final core::List<Never> #t8 = <Never>[];
-    final core::Iterable<Never>? #t9 = n3;
-    if(!#t9.{core::Object::==}(null))
-      #t8.{core::List::addAll}{Invariant}(#t9{core::Iterable<Never>});
-  } =>#t8;
+    final core::List<Never> #t11 = <Never>[];
+    final core::Iterable<Never>? #t12 = n3;
+    if(!#t12.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t12{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t13 = :sync-for-iterator.{core::Iterator::current};
+        #t11.{core::List::add}{Invariant}(#t13);
+      }
+    }
+  } =>#t11;
   core::Set<Never> s1 = block {
-    final core::Set<Never> #t10 = col::LinkedHashSet::of<Never>(let final Never #t11 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-    #t10.{core::Set::add}{Invariant}(let final Never #t12 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t10;
+    final core::Set<Never> #t14 = new col::_CompactLinkedHashSet::•<Never>();
+    for (final Never #t15 in let final Never #t16 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."))
+      #t14.{core::Set::add}{Invariant}(#t15);
+    #t14.{core::Set::add}{Invariant}(let final Never #t17 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t14;
   core::Set<Never> s2 = block {
-    final core::Set<Never> #t13 = new col::_CompactLinkedHashSet::•<Never>();
-    final core::Iterable<Never>? #t14 = let final Never #t15 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
-    if(!#t14.{core::Object::==}(null))
-      #t13.{core::Set::addAll}{Invariant}(#t14{core::Iterable<Never>});
-    #t13.{core::Set::add}{Invariant}(let final Never #t16 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t13;
+    final core::Set<Never> #t18 = new col::_CompactLinkedHashSet::•<Never>();
+    final core::Iterable<Never>? #t19 = let final Never #t20 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+    if(!#t19.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t19{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t21 = :sync-for-iterator.{core::Iterator::current};
+        #t18.{core::Set::add}{Invariant}(#t21);
+      }
+    }
+    #t18.{core::Set::add}{Invariant}(let final Never #t22 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t18;
   core::Set<dynamic> s3 = block {
-    final core::Set<dynamic> #t17 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t17.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
+    final core::Set<dynamic> #t23 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t23.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
   var s3 = {...n2, n1};
                ^");
-    #t17.{core::Set::add}{Invariant}(let final Never #t18 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t17;
+    #t23.{core::Set::add}{Invariant}(let final Never #t24 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t23;
   core::Set<Never> s4 = block {
-    final core::Set<Never> #t19 = new col::_CompactLinkedHashSet::•<Never>();
-    final core::Iterable<Never>? #t20 = n2;
-    if(!#t20.{core::Object::==}(null))
-      #t19.{core::Set::addAll}{Invariant}(#t20{core::Iterable<Never>});
-    #t19.{core::Set::add}{Invariant}(let final Never #t21 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t19;
+    final core::Set<Never> #t25 = new col::_CompactLinkedHashSet::•<Never>();
+    final core::Iterable<Never>? #t26 = n2;
+    if(!#t26.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t26{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t27 = :sync-for-iterator.{core::Iterator::current};
+        #t25.{core::Set::add}{Invariant}(#t27);
+      }
+    }
+    #t25.{core::Set::add}{Invariant}(let final Never #t28 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t25;
   core::Set<dynamic> s5 = block {
-    final core::Set<dynamic> #t22 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t22.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
+    final core::Set<dynamic> #t29 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t29.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
   var s5 = {...n3, n1};
                ^");
-    #t22.{core::Set::add}{Invariant}(let final Never #t23 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t22;
+    #t29.{core::Set::add}{Invariant}(let final Never #t30 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t29;
   core::Set<Never> s6 = block {
-    final core::Set<Never> #t24 = new col::_CompactLinkedHashSet::•<Never>();
-    final core::Iterable<Never>? #t25 = n3;
-    if(!#t25.{core::Object::==}(null))
-      #t24.{core::Set::addAll}{Invariant}(#t25{core::Iterable<Never>});
-    #t24.{core::Set::add}{Invariant}(let final Never #t26 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t24;
+    final core::Set<Never> #t31 = new col::_CompactLinkedHashSet::•<Never>();
+    final core::Iterable<Never>? #t32 = n3;
+    if(!#t32.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t32{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t33 = :sync-for-iterator.{core::Iterator::current};
+        #t31.{core::Set::add}{Invariant}(#t33);
+      }
+    }
+    #t31.{core::Set::add}{Invariant}(let final Never #t34 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t31;
   core::Map<Never, Never> m1 = block {
-    final core::Map<Never, Never> #t27 = <Never, Never>{};
+    final core::Map<Never, Never> #t35 = <Never, Never>{};
     {
-      core::Iterator<core::MapEntry<<BottomType>, <BottomType>>> :sync-for-iterator = (let final Never #t28 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<<BottomType>, <BottomType>>> :sync-for-iterator = (let final Never #t36 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<Never, Never> #t29 = :sync-for-iterator.{core::Iterator::current};
-        #t27.{core::Map::[]=}{Invariant}(#t29.{core::MapEntry::key}, #t29.{core::MapEntry::value});
+        final core::MapEntry<Never, Never> #t37 = :sync-for-iterator.{core::Iterator::current};
+        #t35.{core::Map::[]=}{Invariant}(#t37.{core::MapEntry::key}, #t37.{core::MapEntry::value});
       }
     }
-    #t27.{core::Map::[]=}{Invariant}(let final Never #t30 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t31 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t27;
+    #t35.{core::Map::[]=}{Invariant}(let final Never #t38 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t39 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t35;
   core::Map<Never, Never> m2 = block {
-    final core::Map<Never, Never> #t32 = <Never, Never>{};
-    final core::Map<Never, Never>? #t33 = let final Never #t34 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
-    if(!#t33.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t33{core::Map<Never, Never>}.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<Never, Never> #t35 = :sync-for-iterator.{core::Iterator::current};
-        #t32.{core::Map::[]=}{Invariant}(#t35.{core::MapEntry::key}, #t35.{core::MapEntry::value});
-      }
-    }
-    #t32.{core::Map::[]=}{Invariant}(let final Never #t36 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t37 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t32;
-  core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:20:16: Error: Can't spread a value with static type 'Never?'.
-  var m3 = {...n2, n1: n1};
-               ^": null, let final Never #t38 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final Never #t39 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
-  core::Map<Never, Never> m4 = block {
     final core::Map<Never, Never> #t40 = <Never, Never>{};
-    final core::Map<Never, Never>? #t41 = n2;
+    final core::Map<Never, Never>? #t41 = let final Never #t42 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
     if(!#t41.{core::Object::==}(null)) {
       core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t41{core::Map<Never, Never>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<Never, Never> #t42 = :sync-for-iterator.{core::Iterator::current};
-        #t40.{core::Map::[]=}{Invariant}(#t42.{core::MapEntry::key}, #t42.{core::MapEntry::value});
+        final core::MapEntry<Never, Never> #t43 = :sync-for-iterator.{core::Iterator::current};
+        #t40.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
       }
     }
-    #t40.{core::Map::[]=}{Invariant}(let final Never #t43 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t44 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+    #t40.{core::Map::[]=}{Invariant}(let final Never #t44 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t45 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
   } =>#t40;
+  core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:20:16: Error: Can't spread a value with static type 'Never?'.
+  var m3 = {...n2, n1: n1};
+               ^": null, let final Never #t46 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final Never #t47 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
+  core::Map<Never, Never> m4 = block {
+    final core::Map<Never, Never> #t48 = <Never, Never>{};
+    final core::Map<Never, Never>? #t49 = n2;
+    if(!#t49.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t49{core::Map<Never, Never>}.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<Never, Never> #t50 = :sync-for-iterator.{core::Iterator::current};
+        #t48.{core::Map::[]=}{Invariant}(#t50.{core::MapEntry::key}, #t50.{core::MapEntry::value});
+      }
+    }
+    #t48.{core::Map::[]=}{Invariant}(let final Never #t51 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t52 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t48;
   core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:22:16: Error: Can't spread a value with static type 'Null'.
   var m5 = {...n3, n1: n1};
-               ^": null, let final Never #t45 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final Never #t46 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
+               ^": null, let final Never #t53 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final Never #t54 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
   core::Map<Never, Never> m6 = block {
-    final core::Map<Never, Never> #t47 = <Never, Never>{};
-    final core::Map<Never, Never>? #t48 = n3;
-    if(!#t48.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t48{core::Map<Never, Never>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<Never, Never> #t55 = <Never, Never>{};
+    final core::Map<Never, Never>? #t56 = n3;
+    if(!#t56.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t56{core::Map<Never, Never>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<Never, Never> #t49 = :sync-for-iterator.{core::Iterator::current};
-        #t47.{core::Map::[]=}{Invariant}(#t49.{core::MapEntry::key}, #t49.{core::MapEntry::value});
+        final core::MapEntry<Never, Never> #t57 = :sync-for-iterator.{core::Iterator::current};
+        #t55.{core::Map::[]=}{Invariant}(#t57.{core::MapEntry::key}, #t57.{core::MapEntry::value});
       }
     }
-    #t47.{core::Map::[]=}{Invariant}(let final Never #t50 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t51 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t47;
+    #t55.{core::Map::[]=}{Invariant}(let final Never #t58 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t59 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t55;
 }
 static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends Null = Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
   core::List<Never> l1 = block {
-    final core::List<Never> #t52 = core::List::of<Never>(let final self::test2::N1 #t53 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t52;
+    final core::List<Never> #t60 = <Never>[];
+    for (final Never #t61 in let final self::test2::N1 #t62 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."))
+      #t60.{core::List::add}{Invariant}(#t61);
+  } =>#t60;
   core::List<Never> l2 = block {
-    final core::List<Never> #t54 = <Never>[];
-    final core::Iterable<Never>? #t55 = let final self::test2::N1 #t56 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
-    if(!#t55.{core::Object::==}(null))
-      #t54.{core::List::addAll}{Invariant}(#t55{core::Iterable<Never>});
-  } =>#t54;
+    final core::List<Never> #t63 = <Never>[];
+    final core::Iterable<Never>? #t64 = let final self::test2::N1 #t65 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+    if(!#t64.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t64{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t66 = :sync-for-iterator.{core::Iterator::current};
+        #t63.{core::List::add}{Invariant}(#t66);
+      }
+    }
+  } =>#t63;
   core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:30:16: Error: Can't spread a value with static type 'N2'.
   var l3 = [...n2];
                ^"];
   core::List<Never> l4 = block {
-    final core::List<Never> #t57 = <Never>[];
-    final core::Iterable<Never>? #t58 = n2;
-    if(!#t58.{core::Object::==}(null))
-      #t57.{core::List::addAll}{Invariant}(#t58{core::Iterable<Never>});
-  } =>#t57;
+    final core::List<Never> #t67 = <Never>[];
+    final core::Iterable<Never>? #t68 = n2;
+    if(!#t68.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t68{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t69 = :sync-for-iterator.{core::Iterator::current};
+        #t67.{core::List::add}{Invariant}(#t69);
+      }
+    }
+  } =>#t67;
   core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:32:16: Error: Can't spread a value with static type 'N3'.
   var l5 = [...n3];
                ^"];
   core::List<Never> l6 = block {
-    final core::List<Never> #t59 = <Never>[];
-    final core::Iterable<Never>? #t60 = n3;
-    if(!#t60.{core::Object::==}(null))
-      #t59.{core::List::addAll}{Invariant}(#t60{core::Iterable<Never>});
-  } =>#t59;
+    final core::List<Never> #t70 = <Never>[];
+    final core::Iterable<Never>? #t71 = n3;
+    if(!#t71.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t71{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t72 = :sync-for-iterator.{core::Iterator::current};
+        #t70.{core::List::add}{Invariant}(#t72);
+      }
+    }
+  } =>#t70;
   core::Set<self::test2::N1> s1 = block {
-    final core::Set<self::test2::N1> #t61 = col::LinkedHashSet::of<self::test2::N1>(let final self::test2::N1 #t62 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-    #t61.{core::Set::add}{Invariant}(let final self::test2::N1 #t63 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t61;
+    final core::Set<self::test2::N1> #t73 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
+    for (final self::test2::N1 #t74 in let final self::test2::N1 #t75 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."))
+      #t73.{core::Set::add}{Invariant}(#t74);
+    #t73.{core::Set::add}{Invariant}(let final self::test2::N1 #t76 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t73;
   core::Set<self::test2::N1> s2 = block {
-    final core::Set<self::test2::N1> #t64 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
-    final core::Iterable<self::test2::N1>? #t65 = let final self::test2::N1 #t66 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
-    if(!#t65.{core::Object::==}(null))
-      #t64.{core::Set::addAll}{Invariant}(#t65{core::Iterable<self::test2::N1>});
-    #t64.{core::Set::add}{Invariant}(let final self::test2::N1 #t67 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t64;
+    final core::Set<self::test2::N1> #t77 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
+    final core::Iterable<self::test2::N1>? #t78 = let final self::test2::N1 #t79 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+    if(!#t78.{core::Object::==}(null)) {
+      core::Iterator<self::test2::N1> :sync-for-iterator = #t78{core::Iterable<self::test2::N1>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final self::test2::N1 #t80 = :sync-for-iterator.{core::Iterator::current};
+        #t77.{core::Set::add}{Invariant}(#t80);
+      }
+    }
+    #t77.{core::Set::add}{Invariant}(let final self::test2::N1 #t81 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t77;
   core::Set<dynamic> s3 = block {
-    final core::Set<dynamic> #t68 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t68.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
+    final core::Set<dynamic> #t82 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t82.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
   var s3 = {...n2, n1};
                ^");
-    #t68.{core::Set::add}{Invariant}(let final self::test2::N1 #t69 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t68;
+    #t82.{core::Set::add}{Invariant}(let final self::test2::N1 #t83 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t82;
   core::Set<self::test2::N1> s4 = block {
-    final core::Set<self::test2::N1> #t70 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
-    final core::Iterable<self::test2::N1>? #t71 = n2;
-    if(!#t71.{core::Object::==}(null))
-      #t70.{core::Set::addAll}{Invariant}(#t71{core::Iterable<self::test2::N1>});
-    #t70.{core::Set::add}{Invariant}(let final self::test2::N1 #t72 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t70;
+    final core::Set<self::test2::N1> #t84 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
+    final core::Iterable<self::test2::N1>? #t85 = n2;
+    if(!#t85.{core::Object::==}(null)) {
+      core::Iterator<self::test2::N1> :sync-for-iterator = #t85{core::Iterable<self::test2::N1>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final self::test2::N1 #t86 = :sync-for-iterator.{core::Iterator::current};
+        #t84.{core::Set::add}{Invariant}(#t86);
+      }
+    }
+    #t84.{core::Set::add}{Invariant}(let final self::test2::N1 #t87 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t84;
   core::Set<dynamic> s5 = block {
-    final core::Set<dynamic> #t73 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t73.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
+    final core::Set<dynamic> #t88 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t88.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
   var s5 = {...n3, n1};
                ^");
-    #t73.{core::Set::add}{Invariant}(let final self::test2::N1 #t74 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t73;
+    #t88.{core::Set::add}{Invariant}(let final self::test2::N1 #t89 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t88;
   core::Set<self::test2::N1> s6 = block {
-    final core::Set<self::test2::N1> #t75 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
-    final core::Iterable<self::test2::N1>? #t76 = n3;
-    if(!#t76.{core::Object::==}(null))
-      #t75.{core::Set::addAll}{Invariant}(#t76{core::Iterable<self::test2::N1>});
-    #t75.{core::Set::add}{Invariant}(let final self::test2::N1 #t77 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t75;
+    final core::Set<self::test2::N1> #t90 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
+    final core::Iterable<self::test2::N1>? #t91 = n3;
+    if(!#t91.{core::Object::==}(null)) {
+      core::Iterator<self::test2::N1> :sync-for-iterator = #t91{core::Iterable<self::test2::N1>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final self::test2::N1 #t92 = :sync-for-iterator.{core::Iterator::current};
+        #t90.{core::Set::add}{Invariant}(#t92);
+      }
+    }
+    #t90.{core::Set::add}{Invariant}(let final self::test2::N1 #t93 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t90;
   core::Map<self::test2::N1, self::test2::N1> m1 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t78 = <self::test2::N1, self::test2::N1>{};
+    final core::Map<self::test2::N1, self::test2::N1> #t94 = <self::test2::N1, self::test2::N1>{};
     {
-      core::Iterator<core::MapEntry<<BottomType>, <BottomType>>> :sync-for-iterator = (let final self::test2::N1 #t79 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<<BottomType>, <BottomType>>> :sync-for-iterator = (let final self::test2::N1 #t95 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<self::test2::N1, self::test2::N1> #t80 = :sync-for-iterator.{core::Iterator::current};
-        #t78.{core::Map::[]=}{Invariant}(#t80.{core::MapEntry::key}, #t80.{core::MapEntry::value});
+        final core::MapEntry<self::test2::N1, self::test2::N1> #t96 = :sync-for-iterator.{core::Iterator::current};
+        #t94.{core::Map::[]=}{Invariant}(#t96.{core::MapEntry::key}, #t96.{core::MapEntry::value});
       }
     }
-    #t78.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t81 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t82 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t78;
+    #t94.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t97 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t98 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t94;
   core::Map<self::test2::N1, self::test2::N1> m2 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t83 = <self::test2::N1, self::test2::N1>{};
-    final core::Map<self::test2::N1, self::test2::N1>? #t84 = let final self::test2::N1 #t85 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
-    if(!#t84.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t84{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<self::test2::N1, self::test2::N1> #t99 = <self::test2::N1, self::test2::N1>{};
+    final core::Map<self::test2::N1, self::test2::N1>? #t100 = let final self::test2::N1 #t101 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+    if(!#t100.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t100{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<self::test2::N1, self::test2::N1> #t86 = :sync-for-iterator.{core::Iterator::current};
-        #t83.{core::Map::[]=}{Invariant}(#t86.{core::MapEntry::key}, #t86.{core::MapEntry::value});
+        final core::MapEntry<self::test2::N1, self::test2::N1> #t102 = :sync-for-iterator.{core::Iterator::current};
+        #t99.{core::Map::[]=}{Invariant}(#t102.{core::MapEntry::key}, #t102.{core::MapEntry::value});
       }
     }
-    #t83.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t87 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t88 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t83;
+    #t99.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t103 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t104 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t99;
   core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:42:16: Error: Can't spread a value with static type 'N2'.
   var m3 = {...n2, n1: n1};
-               ^": null, let final self::test2::N1 #t89 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final self::test2::N1 #t90 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
+               ^": null, let final self::test2::N1 #t105 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final self::test2::N1 #t106 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
   core::Map<self::test2::N1, self::test2::N1> m4 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t91 = <self::test2::N1, self::test2::N1>{};
-    final core::Map<self::test2::N1, self::test2::N1>? #t92 = n2;
-    if(!#t92.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t92{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<self::test2::N1, self::test2::N1> #t107 = <self::test2::N1, self::test2::N1>{};
+    final core::Map<self::test2::N1, self::test2::N1>? #t108 = n2;
+    if(!#t108.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t108{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<self::test2::N1, self::test2::N1> #t93 = :sync-for-iterator.{core::Iterator::current};
-        #t91.{core::Map::[]=}{Invariant}(#t93.{core::MapEntry::key}, #t93.{core::MapEntry::value});
+        final core::MapEntry<self::test2::N1, self::test2::N1> #t109 = :sync-for-iterator.{core::Iterator::current};
+        #t107.{core::Map::[]=}{Invariant}(#t109.{core::MapEntry::key}, #t109.{core::MapEntry::value});
       }
     }
-    #t91.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t94 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t95 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t91;
+    #t107.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t110 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t111 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t107;
   core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:44:16: Error: Can't spread a value with static type 'N3'.
   var m5 = {...n3, n1: n1};
-               ^": null, let final self::test2::N1 #t96 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final self::test2::N1 #t97 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
+               ^": null, let final self::test2::N1 #t112 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."): let final self::test2::N1 #t113 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")};
   core::Map<self::test2::N1, self::test2::N1> m6 = block {
-    final core::Map<self::test2::N1, self::test2::N1> #t98 = <self::test2::N1, self::test2::N1>{};
-    final core::Map<self::test2::N1, self::test2::N1>? #t99 = n3;
-    if(!#t99.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t99{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<self::test2::N1, self::test2::N1> #t114 = <self::test2::N1, self::test2::N1>{};
+    final core::Map<self::test2::N1, self::test2::N1>? #t115 = n3;
+    if(!#t115.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t115{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<self::test2::N1, self::test2::N1> #t100 = :sync-for-iterator.{core::Iterator::current};
-        #t98.{core::Map::[]=}{Invariant}(#t100.{core::MapEntry::key}, #t100.{core::MapEntry::value});
+        final core::MapEntry<self::test2::N1, self::test2::N1> #t116 = :sync-for-iterator.{core::Iterator::current};
+        #t114.{core::Map::[]=}{Invariant}(#t116.{core::MapEntry::key}, #t116.{core::MapEntry::value});
       }
     }
-    #t98.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t101 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t102 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
-  } =>#t98;
+    #t114.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t117 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t118 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
+  } =>#t114;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect
index 3c826d1..d4b69b6 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect
@@ -76,67 +76,73 @@
   if (i > 0) ...nullableList, // error
                 ^");
   if(self::i.{core::num::>}(0))
-    #t4.{core::Set::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>);
+    for (final dynamic #t5 in self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t4.{core::Set::add}{Invariant}(#t5);
   if(self::i.{core::num::>}(0))
-    #t4.{core::Set::addAll}{Invariant}(self::nullableList!);
+    for (final dynamic #t6 in self::nullableList!)
+      #t4.{core::Set::add}{Invariant}(#t6);
 } =>#t4;
 static field core::List<dynamic> list1 = block {
-  final core::List<dynamic> #t5 = <dynamic>[];
+  final core::List<dynamic> #t7 = <dynamic>[];
   if(self::i.{core::num::>}(0))
-    #t5.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    #t7.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
   if (i > 0) ...nullableList, // error
                 ^");
   if(self::i.{core::num::>}(0))
-    #t5.{core::List::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>);
+    for (final dynamic #t8 in self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t7.{core::List::add}{Invariant}(#t8);
   if(self::i.{core::num::>}(0))
-    #t5.{core::List::addAll}{Invariant}(self::nullableList!);
-} =>#t5;
+    for (final dynamic #t9 in self::nullableList!)
+      #t7.{core::List::add}{Invariant}(#t9);
+} =>#t7;
 static method testMap<X extends dynamic = dynamic, Y extends core::Map<core::int, core::String>? = core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String> = core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
   core::Map<dynamic, dynamic> map2 = block {
-    final core::Map<dynamic, dynamic> #t6 = <dynamic, dynamic>{};
+    final core::Map<dynamic, dynamic> #t10 = <dynamic, dynamic>{};
     if(self::i.{core::num::>}(0))
-      #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
+      #t10.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
     if (i > 0) ...x, // error
                   ^", null);
     if(self::i.{core::num::>}(0))
-      #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+      #t10.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
     if (i > 0) ...y, // error
                   ^", null);
     if(self::i.{core::num::>}(0))
-      for (final core::MapEntry<dynamic, dynamic> #t7 in z.{core::Map::entries})
-        #t6.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}, #t7.{core::MapEntry::value});
+      for (final core::MapEntry<dynamic, dynamic> #t11 in z.{core::Map::entries})
+        #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}, #t11.{core::MapEntry::value});
     if(self::i.{core::num::>}(0))
-      for (final core::MapEntry<dynamic, dynamic> #t8 in y!.{core::Map::entries})
-        #t6.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}, #t8.{core::MapEntry::value});
-  } =>#t6;
+      for (final core::MapEntry<dynamic, dynamic> #t12 in y!.{core::Map::entries})
+        #t10.{core::Map::[]=}{Invariant}(#t12.{core::MapEntry::key}, #t12.{core::MapEntry::value});
+  } =>#t10;
 }
 static method testIterables<X extends dynamic = dynamic, Y extends core::List<core::int>? = core::List<core::int>?, Z extends core::List<core::int> = core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
   core::Set<dynamic> set2 = block {
-    final core::Set<dynamic> #t9 = col::LinkedHashSet::•<dynamic>();
-    #t9.{core::Set::add}{Invariant}(0);
+    final core::Set<dynamic> #t13 = col::LinkedHashSet::•<dynamic>();
+    #t13.{core::Set::add}{Invariant}(0);
     if(self::i.{core::num::>}(0))
-      #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
+      #t13.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
     if (i > 0) ...x, // error
                   ^");
     if(self::i.{core::num::>}(0))
-      #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+      #t13.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
     if (i > 0) ...y, // error
                   ^");
     if(self::i.{core::num::>}(0))
-      #t9.{core::Set::addAll}{Invariant}(z);
-  } =>#t9;
+      for (final dynamic #t14 in z)
+        #t13.{core::Set::add}{Invariant}(#t14);
+  } =>#t13;
   core::List<dynamic> list2 = block {
-    final core::List<dynamic> #t10 = <dynamic>[];
+    final core::List<dynamic> #t15 = <dynamic>[];
     if(self::i.{core::num::>}(0))
-      #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
+      #t15.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
     if (i > 0) ...x, // error
                   ^");
     if(self::i.{core::num::>}(0))
-      #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+      #t15.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
     if (i > 0) ...y, // error
                   ^");
     if(self::i.{core::num::>}(0))
-      #t10.{core::List::addAll}{Invariant}(z);
-  } =>#t10;
+      for (final dynamic #t16 in z)
+        #t15.{core::List::add}{Invariant}(#t16);
+  } =>#t15;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect
index 4fddc1b..7babee3 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect
@@ -83,76 +83,106 @@
     #t4.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:23:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
   if (i > 0) ...nullableList, // error
                 ^");
-  if(self::i.{core::num::>}(0))
-    #t4.{core::Set::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>);
-  if(self::i.{core::num::>}(0))
-    #t4.{core::Set::addAll}{Invariant}(self::nullableList!);
+  if(self::i.{core::num::>}(0)) {
+    core::Iterator<dynamic> :sync-for-iterator = (self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+      final dynamic #t5 = :sync-for-iterator.{core::Iterator::current};
+      #t4.{core::Set::add}{Invariant}(#t5);
+    }
+  }
+  if(self::i.{core::num::>}(0)) {
+    core::Iterator<core::int> :sync-for-iterator = self::nullableList!.{core::Iterable::iterator};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+      final dynamic #t6 = :sync-for-iterator.{core::Iterator::current};
+      #t4.{core::Set::add}{Invariant}(#t6);
+    }
+  }
 } =>#t4;
 static field core::List<dynamic> list1 = block {
-  final core::List<dynamic> #t5 = <dynamic>[];
+  final core::List<dynamic> #t7 = <dynamic>[];
   if(self::i.{core::num::>}(0))
-    #t5.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    #t7.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
   if (i > 0) ...nullableList, // error
                 ^");
-  if(self::i.{core::num::>}(0))
-    #t5.{core::List::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>);
-  if(self::i.{core::num::>}(0))
-    #t5.{core::List::addAll}{Invariant}(self::nullableList!);
-} =>#t5;
+  if(self::i.{core::num::>}(0)) {
+    core::Iterator<dynamic> :sync-for-iterator = (self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+      final dynamic #t8 = :sync-for-iterator.{core::Iterator::current};
+      #t7.{core::List::add}{Invariant}(#t8);
+    }
+  }
+  if(self::i.{core::num::>}(0)) {
+    core::Iterator<core::int> :sync-for-iterator = self::nullableList!.{core::Iterable::iterator};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+      final dynamic #t9 = :sync-for-iterator.{core::Iterator::current};
+      #t7.{core::List::add}{Invariant}(#t9);
+    }
+  }
+} =>#t7;
 static method testMap<X extends dynamic = dynamic, Y extends core::Map<core::int, core::String>? = core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String> = core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
   core::Map<dynamic, dynamic> map2 = block {
-    final core::Map<dynamic, dynamic> #t6 = <dynamic, dynamic>{};
+    final core::Map<dynamic, dynamic> #t10 = <dynamic, dynamic>{};
     if(self::i.{core::num::>}(0))
-      #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
+      #t10.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
     if (i > 0) ...x, // error
                   ^", null);
     if(self::i.{core::num::>}(0))
-      #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+      #t10.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
     if (i > 0) ...y, // error
                   ^", null);
     if(self::i.{core::num::>}(0)) {
       core::Iterator<core::MapEntry<core::int, core::String>> :sync-for-iterator = z.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic> #t7 = :sync-for-iterator.{core::Iterator::current};
-        #t6.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}, #t7.{core::MapEntry::value});
+        final core::MapEntry<dynamic, dynamic> #t11 = :sync-for-iterator.{core::Iterator::current};
+        #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}, #t11.{core::MapEntry::value});
       }
     }
     if(self::i.{core::num::>}(0)) {
       core::Iterator<core::MapEntry<core::int, core::String>> :sync-for-iterator = y!.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic> #t8 = :sync-for-iterator.{core::Iterator::current};
-        #t6.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}, #t8.{core::MapEntry::value});
+        final core::MapEntry<dynamic, dynamic> #t12 = :sync-for-iterator.{core::Iterator::current};
+        #t10.{core::Map::[]=}{Invariant}(#t12.{core::MapEntry::key}, #t12.{core::MapEntry::value});
       }
     }
-  } =>#t6;
+  } =>#t10;
 }
 static method testIterables<X extends dynamic = dynamic, Y extends core::List<core::int>? = core::List<core::int>?, Z extends core::List<core::int> = core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
   core::Set<dynamic> set2 = block {
-    final core::Set<dynamic> #t9 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t9.{core::Set::add}{Invariant}(0);
+    final core::Set<dynamic> #t13 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t13.{core::Set::add}{Invariant}(0);
     if(self::i.{core::num::>}(0))
-      #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
+      #t13.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
     if (i > 0) ...x, // error
                   ^");
     if(self::i.{core::num::>}(0))
-      #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+      #t13.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
     if (i > 0) ...y, // error
                   ^");
-    if(self::i.{core::num::>}(0))
-      #t9.{core::Set::addAll}{Invariant}(z);
-  } =>#t9;
+    if(self::i.{core::num::>}(0)) {
+      core::Iterator<core::int> :sync-for-iterator = z.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t14 = :sync-for-iterator.{core::Iterator::current};
+        #t13.{core::Set::add}{Invariant}(#t14);
+      }
+    }
+  } =>#t13;
   core::List<dynamic> list2 = block {
-    final core::List<dynamic> #t10 = <dynamic>[];
+    final core::List<dynamic> #t15 = <dynamic>[];
     if(self::i.{core::num::>}(0))
-      #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
+      #t15.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
     if (i > 0) ...x, // error
                   ^");
     if(self::i.{core::num::>}(0))
-      #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+      #t15.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
     if (i > 0) ...y, // error
                   ^");
-    if(self::i.{core::num::>}(0))
-      #t10.{core::List::addAll}{Invariant}(z);
-  } =>#t10;
+    if(self::i.{core::num::>}(0)) {
+      core::Iterator<core::int> :sync-for-iterator = z.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t16 = :sync-for-iterator.{core::Iterator::current};
+        #t15.{core::List::add}{Invariant}(#t16);
+      }
+    }
+  } =>#t15;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect
index 3c826d1..d4b69b6 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect
@@ -76,67 +76,73 @@
   if (i > 0) ...nullableList, // error
                 ^");
   if(self::i.{core::num::>}(0))
-    #t4.{core::Set::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>);
+    for (final dynamic #t5 in self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t4.{core::Set::add}{Invariant}(#t5);
   if(self::i.{core::num::>}(0))
-    #t4.{core::Set::addAll}{Invariant}(self::nullableList!);
+    for (final dynamic #t6 in self::nullableList!)
+      #t4.{core::Set::add}{Invariant}(#t6);
 } =>#t4;
 static field core::List<dynamic> list1 = block {
-  final core::List<dynamic> #t5 = <dynamic>[];
+  final core::List<dynamic> #t7 = <dynamic>[];
   if(self::i.{core::num::>}(0))
-    #t5.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    #t7.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
   if (i > 0) ...nullableList, // error
                 ^");
   if(self::i.{core::num::>}(0))
-    #t5.{core::List::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>);
+    for (final dynamic #t8 in self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>)
+      #t7.{core::List::add}{Invariant}(#t8);
   if(self::i.{core::num::>}(0))
-    #t5.{core::List::addAll}{Invariant}(self::nullableList!);
-} =>#t5;
+    for (final dynamic #t9 in self::nullableList!)
+      #t7.{core::List::add}{Invariant}(#t9);
+} =>#t7;
 static method testMap<X extends dynamic = dynamic, Y extends core::Map<core::int, core::String>? = core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String> = core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
   core::Map<dynamic, dynamic> map2 = block {
-    final core::Map<dynamic, dynamic> #t6 = <dynamic, dynamic>{};
+    final core::Map<dynamic, dynamic> #t10 = <dynamic, dynamic>{};
     if(self::i.{core::num::>}(0))
-      #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
+      #t10.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
     if (i > 0) ...x, // error
                   ^", null);
     if(self::i.{core::num::>}(0))
-      #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+      #t10.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
     if (i > 0) ...y, // error
                   ^", null);
     if(self::i.{core::num::>}(0))
-      for (final core::MapEntry<dynamic, dynamic> #t7 in z.{core::Map::entries})
-        #t6.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}, #t7.{core::MapEntry::value});
+      for (final core::MapEntry<dynamic, dynamic> #t11 in z.{core::Map::entries})
+        #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}, #t11.{core::MapEntry::value});
     if(self::i.{core::num::>}(0))
-      for (final core::MapEntry<dynamic, dynamic> #t8 in y!.{core::Map::entries})
-        #t6.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}, #t8.{core::MapEntry::value});
-  } =>#t6;
+      for (final core::MapEntry<dynamic, dynamic> #t12 in y!.{core::Map::entries})
+        #t10.{core::Map::[]=}{Invariant}(#t12.{core::MapEntry::key}, #t12.{core::MapEntry::value});
+  } =>#t10;
 }
 static method testIterables<X extends dynamic = dynamic, Y extends core::List<core::int>? = core::List<core::int>?, Z extends core::List<core::int> = core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
   core::Set<dynamic> set2 = block {
-    final core::Set<dynamic> #t9 = col::LinkedHashSet::•<dynamic>();
-    #t9.{core::Set::add}{Invariant}(0);
+    final core::Set<dynamic> #t13 = col::LinkedHashSet::•<dynamic>();
+    #t13.{core::Set::add}{Invariant}(0);
     if(self::i.{core::num::>}(0))
-      #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
+      #t13.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
     if (i > 0) ...x, // error
                   ^");
     if(self::i.{core::num::>}(0))
-      #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+      #t13.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
     if (i > 0) ...y, // error
                   ^");
     if(self::i.{core::num::>}(0))
-      #t9.{core::Set::addAll}{Invariant}(z);
-  } =>#t9;
+      for (final dynamic #t14 in z)
+        #t13.{core::Set::add}{Invariant}(#t14);
+  } =>#t13;
   core::List<dynamic> list2 = block {
-    final core::List<dynamic> #t10 = <dynamic>[];
+    final core::List<dynamic> #t15 = <dynamic>[];
     if(self::i.{core::num::>}(0))
-      #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
+      #t15.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
     if (i > 0) ...x, // error
                   ^");
     if(self::i.{core::num::>}(0))
-      #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+      #t15.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
     if (i > 0) ...y, // error
                   ^");
     if(self::i.{core::num::>}(0))
-      #t10.{core::List::addAll}{Invariant}(z);
-  } =>#t10;
+      for (final dynamic #t16 in z)
+        #t15.{core::List::add}{Invariant}(#t16);
+  } =>#t15;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect
index 4fddc1b..7babee3 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect
@@ -83,76 +83,106 @@
     #t4.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:23:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
   if (i > 0) ...nullableList, // error
                 ^");
-  if(self::i.{core::num::>}(0))
-    #t4.{core::Set::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>);
-  if(self::i.{core::num::>}(0))
-    #t4.{core::Set::addAll}{Invariant}(self::nullableList!);
+  if(self::i.{core::num::>}(0)) {
+    core::Iterator<dynamic> :sync-for-iterator = (self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+      final dynamic #t5 = :sync-for-iterator.{core::Iterator::current};
+      #t4.{core::Set::add}{Invariant}(#t5);
+    }
+  }
+  if(self::i.{core::num::>}(0)) {
+    core::Iterator<core::int> :sync-for-iterator = self::nullableList!.{core::Iterable::iterator};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+      final dynamic #t6 = :sync-for-iterator.{core::Iterator::current};
+      #t4.{core::Set::add}{Invariant}(#t6);
+    }
+  }
 } =>#t4;
 static field core::List<dynamic> list1 = block {
-  final core::List<dynamic> #t5 = <dynamic>[];
+  final core::List<dynamic> #t7 = <dynamic>[];
   if(self::i.{core::num::>}(0))
-    #t5.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    #t7.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
   if (i > 0) ...nullableList, // error
                 ^");
-  if(self::i.{core::num::>}(0))
-    #t5.{core::List::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>);
-  if(self::i.{core::num::>}(0))
-    #t5.{core::List::addAll}{Invariant}(self::nullableList!);
-} =>#t5;
+  if(self::i.{core::num::>}(0)) {
+    core::Iterator<dynamic> :sync-for-iterator = (self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+      final dynamic #t8 = :sync-for-iterator.{core::Iterator::current};
+      #t7.{core::List::add}{Invariant}(#t8);
+    }
+  }
+  if(self::i.{core::num::>}(0)) {
+    core::Iterator<core::int> :sync-for-iterator = self::nullableList!.{core::Iterable::iterator};
+    for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+      final dynamic #t9 = :sync-for-iterator.{core::Iterator::current};
+      #t7.{core::List::add}{Invariant}(#t9);
+    }
+  }
+} =>#t7;
 static method testMap<X extends dynamic = dynamic, Y extends core::Map<core::int, core::String>? = core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String> = core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
   core::Map<dynamic, dynamic> map2 = block {
-    final core::Map<dynamic, dynamic> #t6 = <dynamic, dynamic>{};
+    final core::Map<dynamic, dynamic> #t10 = <dynamic, dynamic>{};
     if(self::i.{core::num::>}(0))
-      #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
+      #t10.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
     if (i > 0) ...x, // error
                   ^", null);
     if(self::i.{core::num::>}(0))
-      #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+      #t10.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
     if (i > 0) ...y, // error
                   ^", null);
     if(self::i.{core::num::>}(0)) {
       core::Iterator<core::MapEntry<core::int, core::String>> :sync-for-iterator = z.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic> #t7 = :sync-for-iterator.{core::Iterator::current};
-        #t6.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}, #t7.{core::MapEntry::value});
+        final core::MapEntry<dynamic, dynamic> #t11 = :sync-for-iterator.{core::Iterator::current};
+        #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}, #t11.{core::MapEntry::value});
       }
     }
     if(self::i.{core::num::>}(0)) {
       core::Iterator<core::MapEntry<core::int, core::String>> :sync-for-iterator = y!.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic> #t8 = :sync-for-iterator.{core::Iterator::current};
-        #t6.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}, #t8.{core::MapEntry::value});
+        final core::MapEntry<dynamic, dynamic> #t12 = :sync-for-iterator.{core::Iterator::current};
+        #t10.{core::Map::[]=}{Invariant}(#t12.{core::MapEntry::key}, #t12.{core::MapEntry::value});
       }
     }
-  } =>#t6;
+  } =>#t10;
 }
 static method testIterables<X extends dynamic = dynamic, Y extends core::List<core::int>? = core::List<core::int>?, Z extends core::List<core::int> = core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
   core::Set<dynamic> set2 = block {
-    final core::Set<dynamic> #t9 = new col::_CompactLinkedHashSet::•<dynamic>();
-    #t9.{core::Set::add}{Invariant}(0);
+    final core::Set<dynamic> #t13 = new col::_CompactLinkedHashSet::•<dynamic>();
+    #t13.{core::Set::add}{Invariant}(0);
     if(self::i.{core::num::>}(0))
-      #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
+      #t13.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
     if (i > 0) ...x, // error
                   ^");
     if(self::i.{core::num::>}(0))
-      #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+      #t13.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
     if (i > 0) ...y, // error
                   ^");
-    if(self::i.{core::num::>}(0))
-      #t9.{core::Set::addAll}{Invariant}(z);
-  } =>#t9;
+    if(self::i.{core::num::>}(0)) {
+      core::Iterator<core::int> :sync-for-iterator = z.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t14 = :sync-for-iterator.{core::Iterator::current};
+        #t13.{core::Set::add}{Invariant}(#t14);
+      }
+    }
+  } =>#t13;
   core::List<dynamic> list2 = block {
-    final core::List<dynamic> #t10 = <dynamic>[];
+    final core::List<dynamic> #t15 = <dynamic>[];
     if(self::i.{core::num::>}(0))
-      #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
+      #t15.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
     if (i > 0) ...x, // error
                   ^");
     if(self::i.{core::num::>}(0))
-      #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+      #t15.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
     if (i > 0) ...y, // error
                   ^");
-    if(self::i.{core::num::>}(0))
-      #t10.{core::List::addAll}{Invariant}(z);
-  } =>#t10;
+    if(self::i.{core::num::>}(0)) {
+      core::Iterator<core::int> :sync-for-iterator = z.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t16 = :sync-for-iterator.{core::Iterator::current};
+        #t15.{core::List::add}{Invariant}(#t16);
+      }
+    }
+  } =>#t15;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.expect b/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.expect
index df571c2..ffceca9 100644
--- a/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.expect
@@ -6,137 +6,155 @@
 static method main() → dynamic {
   core::List<core::int>? list = null;
   core::print( block {
-    final core::List<core::int> #t1 = <core::int>[1, 2];
+    final core::List<core::int> #t1 = <core::int>[];
+    #t1.{core::List::add}{Invariant}(1);
+    #t1.{core::List::add}{Invariant}(2);
     final core::Iterable<core::int>? #t2 = list;
     if(!#t2.{core::Object::==}(null))
-      #t1.{core::List::addAll}{Invariant}(#t2{core::Iterable<core::int>});
+      for (final core::int #t3 in #t2{core::Iterable<core::int>})
+        #t1.{core::List::add}{Invariant}(#t3);
     #t1.{core::List::add}{Invariant}(3);
   } =>#t1);
   core::print( block {
-    final core::List<core::int> #t3 = <core::int>[1, 2];
-    final core::Iterable<core::int>? #t4 = null;
-    if(!#t4.{core::Object::==}(null))
-      #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<core::int>});
-    #t3.{core::List::add}{Invariant}(3);
-  } =>#t3);
+    final core::List<core::int> #t4 = <core::int>[];
+    #t4.{core::List::add}{Invariant}(1);
+    #t4.{core::List::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t5 = null;
+    if(!#t5.{core::Object::==}(null))
+      for (final core::int #t6 in #t5{core::Iterable<core::int>})
+        #t4.{core::List::add}{Invariant}(#t6);
+    #t4.{core::List::add}{Invariant}(3);
+  } =>#t4);
   core::List<core::int> list1 = block {
-    final core::List<core::int> #t5 = <core::int>[];
-    final core::Iterable<core::int>? #t6 = list;
-    if(!#t6.{core::Object::==}(null))
-      #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::int>});
-  } =>#t5;
-  core::List<Never> list2 = block {
-    final core::List<Never> #t7 = <Never>[];
-    final core::Iterable<Never>? #t8 = null;
+    final core::List<core::int> #t7 = <core::int>[];
+    final core::Iterable<core::int>? #t8 = list;
     if(!#t8.{core::Object::==}(null))
-      #t7.{core::List::addAll}{Invariant}(#t8{core::Iterable<Never>});
+      for (final core::int #t9 in #t8{core::Iterable<core::int>})
+        #t7.{core::List::add}{Invariant}(#t9);
   } =>#t7;
+  core::List<Never> list2 = block {
+    final core::List<Never> #t10 = <Never>[];
+    final core::Iterable<Never>? #t11 = null;
+    if(!#t11.{core::Object::==}(null))
+      for (final Never #t12 in #t11{core::Iterable<Never>})
+        #t10.{core::List::add}{Invariant}(#t12);
+  } =>#t10;
   core::List<core::int> list3 = block {
-    final core::List<core::int> #t9 = <core::int>[1, 2];
-    final core::Iterable<core::int>? #t10 = list;
-    if(!#t10.{core::Object::==}(null))
-      #t9.{core::List::addAll}{Invariant}(#t10{core::Iterable<core::int>});
-    #t9.{core::List::add}{Invariant}(3);
-  } =>#t9;
+    final core::List<core::int> #t13 = <core::int>[];
+    #t13.{core::List::add}{Invariant}(1);
+    #t13.{core::List::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t14 = list;
+    if(!#t14.{core::Object::==}(null))
+      for (final core::int #t15 in #t14{core::Iterable<core::int>})
+        #t13.{core::List::add}{Invariant}(#t15);
+    #t13.{core::List::add}{Invariant}(3);
+  } =>#t13;
   core::List<core::int> list4 = block {
-    final core::List<core::int> #t11 = <core::int>[1, 2];
-    final core::Iterable<core::int>? #t12 = null;
-    if(!#t12.{core::Object::==}(null))
-      #t11.{core::List::addAll}{Invariant}(#t12{core::Iterable<core::int>});
-    #t11.{core::List::add}{Invariant}(3);
-  } =>#t11;
+    final core::List<core::int> #t16 = <core::int>[];
+    #t16.{core::List::add}{Invariant}(1);
+    #t16.{core::List::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t17 = null;
+    if(!#t17.{core::Object::==}(null))
+      for (final core::int #t18 in #t17{core::Iterable<core::int>})
+        #t16.{core::List::add}{Invariant}(#t18);
+    #t16.{core::List::add}{Invariant}(3);
+  } =>#t16;
   core::Set<core::int>? set = null;
   core::print( block {
-    final core::Set<core::int> #t13 = col::LinkedHashSet::•<core::int>();
-    #t13.{core::Set::add}{Invariant}(1);
-    #t13.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t14 = set;
-    if(!#t14.{core::Object::==}(null))
-      #t13.{core::Set::addAll}{Invariant}(#t14{core::Iterable<core::int>});
-    #t13.{core::Set::add}{Invariant}(3);
-  } =>#t13);
+    final core::Set<core::int> #t19 = col::LinkedHashSet::•<core::int>();
+    #t19.{core::Set::add}{Invariant}(1);
+    #t19.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t20 = set;
+    if(!#t20.{core::Object::==}(null))
+      for (final core::int #t21 in #t20{core::Iterable<core::int>})
+        #t19.{core::Set::add}{Invariant}(#t21);
+    #t19.{core::Set::add}{Invariant}(3);
+  } =>#t19);
   core::print( block {
-    final core::Set<core::int> #t15 = col::LinkedHashSet::•<core::int>();
-    #t15.{core::Set::add}{Invariant}(1);
-    #t15.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t16 = null;
-    if(!#t16.{core::Object::==}(null))
-      #t15.{core::Set::addAll}{Invariant}(#t16{core::Iterable<core::int>});
-    #t15.{core::Set::add}{Invariant}(3);
-  } =>#t15);
+    final core::Set<core::int> #t22 = col::LinkedHashSet::•<core::int>();
+    #t22.{core::Set::add}{Invariant}(1);
+    #t22.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t23 = null;
+    if(!#t23.{core::Object::==}(null))
+      for (final core::int #t24 in #t23{core::Iterable<core::int>})
+        #t22.{core::Set::add}{Invariant}(#t24);
+    #t22.{core::Set::add}{Invariant}(3);
+  } =>#t22);
   core::Set<core::int> set1 = block {
-    final core::Set<core::int> #t17 = col::LinkedHashSet::•<core::int>();
-    final core::Iterable<dynamic>? #t18 = set;
-    if(!#t18.{core::Object::==}(null))
-      for (final dynamic #t19 in #t18{core::Iterable<dynamic>}) {
-        final core::int #t20 = #t19 as{TypeError,ForNonNullableByDefault} core::int;
-        #t17.{core::Set::add}{Invariant}(#t20);
+    final core::Set<core::int> #t25 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t26 = set;
+    if(!#t26.{core::Object::==}(null))
+      for (final dynamic #t27 in #t26{core::Iterable<dynamic>}) {
+        final core::int #t28 = #t27 as{TypeError,ForNonNullableByDefault} core::int;
+        #t25.{core::Set::add}{Invariant}(#t28);
       }
-  } =>#t17;
+  } =>#t25;
   core::Set<core::int> set3 = block {
-    final core::Set<core::int> #t21 = col::LinkedHashSet::•<core::int>();
-    #t21.{core::Set::add}{Invariant}(1);
-    #t21.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t22 = set;
-    if(!#t22.{core::Object::==}(null))
-      #t21.{core::Set::addAll}{Invariant}(#t22{core::Iterable<core::int>});
-    #t21.{core::Set::add}{Invariant}(3);
-  } =>#t21;
+    final core::Set<core::int> #t29 = col::LinkedHashSet::•<core::int>();
+    #t29.{core::Set::add}{Invariant}(1);
+    #t29.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t30 = set;
+    if(!#t30.{core::Object::==}(null))
+      for (final core::int #t31 in #t30{core::Iterable<core::int>})
+        #t29.{core::Set::add}{Invariant}(#t31);
+    #t29.{core::Set::add}{Invariant}(3);
+  } =>#t29;
   core::Set<core::int> set4 = block {
-    final core::Set<core::int> #t23 = col::LinkedHashSet::•<core::int>();
-    #t23.{core::Set::add}{Invariant}(1);
-    #t23.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t24 = null;
-    if(!#t24.{core::Object::==}(null))
-      #t23.{core::Set::addAll}{Invariant}(#t24{core::Iterable<core::int>});
-    #t23.{core::Set::add}{Invariant}(3);
-  } =>#t23;
+    final core::Set<core::int> #t32 = col::LinkedHashSet::•<core::int>();
+    #t32.{core::Set::add}{Invariant}(1);
+    #t32.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t33 = null;
+    if(!#t33.{core::Object::==}(null))
+      for (final core::int #t34 in #t33{core::Iterable<core::int>})
+        #t32.{core::Set::add}{Invariant}(#t34);
+    #t32.{core::Set::add}{Invariant}(3);
+  } =>#t32;
   core::Map<core::int, core::int>? map = null;
   core::print( block {
-    final core::Map<core::int, core::int> #t25 = <core::int, core::int>{};
-    #t25.{core::Map::[]=}{Invariant}(1, 1);
-    #t25.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t26 = map;
-    if(!#t26.{core::Object::==}(null))
-      for (final core::MapEntry<core::int, core::int> #t27 in #t26{core::Map<core::int, core::int>}.{core::Map::entries})
-        #t25.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}, #t27.{core::MapEntry::value});
-    #t25.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t25);
+    final core::Map<core::int, core::int> #t35 = <core::int, core::int>{};
+    #t35.{core::Map::[]=}{Invariant}(1, 1);
+    #t35.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t36 = map;
+    if(!#t36.{core::Object::==}(null))
+      for (final core::MapEntry<core::int, core::int> #t37 in #t36{core::Map<core::int, core::int>}.{core::Map::entries})
+        #t35.{core::Map::[]=}{Invariant}(#t37.{core::MapEntry::key}, #t37.{core::MapEntry::value});
+    #t35.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t35);
   core::print( block {
-    final core::Map<core::int, core::int> #t28 = <core::int, core::int>{};
-    #t28.{core::Map::[]=}{Invariant}(1, 1);
-    #t28.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t29 = null;
-    if(!#t29.{core::Object::==}(null))
-      for (final core::MapEntry<core::int, core::int> #t30 in #t29{core::Map<core::int, core::int>}.{core::Map::entries})
-        #t28.{core::Map::[]=}{Invariant}(#t30.{core::MapEntry::key}, #t30.{core::MapEntry::value});
-    #t28.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t28);
+    final core::Map<core::int, core::int> #t38 = <core::int, core::int>{};
+    #t38.{core::Map::[]=}{Invariant}(1, 1);
+    #t38.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t39 = null;
+    if(!#t39.{core::Object::==}(null))
+      for (final core::MapEntry<core::int, core::int> #t40 in #t39{core::Map<core::int, core::int>}.{core::Map::entries})
+        #t38.{core::Map::[]=}{Invariant}(#t40.{core::MapEntry::key}, #t40.{core::MapEntry::value});
+    #t38.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t38);
   core::Map<core::int, core::int> map1 = block {
-    final core::Map<core::int, core::int> #t31 = <core::int, core::int>{};
-    final core::Map<core::int, core::int>? #t32 = map;
-    if(!#t32.{core::Object::==}(null))
-      for (final core::MapEntry<core::int, core::int> #t33 in #t32{core::Map<core::int, core::int>}.{core::Map::entries})
-        #t31.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
-  } =>#t31;
+    final core::Map<core::int, core::int> #t41 = <core::int, core::int>{};
+    final core::Map<core::int, core::int>? #t42 = map;
+    if(!#t42.{core::Object::==}(null))
+      for (final core::MapEntry<core::int, core::int> #t43 in #t42{core::Map<core::int, core::int>}.{core::Map::entries})
+        #t41.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
+  } =>#t41;
   core::Map<core::int, core::int> map3 = block {
-    final core::Map<core::int, core::int> #t34 = <core::int, core::int>{};
-    #t34.{core::Map::[]=}{Invariant}(1, 1);
-    #t34.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t35 = map;
-    if(!#t35.{core::Object::==}(null))
-      for (final core::MapEntry<core::int, core::int> #t36 in #t35{core::Map<core::int, core::int>}.{core::Map::entries})
-        #t34.{core::Map::[]=}{Invariant}(#t36.{core::MapEntry::key}, #t36.{core::MapEntry::value});
-    #t34.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t34;
+    final core::Map<core::int, core::int> #t44 = <core::int, core::int>{};
+    #t44.{core::Map::[]=}{Invariant}(1, 1);
+    #t44.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t45 = map;
+    if(!#t45.{core::Object::==}(null))
+      for (final core::MapEntry<core::int, core::int> #t46 in #t45{core::Map<core::int, core::int>}.{core::Map::entries})
+        #t44.{core::Map::[]=}{Invariant}(#t46.{core::MapEntry::key}, #t46.{core::MapEntry::value});
+    #t44.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t44;
   core::Map<core::int, core::int> map4 = block {
-    final core::Map<core::int, core::int> #t37 = <core::int, core::int>{};
-    #t37.{core::Map::[]=}{Invariant}(1, 1);
-    #t37.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t38 = null;
-    if(!#t38.{core::Object::==}(null))
-      for (final core::MapEntry<core::int, core::int> #t39 in #t38{core::Map<core::int, core::int>}.{core::Map::entries})
-        #t37.{core::Map::[]=}{Invariant}(#t39.{core::MapEntry::key}, #t39.{core::MapEntry::value});
-    #t37.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t37;
+    final core::Map<core::int, core::int> #t47 = <core::int, core::int>{};
+    #t47.{core::Map::[]=}{Invariant}(1, 1);
+    #t47.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t48 = null;
+    if(!#t48.{core::Object::==}(null))
+      for (final core::MapEntry<core::int, core::int> #t49 in #t48{core::Map<core::int, core::int>}.{core::Map::entries})
+        #t47.{core::Map::[]=}{Invariant}(#t49.{core::MapEntry::key}, #t49.{core::MapEntry::value});
+    #t47.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t47;
 }
diff --git a/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.transformed.expect
index a75a6aa..ba1a66c 100644
--- a/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.transformed.expect
@@ -6,162 +6,220 @@
 static method main() → dynamic {
   core::List<core::int>? list = null;
   core::print( block {
-    final core::List<core::int> #t1 = <core::int>[1, 2];
+    final core::List<core::int> #t1 = <core::int>[];
+    #t1.{core::List::add}{Invariant}(1);
+    #t1.{core::List::add}{Invariant}(2);
     final core::Iterable<core::int>? #t2 = list;
-    if(!#t2.{core::Object::==}(null))
-      #t1.{core::List::addAll}{Invariant}(#t2{core::Iterable<core::int>});
+    if(!#t2.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t2{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t3 = :sync-for-iterator.{core::Iterator::current};
+        #t1.{core::List::add}{Invariant}(#t3);
+      }
+    }
     #t1.{core::List::add}{Invariant}(3);
   } =>#t1);
   core::print( block {
-    final core::List<core::int> #t3 = <core::int>[1, 2];
-    final core::Iterable<core::int>? #t4 = null;
-    if(!#t4.{core::Object::==}(null))
-      #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<core::int>});
-    #t3.{core::List::add}{Invariant}(3);
-  } =>#t3);
+    final core::List<core::int> #t4 = <core::int>[];
+    #t4.{core::List::add}{Invariant}(1);
+    #t4.{core::List::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t5 = null;
+    if(!#t5.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t5{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t6 = :sync-for-iterator.{core::Iterator::current};
+        #t4.{core::List::add}{Invariant}(#t6);
+      }
+    }
+    #t4.{core::List::add}{Invariant}(3);
+  } =>#t4);
   core::List<core::int> list1 = block {
-    final core::List<core::int> #t5 = <core::int>[];
-    final core::Iterable<core::int>? #t6 = list;
-    if(!#t6.{core::Object::==}(null))
-      #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::int>});
-  } =>#t5;
-  core::List<Never> list2 = block {
-    final core::List<Never> #t7 = <Never>[];
-    final core::Iterable<Never>? #t8 = null;
-    if(!#t8.{core::Object::==}(null))
-      #t7.{core::List::addAll}{Invariant}(#t8{core::Iterable<Never>});
+    final core::List<core::int> #t7 = <core::int>[];
+    final core::Iterable<core::int>? #t8 = list;
+    if(!#t8.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t8{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t9 = :sync-for-iterator.{core::Iterator::current};
+        #t7.{core::List::add}{Invariant}(#t9);
+      }
+    }
   } =>#t7;
+  core::List<Never> list2 = block {
+    final core::List<Never> #t10 = <Never>[];
+    final core::Iterable<Never>? #t11 = null;
+    if(!#t11.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t11{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t12 = :sync-for-iterator.{core::Iterator::current};
+        #t10.{core::List::add}{Invariant}(#t12);
+      }
+    }
+  } =>#t10;
   core::List<core::int> list3 = block {
-    final core::List<core::int> #t9 = <core::int>[1, 2];
-    final core::Iterable<core::int>? #t10 = list;
-    if(!#t10.{core::Object::==}(null))
-      #t9.{core::List::addAll}{Invariant}(#t10{core::Iterable<core::int>});
-    #t9.{core::List::add}{Invariant}(3);
-  } =>#t9;
+    final core::List<core::int> #t13 = <core::int>[];
+    #t13.{core::List::add}{Invariant}(1);
+    #t13.{core::List::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t14 = list;
+    if(!#t14.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t14{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t15 = :sync-for-iterator.{core::Iterator::current};
+        #t13.{core::List::add}{Invariant}(#t15);
+      }
+    }
+    #t13.{core::List::add}{Invariant}(3);
+  } =>#t13;
   core::List<core::int> list4 = block {
-    final core::List<core::int> #t11 = <core::int>[1, 2];
-    final core::Iterable<core::int>? #t12 = null;
-    if(!#t12.{core::Object::==}(null))
-      #t11.{core::List::addAll}{Invariant}(#t12{core::Iterable<core::int>});
-    #t11.{core::List::add}{Invariant}(3);
-  } =>#t11;
+    final core::List<core::int> #t16 = <core::int>[];
+    #t16.{core::List::add}{Invariant}(1);
+    #t16.{core::List::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t17 = null;
+    if(!#t17.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t17{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t18 = :sync-for-iterator.{core::Iterator::current};
+        #t16.{core::List::add}{Invariant}(#t18);
+      }
+    }
+    #t16.{core::List::add}{Invariant}(3);
+  } =>#t16;
   core::Set<core::int>? set = null;
   core::print( block {
-    final core::Set<core::int> #t13 = new col::_CompactLinkedHashSet::•<core::int>();
-    #t13.{core::Set::add}{Invariant}(1);
-    #t13.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t14 = set;
-    if(!#t14.{core::Object::==}(null))
-      #t13.{core::Set::addAll}{Invariant}(#t14{core::Iterable<core::int>});
-    #t13.{core::Set::add}{Invariant}(3);
-  } =>#t13);
-  core::print( block {
-    final core::Set<core::int> #t15 = new col::_CompactLinkedHashSet::•<core::int>();
-    #t15.{core::Set::add}{Invariant}(1);
-    #t15.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t16 = null;
-    if(!#t16.{core::Object::==}(null))
-      #t15.{core::Set::addAll}{Invariant}(#t16{core::Iterable<core::int>});
-    #t15.{core::Set::add}{Invariant}(3);
-  } =>#t15);
-  core::Set<core::int> set1 = block {
-    final core::Set<core::int> #t17 = new col::_CompactLinkedHashSet::•<core::int>();
-    final core::Iterable<dynamic>? #t18 = set;
-    if(!#t18.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t18{core::Iterable<dynamic>}.{core::Iterable::iterator};
+    final core::Set<core::int> #t19 = new col::_CompactLinkedHashSet::•<core::int>();
+    #t19.{core::Set::add}{Invariant}(1);
+    #t19.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t20 = set;
+    if(!#t20.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t20{core::Iterable<core::int>}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t19 = :sync-for-iterator.{core::Iterator::current};
+        final core::int #t21 = :sync-for-iterator.{core::Iterator::current};
+        #t19.{core::Set::add}{Invariant}(#t21);
+      }
+    }
+    #t19.{core::Set::add}{Invariant}(3);
+  } =>#t19);
+  core::print( block {
+    final core::Set<core::int> #t22 = new col::_CompactLinkedHashSet::•<core::int>();
+    #t22.{core::Set::add}{Invariant}(1);
+    #t22.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t23 = null;
+    if(!#t23.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t23{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t24 = :sync-for-iterator.{core::Iterator::current};
+        #t22.{core::Set::add}{Invariant}(#t24);
+      }
+    }
+    #t22.{core::Set::add}{Invariant}(3);
+  } =>#t22);
+  core::Set<core::int> set1 = block {
+    final core::Set<core::int> #t25 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t26 = set;
+    if(!#t26.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t26{core::Iterable<dynamic>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t27 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int #t20 = #t19 as{TypeError,ForNonNullableByDefault} core::int;
-          #t17.{core::Set::add}{Invariant}(#t20);
+          final core::int #t28 = #t27 as{TypeError,ForNonNullableByDefault} core::int;
+          #t25.{core::Set::add}{Invariant}(#t28);
         }
       }
     }
-  } =>#t17;
+  } =>#t25;
   core::Set<core::int> set3 = block {
-    final core::Set<core::int> #t21 = new col::_CompactLinkedHashSet::•<core::int>();
-    #t21.{core::Set::add}{Invariant}(1);
-    #t21.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t22 = set;
-    if(!#t22.{core::Object::==}(null))
-      #t21.{core::Set::addAll}{Invariant}(#t22{core::Iterable<core::int>});
-    #t21.{core::Set::add}{Invariant}(3);
-  } =>#t21;
+    final core::Set<core::int> #t29 = new col::_CompactLinkedHashSet::•<core::int>();
+    #t29.{core::Set::add}{Invariant}(1);
+    #t29.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t30 = set;
+    if(!#t30.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t30{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t31 = :sync-for-iterator.{core::Iterator::current};
+        #t29.{core::Set::add}{Invariant}(#t31);
+      }
+    }
+    #t29.{core::Set::add}{Invariant}(3);
+  } =>#t29;
   core::Set<core::int> set4 = block {
-    final core::Set<core::int> #t23 = new col::_CompactLinkedHashSet::•<core::int>();
-    #t23.{core::Set::add}{Invariant}(1);
-    #t23.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t24 = null;
-    if(!#t24.{core::Object::==}(null))
-      #t23.{core::Set::addAll}{Invariant}(#t24{core::Iterable<core::int>});
-    #t23.{core::Set::add}{Invariant}(3);
-  } =>#t23;
+    final core::Set<core::int> #t32 = new col::_CompactLinkedHashSet::•<core::int>();
+    #t32.{core::Set::add}{Invariant}(1);
+    #t32.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t33 = null;
+    if(!#t33.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t33{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t34 = :sync-for-iterator.{core::Iterator::current};
+        #t32.{core::Set::add}{Invariant}(#t34);
+      }
+    }
+    #t32.{core::Set::add}{Invariant}(3);
+  } =>#t32;
   core::Map<core::int, core::int>? map = null;
   core::print( block {
-    final core::Map<core::int, core::int> #t25 = <core::int, core::int>{};
-    #t25.{core::Map::[]=}{Invariant}(1, 1);
-    #t25.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t26 = map;
-    if(!#t26.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t26{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::int, core::int> #t35 = <core::int, core::int>{};
+    #t35.{core::Map::[]=}{Invariant}(1, 1);
+    #t35.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t36 = map;
+    if(!#t36.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t36{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int, core::int> #t27 = :sync-for-iterator.{core::Iterator::current};
-        #t25.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}, #t27.{core::MapEntry::value});
+        final core::MapEntry<core::int, core::int> #t37 = :sync-for-iterator.{core::Iterator::current};
+        #t35.{core::Map::[]=}{Invariant}(#t37.{core::MapEntry::key}, #t37.{core::MapEntry::value});
       }
     }
-    #t25.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t25);
+    #t35.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t35);
   core::print( block {
-    final core::Map<core::int, core::int> #t28 = <core::int, core::int>{};
-    #t28.{core::Map::[]=}{Invariant}(1, 1);
-    #t28.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t29 = null;
-    if(!#t29.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t29{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::int, core::int> #t38 = <core::int, core::int>{};
+    #t38.{core::Map::[]=}{Invariant}(1, 1);
+    #t38.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t39 = null;
+    if(!#t39.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t39{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int, core::int> #t30 = :sync-for-iterator.{core::Iterator::current};
-        #t28.{core::Map::[]=}{Invariant}(#t30.{core::MapEntry::key}, #t30.{core::MapEntry::value});
+        final core::MapEntry<core::int, core::int> #t40 = :sync-for-iterator.{core::Iterator::current};
+        #t38.{core::Map::[]=}{Invariant}(#t40.{core::MapEntry::key}, #t40.{core::MapEntry::value});
       }
     }
-    #t28.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t28);
+    #t38.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t38);
   core::Map<core::int, core::int> map1 = block {
-    final core::Map<core::int, core::int> #t31 = <core::int, core::int>{};
-    final core::Map<core::int, core::int>? #t32 = map;
-    if(!#t32.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t32{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::int, core::int> #t41 = <core::int, core::int>{};
+    final core::Map<core::int, core::int>? #t42 = map;
+    if(!#t42.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t42{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int, core::int> #t33 = :sync-for-iterator.{core::Iterator::current};
-        #t31.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
+        final core::MapEntry<core::int, core::int> #t43 = :sync-for-iterator.{core::Iterator::current};
+        #t41.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
       }
     }
-  } =>#t31;
+  } =>#t41;
   core::Map<core::int, core::int> map3 = block {
-    final core::Map<core::int, core::int> #t34 = <core::int, core::int>{};
-    #t34.{core::Map::[]=}{Invariant}(1, 1);
-    #t34.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t35 = map;
-    if(!#t35.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t35{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::int, core::int> #t44 = <core::int, core::int>{};
+    #t44.{core::Map::[]=}{Invariant}(1, 1);
+    #t44.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t45 = map;
+    if(!#t45.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t45{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int, core::int> #t36 = :sync-for-iterator.{core::Iterator::current};
-        #t34.{core::Map::[]=}{Invariant}(#t36.{core::MapEntry::key}, #t36.{core::MapEntry::value});
+        final core::MapEntry<core::int, core::int> #t46 = :sync-for-iterator.{core::Iterator::current};
+        #t44.{core::Map::[]=}{Invariant}(#t46.{core::MapEntry::key}, #t46.{core::MapEntry::value});
       }
     }
-    #t34.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t34;
+    #t44.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t44;
   core::Map<core::int, core::int> map4 = block {
-    final core::Map<core::int, core::int> #t37 = <core::int, core::int>{};
-    #t37.{core::Map::[]=}{Invariant}(1, 1);
-    #t37.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t38 = null;
-    if(!#t38.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t38{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::int, core::int> #t47 = <core::int, core::int>{};
+    #t47.{core::Map::[]=}{Invariant}(1, 1);
+    #t47.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t48 = null;
+    if(!#t48.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t48{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int, core::int> #t39 = :sync-for-iterator.{core::Iterator::current};
-        #t37.{core::Map::[]=}{Invariant}(#t39.{core::MapEntry::key}, #t39.{core::MapEntry::value});
+        final core::MapEntry<core::int, core::int> #t49 = :sync-for-iterator.{core::Iterator::current};
+        #t47.{core::Map::[]=}{Invariant}(#t49.{core::MapEntry::key}, #t49.{core::MapEntry::value});
       }
     }
-    #t37.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t37;
+    #t47.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t47;
 }
diff --git a/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.expect b/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.expect
index df571c2..ffceca9 100644
--- a/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.expect
@@ -6,137 +6,155 @@
 static method main() → dynamic {
   core::List<core::int>? list = null;
   core::print( block {
-    final core::List<core::int> #t1 = <core::int>[1, 2];
+    final core::List<core::int> #t1 = <core::int>[];
+    #t1.{core::List::add}{Invariant}(1);
+    #t1.{core::List::add}{Invariant}(2);
     final core::Iterable<core::int>? #t2 = list;
     if(!#t2.{core::Object::==}(null))
-      #t1.{core::List::addAll}{Invariant}(#t2{core::Iterable<core::int>});
+      for (final core::int #t3 in #t2{core::Iterable<core::int>})
+        #t1.{core::List::add}{Invariant}(#t3);
     #t1.{core::List::add}{Invariant}(3);
   } =>#t1);
   core::print( block {
-    final core::List<core::int> #t3 = <core::int>[1, 2];
-    final core::Iterable<core::int>? #t4 = null;
-    if(!#t4.{core::Object::==}(null))
-      #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<core::int>});
-    #t3.{core::List::add}{Invariant}(3);
-  } =>#t3);
+    final core::List<core::int> #t4 = <core::int>[];
+    #t4.{core::List::add}{Invariant}(1);
+    #t4.{core::List::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t5 = null;
+    if(!#t5.{core::Object::==}(null))
+      for (final core::int #t6 in #t5{core::Iterable<core::int>})
+        #t4.{core::List::add}{Invariant}(#t6);
+    #t4.{core::List::add}{Invariant}(3);
+  } =>#t4);
   core::List<core::int> list1 = block {
-    final core::List<core::int> #t5 = <core::int>[];
-    final core::Iterable<core::int>? #t6 = list;
-    if(!#t6.{core::Object::==}(null))
-      #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::int>});
-  } =>#t5;
-  core::List<Never> list2 = block {
-    final core::List<Never> #t7 = <Never>[];
-    final core::Iterable<Never>? #t8 = null;
+    final core::List<core::int> #t7 = <core::int>[];
+    final core::Iterable<core::int>? #t8 = list;
     if(!#t8.{core::Object::==}(null))
-      #t7.{core::List::addAll}{Invariant}(#t8{core::Iterable<Never>});
+      for (final core::int #t9 in #t8{core::Iterable<core::int>})
+        #t7.{core::List::add}{Invariant}(#t9);
   } =>#t7;
+  core::List<Never> list2 = block {
+    final core::List<Never> #t10 = <Never>[];
+    final core::Iterable<Never>? #t11 = null;
+    if(!#t11.{core::Object::==}(null))
+      for (final Never #t12 in #t11{core::Iterable<Never>})
+        #t10.{core::List::add}{Invariant}(#t12);
+  } =>#t10;
   core::List<core::int> list3 = block {
-    final core::List<core::int> #t9 = <core::int>[1, 2];
-    final core::Iterable<core::int>? #t10 = list;
-    if(!#t10.{core::Object::==}(null))
-      #t9.{core::List::addAll}{Invariant}(#t10{core::Iterable<core::int>});
-    #t9.{core::List::add}{Invariant}(3);
-  } =>#t9;
+    final core::List<core::int> #t13 = <core::int>[];
+    #t13.{core::List::add}{Invariant}(1);
+    #t13.{core::List::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t14 = list;
+    if(!#t14.{core::Object::==}(null))
+      for (final core::int #t15 in #t14{core::Iterable<core::int>})
+        #t13.{core::List::add}{Invariant}(#t15);
+    #t13.{core::List::add}{Invariant}(3);
+  } =>#t13;
   core::List<core::int> list4 = block {
-    final core::List<core::int> #t11 = <core::int>[1, 2];
-    final core::Iterable<core::int>? #t12 = null;
-    if(!#t12.{core::Object::==}(null))
-      #t11.{core::List::addAll}{Invariant}(#t12{core::Iterable<core::int>});
-    #t11.{core::List::add}{Invariant}(3);
-  } =>#t11;
+    final core::List<core::int> #t16 = <core::int>[];
+    #t16.{core::List::add}{Invariant}(1);
+    #t16.{core::List::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t17 = null;
+    if(!#t17.{core::Object::==}(null))
+      for (final core::int #t18 in #t17{core::Iterable<core::int>})
+        #t16.{core::List::add}{Invariant}(#t18);
+    #t16.{core::List::add}{Invariant}(3);
+  } =>#t16;
   core::Set<core::int>? set = null;
   core::print( block {
-    final core::Set<core::int> #t13 = col::LinkedHashSet::•<core::int>();
-    #t13.{core::Set::add}{Invariant}(1);
-    #t13.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t14 = set;
-    if(!#t14.{core::Object::==}(null))
-      #t13.{core::Set::addAll}{Invariant}(#t14{core::Iterable<core::int>});
-    #t13.{core::Set::add}{Invariant}(3);
-  } =>#t13);
+    final core::Set<core::int> #t19 = col::LinkedHashSet::•<core::int>();
+    #t19.{core::Set::add}{Invariant}(1);
+    #t19.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t20 = set;
+    if(!#t20.{core::Object::==}(null))
+      for (final core::int #t21 in #t20{core::Iterable<core::int>})
+        #t19.{core::Set::add}{Invariant}(#t21);
+    #t19.{core::Set::add}{Invariant}(3);
+  } =>#t19);
   core::print( block {
-    final core::Set<core::int> #t15 = col::LinkedHashSet::•<core::int>();
-    #t15.{core::Set::add}{Invariant}(1);
-    #t15.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t16 = null;
-    if(!#t16.{core::Object::==}(null))
-      #t15.{core::Set::addAll}{Invariant}(#t16{core::Iterable<core::int>});
-    #t15.{core::Set::add}{Invariant}(3);
-  } =>#t15);
+    final core::Set<core::int> #t22 = col::LinkedHashSet::•<core::int>();
+    #t22.{core::Set::add}{Invariant}(1);
+    #t22.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t23 = null;
+    if(!#t23.{core::Object::==}(null))
+      for (final core::int #t24 in #t23{core::Iterable<core::int>})
+        #t22.{core::Set::add}{Invariant}(#t24);
+    #t22.{core::Set::add}{Invariant}(3);
+  } =>#t22);
   core::Set<core::int> set1 = block {
-    final core::Set<core::int> #t17 = col::LinkedHashSet::•<core::int>();
-    final core::Iterable<dynamic>? #t18 = set;
-    if(!#t18.{core::Object::==}(null))
-      for (final dynamic #t19 in #t18{core::Iterable<dynamic>}) {
-        final core::int #t20 = #t19 as{TypeError,ForNonNullableByDefault} core::int;
-        #t17.{core::Set::add}{Invariant}(#t20);
+    final core::Set<core::int> #t25 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t26 = set;
+    if(!#t26.{core::Object::==}(null))
+      for (final dynamic #t27 in #t26{core::Iterable<dynamic>}) {
+        final core::int #t28 = #t27 as{TypeError,ForNonNullableByDefault} core::int;
+        #t25.{core::Set::add}{Invariant}(#t28);
       }
-  } =>#t17;
+  } =>#t25;
   core::Set<core::int> set3 = block {
-    final core::Set<core::int> #t21 = col::LinkedHashSet::•<core::int>();
-    #t21.{core::Set::add}{Invariant}(1);
-    #t21.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t22 = set;
-    if(!#t22.{core::Object::==}(null))
-      #t21.{core::Set::addAll}{Invariant}(#t22{core::Iterable<core::int>});
-    #t21.{core::Set::add}{Invariant}(3);
-  } =>#t21;
+    final core::Set<core::int> #t29 = col::LinkedHashSet::•<core::int>();
+    #t29.{core::Set::add}{Invariant}(1);
+    #t29.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t30 = set;
+    if(!#t30.{core::Object::==}(null))
+      for (final core::int #t31 in #t30{core::Iterable<core::int>})
+        #t29.{core::Set::add}{Invariant}(#t31);
+    #t29.{core::Set::add}{Invariant}(3);
+  } =>#t29;
   core::Set<core::int> set4 = block {
-    final core::Set<core::int> #t23 = col::LinkedHashSet::•<core::int>();
-    #t23.{core::Set::add}{Invariant}(1);
-    #t23.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t24 = null;
-    if(!#t24.{core::Object::==}(null))
-      #t23.{core::Set::addAll}{Invariant}(#t24{core::Iterable<core::int>});
-    #t23.{core::Set::add}{Invariant}(3);
-  } =>#t23;
+    final core::Set<core::int> #t32 = col::LinkedHashSet::•<core::int>();
+    #t32.{core::Set::add}{Invariant}(1);
+    #t32.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t33 = null;
+    if(!#t33.{core::Object::==}(null))
+      for (final core::int #t34 in #t33{core::Iterable<core::int>})
+        #t32.{core::Set::add}{Invariant}(#t34);
+    #t32.{core::Set::add}{Invariant}(3);
+  } =>#t32;
   core::Map<core::int, core::int>? map = null;
   core::print( block {
-    final core::Map<core::int, core::int> #t25 = <core::int, core::int>{};
-    #t25.{core::Map::[]=}{Invariant}(1, 1);
-    #t25.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t26 = map;
-    if(!#t26.{core::Object::==}(null))
-      for (final core::MapEntry<core::int, core::int> #t27 in #t26{core::Map<core::int, core::int>}.{core::Map::entries})
-        #t25.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}, #t27.{core::MapEntry::value});
-    #t25.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t25);
+    final core::Map<core::int, core::int> #t35 = <core::int, core::int>{};
+    #t35.{core::Map::[]=}{Invariant}(1, 1);
+    #t35.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t36 = map;
+    if(!#t36.{core::Object::==}(null))
+      for (final core::MapEntry<core::int, core::int> #t37 in #t36{core::Map<core::int, core::int>}.{core::Map::entries})
+        #t35.{core::Map::[]=}{Invariant}(#t37.{core::MapEntry::key}, #t37.{core::MapEntry::value});
+    #t35.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t35);
   core::print( block {
-    final core::Map<core::int, core::int> #t28 = <core::int, core::int>{};
-    #t28.{core::Map::[]=}{Invariant}(1, 1);
-    #t28.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t29 = null;
-    if(!#t29.{core::Object::==}(null))
-      for (final core::MapEntry<core::int, core::int> #t30 in #t29{core::Map<core::int, core::int>}.{core::Map::entries})
-        #t28.{core::Map::[]=}{Invariant}(#t30.{core::MapEntry::key}, #t30.{core::MapEntry::value});
-    #t28.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t28);
+    final core::Map<core::int, core::int> #t38 = <core::int, core::int>{};
+    #t38.{core::Map::[]=}{Invariant}(1, 1);
+    #t38.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t39 = null;
+    if(!#t39.{core::Object::==}(null))
+      for (final core::MapEntry<core::int, core::int> #t40 in #t39{core::Map<core::int, core::int>}.{core::Map::entries})
+        #t38.{core::Map::[]=}{Invariant}(#t40.{core::MapEntry::key}, #t40.{core::MapEntry::value});
+    #t38.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t38);
   core::Map<core::int, core::int> map1 = block {
-    final core::Map<core::int, core::int> #t31 = <core::int, core::int>{};
-    final core::Map<core::int, core::int>? #t32 = map;
-    if(!#t32.{core::Object::==}(null))
-      for (final core::MapEntry<core::int, core::int> #t33 in #t32{core::Map<core::int, core::int>}.{core::Map::entries})
-        #t31.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
-  } =>#t31;
+    final core::Map<core::int, core::int> #t41 = <core::int, core::int>{};
+    final core::Map<core::int, core::int>? #t42 = map;
+    if(!#t42.{core::Object::==}(null))
+      for (final core::MapEntry<core::int, core::int> #t43 in #t42{core::Map<core::int, core::int>}.{core::Map::entries})
+        #t41.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
+  } =>#t41;
   core::Map<core::int, core::int> map3 = block {
-    final core::Map<core::int, core::int> #t34 = <core::int, core::int>{};
-    #t34.{core::Map::[]=}{Invariant}(1, 1);
-    #t34.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t35 = map;
-    if(!#t35.{core::Object::==}(null))
-      for (final core::MapEntry<core::int, core::int> #t36 in #t35{core::Map<core::int, core::int>}.{core::Map::entries})
-        #t34.{core::Map::[]=}{Invariant}(#t36.{core::MapEntry::key}, #t36.{core::MapEntry::value});
-    #t34.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t34;
+    final core::Map<core::int, core::int> #t44 = <core::int, core::int>{};
+    #t44.{core::Map::[]=}{Invariant}(1, 1);
+    #t44.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t45 = map;
+    if(!#t45.{core::Object::==}(null))
+      for (final core::MapEntry<core::int, core::int> #t46 in #t45{core::Map<core::int, core::int>}.{core::Map::entries})
+        #t44.{core::Map::[]=}{Invariant}(#t46.{core::MapEntry::key}, #t46.{core::MapEntry::value});
+    #t44.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t44;
   core::Map<core::int, core::int> map4 = block {
-    final core::Map<core::int, core::int> #t37 = <core::int, core::int>{};
-    #t37.{core::Map::[]=}{Invariant}(1, 1);
-    #t37.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t38 = null;
-    if(!#t38.{core::Object::==}(null))
-      for (final core::MapEntry<core::int, core::int> #t39 in #t38{core::Map<core::int, core::int>}.{core::Map::entries})
-        #t37.{core::Map::[]=}{Invariant}(#t39.{core::MapEntry::key}, #t39.{core::MapEntry::value});
-    #t37.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t37;
+    final core::Map<core::int, core::int> #t47 = <core::int, core::int>{};
+    #t47.{core::Map::[]=}{Invariant}(1, 1);
+    #t47.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t48 = null;
+    if(!#t48.{core::Object::==}(null))
+      for (final core::MapEntry<core::int, core::int> #t49 in #t48{core::Map<core::int, core::int>}.{core::Map::entries})
+        #t47.{core::Map::[]=}{Invariant}(#t49.{core::MapEntry::key}, #t49.{core::MapEntry::value});
+    #t47.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t47;
 }
diff --git a/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.transformed.expect
index a75a6aa..ba1a66c 100644
--- a/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.transformed.expect
@@ -6,162 +6,220 @@
 static method main() → dynamic {
   core::List<core::int>? list = null;
   core::print( block {
-    final core::List<core::int> #t1 = <core::int>[1, 2];
+    final core::List<core::int> #t1 = <core::int>[];
+    #t1.{core::List::add}{Invariant}(1);
+    #t1.{core::List::add}{Invariant}(2);
     final core::Iterable<core::int>? #t2 = list;
-    if(!#t2.{core::Object::==}(null))
-      #t1.{core::List::addAll}{Invariant}(#t2{core::Iterable<core::int>});
+    if(!#t2.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t2{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t3 = :sync-for-iterator.{core::Iterator::current};
+        #t1.{core::List::add}{Invariant}(#t3);
+      }
+    }
     #t1.{core::List::add}{Invariant}(3);
   } =>#t1);
   core::print( block {
-    final core::List<core::int> #t3 = <core::int>[1, 2];
-    final core::Iterable<core::int>? #t4 = null;
-    if(!#t4.{core::Object::==}(null))
-      #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<core::int>});
-    #t3.{core::List::add}{Invariant}(3);
-  } =>#t3);
+    final core::List<core::int> #t4 = <core::int>[];
+    #t4.{core::List::add}{Invariant}(1);
+    #t4.{core::List::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t5 = null;
+    if(!#t5.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t5{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t6 = :sync-for-iterator.{core::Iterator::current};
+        #t4.{core::List::add}{Invariant}(#t6);
+      }
+    }
+    #t4.{core::List::add}{Invariant}(3);
+  } =>#t4);
   core::List<core::int> list1 = block {
-    final core::List<core::int> #t5 = <core::int>[];
-    final core::Iterable<core::int>? #t6 = list;
-    if(!#t6.{core::Object::==}(null))
-      #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::int>});
-  } =>#t5;
-  core::List<Never> list2 = block {
-    final core::List<Never> #t7 = <Never>[];
-    final core::Iterable<Never>? #t8 = null;
-    if(!#t8.{core::Object::==}(null))
-      #t7.{core::List::addAll}{Invariant}(#t8{core::Iterable<Never>});
+    final core::List<core::int> #t7 = <core::int>[];
+    final core::Iterable<core::int>? #t8 = list;
+    if(!#t8.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t8{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t9 = :sync-for-iterator.{core::Iterator::current};
+        #t7.{core::List::add}{Invariant}(#t9);
+      }
+    }
   } =>#t7;
+  core::List<Never> list2 = block {
+    final core::List<Never> #t10 = <Never>[];
+    final core::Iterable<Never>? #t11 = null;
+    if(!#t11.{core::Object::==}(null)) {
+      core::Iterator<Never> :sync-for-iterator = #t11{core::Iterable<Never>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final Never #t12 = :sync-for-iterator.{core::Iterator::current};
+        #t10.{core::List::add}{Invariant}(#t12);
+      }
+    }
+  } =>#t10;
   core::List<core::int> list3 = block {
-    final core::List<core::int> #t9 = <core::int>[1, 2];
-    final core::Iterable<core::int>? #t10 = list;
-    if(!#t10.{core::Object::==}(null))
-      #t9.{core::List::addAll}{Invariant}(#t10{core::Iterable<core::int>});
-    #t9.{core::List::add}{Invariant}(3);
-  } =>#t9;
+    final core::List<core::int> #t13 = <core::int>[];
+    #t13.{core::List::add}{Invariant}(1);
+    #t13.{core::List::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t14 = list;
+    if(!#t14.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t14{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t15 = :sync-for-iterator.{core::Iterator::current};
+        #t13.{core::List::add}{Invariant}(#t15);
+      }
+    }
+    #t13.{core::List::add}{Invariant}(3);
+  } =>#t13;
   core::List<core::int> list4 = block {
-    final core::List<core::int> #t11 = <core::int>[1, 2];
-    final core::Iterable<core::int>? #t12 = null;
-    if(!#t12.{core::Object::==}(null))
-      #t11.{core::List::addAll}{Invariant}(#t12{core::Iterable<core::int>});
-    #t11.{core::List::add}{Invariant}(3);
-  } =>#t11;
+    final core::List<core::int> #t16 = <core::int>[];
+    #t16.{core::List::add}{Invariant}(1);
+    #t16.{core::List::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t17 = null;
+    if(!#t17.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t17{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t18 = :sync-for-iterator.{core::Iterator::current};
+        #t16.{core::List::add}{Invariant}(#t18);
+      }
+    }
+    #t16.{core::List::add}{Invariant}(3);
+  } =>#t16;
   core::Set<core::int>? set = null;
   core::print( block {
-    final core::Set<core::int> #t13 = new col::_CompactLinkedHashSet::•<core::int>();
-    #t13.{core::Set::add}{Invariant}(1);
-    #t13.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t14 = set;
-    if(!#t14.{core::Object::==}(null))
-      #t13.{core::Set::addAll}{Invariant}(#t14{core::Iterable<core::int>});
-    #t13.{core::Set::add}{Invariant}(3);
-  } =>#t13);
-  core::print( block {
-    final core::Set<core::int> #t15 = new col::_CompactLinkedHashSet::•<core::int>();
-    #t15.{core::Set::add}{Invariant}(1);
-    #t15.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t16 = null;
-    if(!#t16.{core::Object::==}(null))
-      #t15.{core::Set::addAll}{Invariant}(#t16{core::Iterable<core::int>});
-    #t15.{core::Set::add}{Invariant}(3);
-  } =>#t15);
-  core::Set<core::int> set1 = block {
-    final core::Set<core::int> #t17 = new col::_CompactLinkedHashSet::•<core::int>();
-    final core::Iterable<dynamic>? #t18 = set;
-    if(!#t18.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t18{core::Iterable<dynamic>}.{core::Iterable::iterator};
+    final core::Set<core::int> #t19 = new col::_CompactLinkedHashSet::•<core::int>();
+    #t19.{core::Set::add}{Invariant}(1);
+    #t19.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t20 = set;
+    if(!#t20.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t20{core::Iterable<core::int>}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t19 = :sync-for-iterator.{core::Iterator::current};
+        final core::int #t21 = :sync-for-iterator.{core::Iterator::current};
+        #t19.{core::Set::add}{Invariant}(#t21);
+      }
+    }
+    #t19.{core::Set::add}{Invariant}(3);
+  } =>#t19);
+  core::print( block {
+    final core::Set<core::int> #t22 = new col::_CompactLinkedHashSet::•<core::int>();
+    #t22.{core::Set::add}{Invariant}(1);
+    #t22.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t23 = null;
+    if(!#t23.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t23{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t24 = :sync-for-iterator.{core::Iterator::current};
+        #t22.{core::Set::add}{Invariant}(#t24);
+      }
+    }
+    #t22.{core::Set::add}{Invariant}(3);
+  } =>#t22);
+  core::Set<core::int> set1 = block {
+    final core::Set<core::int> #t25 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t26 = set;
+    if(!#t26.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t26{core::Iterable<dynamic>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t27 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::int #t20 = #t19 as{TypeError,ForNonNullableByDefault} core::int;
-          #t17.{core::Set::add}{Invariant}(#t20);
+          final core::int #t28 = #t27 as{TypeError,ForNonNullableByDefault} core::int;
+          #t25.{core::Set::add}{Invariant}(#t28);
         }
       }
     }
-  } =>#t17;
+  } =>#t25;
   core::Set<core::int> set3 = block {
-    final core::Set<core::int> #t21 = new col::_CompactLinkedHashSet::•<core::int>();
-    #t21.{core::Set::add}{Invariant}(1);
-    #t21.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t22 = set;
-    if(!#t22.{core::Object::==}(null))
-      #t21.{core::Set::addAll}{Invariant}(#t22{core::Iterable<core::int>});
-    #t21.{core::Set::add}{Invariant}(3);
-  } =>#t21;
+    final core::Set<core::int> #t29 = new col::_CompactLinkedHashSet::•<core::int>();
+    #t29.{core::Set::add}{Invariant}(1);
+    #t29.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t30 = set;
+    if(!#t30.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t30{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t31 = :sync-for-iterator.{core::Iterator::current};
+        #t29.{core::Set::add}{Invariant}(#t31);
+      }
+    }
+    #t29.{core::Set::add}{Invariant}(3);
+  } =>#t29;
   core::Set<core::int> set4 = block {
-    final core::Set<core::int> #t23 = new col::_CompactLinkedHashSet::•<core::int>();
-    #t23.{core::Set::add}{Invariant}(1);
-    #t23.{core::Set::add}{Invariant}(2);
-    final core::Iterable<core::int>? #t24 = null;
-    if(!#t24.{core::Object::==}(null))
-      #t23.{core::Set::addAll}{Invariant}(#t24{core::Iterable<core::int>});
-    #t23.{core::Set::add}{Invariant}(3);
-  } =>#t23;
+    final core::Set<core::int> #t32 = new col::_CompactLinkedHashSet::•<core::int>();
+    #t32.{core::Set::add}{Invariant}(1);
+    #t32.{core::Set::add}{Invariant}(2);
+    final core::Iterable<core::int>? #t33 = null;
+    if(!#t33.{core::Object::==}(null)) {
+      core::Iterator<core::int> :sync-for-iterator = #t33{core::Iterable<core::int>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int #t34 = :sync-for-iterator.{core::Iterator::current};
+        #t32.{core::Set::add}{Invariant}(#t34);
+      }
+    }
+    #t32.{core::Set::add}{Invariant}(3);
+  } =>#t32;
   core::Map<core::int, core::int>? map = null;
   core::print( block {
-    final core::Map<core::int, core::int> #t25 = <core::int, core::int>{};
-    #t25.{core::Map::[]=}{Invariant}(1, 1);
-    #t25.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t26 = map;
-    if(!#t26.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t26{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::int, core::int> #t35 = <core::int, core::int>{};
+    #t35.{core::Map::[]=}{Invariant}(1, 1);
+    #t35.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t36 = map;
+    if(!#t36.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t36{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int, core::int> #t27 = :sync-for-iterator.{core::Iterator::current};
-        #t25.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}, #t27.{core::MapEntry::value});
+        final core::MapEntry<core::int, core::int> #t37 = :sync-for-iterator.{core::Iterator::current};
+        #t35.{core::Map::[]=}{Invariant}(#t37.{core::MapEntry::key}, #t37.{core::MapEntry::value});
       }
     }
-    #t25.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t25);
+    #t35.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t35);
   core::print( block {
-    final core::Map<core::int, core::int> #t28 = <core::int, core::int>{};
-    #t28.{core::Map::[]=}{Invariant}(1, 1);
-    #t28.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t29 = null;
-    if(!#t29.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t29{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::int, core::int> #t38 = <core::int, core::int>{};
+    #t38.{core::Map::[]=}{Invariant}(1, 1);
+    #t38.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t39 = null;
+    if(!#t39.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t39{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int, core::int> #t30 = :sync-for-iterator.{core::Iterator::current};
-        #t28.{core::Map::[]=}{Invariant}(#t30.{core::MapEntry::key}, #t30.{core::MapEntry::value});
+        final core::MapEntry<core::int, core::int> #t40 = :sync-for-iterator.{core::Iterator::current};
+        #t38.{core::Map::[]=}{Invariant}(#t40.{core::MapEntry::key}, #t40.{core::MapEntry::value});
       }
     }
-    #t28.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t28);
+    #t38.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t38);
   core::Map<core::int, core::int> map1 = block {
-    final core::Map<core::int, core::int> #t31 = <core::int, core::int>{};
-    final core::Map<core::int, core::int>? #t32 = map;
-    if(!#t32.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t32{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::int, core::int> #t41 = <core::int, core::int>{};
+    final core::Map<core::int, core::int>? #t42 = map;
+    if(!#t42.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t42{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int, core::int> #t33 = :sync-for-iterator.{core::Iterator::current};
-        #t31.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
+        final core::MapEntry<core::int, core::int> #t43 = :sync-for-iterator.{core::Iterator::current};
+        #t41.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
       }
     }
-  } =>#t31;
+  } =>#t41;
   core::Map<core::int, core::int> map3 = block {
-    final core::Map<core::int, core::int> #t34 = <core::int, core::int>{};
-    #t34.{core::Map::[]=}{Invariant}(1, 1);
-    #t34.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t35 = map;
-    if(!#t35.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t35{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::int, core::int> #t44 = <core::int, core::int>{};
+    #t44.{core::Map::[]=}{Invariant}(1, 1);
+    #t44.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t45 = map;
+    if(!#t45.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t45{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int, core::int> #t36 = :sync-for-iterator.{core::Iterator::current};
-        #t34.{core::Map::[]=}{Invariant}(#t36.{core::MapEntry::key}, #t36.{core::MapEntry::value});
+        final core::MapEntry<core::int, core::int> #t46 = :sync-for-iterator.{core::Iterator::current};
+        #t44.{core::Map::[]=}{Invariant}(#t46.{core::MapEntry::key}, #t46.{core::MapEntry::value});
       }
     }
-    #t34.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t34;
+    #t44.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t44;
   core::Map<core::int, core::int> map4 = block {
-    final core::Map<core::int, core::int> #t37 = <core::int, core::int>{};
-    #t37.{core::Map::[]=}{Invariant}(1, 1);
-    #t37.{core::Map::[]=}{Invariant}(2, 2);
-    final core::Map<core::int, core::int>? #t38 = null;
-    if(!#t38.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t38{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::int, core::int> #t47 = <core::int, core::int>{};
+    #t47.{core::Map::[]=}{Invariant}(1, 1);
+    #t47.{core::Map::[]=}{Invariant}(2, 2);
+    final core::Map<core::int, core::int>? #t48 = null;
+    if(!#t48.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t48{core::Map<core::int, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int, core::int> #t39 = :sync-for-iterator.{core::Iterator::current};
-        #t37.{core::Map::[]=}{Invariant}(#t39.{core::MapEntry::key}, #t39.{core::MapEntry::value});
+        final core::MapEntry<core::int, core::int> #t49 = :sync-for-iterator.{core::Iterator::current};
+        #t47.{core::Map::[]=}{Invariant}(#t49.{core::MapEntry::key}, #t49.{core::MapEntry::value});
       }
     }
-    #t37.{core::Map::[]=}{Invariant}(3, 3);
-  } =>#t37;
+    #t47.{core::Map::[]=}{Invariant}(3, 3);
+  } =>#t47;
 }
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.expect
index 7b28b33..a97650d 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.expect
@@ -141,51 +141,53 @@
     final core::List<core::String> #t5 = <core::String>[];
     final core::Iterable<core::String>? #t6 = l;
     if(!#t6.{core::Object::==}(null))
-      #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::String>});
+      for (final core::String #t7 in #t6{core::Iterable<core::String>})
+        #t5.{core::List::add}{Invariant}(#t7);
   } =>#t5;
   core::Set<core::String> a = block {
-    final core::Set<core::String> #t7 = col::LinkedHashSet::•<core::String>();
-    final core::Iterable<dynamic>? #t8 = l;
-    if(!#t8.{core::Object::==}(null))
-      for (final dynamic #t9 in #t8{core::Iterable<dynamic>}) {
-        final core::String #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::String;
-        #t7.{core::Set::add}{Invariant}(#t10);
+    final core::Set<core::String> #t8 = col::LinkedHashSet::•<core::String>();
+    final core::Iterable<dynamic>? #t9 = l;
+    if(!#t9.{core::Object::==}(null))
+      for (final dynamic #t10 in #t9{core::Iterable<dynamic>}) {
+        final core::String #t11 = #t10 as{TypeError,ForNonNullableByDefault} core::String;
+        #t8.{core::Set::add}{Invariant}(#t11);
       }
-  } =>#t7;
+  } =>#t8;
   block {
-    final core::Set<core::String> #t11 = col::LinkedHashSet::•<core::String>();
-    final core::Iterable<core::String>? #t12 = l;
-    if(!#t12.{core::Object::==}(null))
-      #t11.{core::Set::addAll}{Invariant}(#t12{core::Iterable<core::String>});
-  } =>#t11;
+    final core::Set<core::String> #t12 = col::LinkedHashSet::•<core::String>();
+    final core::Iterable<core::String>? #t13 = l;
+    if(!#t13.{core::Object::==}(null))
+      for (final core::String #t14 in #t13{core::Iterable<core::String>})
+        #t12.{core::Set::add}{Invariant}(#t14);
+  } =>#t12;
   core::Map<core::String, core::int> b = block {
-    final core::Map<core::String, core::int> #t13 = <core::String, core::int>{};
-    final core::Map<core::String, core::int>? #t14 = m;
-    if(!#t14.{core::Object::==}(null))
-      for (final core::MapEntry<core::String, core::int> #t15 in #t14{core::Map<core::String, core::int>}.{core::Map::entries})
-        #t13.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}, #t15.{core::MapEntry::value});
-  } =>#t13;
+    final core::Map<core::String, core::int> #t15 = <core::String, core::int>{};
+    final core::Map<core::String, core::int>? #t16 = m;
+    if(!#t16.{core::Object::==}(null))
+      for (final core::MapEntry<core::String, core::int> #t17 in #t16{core::Map<core::String, core::int>}.{core::Map::entries})
+        #t15.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}, #t17.{core::MapEntry::value});
+  } =>#t15;
   block {
-    final core::Map<core::String, core::int> #t16 = <core::String, core::int>{};
-    final core::Map<core::String, core::int>? #t17 = m;
-    if(!#t17.{core::Object::==}(null))
-      for (final core::MapEntry<core::String, core::int> #t18 in #t17{core::Map<core::String, core::int>}.{core::Map::entries})
-        #t16.{core::Map::[]=}{Invariant}(#t18.{core::MapEntry::key}, #t18.{core::MapEntry::value});
-  } =>#t16;
+    final core::Map<core::String, core::int> #t18 = <core::String, core::int>{};
+    final core::Map<core::String, core::int>? #t19 = m;
+    if(!#t19.{core::Object::==}(null))
+      for (final core::MapEntry<core::String, core::int> #t20 in #t19{core::Map<core::String, core::int>}.{core::Map::entries})
+        #t18.{core::Map::[]=}{Invariant}(#t20.{core::MapEntry::key}, #t20.{core::MapEntry::value});
+  } =>#t18;
   s!;
-  let final core::String #t19 = s in #t19.{core::String::==}(null) ?{core::String?} null : #t19.{core::String::substring}(0, 0);
-  let final core::List<core::String> #t20 = l in #t20.{core::List::==}(null) ?{core::int?} null : #t20.{core::List::length} = 42;
-  let final core::List<core::String> #t21 = l in #t21.{core::List::==}(null) ?{core::int?} null : #t21.{core::List::length} = #t21.{core::List::length}.{core::num::+}(42);
-  let final core::List<core::String> #t22 = l in #t22.{core::List::==}(null) ?{core::int?} null : #t22.{core::List::length}.{core::num::==}(null) ?{core::int} #t22.{core::List::length} = 42 : null;
-  let final core::String #t23 = s in #t23.{core::String::==}(null) ?{core::int?} null : self::E|get#foo(#t23);
-  let final core::String #t24 = s in let final core::int #t25 = 42 in self::E|[](#t24, #t25).{core::num::==}(null) ?{core::int} self::E|[]=(#t24, #t25, 42) : null;
-  let final core::List<core::String> #t26 = l in let final core::int #t27 = 42 in #t26.{core::List::[]}(#t27).{core::String::==}(null) ?{core::String} #t26.{core::List::[]=}(#t27, "foo") : null;
-  let final core::List<core::String> #t28 = l in #t28.{core::List::length}.{core::num::==}(null) ?{core::int} #t28.{core::List::length} = 42 : null;
-  let final core::List<core::String> #t29 = l in #t29.{core::List::==}(null) ?{core::List<core::String>} null : block {
-    #t29.{core::List::length} = 42;
-  } =>#t29;
-  let final core::List<core::String> #t30 = l in #t30.{core::List::==}(null) ?{core::List<core::String>} null : block {
-    let final core::List<core::String> #t31 = #t30 in #t31.{core::List::length}.{core::num::==}(null) ?{core::int} #t31.{core::List::length} = 42 : null;
-  } =>#t30;
+  let final core::String #t21 = s in #t21.{core::String::==}(null) ?{core::String?} null : #t21.{core::String::substring}(0, 0);
+  let final core::List<core::String> #t22 = l in #t22.{core::List::==}(null) ?{core::int?} null : #t22.{core::List::length} = 42;
+  let final core::List<core::String> #t23 = l in #t23.{core::List::==}(null) ?{core::int?} null : #t23.{core::List::length} = #t23.{core::List::length}.{core::num::+}(42);
+  let final core::List<core::String> #t24 = l in #t24.{core::List::==}(null) ?{core::int?} null : #t24.{core::List::length}.{core::num::==}(null) ?{core::int} #t24.{core::List::length} = 42 : null;
+  let final core::String #t25 = s in #t25.{core::String::==}(null) ?{core::int?} null : self::E|get#foo(#t25);
+  let final core::String #t26 = s in let final core::int #t27 = 42 in self::E|[](#t26, #t27).{core::num::==}(null) ?{core::int} self::E|[]=(#t26, #t27, 42) : null;
+  let final core::List<core::String> #t28 = l in let final core::int #t29 = 42 in #t28.{core::List::[]}(#t29).{core::String::==}(null) ?{core::String} #t28.{core::List::[]=}(#t29, "foo") : null;
+  let final core::List<core::String> #t30 = l in #t30.{core::List::length}.{core::num::==}(null) ?{core::int} #t30.{core::List::length} = 42 : null;
+  let final core::List<core::String> #t31 = l in #t31.{core::List::==}(null) ?{core::List<core::String>} null : block {
+    #t31.{core::List::length} = 42;
+  } =>#t31;
+  let final core::List<core::String> #t32 = l in #t32.{core::List::==}(null) ?{core::List<core::String>} null : block {
+    let final core::List<core::String> #t33 = #t32 in #t33.{core::List::length}.{core::num::==}(null) ?{core::int} #t33.{core::List::length} = 42 : null;
+  } =>#t32;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect
index 624e377..df0ca83 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect
@@ -140,66 +140,76 @@
   block {
     final core::List<core::String> #t5 = <core::String>[];
     final core::Iterable<core::String>? #t6 = l;
-    if(!#t6.{core::Object::==}(null))
-      #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::String>});
+    if(!#t6.{core::Object::==}(null)) {
+      core::Iterator<core::String> :sync-for-iterator = #t6{core::Iterable<core::String>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::String #t7 = :sync-for-iterator.{core::Iterator::current};
+        #t5.{core::List::add}{Invariant}(#t7);
+      }
+    }
   } =>#t5;
   core::Set<core::String> a = block {
-    final core::Set<core::String> #t7 = new col::_CompactLinkedHashSet::•<core::String>();
-    final core::Iterable<dynamic>? #t8 = l;
-    if(!#t8.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t8{core::Iterable<dynamic>}.{core::Iterable::iterator};
+    final core::Set<core::String> #t8 = new col::_CompactLinkedHashSet::•<core::String>();
+    final core::Iterable<dynamic>? #t9 = l;
+    if(!#t9.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t9{core::Iterable<dynamic>}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t9 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t10 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::String #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::String;
-          #t7.{core::Set::add}{Invariant}(#t10);
+          final core::String #t11 = #t10 as{TypeError,ForNonNullableByDefault} core::String;
+          #t8.{core::Set::add}{Invariant}(#t11);
         }
       }
     }
-  } =>#t7;
+  } =>#t8;
   block {
-    final core::Set<core::String> #t11 = new col::_CompactLinkedHashSet::•<core::String>();
-    final core::Iterable<core::String>? #t12 = l;
-    if(!#t12.{core::Object::==}(null))
-      #t11.{core::Set::addAll}{Invariant}(#t12{core::Iterable<core::String>});
-  } =>#t11;
+    final core::Set<core::String> #t12 = new col::_CompactLinkedHashSet::•<core::String>();
+    final core::Iterable<core::String>? #t13 = l;
+    if(!#t13.{core::Object::==}(null)) {
+      core::Iterator<core::String> :sync-for-iterator = #t13{core::Iterable<core::String>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::String #t14 = :sync-for-iterator.{core::Iterator::current};
+        #t12.{core::Set::add}{Invariant}(#t14);
+      }
+    }
+  } =>#t12;
   core::Map<core::String, core::int> b = block {
-    final core::Map<core::String, core::int> #t13 = <core::String, core::int>{};
-    final core::Map<core::String, core::int>? #t14 = m;
-    if(!#t14.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::String, core::int>> :sync-for-iterator = #t14{core::Map<core::String, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::String, core::int> #t15 = <core::String, core::int>{};
+    final core::Map<core::String, core::int>? #t16 = m;
+    if(!#t16.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::String, core::int>> :sync-for-iterator = #t16{core::Map<core::String, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String, core::int> #t15 = :sync-for-iterator.{core::Iterator::current};
-        #t13.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}, #t15.{core::MapEntry::value});
+        final core::MapEntry<core::String, core::int> #t17 = :sync-for-iterator.{core::Iterator::current};
+        #t15.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}, #t17.{core::MapEntry::value});
       }
     }
-  } =>#t13;
+  } =>#t15;
   block {
-    final core::Map<core::String, core::int> #t16 = <core::String, core::int>{};
-    final core::Map<core::String, core::int>? #t17 = m;
-    if(!#t17.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::String, core::int>> :sync-for-iterator = #t17{core::Map<core::String, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::String, core::int> #t18 = <core::String, core::int>{};
+    final core::Map<core::String, core::int>? #t19 = m;
+    if(!#t19.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::String, core::int>> :sync-for-iterator = #t19{core::Map<core::String, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String, core::int> #t18 = :sync-for-iterator.{core::Iterator::current};
-        #t16.{core::Map::[]=}{Invariant}(#t18.{core::MapEntry::key}, #t18.{core::MapEntry::value});
+        final core::MapEntry<core::String, core::int> #t20 = :sync-for-iterator.{core::Iterator::current};
+        #t18.{core::Map::[]=}{Invariant}(#t20.{core::MapEntry::key}, #t20.{core::MapEntry::value});
       }
     }
-  } =>#t16;
+  } =>#t18;
   s!;
-  let final core::String #t19 = s in #t19.{core::String::==}(null) ?{core::String?} null : #t19.{core::String::substring}(0, 0);
-  let final core::List<core::String> #t20 = l in #t20.{core::List::==}(null) ?{core::int?} null : #t20.{core::List::length} = 42;
-  let final core::List<core::String> #t21 = l in #t21.{core::List::==}(null) ?{core::int?} null : #t21.{core::List::length} = #t21.{core::List::length}.{core::num::+}(42);
-  let final core::List<core::String> #t22 = l in #t22.{core::List::==}(null) ?{core::int?} null : #t22.{core::List::length}.{core::num::==}(null) ?{core::int} #t22.{core::List::length} = 42 : null;
-  let final core::String #t23 = s in #t23.{core::String::==}(null) ?{core::int?} null : self::E|get#foo(#t23);
-  let final core::String #t24 = s in let final core::int #t25 = 42 in self::E|[](#t24, #t25).{core::num::==}(null) ?{core::int} self::E|[]=(#t24, #t25, 42) : null;
-  let final core::List<core::String> #t26 = l in let final core::int #t27 = 42 in #t26.{core::List::[]}(#t27).{core::String::==}(null) ?{core::String} #t26.{core::List::[]=}(#t27, "foo") : null;
-  let final core::List<core::String> #t28 = l in #t28.{core::List::length}.{core::num::==}(null) ?{core::int} #t28.{core::List::length} = 42 : null;
-  let final core::List<core::String> #t29 = l in #t29.{core::List::==}(null) ?{core::List<core::String>} null : block {
-    #t29.{core::List::length} = 42;
-  } =>#t29;
-  let final core::List<core::String> #t30 = l in #t30.{core::List::==}(null) ?{core::List<core::String>} null : block {
-    let final core::List<core::String> #t31 = #t30 in #t31.{core::List::length}.{core::num::==}(null) ?{core::int} #t31.{core::List::length} = 42 : null;
-  } =>#t30;
+  let final core::String #t21 = s in #t21.{core::String::==}(null) ?{core::String?} null : #t21.{core::String::substring}(0, 0);
+  let final core::List<core::String> #t22 = l in #t22.{core::List::==}(null) ?{core::int?} null : #t22.{core::List::length} = 42;
+  let final core::List<core::String> #t23 = l in #t23.{core::List::==}(null) ?{core::int?} null : #t23.{core::List::length} = #t23.{core::List::length}.{core::num::+}(42);
+  let final core::List<core::String> #t24 = l in #t24.{core::List::==}(null) ?{core::int?} null : #t24.{core::List::length}.{core::num::==}(null) ?{core::int} #t24.{core::List::length} = 42 : null;
+  let final core::String #t25 = s in #t25.{core::String::==}(null) ?{core::int?} null : self::E|get#foo(#t25);
+  let final core::String #t26 = s in let final core::int #t27 = 42 in self::E|[](#t26, #t27).{core::num::==}(null) ?{core::int} self::E|[]=(#t26, #t27, 42) : null;
+  let final core::List<core::String> #t28 = l in let final core::int #t29 = 42 in #t28.{core::List::[]}(#t29).{core::String::==}(null) ?{core::String} #t28.{core::List::[]=}(#t29, "foo") : null;
+  let final core::List<core::String> #t30 = l in #t30.{core::List::length}.{core::num::==}(null) ?{core::int} #t30.{core::List::length} = 42 : null;
+  let final core::List<core::String> #t31 = l in #t31.{core::List::==}(null) ?{core::List<core::String>} null : block {
+    #t31.{core::List::length} = 42;
+  } =>#t31;
+  let final core::List<core::String> #t32 = l in #t32.{core::List::==}(null) ?{core::List<core::String>} null : block {
+    let final core::List<core::String> #t33 = #t32 in #t33.{core::List::length}.{core::num::==}(null) ?{core::int} #t33.{core::List::length} = 42 : null;
+  } =>#t32;
 }
 static method main() → dynamic {}
 
@@ -211,4 +221,4 @@
 Evaluated: VariableGet @ org-dartlang-testcase:///strictly_non_nullable_warnings.dart:42:8 -> IntConstant(42)
 Evaluated: VariableGet @ org-dartlang-testcase:///strictly_non_nullable_warnings.dart:43:5 -> IntConstant(42)
 Evaluated: VariableGet @ org-dartlang-testcase:///strictly_non_nullable_warnings.dart:43:5 -> IntConstant(42)
-Extra constant evaluation: evaluated: 209, effectively constant: 6
+Extra constant evaluation: evaluated: 221, effectively constant: 6
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.expect
index 7b28b33..a97650d 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.expect
@@ -141,51 +141,53 @@
     final core::List<core::String> #t5 = <core::String>[];
     final core::Iterable<core::String>? #t6 = l;
     if(!#t6.{core::Object::==}(null))
-      #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::String>});
+      for (final core::String #t7 in #t6{core::Iterable<core::String>})
+        #t5.{core::List::add}{Invariant}(#t7);
   } =>#t5;
   core::Set<core::String> a = block {
-    final core::Set<core::String> #t7 = col::LinkedHashSet::•<core::String>();
-    final core::Iterable<dynamic>? #t8 = l;
-    if(!#t8.{core::Object::==}(null))
-      for (final dynamic #t9 in #t8{core::Iterable<dynamic>}) {
-        final core::String #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::String;
-        #t7.{core::Set::add}{Invariant}(#t10);
+    final core::Set<core::String> #t8 = col::LinkedHashSet::•<core::String>();
+    final core::Iterable<dynamic>? #t9 = l;
+    if(!#t9.{core::Object::==}(null))
+      for (final dynamic #t10 in #t9{core::Iterable<dynamic>}) {
+        final core::String #t11 = #t10 as{TypeError,ForNonNullableByDefault} core::String;
+        #t8.{core::Set::add}{Invariant}(#t11);
       }
-  } =>#t7;
+  } =>#t8;
   block {
-    final core::Set<core::String> #t11 = col::LinkedHashSet::•<core::String>();
-    final core::Iterable<core::String>? #t12 = l;
-    if(!#t12.{core::Object::==}(null))
-      #t11.{core::Set::addAll}{Invariant}(#t12{core::Iterable<core::String>});
-  } =>#t11;
+    final core::Set<core::String> #t12 = col::LinkedHashSet::•<core::String>();
+    final core::Iterable<core::String>? #t13 = l;
+    if(!#t13.{core::Object::==}(null))
+      for (final core::String #t14 in #t13{core::Iterable<core::String>})
+        #t12.{core::Set::add}{Invariant}(#t14);
+  } =>#t12;
   core::Map<core::String, core::int> b = block {
-    final core::Map<core::String, core::int> #t13 = <core::String, core::int>{};
-    final core::Map<core::String, core::int>? #t14 = m;
-    if(!#t14.{core::Object::==}(null))
-      for (final core::MapEntry<core::String, core::int> #t15 in #t14{core::Map<core::String, core::int>}.{core::Map::entries})
-        #t13.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}, #t15.{core::MapEntry::value});
-  } =>#t13;
+    final core::Map<core::String, core::int> #t15 = <core::String, core::int>{};
+    final core::Map<core::String, core::int>? #t16 = m;
+    if(!#t16.{core::Object::==}(null))
+      for (final core::MapEntry<core::String, core::int> #t17 in #t16{core::Map<core::String, core::int>}.{core::Map::entries})
+        #t15.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}, #t17.{core::MapEntry::value});
+  } =>#t15;
   block {
-    final core::Map<core::String, core::int> #t16 = <core::String, core::int>{};
-    final core::Map<core::String, core::int>? #t17 = m;
-    if(!#t17.{core::Object::==}(null))
-      for (final core::MapEntry<core::String, core::int> #t18 in #t17{core::Map<core::String, core::int>}.{core::Map::entries})
-        #t16.{core::Map::[]=}{Invariant}(#t18.{core::MapEntry::key}, #t18.{core::MapEntry::value});
-  } =>#t16;
+    final core::Map<core::String, core::int> #t18 = <core::String, core::int>{};
+    final core::Map<core::String, core::int>? #t19 = m;
+    if(!#t19.{core::Object::==}(null))
+      for (final core::MapEntry<core::String, core::int> #t20 in #t19{core::Map<core::String, core::int>}.{core::Map::entries})
+        #t18.{core::Map::[]=}{Invariant}(#t20.{core::MapEntry::key}, #t20.{core::MapEntry::value});
+  } =>#t18;
   s!;
-  let final core::String #t19 = s in #t19.{core::String::==}(null) ?{core::String?} null : #t19.{core::String::substring}(0, 0);
-  let final core::List<core::String> #t20 = l in #t20.{core::List::==}(null) ?{core::int?} null : #t20.{core::List::length} = 42;
-  let final core::List<core::String> #t21 = l in #t21.{core::List::==}(null) ?{core::int?} null : #t21.{core::List::length} = #t21.{core::List::length}.{core::num::+}(42);
-  let final core::List<core::String> #t22 = l in #t22.{core::List::==}(null) ?{core::int?} null : #t22.{core::List::length}.{core::num::==}(null) ?{core::int} #t22.{core::List::length} = 42 : null;
-  let final core::String #t23 = s in #t23.{core::String::==}(null) ?{core::int?} null : self::E|get#foo(#t23);
-  let final core::String #t24 = s in let final core::int #t25 = 42 in self::E|[](#t24, #t25).{core::num::==}(null) ?{core::int} self::E|[]=(#t24, #t25, 42) : null;
-  let final core::List<core::String> #t26 = l in let final core::int #t27 = 42 in #t26.{core::List::[]}(#t27).{core::String::==}(null) ?{core::String} #t26.{core::List::[]=}(#t27, "foo") : null;
-  let final core::List<core::String> #t28 = l in #t28.{core::List::length}.{core::num::==}(null) ?{core::int} #t28.{core::List::length} = 42 : null;
-  let final core::List<core::String> #t29 = l in #t29.{core::List::==}(null) ?{core::List<core::String>} null : block {
-    #t29.{core::List::length} = 42;
-  } =>#t29;
-  let final core::List<core::String> #t30 = l in #t30.{core::List::==}(null) ?{core::List<core::String>} null : block {
-    let final core::List<core::String> #t31 = #t30 in #t31.{core::List::length}.{core::num::==}(null) ?{core::int} #t31.{core::List::length} = 42 : null;
-  } =>#t30;
+  let final core::String #t21 = s in #t21.{core::String::==}(null) ?{core::String?} null : #t21.{core::String::substring}(0, 0);
+  let final core::List<core::String> #t22 = l in #t22.{core::List::==}(null) ?{core::int?} null : #t22.{core::List::length} = 42;
+  let final core::List<core::String> #t23 = l in #t23.{core::List::==}(null) ?{core::int?} null : #t23.{core::List::length} = #t23.{core::List::length}.{core::num::+}(42);
+  let final core::List<core::String> #t24 = l in #t24.{core::List::==}(null) ?{core::int?} null : #t24.{core::List::length}.{core::num::==}(null) ?{core::int} #t24.{core::List::length} = 42 : null;
+  let final core::String #t25 = s in #t25.{core::String::==}(null) ?{core::int?} null : self::E|get#foo(#t25);
+  let final core::String #t26 = s in let final core::int #t27 = 42 in self::E|[](#t26, #t27).{core::num::==}(null) ?{core::int} self::E|[]=(#t26, #t27, 42) : null;
+  let final core::List<core::String> #t28 = l in let final core::int #t29 = 42 in #t28.{core::List::[]}(#t29).{core::String::==}(null) ?{core::String} #t28.{core::List::[]=}(#t29, "foo") : null;
+  let final core::List<core::String> #t30 = l in #t30.{core::List::length}.{core::num::==}(null) ?{core::int} #t30.{core::List::length} = 42 : null;
+  let final core::List<core::String> #t31 = l in #t31.{core::List::==}(null) ?{core::List<core::String>} null : block {
+    #t31.{core::List::length} = 42;
+  } =>#t31;
+  let final core::List<core::String> #t32 = l in #t32.{core::List::==}(null) ?{core::List<core::String>} null : block {
+    let final core::List<core::String> #t33 = #t32 in #t33.{core::List::length}.{core::num::==}(null) ?{core::int} #t33.{core::List::length} = 42 : null;
+  } =>#t32;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect
index 624e377..df0ca83 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect
@@ -140,66 +140,76 @@
   block {
     final core::List<core::String> #t5 = <core::String>[];
     final core::Iterable<core::String>? #t6 = l;
-    if(!#t6.{core::Object::==}(null))
-      #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::String>});
+    if(!#t6.{core::Object::==}(null)) {
+      core::Iterator<core::String> :sync-for-iterator = #t6{core::Iterable<core::String>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::String #t7 = :sync-for-iterator.{core::Iterator::current};
+        #t5.{core::List::add}{Invariant}(#t7);
+      }
+    }
   } =>#t5;
   core::Set<core::String> a = block {
-    final core::Set<core::String> #t7 = new col::_CompactLinkedHashSet::•<core::String>();
-    final core::Iterable<dynamic>? #t8 = l;
-    if(!#t8.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t8{core::Iterable<dynamic>}.{core::Iterable::iterator};
+    final core::Set<core::String> #t8 = new col::_CompactLinkedHashSet::•<core::String>();
+    final core::Iterable<dynamic>? #t9 = l;
+    if(!#t9.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t9{core::Iterable<dynamic>}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t9 = :sync-for-iterator.{core::Iterator::current};
+        final dynamic #t10 = :sync-for-iterator.{core::Iterator::current};
         {
-          final core::String #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::String;
-          #t7.{core::Set::add}{Invariant}(#t10);
+          final core::String #t11 = #t10 as{TypeError,ForNonNullableByDefault} core::String;
+          #t8.{core::Set::add}{Invariant}(#t11);
         }
       }
     }
-  } =>#t7;
+  } =>#t8;
   block {
-    final core::Set<core::String> #t11 = new col::_CompactLinkedHashSet::•<core::String>();
-    final core::Iterable<core::String>? #t12 = l;
-    if(!#t12.{core::Object::==}(null))
-      #t11.{core::Set::addAll}{Invariant}(#t12{core::Iterable<core::String>});
-  } =>#t11;
+    final core::Set<core::String> #t12 = new col::_CompactLinkedHashSet::•<core::String>();
+    final core::Iterable<core::String>? #t13 = l;
+    if(!#t13.{core::Object::==}(null)) {
+      core::Iterator<core::String> :sync-for-iterator = #t13{core::Iterable<core::String>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::String #t14 = :sync-for-iterator.{core::Iterator::current};
+        #t12.{core::Set::add}{Invariant}(#t14);
+      }
+    }
+  } =>#t12;
   core::Map<core::String, core::int> b = block {
-    final core::Map<core::String, core::int> #t13 = <core::String, core::int>{};
-    final core::Map<core::String, core::int>? #t14 = m;
-    if(!#t14.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::String, core::int>> :sync-for-iterator = #t14{core::Map<core::String, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::String, core::int> #t15 = <core::String, core::int>{};
+    final core::Map<core::String, core::int>? #t16 = m;
+    if(!#t16.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::String, core::int>> :sync-for-iterator = #t16{core::Map<core::String, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String, core::int> #t15 = :sync-for-iterator.{core::Iterator::current};
-        #t13.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}, #t15.{core::MapEntry::value});
+        final core::MapEntry<core::String, core::int> #t17 = :sync-for-iterator.{core::Iterator::current};
+        #t15.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}, #t17.{core::MapEntry::value});
       }
     }
-  } =>#t13;
+  } =>#t15;
   block {
-    final core::Map<core::String, core::int> #t16 = <core::String, core::int>{};
-    final core::Map<core::String, core::int>? #t17 = m;
-    if(!#t17.{core::Object::==}(null)) {
-      core::Iterator<core::MapEntry<core::String, core::int>> :sync-for-iterator = #t17{core::Map<core::String, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
+    final core::Map<core::String, core::int> #t18 = <core::String, core::int>{};
+    final core::Map<core::String, core::int>? #t19 = m;
+    if(!#t19.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::String, core::int>> :sync-for-iterator = #t19{core::Map<core::String, core::int>}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::String, core::int> #t18 = :sync-for-iterator.{core::Iterator::current};
-        #t16.{core::Map::[]=}{Invariant}(#t18.{core::MapEntry::key}, #t18.{core::MapEntry::value});
+        final core::MapEntry<core::String, core::int> #t20 = :sync-for-iterator.{core::Iterator::current};
+        #t18.{core::Map::[]=}{Invariant}(#t20.{core::MapEntry::key}, #t20.{core::MapEntry::value});
       }
     }
-  } =>#t16;
+  } =>#t18;
   s!;
-  let final core::String #t19 = s in #t19.{core::String::==}(null) ?{core::String?} null : #t19.{core::String::substring}(0, 0);
-  let final core::List<core::String> #t20 = l in #t20.{core::List::==}(null) ?{core::int?} null : #t20.{core::List::length} = 42;
-  let final core::List<core::String> #t21 = l in #t21.{core::List::==}(null) ?{core::int?} null : #t21.{core::List::length} = #t21.{core::List::length}.{core::num::+}(42);
-  let final core::List<core::String> #t22 = l in #t22.{core::List::==}(null) ?{core::int?} null : #t22.{core::List::length}.{core::num::==}(null) ?{core::int} #t22.{core::List::length} = 42 : null;
-  let final core::String #t23 = s in #t23.{core::String::==}(null) ?{core::int?} null : self::E|get#foo(#t23);
-  let final core::String #t24 = s in let final core::int #t25 = 42 in self::E|[](#t24, #t25).{core::num::==}(null) ?{core::int} self::E|[]=(#t24, #t25, 42) : null;
-  let final core::List<core::String> #t26 = l in let final core::int #t27 = 42 in #t26.{core::List::[]}(#t27).{core::String::==}(null) ?{core::String} #t26.{core::List::[]=}(#t27, "foo") : null;
-  let final core::List<core::String> #t28 = l in #t28.{core::List::length}.{core::num::==}(null) ?{core::int} #t28.{core::List::length} = 42 : null;
-  let final core::List<core::String> #t29 = l in #t29.{core::List::==}(null) ?{core::List<core::String>} null : block {
-    #t29.{core::List::length} = 42;
-  } =>#t29;
-  let final core::List<core::String> #t30 = l in #t30.{core::List::==}(null) ?{core::List<core::String>} null : block {
-    let final core::List<core::String> #t31 = #t30 in #t31.{core::List::length}.{core::num::==}(null) ?{core::int} #t31.{core::List::length} = 42 : null;
-  } =>#t30;
+  let final core::String #t21 = s in #t21.{core::String::==}(null) ?{core::String?} null : #t21.{core::String::substring}(0, 0);
+  let final core::List<core::String> #t22 = l in #t22.{core::List::==}(null) ?{core::int?} null : #t22.{core::List::length} = 42;
+  let final core::List<core::String> #t23 = l in #t23.{core::List::==}(null) ?{core::int?} null : #t23.{core::List::length} = #t23.{core::List::length}.{core::num::+}(42);
+  let final core::List<core::String> #t24 = l in #t24.{core::List::==}(null) ?{core::int?} null : #t24.{core::List::length}.{core::num::==}(null) ?{core::int} #t24.{core::List::length} = 42 : null;
+  let final core::String #t25 = s in #t25.{core::String::==}(null) ?{core::int?} null : self::E|get#foo(#t25);
+  let final core::String #t26 = s in let final core::int #t27 = 42 in self::E|[](#t26, #t27).{core::num::==}(null) ?{core::int} self::E|[]=(#t26, #t27, 42) : null;
+  let final core::List<core::String> #t28 = l in let final core::int #t29 = 42 in #t28.{core::List::[]}(#t29).{core::String::==}(null) ?{core::String} #t28.{core::List::[]=}(#t29, "foo") : null;
+  let final core::List<core::String> #t30 = l in #t30.{core::List::length}.{core::num::==}(null) ?{core::int} #t30.{core::List::length} = 42 : null;
+  let final core::List<core::String> #t31 = l in #t31.{core::List::==}(null) ?{core::List<core::String>} null : block {
+    #t31.{core::List::length} = 42;
+  } =>#t31;
+  let final core::List<core::String> #t32 = l in #t32.{core::List::==}(null) ?{core::List<core::String>} null : block {
+    let final core::List<core::String> #t33 = #t32 in #t33.{core::List::length}.{core::num::==}(null) ?{core::int} #t33.{core::List::length} = 42 : null;
+  } =>#t32;
 }
 static method main() → dynamic {}
 
@@ -211,4 +221,4 @@
 Evaluated: VariableGet @ org-dartlang-testcase:///strictly_non_nullable_warnings.dart:42:8 -> IntConstant(42)
 Evaluated: VariableGet @ org-dartlang-testcase:///strictly_non_nullable_warnings.dart:43:5 -> IntConstant(42)
 Evaluated: VariableGet @ org-dartlang-testcase:///strictly_non_nullable_warnings.dart:43:5 -> IntConstant(42)
-Extra constant evaluation: evaluated: 209, effectively constant: 6
+Extra constant evaluation: evaluated: 221, effectively constant: 6
diff --git a/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.expect
index 9650648..4ca139e 100644
--- a/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.expect
@@ -10,10 +10,12 @@
     ;
   method method(core::String* node, core::Set<core::String*>* set) → core::List<core::String*>*
     return set.{core::Set::add}(node) ?{core::List<core::String*>*} block {
-      final core::List<core::String*>* #t1 = <core::String*>[node];
+      final core::List<core::String*>* #t1 = <core::String*>[];
+      #t1.{core::List::add}{Invariant}(node);
       final core::Iterable<core::String*>* #t2 = let final core::Iterable<core::String*>* #t3 = let final core::Set<core::String*>* #t4 = this.{self::Class::map}.{core::Map::[]}(node) in #t4.{core::Object::==}(null) ?{core::Iterable<core::String*>*} null : #t4.{core::Iterable::expand}<core::String*>((core::String* node) → core::List<core::String*>* => this.{self::Class::method}(node, set)) in #t3.{core::Object::==}(null) ?{core::List<core::String*>*} null : #t3.{core::Iterable::toList}();
       if(!#t2.{core::Object::==}(null))
-        #t1.{core::List::addAll}{Invariant}(#t2);
+        for (final core::String* #t5 in #t2)
+          #t1.{core::List::add}{Invariant}(#t5);
     } =>#t1 : <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
@@ -29,6 +31,6 @@
 static method main(dynamic args) → dynamic {
   if(false)
     new self::Class::•().{self::Class::method}("", block {
-      final core::Set<core::String*>* #t5 = col::LinkedHashSet::•<core::String*>();
-    } =>#t5);
+      final core::Set<core::String*>* #t6 = col::LinkedHashSet::•<core::String*>();
+    } =>#t6);
 }
diff --git a/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.transformed.expect
index 11de2a4..32474f7 100644
--- a/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.transformed.expect
@@ -10,10 +10,16 @@
     ;
   method method(core::String* node, core::Set<core::String*>* set) → core::List<core::String*>*
     return set.{core::Set::add}(node) ?{core::List<core::String*>*} block {
-      final core::List<core::String*>* #t1 = <core::String*>[node];
+      final core::List<core::String*>* #t1 = <core::String*>[];
+      #t1.{core::List::add}{Invariant}(node);
       final core::Iterable<core::String*>* #t2 = let final core::Iterable<core::String*>* #t3 = let final core::Set<core::String*>* #t4 = this.{self::Class::map}.{core::Map::[]}(node) in #t4.{core::Object::==}(null) ?{core::Iterable<core::String*>*} null : #t4.{core::Iterable::expand}<core::String*>((core::String* node) → core::List<core::String*>* => this.{self::Class::method}(node, set)) in #t3.{core::Object::==}(null) ?{core::List<core::String*>*} null : #t3.{core::Iterable::toList}();
-      if(!#t2.{core::Object::==}(null))
-        #t1.{core::List::addAll}{Invariant}(#t2);
+      if(!#t2.{core::Object::==}(null)) {
+        core::Iterator<core::String*>* :sync-for-iterator = #t2.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final core::String* #t5 = :sync-for-iterator.{core::Iterator::current};
+          #t1.{core::List::add}{Invariant}(#t5);
+        }
+      }
     } =>#t1 : <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
@@ -29,6 +35,6 @@
 static method main(dynamic args) → dynamic {
   if(false)
     new self::Class::•().{self::Class::method}("", block {
-      final core::Set<core::String*>* #t5 = new col::_CompactLinkedHashSet::•<core::String*>();
-    } =>#t5);
+      final core::Set<core::String*>* #t6 = new col::_CompactLinkedHashSet::•<core::String*>();
+    } =>#t6);
 }
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial.dart b/pkg/front_end/testcases/unified_collections/fold_initial.dart
deleted file mode 100644
index a0fdadd..0000000
--- a/pkg/front_end/testcases/unified_collections/fold_initial.dart
+++ /dev/null
@@ -1,106 +0,0 @@
-// 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
-
-void foldInitialElements() {
-  dynamic element0 = 0;
-  num element1 = 1;
-  int element2 = 2;
-  var list = <int>[element0, element1, element2, if (true) 3, 4, 5, 6];
-
-  expect(new List<int>.generate(7, (int i) => i), list);
-
-  var set = <int>{element0, element1, element2, if (true) 3, 4, 5, 6};
-
-  expect(new List<int>.generate(7, (int i) => i), set.toList());
-}
-
-void foldInitialSpread1() {
-  dynamic initial = [0, 1, 2];
-  var list = <int>[...initial, if (true) 3, 4, 5, 6];
-
-  expect(new List<int>.generate(7, (int i) => i), list);
-
-  var set = <int>{...initial, if (true) 3, 4, 5, 6};
-
-  expect(new List<int>.generate(7, (int i) => i), set.toList());
-}
-
-void foldInitialSpread2() {
-  Iterable<num> initial = [0, 1, 2];
-  var list = <int>[...initial, if (true) 3, 4, 5, 6];
-
-  expect(new List<int>.generate(7, (int i) => i), list);
-
-  var set = <int>{...initial, if (true) 3, 4, 5, 6};
-
-  expect(new List<int>.generate(7, (int i) => i), set.toList());
-}
-
-void foldInitialSpread3() {
-  List<num> initial = [0, 1, 2];
-  var list = <int>[...initial, if (true) 3, 4, 5, 6];
-
-  expect(new List<int>.generate(7, (int i) => i), list);
-
-  var set = <int>{...initial, if (true) 3, 4, 5, 6};
-
-  expect(new List<int>.generate(7, (int i) => i), set.toList());
-}
-
-void foldInitialSpread4() {
-  Iterable<int> initial = [0, 1, 2];
-  var list = <int>[...initial, if (true) 3, 4, 5, 6];
-
-  expect(new List<int>.generate(7, (int i) => i), list);
-
-  var set = <int>{...initial, if (true) 3, 4, 5, 6};
-
-  expect(new List<int>.generate(7, (int i) => i), set.toList());
-}
-
-void foldInitialSpread5() {
-  List<int> initial = [0, 1, 2];
-  var list = <int>[...initial, if (true) 3, 4, 5, 6];
-
-  expect(new List<int>.generate(7, (int i) => i), list);
-
-  var set = <int>{...initial, if (true) 3, 4, 5, 6};
-
-  expect(new List<int>.generate(7, (int i) => i), set.toList());
-}
-
-void foldInitialSpread6() {
-  List<int> initial = [0, 1, 2];
-  var list = <int>[...?initial, if (true) 3, 4, 5, 6];
-
-  expect(new List<int>.generate(7, (int i) => i), list);
-
-  var set = <int>{...?initial, if (true) 3, 4, 5, 6};
-
-  expect(new List<int>.generate(7, (int i) => i), set.toList());
-}
-
-main() {
-  foldInitialElements();
-  foldInitialSpread1();
-  foldInitialSpread2();
-  foldInitialSpread3();
-  foldInitialSpread4();
-  foldInitialSpread5();
-  foldInitialSpread6();
-}
-
-void expect(List list1, List list2) {
-  if (list1.length != list2.length) {
-    throw 'Unexpected length. Expected ${list1.length}, actual ${list2.length}.';
-  }
-  for (int i = 0; i < list1.length; i++) {
-    if (list1[i] != list2[i]) {
-      throw 'Unexpected element at index $i. '
-          'Expected ${list1[i]}, actual ${list2[i]}.';
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial.dart.textual_outline.expect b/pkg/front_end/testcases/unified_collections/fold_initial.dart.textual_outline.expect
deleted file mode 100644
index d2d7d8d..0000000
--- a/pkg/front_end/testcases/unified_collections/fold_initial.dart.textual_outline.expect
+++ /dev/null
@@ -1,10 +0,0 @@
-// @dart = 2.9
-void foldInitialElements() {}
-void foldInitialSpread1() {}
-void foldInitialSpread2() {}
-void foldInitialSpread3() {}
-void foldInitialSpread4() {}
-void foldInitialSpread5() {}
-void foldInitialSpread6() {}
-main() {}
-void expect(List list1, List list2) {}
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/unified_collections/fold_initial.dart.textual_outline_modelled.expect
deleted file mode 100644
index aef8b8f..0000000
--- a/pkg/front_end/testcases/unified_collections/fold_initial.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,10 +0,0 @@
-// @dart = 2.9
-main() {}
-void expect(List list1, List list2) {}
-void foldInitialElements() {}
-void foldInitialSpread1() {}
-void foldInitialSpread2() {}
-void foldInitialSpread3() {}
-void foldInitialSpread4() {}
-void foldInitialSpread5() {}
-void foldInitialSpread6() {}
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.expect b/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.expect
deleted file mode 100644
index 21d66e0..0000000
--- a/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.expect
+++ /dev/null
@@ -1,206 +0,0 @@
-library;
-import self as self;
-import "dart:core" as core;
-import "dart:collection" as col;
-
-static method foldInitialElements() → void {
-  dynamic element0 = 0;
-  core::num* element1 = 1;
-  core::int* element2 = 2;
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t1 = <core::int*>[element0 as{TypeError,ForDynamic} core::int*, element1 as{TypeError} core::int*, element2];
-    if(true)
-      #t1.{core::List::add}{Invariant}(3);
-    #t1.{core::List::add}{Invariant}(4);
-    #t1.{core::List::add}{Invariant}(5);
-    #t1.{core::List::add}{Invariant}(6);
-  } =>#t1;
-  self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t2 = col::LinkedHashSet::•<core::int*>();
-    #t2.{core::Set::add}{Invariant}(element0 as{TypeError,ForDynamic} core::int*);
-    #t2.{core::Set::add}{Invariant}(element1 as{TypeError} core::int*);
-    #t2.{core::Set::add}{Invariant}(element2);
-    if(true)
-      #t2.{core::Set::add}{Invariant}(3);
-    #t2.{core::Set::add}{Invariant}(4);
-    #t2.{core::Set::add}{Invariant}(5);
-    #t2.{core::Set::add}{Invariant}(6);
-  } =>#t2;
-  self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
-}
-static method foldInitialSpread1() → void {
-  dynamic initial = <core::int*>[0, 1, 2];
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t3 = <core::int*>[];
-    for (final dynamic #t4 in initial as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-      final core::int* #t5 = #t4 as{TypeError} core::int*;
-      #t3.{core::List::add}{Invariant}(#t5);
-    }
-    if(true)
-      #t3.{core::List::add}{Invariant}(3);
-    #t3.{core::List::add}{Invariant}(4);
-    #t3.{core::List::add}{Invariant}(5);
-    #t3.{core::List::add}{Invariant}(6);
-  } =>#t3;
-  self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t6 = col::LinkedHashSet::•<core::int*>();
-    for (final dynamic #t7 in initial as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-      final core::int* #t8 = #t7 as{TypeError} core::int*;
-      #t6.{core::Set::add}{Invariant}(#t8);
-    }
-    if(true)
-      #t6.{core::Set::add}{Invariant}(3);
-    #t6.{core::Set::add}{Invariant}(4);
-    #t6.{core::Set::add}{Invariant}(5);
-    #t6.{core::Set::add}{Invariant}(6);
-  } =>#t6;
-  self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
-}
-static method foldInitialSpread2() → void {
-  core::Iterable<core::num*>* initial = <core::num*>[0, 1, 2];
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t9 = <core::int*>[];
-    for (final dynamic #t10 in initial) {
-      final core::int* #t11 = #t10 as{TypeError} core::int*;
-      #t9.{core::List::add}{Invariant}(#t11);
-    }
-    if(true)
-      #t9.{core::List::add}{Invariant}(3);
-    #t9.{core::List::add}{Invariant}(4);
-    #t9.{core::List::add}{Invariant}(5);
-    #t9.{core::List::add}{Invariant}(6);
-  } =>#t9;
-  self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t12 = col::LinkedHashSet::•<core::int*>();
-    for (final dynamic #t13 in initial) {
-      final core::int* #t14 = #t13 as{TypeError} core::int*;
-      #t12.{core::Set::add}{Invariant}(#t14);
-    }
-    if(true)
-      #t12.{core::Set::add}{Invariant}(3);
-    #t12.{core::Set::add}{Invariant}(4);
-    #t12.{core::Set::add}{Invariant}(5);
-    #t12.{core::Set::add}{Invariant}(6);
-  } =>#t12;
-  self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
-}
-static method foldInitialSpread3() → void {
-  core::List<core::num*>* initial = <core::num*>[0, 1, 2];
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t15 = <core::int*>[];
-    for (final dynamic #t16 in initial) {
-      final core::int* #t17 = #t16 as{TypeError} core::int*;
-      #t15.{core::List::add}{Invariant}(#t17);
-    }
-    if(true)
-      #t15.{core::List::add}{Invariant}(3);
-    #t15.{core::List::add}{Invariant}(4);
-    #t15.{core::List::add}{Invariant}(5);
-    #t15.{core::List::add}{Invariant}(6);
-  } =>#t15;
-  self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t18 = col::LinkedHashSet::•<core::int*>();
-    for (final dynamic #t19 in initial) {
-      final core::int* #t20 = #t19 as{TypeError} core::int*;
-      #t18.{core::Set::add}{Invariant}(#t20);
-    }
-    if(true)
-      #t18.{core::Set::add}{Invariant}(3);
-    #t18.{core::Set::add}{Invariant}(4);
-    #t18.{core::Set::add}{Invariant}(5);
-    #t18.{core::Set::add}{Invariant}(6);
-  } =>#t18;
-  self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
-}
-static method foldInitialSpread4() → void {
-  core::Iterable<core::int*>* initial = <core::int*>[0, 1, 2];
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t21 = core::List::of<core::int*>(initial);
-    if(true)
-      #t21.{core::List::add}{Invariant}(3);
-    #t21.{core::List::add}{Invariant}(4);
-    #t21.{core::List::add}{Invariant}(5);
-    #t21.{core::List::add}{Invariant}(6);
-  } =>#t21;
-  self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t22 = col::LinkedHashSet::of<core::int*>(initial);
-    if(true)
-      #t22.{core::Set::add}{Invariant}(3);
-    #t22.{core::Set::add}{Invariant}(4);
-    #t22.{core::Set::add}{Invariant}(5);
-    #t22.{core::Set::add}{Invariant}(6);
-  } =>#t22;
-  self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
-}
-static method foldInitialSpread5() → void {
-  core::List<core::int*>* initial = <core::int*>[0, 1, 2];
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t23 = core::List::of<core::int*>(initial);
-    if(true)
-      #t23.{core::List::add}{Invariant}(3);
-    #t23.{core::List::add}{Invariant}(4);
-    #t23.{core::List::add}{Invariant}(5);
-    #t23.{core::List::add}{Invariant}(6);
-  } =>#t23;
-  self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t24 = col::LinkedHashSet::of<core::int*>(initial);
-    if(true)
-      #t24.{core::Set::add}{Invariant}(3);
-    #t24.{core::Set::add}{Invariant}(4);
-    #t24.{core::Set::add}{Invariant}(5);
-    #t24.{core::Set::add}{Invariant}(6);
-  } =>#t24;
-  self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
-}
-static method foldInitialSpread6() → void {
-  core::List<core::int*>* initial = <core::int*>[0, 1, 2];
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t25 = <core::int*>[];
-    final core::Iterable<core::int*>* #t26 = initial;
-    if(!#t26.{core::Object::==}(null))
-      #t25.{core::List::addAll}{Invariant}(#t26);
-    if(true)
-      #t25.{core::List::add}{Invariant}(3);
-    #t25.{core::List::add}{Invariant}(4);
-    #t25.{core::List::add}{Invariant}(5);
-    #t25.{core::List::add}{Invariant}(6);
-  } =>#t25;
-  self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t27 = col::LinkedHashSet::•<core::int*>();
-    final core::Iterable<core::int*>* #t28 = initial;
-    if(!#t28.{core::Object::==}(null))
-      #t27.{core::Set::addAll}{Invariant}(#t28);
-    if(true)
-      #t27.{core::Set::add}{Invariant}(3);
-    #t27.{core::Set::add}{Invariant}(4);
-    #t27.{core::Set::add}{Invariant}(5);
-    #t27.{core::Set::add}{Invariant}(6);
-  } =>#t27;
-  self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
-}
-static method main() → dynamic {
-  self::foldInitialElements();
-  self::foldInitialSpread1();
-  self::foldInitialSpread2();
-  self::foldInitialSpread3();
-  self::foldInitialSpread4();
-  self::foldInitialSpread5();
-  self::foldInitialSpread6();
-}
-static method expect(core::List<dynamic>* list1, core::List<dynamic>* list2) → void {
-  if(!list1.{core::List::length}.{core::num::==}(list2.{core::List::length})) {
-    throw "Unexpected length. Expected ${list1.{core::List::length}}, actual ${list2.{core::List::length}}.";
-  }
-  for (core::int* i = 0; i.{core::num::<}(list1.{core::List::length}); i = i.{core::num::+}(1)) {
-    if(!list1.{core::List::[]}(i).{core::Object::==}(list2.{core::List::[]}(i))) {
-      throw "Unexpected element at index ${i}. Expected ${list1.{core::List::[]}(i)}, actual ${list2.{core::List::[]}(i)}.";
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.transformed.expect
deleted file mode 100644
index 9108424..0000000
--- a/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.transformed.expect
+++ /dev/null
@@ -1,242 +0,0 @@
-library;
-import self as self;
-import "dart:core" as core;
-import "dart:collection" as col;
-
-static method foldInitialElements() → void {
-  dynamic element0 = 0;
-  core::num* element1 = 1;
-  core::int* element2 = 2;
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t1 = <core::int*>[element0 as{TypeError,ForDynamic} core::int*, element1 as{TypeError} core::int*, element2];
-    if(true)
-      #t1.{core::List::add}{Invariant}(3);
-    #t1.{core::List::add}{Invariant}(4);
-    #t1.{core::List::add}{Invariant}(5);
-    #t1.{core::List::add}{Invariant}(6);
-  } =>#t1;
-  self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t2 = new col::_CompactLinkedHashSet::•<core::int*>();
-    #t2.{core::Set::add}{Invariant}(element0 as{TypeError,ForDynamic} core::int*);
-    #t2.{core::Set::add}{Invariant}(element1 as{TypeError} core::int*);
-    #t2.{core::Set::add}{Invariant}(element2);
-    if(true)
-      #t2.{core::Set::add}{Invariant}(3);
-    #t2.{core::Set::add}{Invariant}(4);
-    #t2.{core::Set::add}{Invariant}(5);
-    #t2.{core::Set::add}{Invariant}(6);
-  } =>#t2;
-  self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
-}
-static method foldInitialSpread1() → void {
-  dynamic initial = <core::int*>[0, 1, 2];
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t3 = <core::int*>[];
-    {
-      core::Iterator<dynamic>* :sync-for-iterator = (initial as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t4 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t5 = #t4 as{TypeError} core::int*;
-          #t3.{core::List::add}{Invariant}(#t5);
-        }
-      }
-    }
-    if(true)
-      #t3.{core::List::add}{Invariant}(3);
-    #t3.{core::List::add}{Invariant}(4);
-    #t3.{core::List::add}{Invariant}(5);
-    #t3.{core::List::add}{Invariant}(6);
-  } =>#t3;
-  self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t6 = new col::_CompactLinkedHashSet::•<core::int*>();
-    {
-      core::Iterator<dynamic>* :sync-for-iterator = (initial as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t7 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t8 = #t7 as{TypeError} core::int*;
-          #t6.{core::Set::add}{Invariant}(#t8);
-        }
-      }
-    }
-    if(true)
-      #t6.{core::Set::add}{Invariant}(3);
-    #t6.{core::Set::add}{Invariant}(4);
-    #t6.{core::Set::add}{Invariant}(5);
-    #t6.{core::Set::add}{Invariant}(6);
-  } =>#t6;
-  self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
-}
-static method foldInitialSpread2() → void {
-  core::Iterable<core::num*>* initial = <core::num*>[0, 1, 2];
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t9 = <core::int*>[];
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = initial.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t10 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t11 = #t10 as{TypeError} core::int*;
-          #t9.{core::List::add}{Invariant}(#t11);
-        }
-      }
-    }
-    if(true)
-      #t9.{core::List::add}{Invariant}(3);
-    #t9.{core::List::add}{Invariant}(4);
-    #t9.{core::List::add}{Invariant}(5);
-    #t9.{core::List::add}{Invariant}(6);
-  } =>#t9;
-  self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t12 = new col::_CompactLinkedHashSet::•<core::int*>();
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = initial.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t13 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t14 = #t13 as{TypeError} core::int*;
-          #t12.{core::Set::add}{Invariant}(#t14);
-        }
-      }
-    }
-    if(true)
-      #t12.{core::Set::add}{Invariant}(3);
-    #t12.{core::Set::add}{Invariant}(4);
-    #t12.{core::Set::add}{Invariant}(5);
-    #t12.{core::Set::add}{Invariant}(6);
-  } =>#t12;
-  self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
-}
-static method foldInitialSpread3() → void {
-  core::List<core::num*>* initial = <core::num*>[0, 1, 2];
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t15 = <core::int*>[];
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = initial.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t16 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t17 = #t16 as{TypeError} core::int*;
-          #t15.{core::List::add}{Invariant}(#t17);
-        }
-      }
-    }
-    if(true)
-      #t15.{core::List::add}{Invariant}(3);
-    #t15.{core::List::add}{Invariant}(4);
-    #t15.{core::List::add}{Invariant}(5);
-    #t15.{core::List::add}{Invariant}(6);
-  } =>#t15;
-  self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t18 = new col::_CompactLinkedHashSet::•<core::int*>();
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = initial.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t19 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t20 = #t19 as{TypeError} core::int*;
-          #t18.{core::Set::add}{Invariant}(#t20);
-        }
-      }
-    }
-    if(true)
-      #t18.{core::Set::add}{Invariant}(3);
-    #t18.{core::Set::add}{Invariant}(4);
-    #t18.{core::Set::add}{Invariant}(5);
-    #t18.{core::Set::add}{Invariant}(6);
-  } =>#t18;
-  self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
-}
-static method foldInitialSpread4() → void {
-  core::Iterable<core::int*>* initial = <core::int*>[0, 1, 2];
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t21 = core::List::of<core::int*>(initial);
-    if(true)
-      #t21.{core::List::add}{Invariant}(3);
-    #t21.{core::List::add}{Invariant}(4);
-    #t21.{core::List::add}{Invariant}(5);
-    #t21.{core::List::add}{Invariant}(6);
-  } =>#t21;
-  self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t22 = col::LinkedHashSet::of<core::int*>(initial);
-    if(true)
-      #t22.{core::Set::add}{Invariant}(3);
-    #t22.{core::Set::add}{Invariant}(4);
-    #t22.{core::Set::add}{Invariant}(5);
-    #t22.{core::Set::add}{Invariant}(6);
-  } =>#t22;
-  self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
-}
-static method foldInitialSpread5() → void {
-  core::List<core::int*>* initial = <core::int*>[0, 1, 2];
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t23 = core::List::of<core::int*>(initial);
-    if(true)
-      #t23.{core::List::add}{Invariant}(3);
-    #t23.{core::List::add}{Invariant}(4);
-    #t23.{core::List::add}{Invariant}(5);
-    #t23.{core::List::add}{Invariant}(6);
-  } =>#t23;
-  self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t24 = col::LinkedHashSet::of<core::int*>(initial);
-    if(true)
-      #t24.{core::Set::add}{Invariant}(3);
-    #t24.{core::Set::add}{Invariant}(4);
-    #t24.{core::Set::add}{Invariant}(5);
-    #t24.{core::Set::add}{Invariant}(6);
-  } =>#t24;
-  self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
-}
-static method foldInitialSpread6() → void {
-  core::List<core::int*>* initial = <core::int*>[0, 1, 2];
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t25 = <core::int*>[];
-    final core::Iterable<core::int*>* #t26 = initial;
-    if(!#t26.{core::Object::==}(null))
-      #t25.{core::List::addAll}{Invariant}(#t26);
-    if(true)
-      #t25.{core::List::add}{Invariant}(3);
-    #t25.{core::List::add}{Invariant}(4);
-    #t25.{core::List::add}{Invariant}(5);
-    #t25.{core::List::add}{Invariant}(6);
-  } =>#t25;
-  self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t27 = new col::_CompactLinkedHashSet::•<core::int*>();
-    final core::Iterable<core::int*>* #t28 = initial;
-    if(!#t28.{core::Object::==}(null))
-      #t27.{core::Set::addAll}{Invariant}(#t28);
-    if(true)
-      #t27.{core::Set::add}{Invariant}(3);
-    #t27.{core::Set::add}{Invariant}(4);
-    #t27.{core::Set::add}{Invariant}(5);
-    #t27.{core::Set::add}{Invariant}(6);
-  } =>#t27;
-  self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
-}
-static method main() → dynamic {
-  self::foldInitialElements();
-  self::foldInitialSpread1();
-  self::foldInitialSpread2();
-  self::foldInitialSpread3();
-  self::foldInitialSpread4();
-  self::foldInitialSpread5();
-  self::foldInitialSpread6();
-}
-static method expect(core::List<dynamic>* list1, core::List<dynamic>* list2) → void {
-  if(!list1.{core::List::length}.{core::num::==}(list2.{core::List::length})) {
-    throw "Unexpected length. Expected ${list1.{core::List::length}}, actual ${list2.{core::List::length}}.";
-  }
-  for (core::int* i = 0; i.{core::num::<}(list1.{core::List::length}); i = i.{core::num::+}(1)) {
-    if(!list1.{core::List::[]}(i).{core::Object::==}(list2.{core::List::[]}(i))) {
-      throw "Unexpected element at index ${i}. Expected ${list1.{core::List::[]}(i)}, actual ${list2.{core::List::[]}(i)}.";
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/folder.options b/pkg/front_end/testcases/unified_collections/folder.options
index e69de29..dbc148e 100644
--- a/pkg/front_end/testcases/unified_collections/folder.options
+++ b/pkg/front_end/testcases/unified_collections/folder.options
@@ -0,0 +1 @@
+--enable-experiment=no-non-nullable
\ No newline at end of file
diff --git a/pkg/front_end/testcases/unified_collections/invariance.dart.outline.expect b/pkg/front_end/testcases/unified_collections/invariance.dart.outline.expect
new file mode 100644
index 0000000..6a28c0d
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/invariance.dart.outline.expect
@@ -0,0 +1,5 @@
+library;
+import self as self;
+
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/unified_collections/invariance.dart.strong.expect b/pkg/front_end/testcases/unified_collections/invariance.dart.strong.expect
new file mode 100644
index 0000000..ebbf96d
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/invariance.dart.strong.expect
@@ -0,0 +1,75 @@
+library;
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method main() → dynamic {
+  core::List<core::int*>* list1 = <core::int*>[0];
+  core::List<core::num*>* list2 = <core::num*>[0];
+  dynamic list3 = <core::int*>[0];
+  core::List<core::int*>* list = block {
+    final core::List<core::int*>* #t1 = <core::int*>[];
+    #t1.{core::List::add}{Invariant}(0);
+    for (final core::int* #t2 in list1)
+      #t1.{core::List::add}{Invariant}(#t2);
+    for (final dynamic #t3 in list2) {
+      final core::int* #t4 = #t3 as{TypeError} core::int*;
+      #t1.{core::List::add}{Invariant}(#t4);
+    }
+    for (final dynamic #t5 in list3 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+      final core::int* #t6 = #t5 as{TypeError} core::int*;
+      #t1.{core::List::add}{Invariant}(#t6);
+    }
+    if(true)
+      #t1.{core::List::add}{Invariant}(2);
+  } =>#t1;
+  core::Set<core::int*>* set1 = block {
+    final core::Set<core::int*>* #t7 = col::LinkedHashSet::•<core::int*>();
+    #t7.{core::Set::add}{Invariant}(0);
+  } =>#t7;
+  core::Set<core::num*>* set2 = block {
+    final core::Set<core::num*>* #t8 = col::LinkedHashSet::•<core::num*>();
+    #t8.{core::Set::add}{Invariant}(0);
+  } =>#t8;
+  dynamic set3 = block {
+    final core::Set<core::int*>* #t9 = col::LinkedHashSet::•<core::int*>();
+    #t9.{core::Set::add}{Invariant}(0);
+  } =>#t9;
+  core::Set<core::int*>* set = block {
+    final core::Set<core::int*>* #t10 = col::LinkedHashSet::•<core::int*>();
+    #t10.{core::Set::add}{Invariant}(0);
+    for (final core::int* #t11 in set1)
+      #t10.{core::Set::add}{Invariant}(#t11);
+    for (final dynamic #t12 in set2) {
+      final core::int* #t13 = #t12 as{TypeError} core::int*;
+      #t10.{core::Set::add}{Invariant}(#t13);
+    }
+    for (final dynamic #t14 in set3 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+      final core::int* #t15 = #t14 as{TypeError} core::int*;
+      #t10.{core::Set::add}{Invariant}(#t15);
+    }
+    if(true)
+      #t10.{core::Set::add}{Invariant}(2);
+  } =>#t10;
+  core::Map<core::int*, core::String*>* map1 = <core::int*, core::String*>{0: "foo"};
+  core::Map<core::num*, core::Object*>* map2 = <core::num*, core::Object*>{0: "bar"};
+  dynamic map3 = <core::int*, core::String*>{0: "baz"};
+  core::Map<core::int*, core::String*>* map = block {
+    final core::Map<core::int*, core::String*>* #t16 = <core::int*, core::String*>{};
+    #t16.{core::Map::[]=}{Invariant}(0, "foo");
+    for (final core::MapEntry<core::int*, core::String*>* #t17 in map1.{core::Map::entries})
+      #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}, #t17.{core::MapEntry::value});
+    for (final core::MapEntry<dynamic, dynamic>* #t18 in map2.{core::Map::entries}) {
+      final core::int* #t19 = #t18.{core::MapEntry::key} as{TypeError} core::int*;
+      final core::String* #t20 = #t18.{core::MapEntry::value} as{TypeError} core::String*;
+      #t16.{core::Map::[]=}{Invariant}(#t19, #t20);
+    }
+    for (final core::MapEntry<dynamic, dynamic>* #t21 in (map3 as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}) {
+      final core::int* #t22 = #t21.{core::MapEntry::key} as{TypeError} core::int*;
+      final core::String* #t23 = #t21.{core::MapEntry::value} as{TypeError} core::String*;
+      #t16.{core::Map::[]=}{Invariant}(#t22, #t23);
+    }
+    if(true)
+      #t16.{core::Map::[]=}{Invariant}(2, "baz");
+  } =>#t16;
+}
diff --git a/pkg/front_end/testcases/unified_collections/invariance.dart.strong.transformed.expect b/pkg/front_end/testcases/unified_collections/invariance.dart.strong.transformed.expect
new file mode 100644
index 0000000..a1ce6d8
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/invariance.dart.strong.transformed.expect
@@ -0,0 +1,126 @@
+library;
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method main() → dynamic {
+  core::List<core::int*>* list1 = <core::int*>[0];
+  core::List<core::num*>* list2 = <core::num*>[0];
+  dynamic list3 = <core::int*>[0];
+  core::List<core::int*>* list = block {
+    final core::List<core::int*>* #t1 = <core::int*>[];
+    #t1.{core::List::add}{Invariant}(0);
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = list1.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t2 = :sync-for-iterator.{core::Iterator::current};
+        #t1.{core::List::add}{Invariant}(#t2);
+      }
+    }
+    {
+      core::Iterator<core::num*>* :sync-for-iterator = list2.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t3 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int* #t4 = #t3 as{TypeError} core::int*;
+          #t1.{core::List::add}{Invariant}(#t4);
+        }
+      }
+    }
+    {
+      core::Iterator<dynamic>* :sync-for-iterator = (list3 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t5 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int* #t6 = #t5 as{TypeError} core::int*;
+          #t1.{core::List::add}{Invariant}(#t6);
+        }
+      }
+    }
+    if(true)
+      #t1.{core::List::add}{Invariant}(2);
+  } =>#t1;
+  core::Set<core::int*>* set1 = block {
+    final core::Set<core::int*>* #t7 = new col::_CompactLinkedHashSet::•<core::int*>();
+    #t7.{core::Set::add}{Invariant}(0);
+  } =>#t7;
+  core::Set<core::num*>* set2 = block {
+    final core::Set<core::num*>* #t8 = new col::_CompactLinkedHashSet::•<core::num*>();
+    #t8.{core::Set::add}{Invariant}(0);
+  } =>#t8;
+  dynamic set3 = block {
+    final core::Set<core::int*>* #t9 = new col::_CompactLinkedHashSet::•<core::int*>();
+    #t9.{core::Set::add}{Invariant}(0);
+  } =>#t9;
+  core::Set<core::int*>* set = block {
+    final core::Set<core::int*>* #t10 = new col::_CompactLinkedHashSet::•<core::int*>();
+    #t10.{core::Set::add}{Invariant}(0);
+    {
+      core::Iterator<core::int*>* :sync-for-iterator = set1.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::int* #t11 = :sync-for-iterator.{core::Iterator::current};
+        #t10.{core::Set::add}{Invariant}(#t11);
+      }
+    }
+    {
+      core::Iterator<core::num*>* :sync-for-iterator = set2.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t12 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int* #t13 = #t12 as{TypeError} core::int*;
+          #t10.{core::Set::add}{Invariant}(#t13);
+        }
+      }
+    }
+    {
+      core::Iterator<dynamic>* :sync-for-iterator = (set3 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t14 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int* #t15 = #t14 as{TypeError} core::int*;
+          #t10.{core::Set::add}{Invariant}(#t15);
+        }
+      }
+    }
+    if(true)
+      #t10.{core::Set::add}{Invariant}(2);
+  } =>#t10;
+  core::Map<core::int*, core::String*>* map1 = <core::int*, core::String*>{0: "foo"};
+  core::Map<core::num*, core::Object*>* map2 = <core::num*, core::Object*>{0: "bar"};
+  dynamic map3 = <core::int*, core::String*>{0: "baz"};
+  core::Map<core::int*, core::String*>* map = block {
+    final core::Map<core::int*, core::String*>* #t16 = <core::int*, core::String*>{};
+    #t16.{core::Map::[]=}{Invariant}(0, "foo");
+    {
+      core::Iterator<core::MapEntry<core::int*, core::String*>>* :sync-for-iterator = map1.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<core::int*, core::String*>* #t17 = :sync-for-iterator.{core::Iterator::current};
+        #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}, #t17.{core::MapEntry::value});
+      }
+    }
+    {
+      core::Iterator<core::MapEntry<core::num*, core::Object*>>* :sync-for-iterator = map2.{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<dynamic, dynamic>* #t18 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int* #t19 = #t18.{core::MapEntry::key} as{TypeError} core::int*;
+          final core::String* #t20 = #t18.{core::MapEntry::value} as{TypeError} core::String*;
+          #t16.{core::Map::[]=}{Invariant}(#t19, #t20);
+        }
+      }
+    }
+    {
+      core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = (map3 as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final core::MapEntry<dynamic, dynamic>* #t21 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int* #t22 = #t21.{core::MapEntry::key} as{TypeError} core::int*;
+          final core::String* #t23 = #t21.{core::MapEntry::value} as{TypeError} core::String*;
+          #t16.{core::Map::[]=}{Invariant}(#t22, #t23);
+        }
+      }
+    }
+    if(true)
+      #t16.{core::Map::[]=}{Invariant}(2, "baz");
+  } =>#t16;
+}
diff --git a/pkg/front_end/testcases/unified_collections/invariance.dart.weak.expect b/pkg/front_end/testcases/unified_collections/invariance.dart.weak.expect
deleted file mode 100644
index 63b5ee2..0000000
--- a/pkg/front_end/testcases/unified_collections/invariance.dart.weak.expect
+++ /dev/null
@@ -1,72 +0,0 @@
-library;
-import self as self;
-import "dart:core" as core;
-import "dart:collection" as col;
-
-static method main() → dynamic {
-  core::List<core::int*>* list1 = <core::int*>[0];
-  core::List<core::num*>* list2 = <core::num*>[0];
-  dynamic list3 = <core::int*>[0];
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t1 = <core::int*>[0];
-    #t1.{core::List::addAll}{Invariant}(list1);
-    for (final dynamic #t2 in list2) {
-      final core::int* #t3 = #t2 as{TypeError} core::int*;
-      #t1.{core::List::add}{Invariant}(#t3);
-    }
-    for (final dynamic #t4 in list3 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-      final core::int* #t5 = #t4 as{TypeError} core::int*;
-      #t1.{core::List::add}{Invariant}(#t5);
-    }
-    if(true)
-      #t1.{core::List::add}{Invariant}(2);
-  } =>#t1;
-  core::Set<core::int*>* set1 = block {
-    final core::Set<core::int*>* #t6 = col::LinkedHashSet::•<core::int*>();
-    #t6.{core::Set::add}{Invariant}(0);
-  } =>#t6;
-  core::Set<core::num*>* set2 = block {
-    final core::Set<core::num*>* #t7 = col::LinkedHashSet::•<core::num*>();
-    #t7.{core::Set::add}{Invariant}(0);
-  } =>#t7;
-  dynamic set3 = block {
-    final core::Set<core::int*>* #t8 = col::LinkedHashSet::•<core::int*>();
-    #t8.{core::Set::add}{Invariant}(0);
-  } =>#t8;
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t9 = col::LinkedHashSet::•<core::int*>();
-    #t9.{core::Set::add}{Invariant}(0);
-    #t9.{core::Set::addAll}{Invariant}(set1);
-    for (final dynamic #t10 in set2) {
-      final core::int* #t11 = #t10 as{TypeError} core::int*;
-      #t9.{core::Set::add}{Invariant}(#t11);
-    }
-    for (final dynamic #t12 in set3 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-      final core::int* #t13 = #t12 as{TypeError} core::int*;
-      #t9.{core::Set::add}{Invariant}(#t13);
-    }
-    if(true)
-      #t9.{core::Set::add}{Invariant}(2);
-  } =>#t9;
-  core::Map<core::int*, core::String*>* map1 = <core::int*, core::String*>{0: "foo"};
-  core::Map<core::num*, core::Object*>* map2 = <core::num*, core::Object*>{0: "bar"};
-  dynamic map3 = <core::int*, core::String*>{0: "baz"};
-  core::Map<core::int*, core::String*>* map = block {
-    final core::Map<core::int*, core::String*>* #t14 = <core::int*, core::String*>{};
-    #t14.{core::Map::[]=}{Invariant}(0, "foo");
-    for (final core::MapEntry<core::int*, core::String*>* #t15 in map1.{core::Map::entries})
-      #t14.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}, #t15.{core::MapEntry::value});
-    for (final core::MapEntry<dynamic, dynamic>* #t16 in map2.{core::Map::entries}) {
-      final core::int* #t17 = #t16.{core::MapEntry::key} as{TypeError} core::int*;
-      final core::String* #t18 = #t16.{core::MapEntry::value} as{TypeError} core::String*;
-      #t14.{core::Map::[]=}{Invariant}(#t17, #t18);
-    }
-    for (final core::MapEntry<dynamic, dynamic>* #t19 in (map3 as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}) {
-      final core::int* #t20 = #t19.{core::MapEntry::key} as{TypeError} core::int*;
-      final core::String* #t21 = #t19.{core::MapEntry::value} as{TypeError} core::String*;
-      #t14.{core::Map::[]=}{Invariant}(#t20, #t21);
-    }
-    if(true)
-      #t14.{core::Map::[]=}{Invariant}(2, "baz");
-  } =>#t14;
-}
diff --git a/pkg/front_end/testcases/unified_collections/invariance.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/invariance.dart.weak.transformed.expect
deleted file mode 100644
index 8970ba8..0000000
--- a/pkg/front_end/testcases/unified_collections/invariance.dart.weak.transformed.expect
+++ /dev/null
@@ -1,113 +0,0 @@
-library;
-import self as self;
-import "dart:core" as core;
-import "dart:collection" as col;
-
-static method main() → dynamic {
-  core::List<core::int*>* list1 = <core::int*>[0];
-  core::List<core::num*>* list2 = <core::num*>[0];
-  dynamic list3 = <core::int*>[0];
-  core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t1 = <core::int*>[0];
-    #t1.{core::List::addAll}{Invariant}(list1);
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = list2.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t2 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t3 = #t2 as{TypeError} core::int*;
-          #t1.{core::List::add}{Invariant}(#t3);
-        }
-      }
-    }
-    {
-      core::Iterator<dynamic>* :sync-for-iterator = (list3 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t4 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t5 = #t4 as{TypeError} core::int*;
-          #t1.{core::List::add}{Invariant}(#t5);
-        }
-      }
-    }
-    if(true)
-      #t1.{core::List::add}{Invariant}(2);
-  } =>#t1;
-  core::Set<core::int*>* set1 = block {
-    final core::Set<core::int*>* #t6 = new col::_CompactLinkedHashSet::•<core::int*>();
-    #t6.{core::Set::add}{Invariant}(0);
-  } =>#t6;
-  core::Set<core::num*>* set2 = block {
-    final core::Set<core::num*>* #t7 = new col::_CompactLinkedHashSet::•<core::num*>();
-    #t7.{core::Set::add}{Invariant}(0);
-  } =>#t7;
-  dynamic set3 = block {
-    final core::Set<core::int*>* #t8 = new col::_CompactLinkedHashSet::•<core::int*>();
-    #t8.{core::Set::add}{Invariant}(0);
-  } =>#t8;
-  core::Set<core::int*>* set = block {
-    final core::Set<core::int*>* #t9 = new col::_CompactLinkedHashSet::•<core::int*>();
-    #t9.{core::Set::add}{Invariant}(0);
-    #t9.{core::Set::addAll}{Invariant}(set1);
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = set2.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t10 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t11 = #t10 as{TypeError} core::int*;
-          #t9.{core::Set::add}{Invariant}(#t11);
-        }
-      }
-    }
-    {
-      core::Iterator<dynamic>* :sync-for-iterator = (set3 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t12 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t13 = #t12 as{TypeError} core::int*;
-          #t9.{core::Set::add}{Invariant}(#t13);
-        }
-      }
-    }
-    if(true)
-      #t9.{core::Set::add}{Invariant}(2);
-  } =>#t9;
-  core::Map<core::int*, core::String*>* map1 = <core::int*, core::String*>{0: "foo"};
-  core::Map<core::num*, core::Object*>* map2 = <core::num*, core::Object*>{0: "bar"};
-  dynamic map3 = <core::int*, core::String*>{0: "baz"};
-  core::Map<core::int*, core::String*>* map = block {
-    final core::Map<core::int*, core::String*>* #t14 = <core::int*, core::String*>{};
-    #t14.{core::Map::[]=}{Invariant}(0, "foo");
-    {
-      core::Iterator<core::MapEntry<core::int*, core::String*>>* :sync-for-iterator = map1.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<core::int*, core::String*>* #t15 = :sync-for-iterator.{core::Iterator::current};
-        #t14.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}, #t15.{core::MapEntry::value});
-      }
-    }
-    {
-      core::Iterator<core::MapEntry<core::num*, core::Object*>>* :sync-for-iterator = map2.{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic>* #t16 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t17 = #t16.{core::MapEntry::key} as{TypeError} core::int*;
-          final core::String* #t18 = #t16.{core::MapEntry::value} as{TypeError} core::String*;
-          #t14.{core::Map::[]=}{Invariant}(#t17, #t18);
-        }
-      }
-    }
-    {
-      core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = (map3 as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final core::MapEntry<dynamic, dynamic>* #t19 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t20 = #t19.{core::MapEntry::key} as{TypeError} core::int*;
-          final core::String* #t21 = #t19.{core::MapEntry::value} as{TypeError} core::String*;
-          #t14.{core::Map::[]=}{Invariant}(#t20, #t21);
-        }
-      }
-    }
-    if(true)
-      #t14.{core::Map::[]=}{Invariant}(2, "baz");
-  } =>#t14;
-}
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all.dart b/pkg/front_end/testcases/unified_collections/list_add_all.dart
deleted file mode 100644
index c6c02de..0000000
--- a/pkg/front_end/testcases/unified_collections/list_add_all.dart
+++ /dev/null
@@ -1,84 +0,0 @@
-// 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
-
-void useAddAll() {
-  dynamic dynamicList1 = <int>[0, 1, 2];
-  dynamic dynamicList2 = <num>[3, 4, 5];
-  Iterable<int> iterableIntList = <int>[6, 7, 8];
-  Iterable<num> iterableNumList1 = <int>[9, 10, 11];
-  Iterable<num> iterableNumList2 = <num>[12, 13, 14];
-  List<int> intList = <int>[15, 16, 17];
-  List<num> numList1 = <int>[18, 19, 20];
-  List<num> numList2 = <num>[21, 22, 23];
-
-  var list1 = <int>[
-    ...dynamicList1,
-    ...dynamicList2,
-    ...iterableIntList,
-    ...iterableNumList1,
-    ...iterableNumList2,
-    ...intList,
-    ...numList1,
-    ...numList2
-  ];
-
-  expect(new List<int>.generate(24, (int i) => i), list1);
-
-  var list2 = <num>[
-    ...dynamicList1,
-    ...dynamicList2,
-    ...iterableIntList,
-    ...iterableNumList1,
-    ...iterableNumList2,
-    ...intList,
-    ...numList1,
-    ...numList2
-  ];
-
-  expect(new List<num>.generate(24, (int i) => i), list2);
-
-  var list3 = <int>[
-    ...?dynamicList1,
-    ...?dynamicList2,
-    ...?iterableIntList,
-    ...?iterableNumList1,
-    ...?iterableNumList2,
-    ...?intList,
-    ...?numList1,
-    ...?numList2
-  ];
-
-  expect(new List<int>.generate(24, (int i) => i), list3);
-
-  var list4 = <num>[
-    ...?dynamicList1,
-    ...?dynamicList2,
-    ...?iterableIntList,
-    ...?iterableNumList1,
-    ...?iterableNumList2,
-    ...?intList,
-    ...?numList1,
-    ...?numList2
-  ];
-
-  expect(new List<num>.generate(24, (int i) => i), list4);
-}
-
-main() {
-  useAddAll();
-}
-
-void expect(List list1, List list2) {
-  if (list1.length != list2.length) {
-    throw 'Unexpected length. Expected ${list1.length}, actual ${list2.length}.';
-  }
-  for (int i = 0; i < list1.length; i++) {
-    if (list1[i] != list2[i]) {
-      throw 'Unexpected element at index $i. '
-          'Expected ${list1[i]}, actual ${list2[i]}.';
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all.dart.textual_outline.expect b/pkg/front_end/testcases/unified_collections/list_add_all.dart.textual_outline.expect
deleted file mode 100644
index 67c81d1..0000000
--- a/pkg/front_end/testcases/unified_collections/list_add_all.dart.textual_outline.expect
+++ /dev/null
@@ -1,4 +0,0 @@
-// @dart = 2.9
-void useAddAll() {}
-main() {}
-void expect(List list1, List list2) {}
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/unified_collections/list_add_all.dart.textual_outline_modelled.expect
deleted file mode 100644
index b4ec914..0000000
--- a/pkg/front_end/testcases/unified_collections/list_add_all.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,4 +0,0 @@
-// @dart = 2.9
-main() {}
-void expect(List list1, List list2) {}
-void useAddAll() {}
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.expect b/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.expect
deleted file mode 100644
index fe00087..0000000
--- a/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.expect
+++ /dev/null
@@ -1,155 +0,0 @@
-library;
-import self as self;
-import "dart:core" as core;
-
-static method useAddAll() → void {
-  dynamic dynamicList1 = <core::int*>[0, 1, 2];
-  dynamic dynamicList2 = <core::num*>[3, 4, 5];
-  core::Iterable<core::int*>* iterableIntList = <core::int*>[6, 7, 8];
-  core::Iterable<core::num*>* iterableNumList1 = <core::int*>[9, 10, 11];
-  core::Iterable<core::num*>* iterableNumList2 = <core::num*>[12, 13, 14];
-  core::List<core::int*>* intList = <core::int*>[15, 16, 17];
-  core::List<core::num*>* numList1 = <core::int*>[18, 19, 20];
-  core::List<core::num*>* numList2 = <core::num*>[21, 22, 23];
-  core::List<core::int*>* list1 = block {
-    final core::List<core::int*>* #t1 = <core::int*>[];
-    for (final dynamic #t2 in dynamicList1 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-      final core::int* #t3 = #t2 as{TypeError} core::int*;
-      #t1.{core::List::add}{Invariant}(#t3);
-    }
-    for (final dynamic #t4 in dynamicList2 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-      final core::int* #t5 = #t4 as{TypeError} core::int*;
-      #t1.{core::List::add}{Invariant}(#t5);
-    }
-    #t1.{core::List::addAll}{Invariant}(iterableIntList);
-    for (final dynamic #t6 in iterableNumList1) {
-      final core::int* #t7 = #t6 as{TypeError} core::int*;
-      #t1.{core::List::add}{Invariant}(#t7);
-    }
-    for (final dynamic #t8 in iterableNumList2) {
-      final core::int* #t9 = #t8 as{TypeError} core::int*;
-      #t1.{core::List::add}{Invariant}(#t9);
-    }
-    #t1.{core::List::addAll}{Invariant}(intList);
-    for (final dynamic #t10 in numList1) {
-      final core::int* #t11 = #t10 as{TypeError} core::int*;
-      #t1.{core::List::add}{Invariant}(#t11);
-    }
-    for (final dynamic #t12 in numList2) {
-      final core::int* #t13 = #t12 as{TypeError} core::int*;
-      #t1.{core::List::add}{Invariant}(#t13);
-    }
-  } =>#t1;
-  self::expect(core::List::generate<core::int*>(24, (core::int* i) → core::int* => i), list1);
-  core::List<core::num*>* list2 = block {
-    final core::List<core::num*>* #t14 = <core::num*>[];
-    for (final dynamic #t15 in dynamicList1 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-      final core::num* #t16 = #t15 as{TypeError} core::num*;
-      #t14.{core::List::add}{Invariant}(#t16);
-    }
-    for (final dynamic #t17 in dynamicList2 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-      final core::num* #t18 = #t17 as{TypeError} core::num*;
-      #t14.{core::List::add}{Invariant}(#t18);
-    }
-    #t14.{core::List::addAll}{Invariant}(iterableIntList);
-    #t14.{core::List::addAll}{Invariant}(iterableNumList1);
-    #t14.{core::List::addAll}{Invariant}(iterableNumList2);
-    #t14.{core::List::addAll}{Invariant}(intList);
-    #t14.{core::List::addAll}{Invariant}(numList1);
-    #t14.{core::List::addAll}{Invariant}(numList2);
-  } =>#t14;
-  self::expect(core::List::generate<core::num*>(24, (core::int* i) → core::int* => i), list2);
-  core::List<core::int*>* list3 = block {
-    final core::List<core::int*>* #t19 = <core::int*>[];
-    final core::Iterable<dynamic>* #t20 = dynamicList1 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t20.{core::Object::==}(null))
-      for (final dynamic #t21 in #t20) {
-        final core::int* #t22 = #t21 as{TypeError} core::int*;
-        #t19.{core::List::add}{Invariant}(#t22);
-      }
-    final core::Iterable<dynamic>* #t23 = dynamicList2 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t23.{core::Object::==}(null))
-      for (final dynamic #t24 in #t23) {
-        final core::int* #t25 = #t24 as{TypeError} core::int*;
-        #t19.{core::List::add}{Invariant}(#t25);
-      }
-    final core::Iterable<core::int*>* #t26 = iterableIntList;
-    if(!#t26.{core::Object::==}(null))
-      #t19.{core::List::addAll}{Invariant}(#t26);
-    final core::Iterable<dynamic>* #t27 = iterableNumList1;
-    if(!#t27.{core::Object::==}(null))
-      for (final dynamic #t28 in #t27) {
-        final core::int* #t29 = #t28 as{TypeError} core::int*;
-        #t19.{core::List::add}{Invariant}(#t29);
-      }
-    final core::Iterable<dynamic>* #t30 = iterableNumList2;
-    if(!#t30.{core::Object::==}(null))
-      for (final dynamic #t31 in #t30) {
-        final core::int* #t32 = #t31 as{TypeError} core::int*;
-        #t19.{core::List::add}{Invariant}(#t32);
-      }
-    final core::Iterable<core::int*>* #t33 = intList;
-    if(!#t33.{core::Object::==}(null))
-      #t19.{core::List::addAll}{Invariant}(#t33);
-    final core::Iterable<dynamic>* #t34 = numList1;
-    if(!#t34.{core::Object::==}(null))
-      for (final dynamic #t35 in #t34) {
-        final core::int* #t36 = #t35 as{TypeError} core::int*;
-        #t19.{core::List::add}{Invariant}(#t36);
-      }
-    final core::Iterable<dynamic>* #t37 = numList2;
-    if(!#t37.{core::Object::==}(null))
-      for (final dynamic #t38 in #t37) {
-        final core::int* #t39 = #t38 as{TypeError} core::int*;
-        #t19.{core::List::add}{Invariant}(#t39);
-      }
-  } =>#t19;
-  self::expect(core::List::generate<core::int*>(24, (core::int* i) → core::int* => i), list3);
-  core::List<core::num*>* list4 = block {
-    final core::List<core::num*>* #t40 = <core::num*>[];
-    final core::Iterable<dynamic>* #t41 = dynamicList1 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t41.{core::Object::==}(null))
-      for (final dynamic #t42 in #t41) {
-        final core::num* #t43 = #t42 as{TypeError} core::num*;
-        #t40.{core::List::add}{Invariant}(#t43);
-      }
-    final core::Iterable<dynamic>* #t44 = dynamicList2 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t44.{core::Object::==}(null))
-      for (final dynamic #t45 in #t44) {
-        final core::num* #t46 = #t45 as{TypeError} core::num*;
-        #t40.{core::List::add}{Invariant}(#t46);
-      }
-    final core::Iterable<core::num*>* #t47 = iterableIntList;
-    if(!#t47.{core::Object::==}(null))
-      #t40.{core::List::addAll}{Invariant}(#t47);
-    final core::Iterable<core::num*>* #t48 = iterableNumList1;
-    if(!#t48.{core::Object::==}(null))
-      #t40.{core::List::addAll}{Invariant}(#t48);
-    final core::Iterable<core::num*>* #t49 = iterableNumList2;
-    if(!#t49.{core::Object::==}(null))
-      #t40.{core::List::addAll}{Invariant}(#t49);
-    final core::Iterable<core::num*>* #t50 = intList;
-    if(!#t50.{core::Object::==}(null))
-      #t40.{core::List::addAll}{Invariant}(#t50);
-    final core::Iterable<core::num*>* #t51 = numList1;
-    if(!#t51.{core::Object::==}(null))
-      #t40.{core::List::addAll}{Invariant}(#t51);
-    final core::Iterable<core::num*>* #t52 = numList2;
-    if(!#t52.{core::Object::==}(null))
-      #t40.{core::List::addAll}{Invariant}(#t52);
-  } =>#t40;
-  self::expect(core::List::generate<core::num*>(24, (core::int* i) → core::int* => i), list4);
-}
-static method main() → dynamic {
-  self::useAddAll();
-}
-static method expect(core::List<dynamic>* list1, core::List<dynamic>* list2) → void {
-  if(!list1.{core::List::length}.{core::num::==}(list2.{core::List::length})) {
-    throw "Unexpected length. Expected ${list1.{core::List::length}}, actual ${list2.{core::List::length}}.";
-  }
-  for (core::int* i = 0; i.{core::num::<}(list1.{core::List::length}); i = i.{core::num::+}(1)) {
-    if(!list1.{core::List::[]}(i).{core::Object::==}(list2.{core::List::[]}(i))) {
-      throw "Unexpected element at index ${i}. Expected ${list1.{core::List::[]}(i)}, actual ${list2.{core::List::[]}(i)}.";
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.transformed.expect
deleted file mode 100644
index 5f72074..0000000
--- a/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.transformed.expect
+++ /dev/null
@@ -1,243 +0,0 @@
-library;
-import self as self;
-import "dart:core" as core;
-
-static method useAddAll() → void {
-  dynamic dynamicList1 = <core::int*>[0, 1, 2];
-  dynamic dynamicList2 = <core::num*>[3, 4, 5];
-  core::Iterable<core::int*>* iterableIntList = <core::int*>[6, 7, 8];
-  core::Iterable<core::num*>* iterableNumList1 = <core::int*>[9, 10, 11];
-  core::Iterable<core::num*>* iterableNumList2 = <core::num*>[12, 13, 14];
-  core::List<core::int*>* intList = <core::int*>[15, 16, 17];
-  core::List<core::num*>* numList1 = <core::int*>[18, 19, 20];
-  core::List<core::num*>* numList2 = <core::num*>[21, 22, 23];
-  core::List<core::int*>* list1 = block {
-    final core::List<core::int*>* #t1 = <core::int*>[];
-    {
-      core::Iterator<dynamic>* :sync-for-iterator = (dynamicList1 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t2 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t3 = #t2 as{TypeError} core::int*;
-          #t1.{core::List::add}{Invariant}(#t3);
-        }
-      }
-    }
-    {
-      core::Iterator<dynamic>* :sync-for-iterator = (dynamicList2 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t4 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t5 = #t4 as{TypeError} core::int*;
-          #t1.{core::List::add}{Invariant}(#t5);
-        }
-      }
-    }
-    #t1.{core::List::addAll}{Invariant}(iterableIntList);
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = iterableNumList1.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t6 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t7 = #t6 as{TypeError} core::int*;
-          #t1.{core::List::add}{Invariant}(#t7);
-        }
-      }
-    }
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = iterableNumList2.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t8 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t9 = #t8 as{TypeError} core::int*;
-          #t1.{core::List::add}{Invariant}(#t9);
-        }
-      }
-    }
-    #t1.{core::List::addAll}{Invariant}(intList);
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = numList1.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t10 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t11 = #t10 as{TypeError} core::int*;
-          #t1.{core::List::add}{Invariant}(#t11);
-        }
-      }
-    }
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = numList2.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t12 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t13 = #t12 as{TypeError} core::int*;
-          #t1.{core::List::add}{Invariant}(#t13);
-        }
-      }
-    }
-  } =>#t1;
-  self::expect(core::_GrowableList::generate<core::int*>(24, (core::int* i) → core::int* => i), list1);
-  core::List<core::num*>* list2 = block {
-    final core::List<core::num*>* #t14 = <core::num*>[];
-    {
-      core::Iterator<dynamic>* :sync-for-iterator = (dynamicList1 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t15 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num* #t16 = #t15 as{TypeError} core::num*;
-          #t14.{core::List::add}{Invariant}(#t16);
-        }
-      }
-    }
-    {
-      core::Iterator<dynamic>* :sync-for-iterator = (dynamicList2 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t17 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num* #t18 = #t17 as{TypeError} core::num*;
-          #t14.{core::List::add}{Invariant}(#t18);
-        }
-      }
-    }
-    #t14.{core::List::addAll}{Invariant}(iterableIntList);
-    #t14.{core::List::addAll}{Invariant}(iterableNumList1);
-    #t14.{core::List::addAll}{Invariant}(iterableNumList2);
-    #t14.{core::List::addAll}{Invariant}(intList);
-    #t14.{core::List::addAll}{Invariant}(numList1);
-    #t14.{core::List::addAll}{Invariant}(numList2);
-  } =>#t14;
-  self::expect(core::_GrowableList::generate<core::num*>(24, (core::int* i) → core::int* => i), list2);
-  core::List<core::int*>* list3 = block {
-    final core::List<core::int*>* #t19 = <core::int*>[];
-    final core::Iterable<dynamic>* #t20 = dynamicList1 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t20.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t20.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t21 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t22 = #t21 as{TypeError} core::int*;
-          #t19.{core::List::add}{Invariant}(#t22);
-        }
-      }
-    }
-    final core::Iterable<dynamic>* #t23 = dynamicList2 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t23.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t23.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t24 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t25 = #t24 as{TypeError} core::int*;
-          #t19.{core::List::add}{Invariant}(#t25);
-        }
-      }
-    }
-    final core::Iterable<core::int*>* #t26 = iterableIntList;
-    if(!#t26.{core::Object::==}(null))
-      #t19.{core::List::addAll}{Invariant}(#t26);
-    final core::Iterable<dynamic>* #t27 = iterableNumList1;
-    if(!#t27.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t27.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t28 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t29 = #t28 as{TypeError} core::int*;
-          #t19.{core::List::add}{Invariant}(#t29);
-        }
-      }
-    }
-    final core::Iterable<dynamic>* #t30 = iterableNumList2;
-    if(!#t30.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t30.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t31 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t32 = #t31 as{TypeError} core::int*;
-          #t19.{core::List::add}{Invariant}(#t32);
-        }
-      }
-    }
-    final core::Iterable<core::int*>* #t33 = intList;
-    if(!#t33.{core::Object::==}(null))
-      #t19.{core::List::addAll}{Invariant}(#t33);
-    final core::Iterable<dynamic>* #t34 = numList1;
-    if(!#t34.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t34.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t35 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t36 = #t35 as{TypeError} core::int*;
-          #t19.{core::List::add}{Invariant}(#t36);
-        }
-      }
-    }
-    final core::Iterable<dynamic>* #t37 = numList2;
-    if(!#t37.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t37.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t38 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t39 = #t38 as{TypeError} core::int*;
-          #t19.{core::List::add}{Invariant}(#t39);
-        }
-      }
-    }
-  } =>#t19;
-  self::expect(core::_GrowableList::generate<core::int*>(24, (core::int* i) → core::int* => i), list3);
-  core::List<core::num*>* list4 = block {
-    final core::List<core::num*>* #t40 = <core::num*>[];
-    final core::Iterable<dynamic>* #t41 = dynamicList1 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t41.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t41.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t42 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num* #t43 = #t42 as{TypeError} core::num*;
-          #t40.{core::List::add}{Invariant}(#t43);
-        }
-      }
-    }
-    final core::Iterable<dynamic>* #t44 = dynamicList2 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t44.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t44.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t45 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num* #t46 = #t45 as{TypeError} core::num*;
-          #t40.{core::List::add}{Invariant}(#t46);
-        }
-      }
-    }
-    final core::Iterable<core::num*>* #t47 = iterableIntList;
-    if(!#t47.{core::Object::==}(null))
-      #t40.{core::List::addAll}{Invariant}(#t47);
-    final core::Iterable<core::num*>* #t48 = iterableNumList1;
-    if(!#t48.{core::Object::==}(null))
-      #t40.{core::List::addAll}{Invariant}(#t48);
-    final core::Iterable<core::num*>* #t49 = iterableNumList2;
-    if(!#t49.{core::Object::==}(null))
-      #t40.{core::List::addAll}{Invariant}(#t49);
-    final core::Iterable<core::num*>* #t50 = intList;
-    if(!#t50.{core::Object::==}(null))
-      #t40.{core::List::addAll}{Invariant}(#t50);
-    final core::Iterable<core::num*>* #t51 = numList1;
-    if(!#t51.{core::Object::==}(null))
-      #t40.{core::List::addAll}{Invariant}(#t51);
-    final core::Iterable<core::num*>* #t52 = numList2;
-    if(!#t52.{core::Object::==}(null))
-      #t40.{core::List::addAll}{Invariant}(#t52);
-  } =>#t40;
-  self::expect(core::_GrowableList::generate<core::num*>(24, (core::int* i) → core::int* => i), list4);
-}
-static method main() → dynamic {
-  self::useAddAll();
-}
-static method expect(core::List<dynamic>* list1, core::List<dynamic>* list2) → void {
-  if(!list1.{core::List::length}.{core::num::==}(list2.{core::List::length})) {
-    throw "Unexpected length. Expected ${list1.{core::List::length}}, actual ${list2.{core::List::length}}.";
-  }
-  for (core::int* i = 0; i.{core::num::<}(list1.{core::List::length}); i = i.{core::num::+}(1)) {
-    if(!list1.{core::List::[]}(i).{core::Object::==}(list2.{core::List::[]}(i))) {
-      throw "Unexpected element at index ${i}. Expected ${list1.{core::List::[]}(i)}, actual ${list2.{core::List::[]}(i)}.";
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart b/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart
deleted file mode 100644
index f4ce868..0000000
--- a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-void useAddAll() {
-  dynamic dynamicList1 = <int>[0, 1, 2];
-  dynamic dynamicList2 = <num>[3, 4, 5];
-  dynamic dynamicList3 = <int?>[6, 7, 8];
-  Iterable<int> iterableIntList = <int>[9, 10, 11];
-  List<int> intList = <int>[12, 13, 14];
-
-  var list1 = <int>[
-    ...dynamicList1,
-    ...dynamicList2,
-    ...dynamicList3,
-    ...iterableIntList,
-    ...intList,
-  ];
-
-  expect(new List<int>.generate(15, (int i) => i), list1);
-
-  var list2 = <num>[
-    ...dynamicList1,
-    ...dynamicList2,
-    ...dynamicList3,
-    ...iterableIntList,
-    ...intList,
-  ];
-
-  expect(new List<num>.generate(15, (int i) => i), list2);
-}
-
-void useAddAllNullable() {
-  dynamic dynamicList1 = <int>[0, 1, 2];
-  dynamic dynamicList2 = <num>[3, 4, 5];
-  dynamic dynamicList3 = <int?>[6, 7, 8];
-  Iterable<int>? iterableIntList = true ? <int>[9, 10, 11] : null;
-  List<int>? intList = true ? <int>[12, 13, 14] : null;
-
-  var list1 = <int>[
-    ...?dynamicList1,
-    ...?dynamicList2,
-    ...?dynamicList3,
-    ...?iterableIntList,
-    ...?intList,
-  ];
-
-  expect(new List<int>.generate(15, (int i) => i), list1);
-
-  var list2 = <num>[
-    ...?dynamicList1,
-    ...?dynamicList2,
-    ...?dynamicList3,
-    ...?iterableIntList,
-    ...?intList,
-  ];
-
-  expect(new List<num>.generate(15, (int i) => i), list2);
-}
-
-main() {
-  useAddAll();
-  useAddAllNullable();
-}
-
-void expect(List list1, List list2) {
-  if (list1.length != list2.length) {
-    throw 'Unexpected length. Expected ${list1.length}, actual ${list2.length}.';
-  }
-  for (int i = 0; i < list1.length; i++) {
-    if (list1[i] != list2[i]) {
-      throw 'Unexpected element at index $i. '
-          'Expected ${list1[i]}, actual ${list2[i]}.';
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.textual_outline.expect b/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.textual_outline.expect
deleted file mode 100644
index d8b9259..0000000
--- a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.textual_outline.expect
+++ /dev/null
@@ -1,4 +0,0 @@
-void useAddAll() {}
-void useAddAllNullable() {}
-main() {}
-void expect(List list1, List list2) {}
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.textual_outline_modelled.expect
deleted file mode 100644
index e022801..0000000
--- a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,4 +0,0 @@
-main() {}
-void expect(List list1, List list2) {}
-void useAddAll() {}
-void useAddAllNullable() {}
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.expect b/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.expect
deleted file mode 100644
index 233316d..0000000
--- a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.expect
+++ /dev/null
@@ -1,124 +0,0 @@
-library /*isNonNullableByDefault*/;
-import self as self;
-import "dart:core" as core;
-
-static method useAddAll() → void {
-  dynamic dynamicList1 = <core::int>[0, 1, 2];
-  dynamic dynamicList2 = <core::num>[3, 4, 5];
-  dynamic dynamicList3 = <core::int?>[6, 7, 8];
-  core::Iterable<core::int> iterableIntList = <core::int>[9, 10, 11];
-  core::List<core::int> intList = <core::int>[12, 13, 14];
-  core::List<core::int> list1 = block {
-    final core::List<core::int> #t1 = <core::int>[];
-    for (final dynamic #t2 in dynamicList1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
-      final core::int #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int;
-      #t1.{core::List::add}{Invariant}(#t3);
-    }
-    for (final dynamic #t4 in dynamicList2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
-      final core::int #t5 = #t4 as{TypeError,ForNonNullableByDefault} core::int;
-      #t1.{core::List::add}{Invariant}(#t5);
-    }
-    for (final dynamic #t6 in dynamicList3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
-      final core::int #t7 = #t6 as{TypeError,ForNonNullableByDefault} core::int;
-      #t1.{core::List::add}{Invariant}(#t7);
-    }
-    #t1.{core::List::addAll}{Invariant}(iterableIntList);
-    #t1.{core::List::addAll}{Invariant}(intList);
-  } =>#t1;
-  self::expect(core::List::generate<core::int>(15, (core::int i) → core::int => i), list1);
-  core::List<core::num> list2 = block {
-    final core::List<core::num> #t8 = <core::num>[];
-    for (final dynamic #t9 in dynamicList1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
-      final core::num #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::num;
-      #t8.{core::List::add}{Invariant}(#t10);
-    }
-    for (final dynamic #t11 in dynamicList2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
-      final core::num #t12 = #t11 as{TypeError,ForNonNullableByDefault} core::num;
-      #t8.{core::List::add}{Invariant}(#t12);
-    }
-    for (final dynamic #t13 in dynamicList3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
-      final core::num #t14 = #t13 as{TypeError,ForNonNullableByDefault} core::num;
-      #t8.{core::List::add}{Invariant}(#t14);
-    }
-    #t8.{core::List::addAll}{Invariant}(iterableIntList);
-    #t8.{core::List::addAll}{Invariant}(intList);
-  } =>#t8;
-  self::expect(core::List::generate<core::num>(15, (core::int i) → core::int => i), list2);
-}
-static method useAddAllNullable() → void {
-  dynamic dynamicList1 = <core::int>[0, 1, 2];
-  dynamic dynamicList2 = <core::num>[3, 4, 5];
-  dynamic dynamicList3 = <core::int?>[6, 7, 8];
-  core::Iterable<core::int>? iterableIntList = true ?{core::List<core::int>?} <core::int>[9, 10, 11] : null;
-  core::List<core::int>? intList = true ?{core::List<core::int>?} <core::int>[12, 13, 14] : null;
-  core::List<core::int> list1 = block {
-    final core::List<core::int> #t15 = <core::int>[];
-    final core::Iterable<dynamic>? #t16 = dynamicList1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t16.{core::Object::==}(null))
-      for (final dynamic #t17 in #t16{core::Iterable<dynamic>}) {
-        final core::int #t18 = #t17 as{TypeError,ForNonNullableByDefault} core::int;
-        #t15.{core::List::add}{Invariant}(#t18);
-      }
-    final core::Iterable<dynamic>? #t19 = dynamicList2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t19.{core::Object::==}(null))
-      for (final dynamic #t20 in #t19{core::Iterable<dynamic>}) {
-        final core::int #t21 = #t20 as{TypeError,ForNonNullableByDefault} core::int;
-        #t15.{core::List::add}{Invariant}(#t21);
-      }
-    final core::Iterable<dynamic>? #t22 = dynamicList3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t22.{core::Object::==}(null))
-      for (final dynamic #t23 in #t22{core::Iterable<dynamic>}) {
-        final core::int #t24 = #t23 as{TypeError,ForNonNullableByDefault} core::int;
-        #t15.{core::List::add}{Invariant}(#t24);
-      }
-    final core::Iterable<core::int>? #t25 = iterableIntList;
-    if(!#t25.{core::Object::==}(null))
-      #t15.{core::List::addAll}{Invariant}(#t25{core::Iterable<core::int>});
-    final core::Iterable<core::int>? #t26 = intList;
-    if(!#t26.{core::Object::==}(null))
-      #t15.{core::List::addAll}{Invariant}(#t26{core::Iterable<core::int>});
-  } =>#t15;
-  self::expect(core::List::generate<core::int>(15, (core::int i) → core::int => i), list1);
-  core::List<core::num> list2 = block {
-    final core::List<core::num> #t27 = <core::num>[];
-    final core::Iterable<dynamic>? #t28 = dynamicList1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t28.{core::Object::==}(null))
-      for (final dynamic #t29 in #t28{core::Iterable<dynamic>}) {
-        final core::num #t30 = #t29 as{TypeError,ForNonNullableByDefault} core::num;
-        #t27.{core::List::add}{Invariant}(#t30);
-      }
-    final core::Iterable<dynamic>? #t31 = dynamicList2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t31.{core::Object::==}(null))
-      for (final dynamic #t32 in #t31{core::Iterable<dynamic>}) {
-        final core::num #t33 = #t32 as{TypeError,ForNonNullableByDefault} core::num;
-        #t27.{core::List::add}{Invariant}(#t33);
-      }
-    final core::Iterable<dynamic>? #t34 = dynamicList3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t34.{core::Object::==}(null))
-      for (final dynamic #t35 in #t34{core::Iterable<dynamic>}) {
-        final core::num #t36 = #t35 as{TypeError,ForNonNullableByDefault} core::num;
-        #t27.{core::List::add}{Invariant}(#t36);
-      }
-    final core::Iterable<core::num>? #t37 = iterableIntList;
-    if(!#t37.{core::Object::==}(null))
-      #t27.{core::List::addAll}{Invariant}(#t37{core::Iterable<core::num>});
-    final core::Iterable<core::num>? #t38 = intList;
-    if(!#t38.{core::Object::==}(null))
-      #t27.{core::List::addAll}{Invariant}(#t38{core::Iterable<core::num>});
-  } =>#t27;
-  self::expect(core::List::generate<core::num>(15, (core::int i) → core::int => i), list2);
-}
-static method main() → dynamic {
-  self::useAddAll();
-  self::useAddAllNullable();
-}
-static method expect(core::List<dynamic> list1, core::List<dynamic> list2) → void {
-  if(!list1.{core::List::length}.{core::num::==}(list2.{core::List::length})) {
-    throw "Unexpected length. Expected ${list1.{core::List::length}}, actual ${list2.{core::List::length}}.";
-  }
-  for (core::int i = 0; i.{core::num::<}(list1.{core::List::length}); i = i.{core::num::+}(1)) {
-    if(!list1.{core::List::[]}(i).{core::Object::==}(list2.{core::List::[]}(i))) {
-      throw "Unexpected element at index ${i}. Expected ${list1.{core::List::[]}(i)}, actual ${list2.{core::List::[]}(i)}.";
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.transformed.expect
deleted file mode 100644
index e9211e8..0000000
--- a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.transformed.expect
+++ /dev/null
@@ -1,190 +0,0 @@
-library /*isNonNullableByDefault*/;
-import self as self;
-import "dart:core" as core;
-
-static method useAddAll() → void {
-  dynamic dynamicList1 = <core::int>[0, 1, 2];
-  dynamic dynamicList2 = <core::num>[3, 4, 5];
-  dynamic dynamicList3 = <core::int?>[6, 7, 8];
-  core::Iterable<core::int> iterableIntList = <core::int>[9, 10, 11];
-  core::List<core::int> intList = <core::int>[12, 13, 14];
-  core::List<core::int> list1 = block {
-    final core::List<core::int> #t1 = <core::int>[];
-    {
-      core::Iterator<dynamic> :sync-for-iterator = (dynamicList1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t2 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int;
-          #t1.{core::List::add}{Invariant}(#t3);
-        }
-      }
-    }
-    {
-      core::Iterator<dynamic> :sync-for-iterator = (dynamicList2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t4 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int #t5 = #t4 as{TypeError,ForNonNullableByDefault} core::int;
-          #t1.{core::List::add}{Invariant}(#t5);
-        }
-      }
-    }
-    {
-      core::Iterator<dynamic> :sync-for-iterator = (dynamicList3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t6 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int #t7 = #t6 as{TypeError,ForNonNullableByDefault} core::int;
-          #t1.{core::List::add}{Invariant}(#t7);
-        }
-      }
-    }
-    #t1.{core::List::addAll}{Invariant}(iterableIntList);
-    #t1.{core::List::addAll}{Invariant}(intList);
-  } =>#t1;
-  self::expect(core::_GrowableList::generate<core::int>(15, (core::int i) → core::int => i), list1);
-  core::List<core::num> list2 = block {
-    final core::List<core::num> #t8 = <core::num>[];
-    {
-      core::Iterator<dynamic> :sync-for-iterator = (dynamicList1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t9 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::num;
-          #t8.{core::List::add}{Invariant}(#t10);
-        }
-      }
-    }
-    {
-      core::Iterator<dynamic> :sync-for-iterator = (dynamicList2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t11 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num #t12 = #t11 as{TypeError,ForNonNullableByDefault} core::num;
-          #t8.{core::List::add}{Invariant}(#t12);
-        }
-      }
-    }
-    {
-      core::Iterator<dynamic> :sync-for-iterator = (dynamicList3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t13 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num #t14 = #t13 as{TypeError,ForNonNullableByDefault} core::num;
-          #t8.{core::List::add}{Invariant}(#t14);
-        }
-      }
-    }
-    #t8.{core::List::addAll}{Invariant}(iterableIntList);
-    #t8.{core::List::addAll}{Invariant}(intList);
-  } =>#t8;
-  self::expect(core::_GrowableList::generate<core::num>(15, (core::int i) → core::int => i), list2);
-}
-static method useAddAllNullable() → void {
-  dynamic dynamicList1 = <core::int>[0, 1, 2];
-  dynamic dynamicList2 = <core::num>[3, 4, 5];
-  dynamic dynamicList3 = <core::int?>[6, 7, 8];
-  core::Iterable<core::int>? iterableIntList = true ?{core::List<core::int>?} <core::int>[9, 10, 11] : null;
-  core::List<core::int>? intList = true ?{core::List<core::int>?} <core::int>[12, 13, 14] : null;
-  core::List<core::int> list1 = block {
-    final core::List<core::int> #t15 = <core::int>[];
-    final core::Iterable<dynamic>? #t16 = dynamicList1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t16.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t16{core::Iterable<dynamic>}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t17 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int #t18 = #t17 as{TypeError,ForNonNullableByDefault} core::int;
-          #t15.{core::List::add}{Invariant}(#t18);
-        }
-      }
-    }
-    final core::Iterable<dynamic>? #t19 = dynamicList2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t19.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t19{core::Iterable<dynamic>}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t20 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int #t21 = #t20 as{TypeError,ForNonNullableByDefault} core::int;
-          #t15.{core::List::add}{Invariant}(#t21);
-        }
-      }
-    }
-    final core::Iterable<dynamic>? #t22 = dynamicList3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t22.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t22{core::Iterable<dynamic>}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t23 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int #t24 = #t23 as{TypeError,ForNonNullableByDefault} core::int;
-          #t15.{core::List::add}{Invariant}(#t24);
-        }
-      }
-    }
-    final core::Iterable<core::int>? #t25 = iterableIntList;
-    if(!#t25.{core::Object::==}(null))
-      #t15.{core::List::addAll}{Invariant}(#t25{core::Iterable<core::int>});
-    final core::Iterable<core::int>? #t26 = intList;
-    if(!#t26.{core::Object::==}(null))
-      #t15.{core::List::addAll}{Invariant}(#t26{core::Iterable<core::int>});
-  } =>#t15;
-  self::expect(core::_GrowableList::generate<core::int>(15, (core::int i) → core::int => i), list1);
-  core::List<core::num> list2 = block {
-    final core::List<core::num> #t27 = <core::num>[];
-    final core::Iterable<dynamic>? #t28 = dynamicList1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t28.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t28{core::Iterable<dynamic>}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t29 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num #t30 = #t29 as{TypeError,ForNonNullableByDefault} core::num;
-          #t27.{core::List::add}{Invariant}(#t30);
-        }
-      }
-    }
-    final core::Iterable<dynamic>? #t31 = dynamicList2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t31.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t31{core::Iterable<dynamic>}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t32 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num #t33 = #t32 as{TypeError,ForNonNullableByDefault} core::num;
-          #t27.{core::List::add}{Invariant}(#t33);
-        }
-      }
-    }
-    final core::Iterable<dynamic>? #t34 = dynamicList3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t34.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t34{core::Iterable<dynamic>}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t35 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num #t36 = #t35 as{TypeError,ForNonNullableByDefault} core::num;
-          #t27.{core::List::add}{Invariant}(#t36);
-        }
-      }
-    }
-    final core::Iterable<core::num>? #t37 = iterableIntList;
-    if(!#t37.{core::Object::==}(null))
-      #t27.{core::List::addAll}{Invariant}(#t37{core::Iterable<core::num>});
-    final core::Iterable<core::num>? #t38 = intList;
-    if(!#t38.{core::Object::==}(null))
-      #t27.{core::List::addAll}{Invariant}(#t38{core::Iterable<core::num>});
-  } =>#t27;
-  self::expect(core::_GrowableList::generate<core::num>(15, (core::int i) → core::int => i), list2);
-}
-static method main() → dynamic {
-  self::useAddAll();
-  self::useAddAllNullable();
-}
-static method expect(core::List<dynamic> list1, core::List<dynamic> list2) → void {
-  if(!list1.{core::List::length}.{core::num::==}(list2.{core::List::length})) {
-    throw "Unexpected length. Expected ${list1.{core::List::length}}, actual ${list2.{core::List::length}}.";
-  }
-  for (core::int i = 0; i.{core::num::<}(list1.{core::List::length}); i = i.{core::num::+}(1)) {
-    if(!list1.{core::List::[]}(i).{core::Object::==}(list2.{core::List::[]}(i))) {
-      throw "Unexpected element at index ${i}. Expected ${list1.{core::List::[]}(i)}, actual ${list2.{core::List::[]}(i)}.";
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart b/pkg/front_end/testcases/unified_collections/mixed_entries.dart
index fa03bc7..55810a0 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// @dart=2.9
-
 bool b = false;
 
 var list = [];
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.outline.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.outline.expect
new file mode 100644
index 0000000..a46c9ef
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.outline.expect
@@ -0,0 +1,49 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// var error4 = {if (b) 0: 1 else for (var a in list) a};
+//                                ^
+//
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// var error5 = {if (b) for (var a in list) a else 0: 1};
+//                      ^
+//
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// var error8 = {if (b) 0: 1 else for (var i = 0; i < list.length; i++) list[i]};
+//                                ^
+//
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// var error9 = {if (b) for (var i = 0; i < list.length; i++) list[i] else 0: 1};
+//                      ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field core::bool* b;
+static field core::List<dynamic>* list;
+static field core::Map<dynamic, dynamic>* map0;
+static field core::Map<dynamic, dynamic>* map1;
+static field core::Map<dynamic, dynamic>* map2;
+static field core::Map<dynamic, dynamic>* map3;
+static field core::Map<dynamic, core::int*>* map4;
+static field core::Map<dynamic, core::int*>* map5;
+static field core::Map<dynamic, core::int*>* map6;
+static field core::Map<dynamic, core::int*>* map7;
+static field core::Map<dynamic, core::int*>* map8;
+static field core::Map<dynamic, core::int*>* map9;
+static field core::Map<dynamic, core::int*>* map10;
+static field core::Map<dynamic, core::int*>* map11;
+static field core::Map<core::int*, core::int*>* map12;
+static field core::Map<dynamic, Null>* error4;
+static field core::Map<dynamic, Null>* error5;
+static field dynamic error6;
+static field dynamic error7;
+static field core::Map<dynamic, Null>* error8;
+static field core::Map<dynamic, Null>* error9;
+static field dynamic error10;
+static field dynamic error11;
+static field dynamic error12;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.strong.expect
similarity index 88%
rename from pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.expect
rename to pkg/front_end/testcases/unified_collections/mixed_entries.dart.strong.expect
index 6fce67d..1194246 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.strong.expect
@@ -2,39 +2,39 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error4 = {if (b) 0: 1 else for (var a in list) a};
 //                                ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:36:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error5 = {if (b) for (var a in list) a else 0: 1};
 //                      ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error8 = {if (b) 0: 1 else for (var i = 0; i < list.length; i++) list[i]};
 //                                ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:44:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error9 = {if (b) for (var i = 0; i < list.length; i++) list[i] else 0: 1};
 //                      ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:37:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error6 = {
 //              ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:40:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:38:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error7 = {
 //              ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:45:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error10 = {
 //               ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:48:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:46:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error11 = {
 //               ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:51:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:49:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error12 = {
 //               ^
 //
@@ -146,31 +146,31 @@
       for (final core::MapEntry<core::int*, core::int*>* #t21 in <core::int*, core::int*>{0: 1}.{core::Map::entries})
         #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}, #t21.{core::MapEntry::value});
 } =>#t20;
-static field core::Map<dynamic, Null>* error4 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error4 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error4 = {if (b) 0: 1 else for (var a in list) a};
                                ^": null};
-static field core::Map<dynamic, Null>* error5 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:36:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error5 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error5 = {if (b) for (var a in list) a else 0: 1};
                      ^": null};
-static field dynamic error6 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:37:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field dynamic error6 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error6 = {
              ^";
-static field dynamic error7 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:40:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field dynamic error7 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:38:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error7 = {
              ^";
-static field core::Map<dynamic, Null>* error8 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error8 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error8 = {if (b) 0: 1 else for (var i = 0; i < list.length; i++) list[i]};
                                ^": null};
-static field core::Map<dynamic, Null>* error9 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:44:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error9 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error9 = {if (b) for (var i = 0; i < list.length; i++) list[i] else 0: 1};
                      ^": null};
-static field dynamic error10 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:45:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field dynamic error10 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error10 = {
               ^";
-static field dynamic error11 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:48:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field dynamic error11 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:46:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error11 = {
               ^";
-static field dynamic error12 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:51:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field dynamic error12 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:49:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error12 = {
               ^";
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.strong.transformed.expect
similarity index 90%
rename from pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect
rename to pkg/front_end/testcases/unified_collections/mixed_entries.dart.strong.transformed.expect
index 691c149..ff07e3e 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.strong.transformed.expect
@@ -2,39 +2,39 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error4 = {if (b) 0: 1 else for (var a in list) a};
 //                                ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:36:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error5 = {if (b) for (var a in list) a else 0: 1};
 //                      ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error8 = {if (b) 0: 1 else for (var i = 0; i < list.length; i++) list[i]};
 //                                ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:44:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error9 = {if (b) for (var i = 0; i < list.length; i++) list[i] else 0: 1};
 //                      ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:37:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error6 = {
 //              ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:40:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:38:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error7 = {
 //              ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:45:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error10 = {
 //               ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:48:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:46:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error11 = {
 //               ^
 //
-// pkg/front_end/testcases/unified_collections/mixed_entries.dart:51:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+// pkg/front_end/testcases/unified_collections/mixed_entries.dart:49:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 // var error12 = {
 //               ^
 //
@@ -200,31 +200,31 @@
       }
     }
 } =>#t20;
-static field core::Map<dynamic, Null>* error4 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error4 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:33:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error4 = {if (b) 0: 1 else for (var a in list) a};
                                ^": null};
-static field core::Map<dynamic, Null>* error5 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:36:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error5 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:34:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error5 = {if (b) for (var a in list) a else 0: 1};
                      ^": null};
-static field dynamic error6 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:37:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field dynamic error6 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error6 = {
              ^";
-static field dynamic error7 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:40:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field dynamic error7 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:38:14: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error7 = {
              ^";
-static field core::Map<dynamic, Null>* error8 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error8 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:41:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error8 = {if (b) 0: 1 else for (var i = 0; i < list.length; i++) list[i]};
                                ^": null};
-static field core::Map<dynamic, Null>* error9 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:44:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field core::Map<dynamic, Null>* error9 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:42:22: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error9 = {if (b) for (var i = 0; i < list.length; i++) list[i] else 0: 1};
                      ^": null};
-static field dynamic error10 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:45:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field dynamic error10 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:43:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error10 = {
               ^";
-static field dynamic error11 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:48:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field dynamic error11 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:46:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error11 = {
               ^";
-static field dynamic error12 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:51:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
+static field dynamic error12 = invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:49:15: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
 var error12 = {
               ^";
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline.expect
index 147bb36..480a19e 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 bool b = false;
 var list = [];
 var map0 = {};
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline_modelled.expect
index 1f1b82d..1843b5c 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
 bool b = false;
 main() {}
 var error10 = {
diff --git a/pkg/front_end/testcases/unified_collections/set_add_all.dart b/pkg/front_end/testcases/unified_collections/set_add_all.dart
deleted file mode 100644
index d1b77d0..0000000
--- a/pkg/front_end/testcases/unified_collections/set_add_all.dart
+++ /dev/null
@@ -1,83 +0,0 @@
-// 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
-
-void useAddAll() {
-  dynamic dynamicSet1 = <int>{0, 1, 2};
-  dynamic dynamicSet2 = <num>{3, 4, 5};
-  Iterable<int> iterableIntSet = <int>{6, 7, 8};
-  Iterable<num> iterableNumSet1 = <int>{9, 10, 11};
-  Iterable<num> iterableNumSet2 = <num>{12, 13, 14};
-  Set<int> intSet = <int>{15, 16, 17};
-  Set<num> numSet1 = <int>{18, 19, 20};
-  Set<num> numSet2 = <num>{21, 22, 23};
-
-  var set1 = <int>{
-    ...dynamicSet1,
-    ...dynamicSet2,
-    ...iterableIntSet,
-    ...iterableNumSet1,
-    ...iterableNumSet2,
-    ...intSet,
-    ...numSet1,
-    ...numSet2
-  };
-
-  expect(new List<int>.generate(24, (int i) => i).toSet(), set1);
-
-  var set2 = <num>{
-    ...dynamicSet1,
-    ...dynamicSet2,
-    ...iterableIntSet,
-    ...iterableNumSet1,
-    ...iterableNumSet2,
-    ...intSet,
-    ...numSet1,
-    ...numSet2
-  };
-
-  expect(new List<num>.generate(24, (int i) => i).toSet(), set2);
-
-  var set3 = <int>{
-    ...?dynamicSet1,
-    ...?dynamicSet2,
-    ...?iterableIntSet,
-    ...?iterableNumSet1,
-    ...?iterableNumSet2,
-    ...?intSet,
-    ...?numSet1,
-    ...?numSet2
-  };
-
-  expect(new List<int>.generate(24, (int i) => i).toSet(), set3);
-
-  var set4 = <num>{
-    ...?dynamicSet1,
-    ...?dynamicSet2,
-    ...?iterableIntSet,
-    ...?iterableNumSet1,
-    ...?iterableNumSet2,
-    ...?intSet,
-    ...?numSet1,
-    ...?numSet2
-  };
-
-  expect(new List<num>.generate(24, (int i) => i).toSet(), set4);
-}
-
-main() {
-  useAddAll();
-}
-
-void expect(Set set1, Set set2) {
-  if (set1.length != set2.length) {
-    throw 'Unexpected length. Expected ${set1.length}, actual ${set2.length}.';
-  }
-  for (dynamic element in set1) {
-    if (!set2.contains(element)) {
-      throw 'Element $element not found. Expected $set1, actual $set2.';
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/set_add_all.dart.textual_outline.expect b/pkg/front_end/testcases/unified_collections/set_add_all.dart.textual_outline.expect
deleted file mode 100644
index cabcd88..0000000
--- a/pkg/front_end/testcases/unified_collections/set_add_all.dart.textual_outline.expect
+++ /dev/null
@@ -1,4 +0,0 @@
-// @dart = 2.9
-void useAddAll() {}
-main() {}
-void expect(Set set1, Set set2) {}
diff --git a/pkg/front_end/testcases/unified_collections/set_add_all.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/unified_collections/set_add_all.dart.textual_outline_modelled.expect
deleted file mode 100644
index 0827941..0000000
--- a/pkg/front_end/testcases/unified_collections/set_add_all.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,4 +0,0 @@
-// @dart = 2.9
-main() {}
-void expect(Set set1, Set set2) {}
-void useAddAll() {}
diff --git a/pkg/front_end/testcases/unified_collections/set_add_all.dart.weak.expect b/pkg/front_end/testcases/unified_collections/set_add_all.dart.weak.expect
deleted file mode 100644
index f31828e..0000000
--- a/pkg/front_end/testcases/unified_collections/set_add_all.dart.weak.expect
+++ /dev/null
@@ -1,197 +0,0 @@
-library;
-import self as self;
-import "dart:core" as core;
-import "dart:collection" as col;
-import "dart:_internal" as _in;
-
-static method useAddAll() → void {
-  dynamic dynamicSet1 = block {
-    final core::Set<core::int*>* #t1 = col::LinkedHashSet::•<core::int*>();
-    #t1.{core::Set::add}{Invariant}(0);
-    #t1.{core::Set::add}{Invariant}(1);
-    #t1.{core::Set::add}{Invariant}(2);
-  } =>#t1;
-  dynamic dynamicSet2 = block {
-    final core::Set<core::num*>* #t2 = col::LinkedHashSet::•<core::num*>();
-    #t2.{core::Set::add}{Invariant}(3);
-    #t2.{core::Set::add}{Invariant}(4);
-    #t2.{core::Set::add}{Invariant}(5);
-  } =>#t2;
-  core::Iterable<core::int*>* iterableIntSet = block {
-    final core::Set<core::int*>* #t3 = col::LinkedHashSet::•<core::int*>();
-    #t3.{core::Set::add}{Invariant}(6);
-    #t3.{core::Set::add}{Invariant}(7);
-    #t3.{core::Set::add}{Invariant}(8);
-  } =>#t3;
-  core::Iterable<core::num*>* iterableNumSet1 = block {
-    final core::Set<core::int*>* #t4 = col::LinkedHashSet::•<core::int*>();
-    #t4.{core::Set::add}{Invariant}(9);
-    #t4.{core::Set::add}{Invariant}(10);
-    #t4.{core::Set::add}{Invariant}(11);
-  } =>#t4;
-  core::Iterable<core::num*>* iterableNumSet2 = block {
-    final core::Set<core::num*>* #t5 = col::LinkedHashSet::•<core::num*>();
-    #t5.{core::Set::add}{Invariant}(12);
-    #t5.{core::Set::add}{Invariant}(13);
-    #t5.{core::Set::add}{Invariant}(14);
-  } =>#t5;
-  core::Set<core::int*>* intSet = block {
-    final core::Set<core::int*>* #t6 = col::LinkedHashSet::•<core::int*>();
-    #t6.{core::Set::add}{Invariant}(15);
-    #t6.{core::Set::add}{Invariant}(16);
-    #t6.{core::Set::add}{Invariant}(17);
-  } =>#t6;
-  core::Set<core::num*>* numSet1 = block {
-    final core::Set<core::int*>* #t7 = col::LinkedHashSet::•<core::int*>();
-    #t7.{core::Set::add}{Invariant}(18);
-    #t7.{core::Set::add}{Invariant}(19);
-    #t7.{core::Set::add}{Invariant}(20);
-  } =>#t7;
-  core::Set<core::num*>* numSet2 = block {
-    final core::Set<core::num*>* #t8 = col::LinkedHashSet::•<core::num*>();
-    #t8.{core::Set::add}{Invariant}(21);
-    #t8.{core::Set::add}{Invariant}(22);
-    #t8.{core::Set::add}{Invariant}(23);
-  } =>#t8;
-  core::Set<core::int*>* set1 = block {
-    final core::Set<core::int*>* #t9 = col::LinkedHashSet::•<core::int*>();
-    for (final dynamic #t10 in dynamicSet1 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-      final core::int* #t11 = #t10 as{TypeError} core::int*;
-      #t9.{core::Set::add}{Invariant}(#t11);
-    }
-    for (final dynamic #t12 in dynamicSet2 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-      final core::int* #t13 = #t12 as{TypeError} core::int*;
-      #t9.{core::Set::add}{Invariant}(#t13);
-    }
-    #t9.{core::Set::addAll}{Invariant}(iterableIntSet);
-    for (final dynamic #t14 in iterableNumSet1) {
-      final core::int* #t15 = #t14 as{TypeError} core::int*;
-      #t9.{core::Set::add}{Invariant}(#t15);
-    }
-    for (final dynamic #t16 in iterableNumSet2) {
-      final core::int* #t17 = #t16 as{TypeError} core::int*;
-      #t9.{core::Set::add}{Invariant}(#t17);
-    }
-    #t9.{core::Set::addAll}{Invariant}(intSet);
-    for (final dynamic #t18 in numSet1) {
-      final core::int* #t19 = #t18 as{TypeError} core::int*;
-      #t9.{core::Set::add}{Invariant}(#t19);
-    }
-    for (final dynamic #t20 in numSet2) {
-      final core::int* #t21 = #t20 as{TypeError} core::int*;
-      #t9.{core::Set::add}{Invariant}(#t21);
-    }
-  } =>#t9;
-  self::expect(core::List::generate<core::int*>(24, (core::int* i) → core::int* => i).{core::Iterable::toSet}(), set1);
-  core::Set<core::num*>* set2 = block {
-    final core::Set<core::num*>* #t22 = col::LinkedHashSet::•<core::num*>();
-    for (final dynamic #t23 in dynamicSet1 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-      final core::num* #t24 = #t23 as{TypeError} core::num*;
-      #t22.{core::Set::add}{Invariant}(#t24);
-    }
-    for (final dynamic #t25 in dynamicSet2 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
-      final core::num* #t26 = #t25 as{TypeError} core::num*;
-      #t22.{core::Set::add}{Invariant}(#t26);
-    }
-    #t22.{core::Set::addAll}{Invariant}(iterableIntSet);
-    #t22.{core::Set::addAll}{Invariant}(iterableNumSet1);
-    #t22.{core::Set::addAll}{Invariant}(iterableNumSet2);
-    #t22.{core::Set::addAll}{Invariant}(intSet);
-    #t22.{core::Set::addAll}{Invariant}(numSet1);
-    #t22.{core::Set::addAll}{Invariant}(numSet2);
-  } =>#t22;
-  self::expect(core::List::generate<core::num*>(24, (core::int* i) → core::int* => i).{core::Iterable::toSet}(), set2);
-  core::Set<core::int*>* set3 = block {
-    final core::Set<core::int*>* #t27 = col::LinkedHashSet::•<core::int*>();
-    final core::Iterable<dynamic>* #t28 = dynamicSet1 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t28.{core::Object::==}(null))
-      for (final dynamic #t29 in #t28) {
-        final core::int* #t30 = #t29 as{TypeError} core::int*;
-        #t27.{core::Set::add}{Invariant}(#t30);
-      }
-    final core::Iterable<dynamic>* #t31 = dynamicSet2 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t31.{core::Object::==}(null))
-      for (final dynamic #t32 in #t31) {
-        final core::int* #t33 = #t32 as{TypeError} core::int*;
-        #t27.{core::Set::add}{Invariant}(#t33);
-      }
-    final core::Iterable<core::int*>* #t34 = iterableIntSet;
-    if(!#t34.{core::Object::==}(null))
-      #t27.{core::Set::addAll}{Invariant}(#t34);
-    final core::Iterable<dynamic>* #t35 = iterableNumSet1;
-    if(!#t35.{core::Object::==}(null))
-      for (final dynamic #t36 in #t35) {
-        final core::int* #t37 = #t36 as{TypeError} core::int*;
-        #t27.{core::Set::add}{Invariant}(#t37);
-      }
-    final core::Iterable<dynamic>* #t38 = iterableNumSet2;
-    if(!#t38.{core::Object::==}(null))
-      for (final dynamic #t39 in #t38) {
-        final core::int* #t40 = #t39 as{TypeError} core::int*;
-        #t27.{core::Set::add}{Invariant}(#t40);
-      }
-    final core::Iterable<core::int*>* #t41 = intSet;
-    if(!#t41.{core::Object::==}(null))
-      #t27.{core::Set::addAll}{Invariant}(#t41);
-    final core::Iterable<dynamic>* #t42 = numSet1;
-    if(!#t42.{core::Object::==}(null))
-      for (final dynamic #t43 in #t42) {
-        final core::int* #t44 = #t43 as{TypeError} core::int*;
-        #t27.{core::Set::add}{Invariant}(#t44);
-      }
-    final core::Iterable<dynamic>* #t45 = numSet2;
-    if(!#t45.{core::Object::==}(null))
-      for (final dynamic #t46 in #t45) {
-        final core::int* #t47 = #t46 as{TypeError} core::int*;
-        #t27.{core::Set::add}{Invariant}(#t47);
-      }
-  } =>#t27;
-  self::expect(core::List::generate<core::int*>(24, (core::int* i) → core::int* => i).{core::Iterable::toSet}(), set3);
-  core::Set<core::num*>* set4 = block {
-    final core::Set<core::num*>* #t48 = col::LinkedHashSet::•<core::num*>();
-    final core::Iterable<dynamic>* #t49 = dynamicSet1 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t49.{core::Object::==}(null))
-      for (final dynamic #t50 in #t49) {
-        final core::num* #t51 = #t50 as{TypeError} core::num*;
-        #t48.{core::Set::add}{Invariant}(#t51);
-      }
-    final core::Iterable<dynamic>* #t52 = dynamicSet2 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t52.{core::Object::==}(null))
-      for (final dynamic #t53 in #t52) {
-        final core::num* #t54 = #t53 as{TypeError} core::num*;
-        #t48.{core::Set::add}{Invariant}(#t54);
-      }
-    final core::Iterable<core::num*>* #t55 = iterableIntSet;
-    if(!#t55.{core::Object::==}(null))
-      #t48.{core::Set::addAll}{Invariant}(#t55);
-    final core::Iterable<core::num*>* #t56 = iterableNumSet1;
-    if(!#t56.{core::Object::==}(null))
-      #t48.{core::Set::addAll}{Invariant}(#t56);
-    final core::Iterable<core::num*>* #t57 = iterableNumSet2;
-    if(!#t57.{core::Object::==}(null))
-      #t48.{core::Set::addAll}{Invariant}(#t57);
-    final core::Iterable<core::num*>* #t58 = intSet;
-    if(!#t58.{core::Object::==}(null))
-      #t48.{core::Set::addAll}{Invariant}(#t58);
-    final core::Iterable<core::num*>* #t59 = numSet1;
-    if(!#t59.{core::Object::==}(null))
-      #t48.{core::Set::addAll}{Invariant}(#t59);
-    final core::Iterable<core::num*>* #t60 = numSet2;
-    if(!#t60.{core::Object::==}(null))
-      #t48.{core::Set::addAll}{Invariant}(#t60);
-  } =>#t48;
-  self::expect(core::List::generate<core::num*>(24, (core::int* i) → core::int* => i).{core::Iterable::toSet}(), set4);
-}
-static method main() → dynamic {
-  self::useAddAll();
-}
-static method expect(core::Set<dynamic>* set1, core::Set<dynamic>* set2) → void {
-  if(!set1.{_in::EfficientLengthIterable::length}.{core::num::==}(set2.{_in::EfficientLengthIterable::length})) {
-    throw "Unexpected length. Expected ${set1.{_in::EfficientLengthIterable::length}}, actual ${set2.{_in::EfficientLengthIterable::length}}.";
-  }
-  for (dynamic element in set1) {
-    if(!set2.{core::Set::contains}(element)) {
-      throw "Element ${element} not found. Expected ${set1}, actual ${set2}.";
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/set_add_all.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/set_add_all.dart.weak.transformed.expect
deleted file mode 100644
index b8b398a..0000000
--- a/pkg/front_end/testcases/unified_collections/set_add_all.dart.weak.transformed.expect
+++ /dev/null
@@ -1,291 +0,0 @@
-library;
-import self as self;
-import "dart:core" as core;
-import "dart:collection" as col;
-import "dart:_internal" as _in;
-
-static method useAddAll() → void {
-  dynamic dynamicSet1 = block {
-    final core::Set<core::int*>* #t1 = new col::_CompactLinkedHashSet::•<core::int*>();
-    #t1.{core::Set::add}{Invariant}(0);
-    #t1.{core::Set::add}{Invariant}(1);
-    #t1.{core::Set::add}{Invariant}(2);
-  } =>#t1;
-  dynamic dynamicSet2 = block {
-    final core::Set<core::num*>* #t2 = new col::_CompactLinkedHashSet::•<core::num*>();
-    #t2.{core::Set::add}{Invariant}(3);
-    #t2.{core::Set::add}{Invariant}(4);
-    #t2.{core::Set::add}{Invariant}(5);
-  } =>#t2;
-  core::Iterable<core::int*>* iterableIntSet = block {
-    final core::Set<core::int*>* #t3 = new col::_CompactLinkedHashSet::•<core::int*>();
-    #t3.{core::Set::add}{Invariant}(6);
-    #t3.{core::Set::add}{Invariant}(7);
-    #t3.{core::Set::add}{Invariant}(8);
-  } =>#t3;
-  core::Iterable<core::num*>* iterableNumSet1 = block {
-    final core::Set<core::int*>* #t4 = new col::_CompactLinkedHashSet::•<core::int*>();
-    #t4.{core::Set::add}{Invariant}(9);
-    #t4.{core::Set::add}{Invariant}(10);
-    #t4.{core::Set::add}{Invariant}(11);
-  } =>#t4;
-  core::Iterable<core::num*>* iterableNumSet2 = block {
-    final core::Set<core::num*>* #t5 = new col::_CompactLinkedHashSet::•<core::num*>();
-    #t5.{core::Set::add}{Invariant}(12);
-    #t5.{core::Set::add}{Invariant}(13);
-    #t5.{core::Set::add}{Invariant}(14);
-  } =>#t5;
-  core::Set<core::int*>* intSet = block {
-    final core::Set<core::int*>* #t6 = new col::_CompactLinkedHashSet::•<core::int*>();
-    #t6.{core::Set::add}{Invariant}(15);
-    #t6.{core::Set::add}{Invariant}(16);
-    #t6.{core::Set::add}{Invariant}(17);
-  } =>#t6;
-  core::Set<core::num*>* numSet1 = block {
-    final core::Set<core::int*>* #t7 = new col::_CompactLinkedHashSet::•<core::int*>();
-    #t7.{core::Set::add}{Invariant}(18);
-    #t7.{core::Set::add}{Invariant}(19);
-    #t7.{core::Set::add}{Invariant}(20);
-  } =>#t7;
-  core::Set<core::num*>* numSet2 = block {
-    final core::Set<core::num*>* #t8 = new col::_CompactLinkedHashSet::•<core::num*>();
-    #t8.{core::Set::add}{Invariant}(21);
-    #t8.{core::Set::add}{Invariant}(22);
-    #t8.{core::Set::add}{Invariant}(23);
-  } =>#t8;
-  core::Set<core::int*>* set1 = block {
-    final core::Set<core::int*>* #t9 = new col::_CompactLinkedHashSet::•<core::int*>();
-    {
-      core::Iterator<dynamic>* :sync-for-iterator = (dynamicSet1 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t10 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t11 = #t10 as{TypeError} core::int*;
-          #t9.{core::Set::add}{Invariant}(#t11);
-        }
-      }
-    }
-    {
-      core::Iterator<dynamic>* :sync-for-iterator = (dynamicSet2 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t12 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t13 = #t12 as{TypeError} core::int*;
-          #t9.{core::Set::add}{Invariant}(#t13);
-        }
-      }
-    }
-    #t9.{core::Set::addAll}{Invariant}(iterableIntSet);
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = iterableNumSet1.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t14 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t15 = #t14 as{TypeError} core::int*;
-          #t9.{core::Set::add}{Invariant}(#t15);
-        }
-      }
-    }
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = iterableNumSet2.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t16 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t17 = #t16 as{TypeError} core::int*;
-          #t9.{core::Set::add}{Invariant}(#t17);
-        }
-      }
-    }
-    #t9.{core::Set::addAll}{Invariant}(intSet);
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = numSet1.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t18 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t19 = #t18 as{TypeError} core::int*;
-          #t9.{core::Set::add}{Invariant}(#t19);
-        }
-      }
-    }
-    {
-      core::Iterator<core::num*>* :sync-for-iterator = numSet2.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t20 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t21 = #t20 as{TypeError} core::int*;
-          #t9.{core::Set::add}{Invariant}(#t21);
-        }
-      }
-    }
-  } =>#t9;
-  self::expect(core::_GrowableList::generate<core::int*>(24, (core::int* i) → core::int* => i).{core::Iterable::toSet}(), set1);
-  core::Set<core::num*>* set2 = block {
-    final core::Set<core::num*>* #t22 = new col::_CompactLinkedHashSet::•<core::num*>();
-    {
-      core::Iterator<dynamic>* :sync-for-iterator = (dynamicSet1 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t23 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num* #t24 = #t23 as{TypeError} core::num*;
-          #t22.{core::Set::add}{Invariant}(#t24);
-        }
-      }
-    }
-    {
-      core::Iterator<dynamic>* :sync-for-iterator = (dynamicSet2 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t25 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num* #t26 = #t25 as{TypeError} core::num*;
-          #t22.{core::Set::add}{Invariant}(#t26);
-        }
-      }
-    }
-    #t22.{core::Set::addAll}{Invariant}(iterableIntSet);
-    #t22.{core::Set::addAll}{Invariant}(iterableNumSet1);
-    #t22.{core::Set::addAll}{Invariant}(iterableNumSet2);
-    #t22.{core::Set::addAll}{Invariant}(intSet);
-    #t22.{core::Set::addAll}{Invariant}(numSet1);
-    #t22.{core::Set::addAll}{Invariant}(numSet2);
-  } =>#t22;
-  self::expect(core::_GrowableList::generate<core::num*>(24, (core::int* i) → core::int* => i).{core::Iterable::toSet}(), set2);
-  core::Set<core::int*>* set3 = block {
-    final core::Set<core::int*>* #t27 = new col::_CompactLinkedHashSet::•<core::int*>();
-    final core::Iterable<dynamic>* #t28 = dynamicSet1 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t28.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t28.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t29 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t30 = #t29 as{TypeError} core::int*;
-          #t27.{core::Set::add}{Invariant}(#t30);
-        }
-      }
-    }
-    final core::Iterable<dynamic>* #t31 = dynamicSet2 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t31.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t31.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t32 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t33 = #t32 as{TypeError} core::int*;
-          #t27.{core::Set::add}{Invariant}(#t33);
-        }
-      }
-    }
-    final core::Iterable<core::int*>* #t34 = iterableIntSet;
-    if(!#t34.{core::Object::==}(null))
-      #t27.{core::Set::addAll}{Invariant}(#t34);
-    final core::Iterable<dynamic>* #t35 = iterableNumSet1;
-    if(!#t35.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t35.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t36 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t37 = #t36 as{TypeError} core::int*;
-          #t27.{core::Set::add}{Invariant}(#t37);
-        }
-      }
-    }
-    final core::Iterable<dynamic>* #t38 = iterableNumSet2;
-    if(!#t38.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t38.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t39 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t40 = #t39 as{TypeError} core::int*;
-          #t27.{core::Set::add}{Invariant}(#t40);
-        }
-      }
-    }
-    final core::Iterable<core::int*>* #t41 = intSet;
-    if(!#t41.{core::Object::==}(null))
-      #t27.{core::Set::addAll}{Invariant}(#t41);
-    final core::Iterable<dynamic>* #t42 = numSet1;
-    if(!#t42.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t42.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t43 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t44 = #t43 as{TypeError} core::int*;
-          #t27.{core::Set::add}{Invariant}(#t44);
-        }
-      }
-    }
-    final core::Iterable<dynamic>* #t45 = numSet2;
-    if(!#t45.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t45.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t46 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int* #t47 = #t46 as{TypeError} core::int*;
-          #t27.{core::Set::add}{Invariant}(#t47);
-        }
-      }
-    }
-  } =>#t27;
-  self::expect(core::_GrowableList::generate<core::int*>(24, (core::int* i) → core::int* => i).{core::Iterable::toSet}(), set3);
-  core::Set<core::num*>* set4 = block {
-    final core::Set<core::num*>* #t48 = new col::_CompactLinkedHashSet::•<core::num*>();
-    final core::Iterable<dynamic>* #t49 = dynamicSet1 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t49.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t49.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t50 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num* #t51 = #t50 as{TypeError} core::num*;
-          #t48.{core::Set::add}{Invariant}(#t51);
-        }
-      }
-    }
-    final core::Iterable<dynamic>* #t52 = dynamicSet2 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
-    if(!#t52.{core::Object::==}(null)) {
-      core::Iterator<dynamic>* :sync-for-iterator = #t52.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t53 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num* #t54 = #t53 as{TypeError} core::num*;
-          #t48.{core::Set::add}{Invariant}(#t54);
-        }
-      }
-    }
-    final core::Iterable<core::num*>* #t55 = iterableIntSet;
-    if(!#t55.{core::Object::==}(null))
-      #t48.{core::Set::addAll}{Invariant}(#t55);
-    final core::Iterable<core::num*>* #t56 = iterableNumSet1;
-    if(!#t56.{core::Object::==}(null))
-      #t48.{core::Set::addAll}{Invariant}(#t56);
-    final core::Iterable<core::num*>* #t57 = iterableNumSet2;
-    if(!#t57.{core::Object::==}(null))
-      #t48.{core::Set::addAll}{Invariant}(#t57);
-    final core::Iterable<core::num*>* #t58 = intSet;
-    if(!#t58.{core::Object::==}(null))
-      #t48.{core::Set::addAll}{Invariant}(#t58);
-    final core::Iterable<core::num*>* #t59 = numSet1;
-    if(!#t59.{core::Object::==}(null))
-      #t48.{core::Set::addAll}{Invariant}(#t59);
-    final core::Iterable<core::num*>* #t60 = numSet2;
-    if(!#t60.{core::Object::==}(null))
-      #t48.{core::Set::addAll}{Invariant}(#t60);
-  } =>#t48;
-  self::expect(core::_GrowableList::generate<core::num*>(24, (core::int* i) → core::int* => i).{core::Iterable::toSet}(), set4);
-}
-static method main() → dynamic {
-  self::useAddAll();
-}
-static method expect(core::Set<dynamic>* set1, core::Set<dynamic>* set2) → void {
-  if(!set1.{_in::EfficientLengthIterable::length}.{core::num::==}(set2.{_in::EfficientLengthIterable::length})) {
-    throw "Unexpected length. Expected ${set1.{_in::EfficientLengthIterable::length}}, actual ${set2.{_in::EfficientLengthIterable::length}}.";
-  }
-  {
-    core::Iterator<dynamic>* :sync-for-iterator = set1.{core::Iterable::iterator};
-    for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-      dynamic element = :sync-for-iterator.{core::Iterator::current};
-      {
-        if(!set2.{core::Set::contains}(element)) {
-          throw "Element ${element} not found. Expected ${set1}, actual ${set2}.";
-        }
-      }
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart b/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart
deleted file mode 100644
index 3361e8e..0000000
--- a/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-void useAddAll() {
-  dynamic dynamicSet1 = <int>{0, 1, 2};
-  dynamic dynamicSet2 = <num>{3, 4, 5};
-  dynamic dynamicSet3 = <int?>{6, 7, 8};
-  Iterable<int> iterableIntSet = <int>{9, 10, 11};
-  Set<int> intSet = <int>{12, 13, 14};
-
-  var set1 = <int>{
-    ...dynamicSet1,
-    ...dynamicSet2,
-    ...dynamicSet3,
-    ...iterableIntSet,
-    ...intSet,
-  };
-
-  expect(new List<int>.generate(15, (int i) => i).toSet(), set1);
-
-  var set2 = <num>{
-    ...dynamicSet1,
-    ...dynamicSet2,
-    ...dynamicSet3,
-    ...iterableIntSet,
-    ...intSet,
-  };
-
-  expect(new List<num>.generate(15, (int i) => i).toSet(), set2);
-}
-
-void useAddAllNullable() {
-  dynamic dynamicSet1 = <int>{0, 1, 2};
-  dynamic dynamicSet2 = <num>{3, 4, 5};
-  dynamic dynamicSet3 = <int?>{6, 7, 8};
-  Iterable<int>? iterableIntSet = true ? <int>{9, 10, 11} : null;
-  Set<int>? intSet = true ? <int>{12, 13, 14} : null;
-
-  var set1 = <int>{
-    ...?dynamicSet1,
-    ...?dynamicSet2,
-    ...?dynamicSet3,
-    ...?iterableIntSet,
-    ...?intSet,
-  };
-
-  expect(new List<int>.generate(15, (int i) => i).toSet(), set1);
-
-  var set2 = <num>{
-    ...?dynamicSet1,
-    ...?dynamicSet2,
-    ...?dynamicSet3,
-    ...?iterableIntSet,
-    ...?intSet,
-  };
-
-  expect(new List<num>.generate(15, (int i) => i).toSet(), set2);
-}
-
-main() {
-  useAddAll();
-  useAddAllNullable();
-}
-
-void expect(Set set1, Set set2) {
-  if (set1.length != set2.length) {
-    throw 'Unexpected length. Expected ${set1.length}, actual ${set2.length}.';
-  }
-  for (dynamic element in set1) {
-    if (!set2.contains(element)) {
-      throw 'Element $element not found. Expected $set1, actual $set2.';
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.textual_outline.expect b/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.textual_outline.expect
deleted file mode 100644
index 8b60a79..0000000
--- a/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.textual_outline.expect
+++ /dev/null
@@ -1,4 +0,0 @@
-void useAddAll() {}
-void useAddAllNullable() {}
-main() {}
-void expect(Set set1, Set set2) {}
diff --git a/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.textual_outline_modelled.expect
deleted file mode 100644
index 12854d9..0000000
--- a/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,4 +0,0 @@
-main() {}
-void expect(Set set1, Set set2) {}
-void useAddAll() {}
-void useAddAllNullable() {}
diff --git a/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.weak.expect b/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.weak.expect
deleted file mode 100644
index 2ade2ee..0000000
--- a/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.weak.expect
+++ /dev/null
@@ -1,176 +0,0 @@
-library /*isNonNullableByDefault*/;
-import self as self;
-import "dart:core" as core;
-import "dart:collection" as col;
-import "dart:_internal" as _in;
-
-static method useAddAll() → void {
-  dynamic dynamicSet1 = block {
-    final core::Set<core::int> #t1 = col::LinkedHashSet::•<core::int>();
-    #t1.{core::Set::add}{Invariant}(0);
-    #t1.{core::Set::add}{Invariant}(1);
-    #t1.{core::Set::add}{Invariant}(2);
-  } =>#t1;
-  dynamic dynamicSet2 = block {
-    final core::Set<core::num> #t2 = col::LinkedHashSet::•<core::num>();
-    #t2.{core::Set::add}{Invariant}(3);
-    #t2.{core::Set::add}{Invariant}(4);
-    #t2.{core::Set::add}{Invariant}(5);
-  } =>#t2;
-  dynamic dynamicSet3 = block {
-    final core::Set<core::int?> #t3 = col::LinkedHashSet::•<core::int?>();
-    #t3.{core::Set::add}{Invariant}(6);
-    #t3.{core::Set::add}{Invariant}(7);
-    #t3.{core::Set::add}{Invariant}(8);
-  } =>#t3;
-  core::Iterable<core::int> iterableIntSet = block {
-    final core::Set<core::int> #t4 = col::LinkedHashSet::•<core::int>();
-    #t4.{core::Set::add}{Invariant}(9);
-    #t4.{core::Set::add}{Invariant}(10);
-    #t4.{core::Set::add}{Invariant}(11);
-  } =>#t4;
-  core::Set<core::int> intSet = block {
-    final core::Set<core::int> #t5 = col::LinkedHashSet::•<core::int>();
-    #t5.{core::Set::add}{Invariant}(12);
-    #t5.{core::Set::add}{Invariant}(13);
-    #t5.{core::Set::add}{Invariant}(14);
-  } =>#t5;
-  core::Set<core::int> set1 = block {
-    final core::Set<core::int> #t6 = col::LinkedHashSet::•<core::int>();
-    for (final dynamic #t7 in dynamicSet1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
-      final core::int #t8 = #t7 as{TypeError,ForNonNullableByDefault} core::int;
-      #t6.{core::Set::add}{Invariant}(#t8);
-    }
-    for (final dynamic #t9 in dynamicSet2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
-      final core::int #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::int;
-      #t6.{core::Set::add}{Invariant}(#t10);
-    }
-    for (final dynamic #t11 in dynamicSet3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
-      final core::int #t12 = #t11 as{TypeError,ForNonNullableByDefault} core::int;
-      #t6.{core::Set::add}{Invariant}(#t12);
-    }
-    #t6.{core::Set::addAll}{Invariant}(iterableIntSet);
-    #t6.{core::Set::addAll}{Invariant}(intSet);
-  } =>#t6;
-  self::expect(core::List::generate<core::int>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(), set1);
-  core::Set<core::num> set2 = block {
-    final core::Set<core::num> #t13 = col::LinkedHashSet::•<core::num>();
-    for (final dynamic #t14 in dynamicSet1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
-      final core::num #t15 = #t14 as{TypeError,ForNonNullableByDefault} core::num;
-      #t13.{core::Set::add}{Invariant}(#t15);
-    }
-    for (final dynamic #t16 in dynamicSet2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
-      final core::num #t17 = #t16 as{TypeError,ForNonNullableByDefault} core::num;
-      #t13.{core::Set::add}{Invariant}(#t17);
-    }
-    for (final dynamic #t18 in dynamicSet3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
-      final core::num #t19 = #t18 as{TypeError,ForNonNullableByDefault} core::num;
-      #t13.{core::Set::add}{Invariant}(#t19);
-    }
-    #t13.{core::Set::addAll}{Invariant}(iterableIntSet);
-    #t13.{core::Set::addAll}{Invariant}(intSet);
-  } =>#t13;
-  self::expect(core::List::generate<core::num>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(), set2);
-}
-static method useAddAllNullable() → void {
-  dynamic dynamicSet1 = block {
-    final core::Set<core::int> #t20 = col::LinkedHashSet::•<core::int>();
-    #t20.{core::Set::add}{Invariant}(0);
-    #t20.{core::Set::add}{Invariant}(1);
-    #t20.{core::Set::add}{Invariant}(2);
-  } =>#t20;
-  dynamic dynamicSet2 = block {
-    final core::Set<core::num> #t21 = col::LinkedHashSet::•<core::num>();
-    #t21.{core::Set::add}{Invariant}(3);
-    #t21.{core::Set::add}{Invariant}(4);
-    #t21.{core::Set::add}{Invariant}(5);
-  } =>#t21;
-  dynamic dynamicSet3 = block {
-    final core::Set<core::int?> #t22 = col::LinkedHashSet::•<core::int?>();
-    #t22.{core::Set::add}{Invariant}(6);
-    #t22.{core::Set::add}{Invariant}(7);
-    #t22.{core::Set::add}{Invariant}(8);
-  } =>#t22;
-  core::Iterable<core::int>? iterableIntSet = true ?{core::Set<core::int>?} block {
-    final core::Set<core::int> #t23 = col::LinkedHashSet::•<core::int>();
-    #t23.{core::Set::add}{Invariant}(9);
-    #t23.{core::Set::add}{Invariant}(10);
-    #t23.{core::Set::add}{Invariant}(11);
-  } =>#t23 : null;
-  core::Set<core::int>? intSet = true ?{core::Set<core::int>?} block {
-    final core::Set<core::int> #t24 = col::LinkedHashSet::•<core::int>();
-    #t24.{core::Set::add}{Invariant}(12);
-    #t24.{core::Set::add}{Invariant}(13);
-    #t24.{core::Set::add}{Invariant}(14);
-  } =>#t24 : null;
-  core::Set<core::int> set1 = block {
-    final core::Set<core::int> #t25 = col::LinkedHashSet::•<core::int>();
-    final core::Iterable<dynamic>? #t26 = dynamicSet1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t26.{core::Object::==}(null))
-      for (final dynamic #t27 in #t26{core::Iterable<dynamic>}) {
-        final core::int #t28 = #t27 as{TypeError,ForNonNullableByDefault} core::int;
-        #t25.{core::Set::add}{Invariant}(#t28);
-      }
-    final core::Iterable<dynamic>? #t29 = dynamicSet2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t29.{core::Object::==}(null))
-      for (final dynamic #t30 in #t29{core::Iterable<dynamic>}) {
-        final core::int #t31 = #t30 as{TypeError,ForNonNullableByDefault} core::int;
-        #t25.{core::Set::add}{Invariant}(#t31);
-      }
-    final core::Iterable<dynamic>? #t32 = dynamicSet3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t32.{core::Object::==}(null))
-      for (final dynamic #t33 in #t32{core::Iterable<dynamic>}) {
-        final core::int #t34 = #t33 as{TypeError,ForNonNullableByDefault} core::int;
-        #t25.{core::Set::add}{Invariant}(#t34);
-      }
-    final core::Iterable<core::int>? #t35 = iterableIntSet;
-    if(!#t35.{core::Object::==}(null))
-      #t25.{core::Set::addAll}{Invariant}(#t35{core::Iterable<core::int>});
-    final core::Iterable<core::int>? #t36 = intSet;
-    if(!#t36.{core::Object::==}(null))
-      #t25.{core::Set::addAll}{Invariant}(#t36{core::Iterable<core::int>});
-  } =>#t25;
-  self::expect(core::List::generate<core::int>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(), set1);
-  core::Set<core::num> set2 = block {
-    final core::Set<core::num> #t37 = col::LinkedHashSet::•<core::num>();
-    final core::Iterable<dynamic>? #t38 = dynamicSet1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t38.{core::Object::==}(null))
-      for (final dynamic #t39 in #t38{core::Iterable<dynamic>}) {
-        final core::num #t40 = #t39 as{TypeError,ForNonNullableByDefault} core::num;
-        #t37.{core::Set::add}{Invariant}(#t40);
-      }
-    final core::Iterable<dynamic>? #t41 = dynamicSet2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t41.{core::Object::==}(null))
-      for (final dynamic #t42 in #t41{core::Iterable<dynamic>}) {
-        final core::num #t43 = #t42 as{TypeError,ForNonNullableByDefault} core::num;
-        #t37.{core::Set::add}{Invariant}(#t43);
-      }
-    final core::Iterable<dynamic>? #t44 = dynamicSet3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t44.{core::Object::==}(null))
-      for (final dynamic #t45 in #t44{core::Iterable<dynamic>}) {
-        final core::num #t46 = #t45 as{TypeError,ForNonNullableByDefault} core::num;
-        #t37.{core::Set::add}{Invariant}(#t46);
-      }
-    final core::Iterable<core::num>? #t47 = iterableIntSet;
-    if(!#t47.{core::Object::==}(null))
-      #t37.{core::Set::addAll}{Invariant}(#t47{core::Iterable<core::num>});
-    final core::Iterable<core::num>? #t48 = intSet;
-    if(!#t48.{core::Object::==}(null))
-      #t37.{core::Set::addAll}{Invariant}(#t48{core::Iterable<core::num>});
-  } =>#t37;
-  self::expect(core::List::generate<core::num>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(), set2);
-}
-static method main() → dynamic {
-  self::useAddAll();
-  self::useAddAllNullable();
-}
-static method expect(core::Set<dynamic> set1, core::Set<dynamic> set2) → void {
-  if(!set1.{_in::EfficientLengthIterable::length}.{core::num::==}(set2.{_in::EfficientLengthIterable::length})) {
-    throw "Unexpected length. Expected ${set1.{_in::EfficientLengthIterable::length}}, actual ${set2.{_in::EfficientLengthIterable::length}}.";
-  }
-  for (dynamic element in set1) {
-    if(!set2.{core::Set::contains}(element)) {
-      throw "Element ${element} not found. Expected ${set1}, actual ${set2}.";
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.weak.transformed.expect
deleted file mode 100644
index c97ce48..0000000
--- a/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.weak.transformed.expect
+++ /dev/null
@@ -1,248 +0,0 @@
-library /*isNonNullableByDefault*/;
-import self as self;
-import "dart:core" as core;
-import "dart:collection" as col;
-import "dart:_internal" as _in;
-
-static method useAddAll() → void {
-  dynamic dynamicSet1 = block {
-    final core::Set<core::int> #t1 = new col::_CompactLinkedHashSet::•<core::int>();
-    #t1.{core::Set::add}{Invariant}(0);
-    #t1.{core::Set::add}{Invariant}(1);
-    #t1.{core::Set::add}{Invariant}(2);
-  } =>#t1;
-  dynamic dynamicSet2 = block {
-    final core::Set<core::num> #t2 = new col::_CompactLinkedHashSet::•<core::num>();
-    #t2.{core::Set::add}{Invariant}(3);
-    #t2.{core::Set::add}{Invariant}(4);
-    #t2.{core::Set::add}{Invariant}(5);
-  } =>#t2;
-  dynamic dynamicSet3 = block {
-    final core::Set<core::int?> #t3 = new col::_CompactLinkedHashSet::•<core::int?>();
-    #t3.{core::Set::add}{Invariant}(6);
-    #t3.{core::Set::add}{Invariant}(7);
-    #t3.{core::Set::add}{Invariant}(8);
-  } =>#t3;
-  core::Iterable<core::int> iterableIntSet = block {
-    final core::Set<core::int> #t4 = new col::_CompactLinkedHashSet::•<core::int>();
-    #t4.{core::Set::add}{Invariant}(9);
-    #t4.{core::Set::add}{Invariant}(10);
-    #t4.{core::Set::add}{Invariant}(11);
-  } =>#t4;
-  core::Set<core::int> intSet = block {
-    final core::Set<core::int> #t5 = new col::_CompactLinkedHashSet::•<core::int>();
-    #t5.{core::Set::add}{Invariant}(12);
-    #t5.{core::Set::add}{Invariant}(13);
-    #t5.{core::Set::add}{Invariant}(14);
-  } =>#t5;
-  core::Set<core::int> set1 = block {
-    final core::Set<core::int> #t6 = new col::_CompactLinkedHashSet::•<core::int>();
-    {
-      core::Iterator<dynamic> :sync-for-iterator = (dynamicSet1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t7 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int #t8 = #t7 as{TypeError,ForNonNullableByDefault} core::int;
-          #t6.{core::Set::add}{Invariant}(#t8);
-        }
-      }
-    }
-    {
-      core::Iterator<dynamic> :sync-for-iterator = (dynamicSet2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t9 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::int;
-          #t6.{core::Set::add}{Invariant}(#t10);
-        }
-      }
-    }
-    {
-      core::Iterator<dynamic> :sync-for-iterator = (dynamicSet3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t11 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int #t12 = #t11 as{TypeError,ForNonNullableByDefault} core::int;
-          #t6.{core::Set::add}{Invariant}(#t12);
-        }
-      }
-    }
-    #t6.{core::Set::addAll}{Invariant}(iterableIntSet);
-    #t6.{core::Set::addAll}{Invariant}(intSet);
-  } =>#t6;
-  self::expect(core::_GrowableList::generate<core::int>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(), set1);
-  core::Set<core::num> set2 = block {
-    final core::Set<core::num> #t13 = new col::_CompactLinkedHashSet::•<core::num>();
-    {
-      core::Iterator<dynamic> :sync-for-iterator = (dynamicSet1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t14 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num #t15 = #t14 as{TypeError,ForNonNullableByDefault} core::num;
-          #t13.{core::Set::add}{Invariant}(#t15);
-        }
-      }
-    }
-    {
-      core::Iterator<dynamic> :sync-for-iterator = (dynamicSet2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t16 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num #t17 = #t16 as{TypeError,ForNonNullableByDefault} core::num;
-          #t13.{core::Set::add}{Invariant}(#t17);
-        }
-      }
-    }
-    {
-      core::Iterator<dynamic> :sync-for-iterator = (dynamicSet3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t18 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num #t19 = #t18 as{TypeError,ForNonNullableByDefault} core::num;
-          #t13.{core::Set::add}{Invariant}(#t19);
-        }
-      }
-    }
-    #t13.{core::Set::addAll}{Invariant}(iterableIntSet);
-    #t13.{core::Set::addAll}{Invariant}(intSet);
-  } =>#t13;
-  self::expect(core::_GrowableList::generate<core::num>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(), set2);
-}
-static method useAddAllNullable() → void {
-  dynamic dynamicSet1 = block {
-    final core::Set<core::int> #t20 = new col::_CompactLinkedHashSet::•<core::int>();
-    #t20.{core::Set::add}{Invariant}(0);
-    #t20.{core::Set::add}{Invariant}(1);
-    #t20.{core::Set::add}{Invariant}(2);
-  } =>#t20;
-  dynamic dynamicSet2 = block {
-    final core::Set<core::num> #t21 = new col::_CompactLinkedHashSet::•<core::num>();
-    #t21.{core::Set::add}{Invariant}(3);
-    #t21.{core::Set::add}{Invariant}(4);
-    #t21.{core::Set::add}{Invariant}(5);
-  } =>#t21;
-  dynamic dynamicSet3 = block {
-    final core::Set<core::int?> #t22 = new col::_CompactLinkedHashSet::•<core::int?>();
-    #t22.{core::Set::add}{Invariant}(6);
-    #t22.{core::Set::add}{Invariant}(7);
-    #t22.{core::Set::add}{Invariant}(8);
-  } =>#t22;
-  core::Iterable<core::int>? iterableIntSet = true ?{core::Set<core::int>?} block {
-    final core::Set<core::int> #t23 = new col::_CompactLinkedHashSet::•<core::int>();
-    #t23.{core::Set::add}{Invariant}(9);
-    #t23.{core::Set::add}{Invariant}(10);
-    #t23.{core::Set::add}{Invariant}(11);
-  } =>#t23 : null;
-  core::Set<core::int>? intSet = true ?{core::Set<core::int>?} block {
-    final core::Set<core::int> #t24 = new col::_CompactLinkedHashSet::•<core::int>();
-    #t24.{core::Set::add}{Invariant}(12);
-    #t24.{core::Set::add}{Invariant}(13);
-    #t24.{core::Set::add}{Invariant}(14);
-  } =>#t24 : null;
-  core::Set<core::int> set1 = block {
-    final core::Set<core::int> #t25 = new col::_CompactLinkedHashSet::•<core::int>();
-    final core::Iterable<dynamic>? #t26 = dynamicSet1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t26.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t26{core::Iterable<dynamic>}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t27 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int #t28 = #t27 as{TypeError,ForNonNullableByDefault} core::int;
-          #t25.{core::Set::add}{Invariant}(#t28);
-        }
-      }
-    }
-    final core::Iterable<dynamic>? #t29 = dynamicSet2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t29.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t29{core::Iterable<dynamic>}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t30 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int #t31 = #t30 as{TypeError,ForNonNullableByDefault} core::int;
-          #t25.{core::Set::add}{Invariant}(#t31);
-        }
-      }
-    }
-    final core::Iterable<dynamic>? #t32 = dynamicSet3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t32.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t32{core::Iterable<dynamic>}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t33 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::int #t34 = #t33 as{TypeError,ForNonNullableByDefault} core::int;
-          #t25.{core::Set::add}{Invariant}(#t34);
-        }
-      }
-    }
-    final core::Iterable<core::int>? #t35 = iterableIntSet;
-    if(!#t35.{core::Object::==}(null))
-      #t25.{core::Set::addAll}{Invariant}(#t35{core::Iterable<core::int>});
-    final core::Iterable<core::int>? #t36 = intSet;
-    if(!#t36.{core::Object::==}(null))
-      #t25.{core::Set::addAll}{Invariant}(#t36{core::Iterable<core::int>});
-  } =>#t25;
-  self::expect(core::_GrowableList::generate<core::int>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(), set1);
-  core::Set<core::num> set2 = block {
-    final core::Set<core::num> #t37 = new col::_CompactLinkedHashSet::•<core::num>();
-    final core::Iterable<dynamic>? #t38 = dynamicSet1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t38.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t38{core::Iterable<dynamic>}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t39 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num #t40 = #t39 as{TypeError,ForNonNullableByDefault} core::num;
-          #t37.{core::Set::add}{Invariant}(#t40);
-        }
-      }
-    }
-    final core::Iterable<dynamic>? #t41 = dynamicSet2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t41.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t41{core::Iterable<dynamic>}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t42 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num #t43 = #t42 as{TypeError,ForNonNullableByDefault} core::num;
-          #t37.{core::Set::add}{Invariant}(#t43);
-        }
-      }
-    }
-    final core::Iterable<dynamic>? #t44 = dynamicSet3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
-    if(!#t44.{core::Object::==}(null)) {
-      core::Iterator<dynamic> :sync-for-iterator = #t44{core::Iterable<dynamic>}.{core::Iterable::iterator};
-      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-        final dynamic #t45 = :sync-for-iterator.{core::Iterator::current};
-        {
-          final core::num #t46 = #t45 as{TypeError,ForNonNullableByDefault} core::num;
-          #t37.{core::Set::add}{Invariant}(#t46);
-        }
-      }
-    }
-    final core::Iterable<core::num>? #t47 = iterableIntSet;
-    if(!#t47.{core::Object::==}(null))
-      #t37.{core::Set::addAll}{Invariant}(#t47{core::Iterable<core::num>});
-    final core::Iterable<core::num>? #t48 = intSet;
-    if(!#t48.{core::Object::==}(null))
-      #t37.{core::Set::addAll}{Invariant}(#t48{core::Iterable<core::num>});
-  } =>#t37;
-  self::expect(core::_GrowableList::generate<core::num>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(), set2);
-}
-static method main() → dynamic {
-  self::useAddAll();
-  self::useAddAllNullable();
-}
-static method expect(core::Set<dynamic> set1, core::Set<dynamic> set2) → void {
-  if(!set1.{_in::EfficientLengthIterable::length}.{core::num::==}(set2.{_in::EfficientLengthIterable::length})) {
-    throw "Unexpected length. Expected ${set1.{_in::EfficientLengthIterable::length}}, actual ${set2.{_in::EfficientLengthIterable::length}}.";
-  }
-  {
-    core::Iterator<dynamic> :sync-for-iterator = set1.{core::Iterable::iterator};
-    for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
-      dynamic element = :sync-for-iterator.{core::Iterator::current};
-      {
-        if(!set2.{core::Set::contains}(element)) {
-          throw "Element ${element} not found. Expected ${set1}, actual ${set2}.";
-        }
-      }
-    }
-  }
-}
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart b/pkg/front_end/testcases/unified_collections/string_concatenation.dart
index d1528c2..9d9d77c 100644
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// @dart=2.9
-
 main() {
   bool b = false;
   ['a' 'b', if (b) 'c' 'd'];
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.outline.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.outline.expect
new file mode 100644
index 0000000..6a28c0d
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.outline.expect
@@ -0,0 +1,5 @@
+library;
+import self as self;
+
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.strong.expect
similarity index 65%
rename from pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.expect
rename to pkg/front_end/testcases/unified_collections/string_concatenation.dart.strong.expect
index 0229f5c..f3953a4 100644
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.expect
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.strong.expect
@@ -5,7 +5,8 @@
 static method main() → dynamic {
   core::bool* b = false;
   block {
-    final core::List<core::String*>* #t1 = <core::String*>["ab"];
+    final core::List<core::String*>* #t1 = <core::String*>[];
+    #t1.{core::List::add}{Invariant}("ab");
     if(b)
       #t1.{core::List::add}{Invariant}("cd");
   } =>#t1;
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.strong.transformed.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.strong.transformed.expect
new file mode 100644
index 0000000..44b114b
--- /dev/null
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.strong.transformed.expect
@@ -0,0 +1,19 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+static method main() → dynamic {
+  core::bool* b = false;
+  block {
+    final core::List<core::String*>* #t1 = <core::String*>[];
+    #t1.{core::List::add}{Invariant}("ab");
+    if(b)
+      #t1.{core::List::add}{Invariant}("cd");
+  } =>#t1;
+}
+
+
+Extra constant evaluation status:
+Evaluated: StringConcatenation @ org-dartlang-testcase:///string_concatenation.dart:7:3 -> StringConstant("ab")
+Evaluated: StringConcatenation @ org-dartlang-testcase:///string_concatenation.dart:7:18 -> StringConstant("cd")
+Extra constant evaluation: evaluated: 10, effectively constant: 2
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline_modelled.expect
index 7c126a2..bae895a 100644
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.textual_outline_modelled.expect
@@ -1,2 +1 @@
-// @dart = 2.9
 main() {}
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.transformed.expect
deleted file mode 100644
index b8d8ac8..0000000
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.transformed.expect
+++ /dev/null
@@ -1,18 +0,0 @@
-library;
-import self as self;
-import "dart:core" as core;
-
-static method main() → dynamic {
-  core::bool* b = false;
-  block {
-    final core::List<core::String*>* #t1 = <core::String*>["ab"];
-    if(b)
-      #t1.{core::List::add}{Invariant}("cd");
-  } =>#t1;
-}
-
-
-Extra constant evaluation status:
-Evaluated: StringConcatenation @ org-dartlang-testcase:///string_concatenation.dart:9:3 -> StringConstant("ab")
-Evaluated: StringConcatenation @ org-dartlang-testcase:///string_concatenation.dart:9:18 -> StringConstant("cd")
-Extra constant evaluation: evaluated: 8, effectively constant: 2
diff --git a/pkg/front_end/testing.json b/pkg/front_end/testing.json
index 50bd29e..32f3042 100644
--- a/pkg/front_end/testing.json
+++ b/pkg/front_end/testing.json
@@ -79,8 +79,7 @@
         "/testcases/general_nnbd_opt_out/",
         "/testcases/nnbd_mixed/",
         "/testcases/nonfunction_type_aliases/",
-        "/testcases/static_field_lowering/",
-        "/testcases/unified_collections"
+        "/testcases/static_field_lowering/"
       ]
     },
     {
@@ -102,8 +101,7 @@
         "/testcases/general_nnbd_opt_out/",
         "/testcases/nnbd_mixed/",
         "/testcases/nonfunction_type_aliases/",
-        "/testcases/static_field_lowering/",
-        "/testcases/unified_collections"
+        "/testcases/static_field_lowering/"
       ]
     },
     {
@@ -125,8 +123,7 @@
         "/testcases/general_nnbd_opt_out/",
         "/testcases/nnbd_mixed/",
         "/testcases/nonfunction_type_aliases/",
-        "/testcases/static_field_lowering/",
-        "/testcases/unified_collections"
+        "/testcases/static_field_lowering/"
       ]
     },
     {
@@ -148,8 +145,7 @@
         "/testcases/general_nnbd_opt_out/",
         "/testcases/nnbd_mixed/",
         "/testcases/nonfunction_type_aliases/",
-        "/testcases/static_field_lowering/",
-        "/testcases/unified_collections"
+        "/testcases/static_field_lowering/"
       ]
     },
     {
@@ -179,6 +175,7 @@
         "/testcases/runtime_checks",
         "/testcases/runtime_checks_new",
         "/testcases/set_literals",
+        "/testcases/unified_collections",
         "/testcases/variance"
       ]
     },
diff --git a/tools/VERSION b/tools/VERSION
index 585f11a..c381e82 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 12
 PATCH 0
-PRERELEASE 71
+PRERELEASE 72
 PRERELEASE_PATCH 0
\ No newline at end of file