[cfe] Report error on spreading a potentially nullable value

Closes #43495.

Bug: https://github.com/dart-lang/sdk/issues/43495
Change-Id: Ic3ed18b8242a69dd35cf2e862d00e129274f46b5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/164561
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
diff --git a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
index 52fae8a..878aad2 100644
--- a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
@@ -1382,8 +1382,7 @@
           spreadType, spreadTypeBound, element.isNullAware);
       if (typeChecksNeeded) {
         if (spreadElementType == null) {
-          if (inferrer.coreTypes
-                  .isNull(inferrer.resolveTypeParameter(spreadType)) &&
+          if (inferrer.coreTypes.isNull(spreadTypeBound) &&
               !element.isNullAware) {
             replacement = inferrer.helper.buildProblem(
                 templateNonNullAwareSpreadIsNull.withArguments(
@@ -1391,6 +1390,15 @@
                 element.expression.fileOffset,
                 1);
           } else {
+            if (inferrer.isNonNullableByDefault &&
+                spreadType.isPotentiallyNullable &&
+                spreadType is! DynamicType &&
+                spreadType != inferrer.coreTypes.nullType &&
+                !element.isNullAware) {
+              replacement = inferrer.helper.buildProblem(
+                  messageNullableSpreadError, element.expression.fileOffset, 1);
+            }
+
             replacement = inferrer.helper.buildProblem(
                 templateSpreadTypeMismatch.withArguments(
                     spreadType, inferrer.isNonNullableByDefault),
@@ -1406,7 +1414,8 @@
                     inferrer.isNonNullableByDefault),
                 element.expression.fileOffset,
                 1);
-          } else if (inferrer.isNonNullableByDefault &&
+          }
+          if (inferrer.isNonNullableByDefault &&
               spreadType.isPotentiallyNullable &&
               spreadType is! DynamicType &&
               spreadType != inferrer.coreTypes.nullType &&
@@ -1815,8 +1824,7 @@
       MapEntry replacement = entry;
       if (typeChecksNeeded) {
         if (actualKeyType == null) {
-          if (inferrer.coreTypes
-                  .isNull(inferrer.resolveTypeParameter(spreadType)) &&
+          if (inferrer.coreTypes.isNull(spreadTypeBound) &&
               !entry.isNullAware) {
             replacement = new MapEntry(
                 inferrer.helper.buildProblem(
@@ -1827,6 +1835,18 @@
                 new NullLiteral())
               ..fileOffset = entry.fileOffset;
           } else if (actualElementType != null) {
+            if (inferrer.isNonNullableByDefault &&
+                spreadType.isPotentiallyNullable &&
+                spreadType is! DynamicType &&
+                spreadType != inferrer.coreTypes.nullType &&
+                !entry.isNullAware) {
+              replacement = new SpreadMapEntry(
+                  inferrer.helper.buildProblem(messageNullableSpreadError,
+                      entry.expression.fileOffset, 1),
+                  false)
+                ..fileOffset = entry.fileOffset;
+            }
+
             // Don't report the error here, it might be an ambiguous Set.  The
             // error is reported in checkMapEntry if it's disambiguated as map.
             iterableSpreadType = spreadType;
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect
index 0d7d725..c66b4918 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect
@@ -22,6 +22,10 @@
 //     if (i > 0) ...y, // error
 //                   ^
 //
+// pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     if (i > 0) ...x, // error
+//                   ^
+//
 // 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
 //                   ^
@@ -30,6 +34,10 @@
 //     if (i > 0) ...y, // error
 //                   ^
 //
+// pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     if (i > 0) ...x, // error
+//                   ^
+//
 // 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
 //                   ^
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 ef9e80c..32a8e8e 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect
@@ -22,6 +22,10 @@
 //     if (i > 0) ...y, // error
 //                   ^
 //
+// pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     if (i > 0) ...x, // error
+//                   ^
+//
 // 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
 //                   ^
@@ -30,6 +34,10 @@
 //     if (i > 0) ...y, // error
 //                   ^
 //
+// pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     if (i > 0) ...x, // error
+//                   ^
+//
 // 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
 //                   ^
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect
index 0d7d725..c66b4918 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect
@@ -22,6 +22,10 @@
 //     if (i > 0) ...y, // error
 //                   ^
 //
+// pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     if (i > 0) ...x, // error
+//                   ^
+//
 // 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
 //                   ^
@@ -30,6 +34,10 @@
 //     if (i > 0) ...y, // error
 //                   ^
 //
+// pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     if (i > 0) ...x, // error
+//                   ^
+//
 // 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
 //                   ^
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 ef9e80c..32a8e8e 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect
@@ -22,6 +22,10 @@
 //     if (i > 0) ...y, // error
 //                   ^
 //
+// pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     if (i > 0) ...x, // error
+//                   ^
+//
 // 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
 //                   ^
@@ -30,6 +34,10 @@
 //     if (i > 0) ...y, // error
 //                   ^
 //
+// pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     if (i > 0) ...x, // error
+//                   ^
+//
 // 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
 //                   ^
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart b/pkg/front_end/testcases/nnbd/issue43495.dart
new file mode 100644
index 0000000..993306d
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart
@@ -0,0 +1,88 @@
+// 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.
+
+foo(bool condition, Iterable<dynamic> iterable, List<int>? a, Set<int>? b,
+    Iterable<int>? c, Map<int, int>? d) {
+  return [
+    {...a}, // Error.
+    {...b}, // Error.
+    {...c}, // Error.
+    {...d}, // Error.
+    <int, int>{...a}, // Error.
+    <int>{...d}, // Error.
+    {if (condition) ...a}, // Error.
+    {if (condition) ...b}, // Error.
+    {if (condition) ...c}, // Error.
+    {if (condition) ...d}, // Error.
+    {for (dynamic e in iterable) ...a}, // Error.
+    {for (dynamic e in iterable) ...b}, // Error.
+    {for (dynamic e in iterable) ...c}, // Error.
+    {for (dynamic e in iterable) ...d}, // Error.
+    {for (int i = 0; i < 42; ++i) ...a}, // Error.
+    {for (int i = 0; i < 42; ++i) ...b}, // Error.
+    {for (int i = 0; i < 42; ++i) ...c}, // Error.
+    {for (int i = 0; i < 42; ++i) ...d}, // Error.
+
+    {...?a}, // Ok.
+    {...?b}, // Ok.
+    {...?c}, // Ok.
+    {...?d}, // Ok.
+    {if (condition) ...?a}, // Ok.
+    {if (condition) ...?b}, // Ok.
+    {if (condition) ...?c}, // Ok.
+    {if (condition) ...?d}, // Ok.
+    {for (dynamic e in iterable) ...?a}, // Ok.
+    {for (dynamic e in iterable) ...?b}, // Ok.
+    {for (dynamic e in iterable) ...?c}, // Ok.
+    {for (dynamic e in iterable) ...?d}, // Ok.
+    {for (int i = 0; i < 42; ++i) ...?a}, // Ok.
+    {for (int i = 0; i < 42; ++i) ...?b}, // Ok.
+    {for (int i = 0; i < 42; ++i) ...?c}, // Ok.
+    {for (int i = 0; i < 42; ++i) ...?d}, // Ok.
+  ];
+}
+
+bar<X extends List<int>?, Y extends Set<int>?, Z extends Iterable<int>?,
+        W extends Map<int, int>?>(
+    bool condition, Iterable<dynamic> iterable, X x, Y y, Z z, W w) {
+  return [
+    {...x}, // Error.
+    {...y}, // Error.
+    {...z}, // Error.
+    {...w}, // Error.
+    <int, int>{...x}, // Error.
+    <int>{...w}, // Error.
+    {if (condition) ...x}, // Error.
+    {if (condition) ...y}, // Error.
+    {if (condition) ...z}, // Error.
+    {if (condition) ...w}, // Error.
+    {for (dynamic e in iterable) ...x}, // Error.
+    {for (dynamic e in iterable) ...y}, // Error.
+    {for (dynamic e in iterable) ...z}, // Error.
+    {for (dynamic e in iterable) ...w}, // Error.
+    {for (int i = 0; i < 42; ++i) ...x}, // Error.
+    {for (int i = 0; i < 42; ++i) ...y}, // Error.
+    {for (int i = 0; i < 42; ++i) ...z}, // Error.
+    {for (int i = 0; i < 42; ++i) ...w}, // Error.
+
+    {...?x}, // Ok.
+    {...?y}, // Ok.
+    {...?z}, // Ok.
+    {...?w}, // Ok.
+    {if (condition) ...?x}, // Ok.
+    {if (condition) ...?y}, // Ok.
+    {if (condition) ...?z}, // Ok.
+    {if (condition) ...?w}, // Ok.
+    {for (dynamic e in iterable) ...?x}, // Ok.
+    {for (dynamic e in iterable) ...?y}, // Ok.
+    {for (dynamic e in iterable) ...?z}, // Ok.
+    {for (dynamic e in iterable) ...?w}, // Ok.
+    {for (int i = 0; i < 42; ++i) ...?x}, // Ok.
+    {for (int i = 0; i < 42; ++i) ...?y}, // Ok.
+    {for (int i = 0; i < 42; ++i) ...?z}, // Ok.
+    {for (int i = 0; i < 42; ++i) ...?w}, // Ok.
+  ];
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.outline.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.outline.expect
new file mode 100644
index 0000000..89dfdbb
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.outline.expect
@@ -0,0 +1,10 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method foo(core::bool condition, core::Iterable<dynamic> iterable, core::List<core::int>? a, core::Set<core::int>? b, core::Iterable<core::int>? c, core::Map<core::int, core::int>? d) → dynamic
+  ;
+static method bar<X extends core::List<core::int>? = core::List<core::int>?, Y extends core::Set<core::int>? = core::Set<core::int>?, Z extends core::Iterable<core::int>? = core::Iterable<core::int>?, W extends core::Map<core::int, core::int>? = core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic
+  ;
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.strong.expect
new file mode 100644
index 0000000..e89957c
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.strong.expect
@@ -0,0 +1,725 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:8:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...a}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:9:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...b}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:10:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...c}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:11:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...d}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:12:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int, int>{...a}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:12:19: Error: Unexpected type 'List<int>?' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//     <int, int>{...a}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int>{...d}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//     <int>{...d}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:14:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...a}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:15:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...b}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:16:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...c}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...d}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:18:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...a}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:19:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...b}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:20:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...c}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...d}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:22:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...a}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:23:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...b}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:24:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...c}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...d}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:50:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...x}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:51:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...y}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:52:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...z}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:53:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...w}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int, int>{...x}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:54:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
+//     <int, int>{...x}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int>{...w}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread.  Expected 'dynamic' or an Iterable.
+//     <int>{...w}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:56:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...x}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:57:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...y}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:58:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...z}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...w}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:60:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...x}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:61:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...y}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:62:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...z}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...w}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:64:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...x}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:65:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...y}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:66:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...z}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...w}, // Error.
+//                                      ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method foo(core::bool condition, core::Iterable<dynamic> iterable, core::List<core::int>? a, core::Set<core::int>? b, core::Iterable<core::int>? c, core::Map<core::int, core::int>? d) → dynamic {
+  return <core::Object>[ block {
+    final core::Set<core::int> #t1 = col::LinkedHashSet::•<core::int>();
+    for (final dynamic #t2 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:8:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...a}, // Error.
+        ^") {
+      final core::int #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int;
+      #t1.{core::Set::add}(#t3);
+    }
+  } =>#t1, block {
+    final core::Set<core::int> #t4 = col::LinkedHashSet::•<core::int>();
+    for (final dynamic #t5 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:9:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...b}, // Error.
+        ^") {
+      final core::int #t6 = #t5 as{TypeError,ForNonNullableByDefault} core::int;
+      #t4.{core::Set::add}(#t6);
+    }
+  } =>#t4, block {
+    final core::Set<core::int> #t7 = col::LinkedHashSet::•<core::int>();
+    for (final dynamic #t8 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:10:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...c}, // Error.
+        ^") {
+      final core::int #t9 = #t8 as{TypeError,ForNonNullableByDefault} core::int;
+      #t7.{core::Set::add}(#t9);
+    }
+  } =>#t7, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:11:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...d}, // Error.
+        ^": null}, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:12:19: Error: Unexpected type 'List<int>?' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+    <int, int>{...a}, // Error.
+                  ^": null}, let final core::Set<core::int> #t10 = col::LinkedHashSet::•<core::int>() in let final dynamic #t11 = #t10.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+    <int>{...d}, // Error.
+             ^") in #t10, block {
+    final core::Set<core::int> #t12 = col::LinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t13 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:14:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...a}, // Error.
+                       ^") {
+        final core::int #t14 = #t13 as{TypeError,ForNonNullableByDefault} core::int;
+        #t12.{core::Set::add}(#t14);
+      }
+  } =>#t12, block {
+    final core::Set<core::int> #t15 = col::LinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t16 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:15:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...b}, // Error.
+                       ^") {
+        final core::int #t17 = #t16 as{TypeError,ForNonNullableByDefault} core::int;
+        #t15.{core::Set::add}(#t17);
+      }
+  } =>#t15, block {
+    final core::Set<core::int> #t18 = col::LinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t19 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:16:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...c}, // Error.
+                       ^") {
+        final core::int #t20 = #t19 as{TypeError,ForNonNullableByDefault} core::int;
+        #t18.{core::Set::add}(#t20);
+      }
+  } =>#t18, block {
+    final core::Map<core::int, core::int> #t21 = <core::int, core::int>{};
+    if(condition)
+      #t21.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...d}, // Error.
+                       ^", null);
+  } =>#t21, block {
+    final core::Set<core::int> #t22 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable)
+      for (final dynamic #t23 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:18:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...a}, // Error.
+                                    ^") {
+        final core::int #t24 = #t23 as{TypeError,ForNonNullableByDefault} core::int;
+        #t22.{core::Set::add}(#t24);
+      }
+  } =>#t22, block {
+    final core::Set<core::int> #t25 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable)
+      for (final dynamic #t26 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:19:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...b}, // Error.
+                                    ^") {
+        final core::int #t27 = #t26 as{TypeError,ForNonNullableByDefault} core::int;
+        #t25.{core::Set::add}(#t27);
+      }
+  } =>#t25, block {
+    final core::Set<core::int> #t28 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable)
+      for (final dynamic #t29 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:20:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...c}, // Error.
+                                    ^") {
+        final core::int #t30 = #t29 as{TypeError,ForNonNullableByDefault} core::int;
+        #t28.{core::Set::add}(#t30);
+      }
+  } =>#t28, block {
+    final core::Map<core::int, core::int> #t31 = <core::int, core::int>{};
+    for (dynamic e in iterable)
+      #t31.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...d}, // Error.
+                                    ^", null);
+  } =>#t31, block {
+    final core::Set<core::int> #t32 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t33 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:22:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...a}, // Error.
+                                     ^") {
+        final core::int #t34 = #t33 as{TypeError,ForNonNullableByDefault} core::int;
+        #t32.{core::Set::add}(#t34);
+      }
+  } =>#t32, block {
+    final core::Set<core::int> #t35 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t36 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:23:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...b}, // Error.
+                                     ^") {
+        final core::int #t37 = #t36 as{TypeError,ForNonNullableByDefault} core::int;
+        #t35.{core::Set::add}(#t37);
+      }
+  } =>#t35, block {
+    final core::Set<core::int> #t38 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t39 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:24:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...c}, // Error.
+                                     ^") {
+        final core::int #t40 = #t39 as{TypeError,ForNonNullableByDefault} core::int;
+        #t38.{core::Set::add}(#t40);
+      }
+  } =>#t38, block {
+    final core::Map<core::int, core::int> #t41 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      #t41.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...d}, // Error.
+                                     ^", null);
+  } =>#t41, block {
+    final core::Set<core::int> #t42 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t43 = a;
+    if(!#t43.{core::Object::==}(null))
+      for (final dynamic #t44 in #t43{core::Iterable<dynamic>}) {
+        final core::int #t45 = #t44 as{TypeError,ForNonNullableByDefault} core::int;
+        #t42.{core::Set::add}(#t45);
+      }
+  } =>#t42, block {
+    final core::Set<core::int> #t46 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t47 = b;
+    if(!#t47.{core::Object::==}(null))
+      for (final dynamic #t48 in #t47{core::Iterable<dynamic>}) {
+        final core::int #t49 = #t48 as{TypeError,ForNonNullableByDefault} core::int;
+        #t46.{core::Set::add}(#t49);
+      }
+  } =>#t46, block {
+    final core::Set<core::int> #t50 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t51 = c;
+    if(!#t51.{core::Object::==}(null))
+      for (final dynamic #t52 in #t51{core::Iterable<dynamic>}) {
+        final core::int #t53 = #t52 as{TypeError,ForNonNullableByDefault} core::int;
+        #t50.{core::Set::add}(#t53);
+      }
+  } =>#t50, block {
+    final core::Map<core::int, core::int> #t54 = <core::int, core::int>{};
+    final core::Map<core::int, core::int>? #t55 = d;
+    if(!#t55.{core::Object::==}(null))
+      for (final core::MapEntry<core::int, core::int> #t56 in #t55{core::Map<core::int, core::int>}.{core::Map::entries})
+        #t54.{core::Map::[]=}(#t56.{core::MapEntry::key}, #t56.{core::MapEntry::value});
+  } =>#t54, block {
+    final core::Set<core::int> #t57 = col::LinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t58 = a;
+      if(!#t58.{core::Object::==}(null))
+        for (final dynamic #t59 in #t58{core::Iterable<dynamic>}) {
+          final core::int #t60 = #t59 as{TypeError,ForNonNullableByDefault} core::int;
+          #t57.{core::Set::add}(#t60);
+        }
+    }
+  } =>#t57, block {
+    final core::Set<core::int> #t61 = col::LinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t62 = b;
+      if(!#t62.{core::Object::==}(null))
+        for (final dynamic #t63 in #t62{core::Iterable<dynamic>}) {
+          final core::int #t64 = #t63 as{TypeError,ForNonNullableByDefault} core::int;
+          #t61.{core::Set::add}(#t64);
+        }
+    }
+  } =>#t61, block {
+    final core::Set<core::int> #t65 = col::LinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t66 = c;
+      if(!#t66.{core::Object::==}(null))
+        for (final dynamic #t67 in #t66{core::Iterable<dynamic>}) {
+          final core::int #t68 = #t67 as{TypeError,ForNonNullableByDefault} core::int;
+          #t65.{core::Set::add}(#t68);
+        }
+    }
+  } =>#t65, block {
+    final core::Map<core::int, core::int> #t69 = <core::int, core::int>{};
+    if(condition) {
+      final core::Map<core::int, core::int>? #t70 = d;
+      if(!#t70.{core::Object::==}(null))
+        for (final core::MapEntry<core::int, core::int> #t71 in #t70{core::Map<core::int, core::int>}.{core::Map::entries})
+          #t69.{core::Map::[]=}(#t71.{core::MapEntry::key}, #t71.{core::MapEntry::value});
+    }
+  } =>#t69, block {
+    final core::Set<core::int> #t72 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable) {
+      final core::Iterable<dynamic>? #t73 = a;
+      if(!#t73.{core::Object::==}(null))
+        for (final dynamic #t74 in #t73{core::Iterable<dynamic>}) {
+          final core::int #t75 = #t74 as{TypeError,ForNonNullableByDefault} core::int;
+          #t72.{core::Set::add}(#t75);
+        }
+    }
+  } =>#t72, block {
+    final core::Set<core::int> #t76 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable) {
+      final core::Iterable<dynamic>? #t77 = b;
+      if(!#t77.{core::Object::==}(null))
+        for (final dynamic #t78 in #t77{core::Iterable<dynamic>}) {
+          final core::int #t79 = #t78 as{TypeError,ForNonNullableByDefault} core::int;
+          #t76.{core::Set::add}(#t79);
+        }
+    }
+  } =>#t76, block {
+    final core::Set<core::int> #t80 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable) {
+      final core::Iterable<dynamic>? #t81 = c;
+      if(!#t81.{core::Object::==}(null))
+        for (final dynamic #t82 in #t81{core::Iterable<dynamic>}) {
+          final core::int #t83 = #t82 as{TypeError,ForNonNullableByDefault} core::int;
+          #t80.{core::Set::add}(#t83);
+        }
+    }
+  } =>#t80, block {
+    final core::Map<core::int, core::int> #t84 = <core::int, core::int>{};
+    for (dynamic e in iterable) {
+      final core::Map<core::int, core::int>? #t85 = d;
+      if(!#t85.{core::Object::==}(null))
+        for (final core::MapEntry<core::int, core::int> #t86 in #t85{core::Map<core::int, core::int>}.{core::Map::entries})
+          #t84.{core::Map::[]=}(#t86.{core::MapEntry::key}, #t86.{core::MapEntry::value});
+    }
+  } =>#t84, block {
+    final core::Set<core::int> #t87 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t88 = a;
+      if(!#t88.{core::Object::==}(null))
+        for (final dynamic #t89 in #t88{core::Iterable<dynamic>}) {
+          final core::int #t90 = #t89 as{TypeError,ForNonNullableByDefault} core::int;
+          #t87.{core::Set::add}(#t90);
+        }
+    }
+  } =>#t87, block {
+    final core::Set<core::int> #t91 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t92 = b;
+      if(!#t92.{core::Object::==}(null))
+        for (final dynamic #t93 in #t92{core::Iterable<dynamic>}) {
+          final core::int #t94 = #t93 as{TypeError,ForNonNullableByDefault} core::int;
+          #t91.{core::Set::add}(#t94);
+        }
+    }
+  } =>#t91, block {
+    final core::Set<core::int> #t95 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t96 = c;
+      if(!#t96.{core::Object::==}(null))
+        for (final dynamic #t97 in #t96{core::Iterable<dynamic>}) {
+          final core::int #t98 = #t97 as{TypeError,ForNonNullableByDefault} core::int;
+          #t95.{core::Set::add}(#t98);
+        }
+    }
+  } =>#t95, block {
+    final core::Map<core::int, core::int> #t99 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Map<core::int, core::int>? #t100 = d;
+      if(!#t100.{core::Object::==}(null))
+        for (final core::MapEntry<core::int, core::int> #t101 in #t100{core::Map<core::int, core::int>}.{core::Map::entries})
+          #t99.{core::Map::[]=}(#t101.{core::MapEntry::key}, #t101.{core::MapEntry::value});
+    }
+  } =>#t99];
+}
+static method bar<X extends core::List<core::int>? = core::List<core::int>?, Y extends core::Set<core::int>? = core::Set<core::int>?, Z extends core::Iterable<core::int>? = core::Iterable<core::int>?, W extends core::Map<core::int, core::int>? = core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic {
+  return <core::Object>[ block {
+    final core::Set<core::int> #t102 = col::LinkedHashSet::•<core::int>();
+    for (final dynamic #t103 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:50:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...x}, // Error.
+        ^") {
+      final core::int #t104 = #t103 as{TypeError,ForNonNullableByDefault} core::int;
+      #t102.{core::Set::add}(#t104);
+    }
+  } =>#t102, block {
+    final core::Set<core::int> #t105 = col::LinkedHashSet::•<core::int>();
+    for (final dynamic #t106 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:51:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...y}, // Error.
+        ^") {
+      final core::int #t107 = #t106 as{TypeError,ForNonNullableByDefault} core::int;
+      #t105.{core::Set::add}(#t107);
+    }
+  } =>#t105, block {
+    final core::Set<core::int> #t108 = col::LinkedHashSet::•<core::int>();
+    for (final dynamic #t109 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:52:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...z}, // Error.
+        ^") {
+      final core::int #t110 = #t109 as{TypeError,ForNonNullableByDefault} core::int;
+      #t108.{core::Set::add}(#t110);
+    }
+  } =>#t108, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:53:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...w}, // Error.
+        ^": null}, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:54:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
+    <int, int>{...x}, // Error.
+                  ^": null}, let final core::Set<core::int> #t111 = col::LinkedHashSet::•<core::int>() in let final dynamic #t112 = #t111.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread.  Expected 'dynamic' or an Iterable.
+    <int>{...w}, // Error.
+             ^") in #t111, block {
+    final core::Set<core::int> #t113 = col::LinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t114 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:56:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...x}, // Error.
+                       ^") {
+        final core::int #t115 = #t114 as{TypeError,ForNonNullableByDefault} core::int;
+        #t113.{core::Set::add}(#t115);
+      }
+  } =>#t113, block {
+    final core::Set<core::int> #t116 = col::LinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t117 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:57:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...y}, // Error.
+                       ^") {
+        final core::int #t118 = #t117 as{TypeError,ForNonNullableByDefault} core::int;
+        #t116.{core::Set::add}(#t118);
+      }
+  } =>#t116, block {
+    final core::Set<core::int> #t119 = col::LinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t120 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:58:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...z}, // Error.
+                       ^") {
+        final core::int #t121 = #t120 as{TypeError,ForNonNullableByDefault} core::int;
+        #t119.{core::Set::add}(#t121);
+      }
+  } =>#t119, block {
+    final core::Map<core::int, core::int> #t122 = <core::int, core::int>{};
+    if(condition)
+      #t122.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...w}, // Error.
+                       ^", null);
+  } =>#t122, block {
+    final core::Set<core::int> #t123 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable)
+      for (final dynamic #t124 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:60:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...x}, // Error.
+                                    ^") {
+        final core::int #t125 = #t124 as{TypeError,ForNonNullableByDefault} core::int;
+        #t123.{core::Set::add}(#t125);
+      }
+  } =>#t123, block {
+    final core::Set<core::int> #t126 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable)
+      for (final dynamic #t127 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:61:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...y}, // Error.
+                                    ^") {
+        final core::int #t128 = #t127 as{TypeError,ForNonNullableByDefault} core::int;
+        #t126.{core::Set::add}(#t128);
+      }
+  } =>#t126, block {
+    final core::Set<core::int> #t129 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable)
+      for (final dynamic #t130 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:62:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...z}, // Error.
+                                    ^") {
+        final core::int #t131 = #t130 as{TypeError,ForNonNullableByDefault} core::int;
+        #t129.{core::Set::add}(#t131);
+      }
+  } =>#t129, block {
+    final core::Map<core::int, core::int> #t132 = <core::int, core::int>{};
+    for (dynamic e in iterable)
+      #t132.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...w}, // Error.
+                                    ^", null);
+  } =>#t132, block {
+    final core::Set<core::int> #t133 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t134 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:64:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...x}, // Error.
+                                     ^") {
+        final core::int #t135 = #t134 as{TypeError,ForNonNullableByDefault} core::int;
+        #t133.{core::Set::add}(#t135);
+      }
+  } =>#t133, block {
+    final core::Set<core::int> #t136 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t137 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:65:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...y}, // Error.
+                                     ^") {
+        final core::int #t138 = #t137 as{TypeError,ForNonNullableByDefault} core::int;
+        #t136.{core::Set::add}(#t138);
+      }
+  } =>#t136, block {
+    final core::Set<core::int> #t139 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t140 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:66:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...z}, // Error.
+                                     ^") {
+        final core::int #t141 = #t140 as{TypeError,ForNonNullableByDefault} core::int;
+        #t139.{core::Set::add}(#t141);
+      }
+  } =>#t139, block {
+    final core::Map<core::int, core::int> #t142 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      #t142.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...w}, // Error.
+                                     ^", null);
+  } =>#t142, block {
+    final core::Set<core::int> #t143 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t144 = x;
+    if(!#t144.{core::Object::==}(null))
+      for (final dynamic #t145 in #t144{core::Iterable<dynamic>}) {
+        final core::int #t146 = #t145 as{TypeError,ForNonNullableByDefault} core::int;
+        #t143.{core::Set::add}(#t146);
+      }
+  } =>#t143, block {
+    final core::Set<core::int> #t147 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t148 = y;
+    if(!#t148.{core::Object::==}(null))
+      for (final dynamic #t149 in #t148{core::Iterable<dynamic>}) {
+        final core::int #t150 = #t149 as{TypeError,ForNonNullableByDefault} core::int;
+        #t147.{core::Set::add}(#t150);
+      }
+  } =>#t147, block {
+    final core::Set<core::int> #t151 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t152 = z;
+    if(!#t152.{core::Object::==}(null))
+      for (final dynamic #t153 in #t152{core::Iterable<dynamic>}) {
+        final core::int #t154 = #t153 as{TypeError,ForNonNullableByDefault} core::int;
+        #t151.{core::Set::add}(#t154);
+      }
+  } =>#t151, block {
+    final core::Map<core::int, core::int> #t155 = <core::int, core::int>{};
+    final core::Map<core::int, core::int>? #t156 = w;
+    if(!#t156.{core::Object::==}(null))
+      for (final core::MapEntry<core::int, core::int> #t157 in #t156{core::Map<core::int, core::int>}.{core::Map::entries})
+        #t155.{core::Map::[]=}(#t157.{core::MapEntry::key}, #t157.{core::MapEntry::value});
+  } =>#t155, block {
+    final core::Set<core::int> #t158 = col::LinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t159 = x;
+      if(!#t159.{core::Object::==}(null))
+        for (final dynamic #t160 in #t159{core::Iterable<dynamic>}) {
+          final core::int #t161 = #t160 as{TypeError,ForNonNullableByDefault} core::int;
+          #t158.{core::Set::add}(#t161);
+        }
+    }
+  } =>#t158, block {
+    final core::Set<core::int> #t162 = col::LinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t163 = y;
+      if(!#t163.{core::Object::==}(null))
+        for (final dynamic #t164 in #t163{core::Iterable<dynamic>}) {
+          final core::int #t165 = #t164 as{TypeError,ForNonNullableByDefault} core::int;
+          #t162.{core::Set::add}(#t165);
+        }
+    }
+  } =>#t162, block {
+    final core::Set<core::int> #t166 = col::LinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t167 = z;
+      if(!#t167.{core::Object::==}(null))
+        for (final dynamic #t168 in #t167{core::Iterable<dynamic>}) {
+          final core::int #t169 = #t168 as{TypeError,ForNonNullableByDefault} core::int;
+          #t166.{core::Set::add}(#t169);
+        }
+    }
+  } =>#t166, block {
+    final core::Map<core::int, core::int> #t170 = <core::int, core::int>{};
+    if(condition) {
+      final core::Map<core::int, core::int>? #t171 = w;
+      if(!#t171.{core::Object::==}(null))
+        for (final core::MapEntry<core::int, core::int> #t172 in #t171{core::Map<core::int, core::int>}.{core::Map::entries})
+          #t170.{core::Map::[]=}(#t172.{core::MapEntry::key}, #t172.{core::MapEntry::value});
+    }
+  } =>#t170, block {
+    final core::Set<core::int> #t173 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable) {
+      final core::Iterable<dynamic>? #t174 = x;
+      if(!#t174.{core::Object::==}(null))
+        for (final dynamic #t175 in #t174{core::Iterable<dynamic>}) {
+          final core::int #t176 = #t175 as{TypeError,ForNonNullableByDefault} core::int;
+          #t173.{core::Set::add}(#t176);
+        }
+    }
+  } =>#t173, block {
+    final core::Set<core::int> #t177 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable) {
+      final core::Iterable<dynamic>? #t178 = y;
+      if(!#t178.{core::Object::==}(null))
+        for (final dynamic #t179 in #t178{core::Iterable<dynamic>}) {
+          final core::int #t180 = #t179 as{TypeError,ForNonNullableByDefault} core::int;
+          #t177.{core::Set::add}(#t180);
+        }
+    }
+  } =>#t177, block {
+    final core::Set<core::int> #t181 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable) {
+      final core::Iterable<dynamic>? #t182 = z;
+      if(!#t182.{core::Object::==}(null))
+        for (final dynamic #t183 in #t182{core::Iterable<dynamic>}) {
+          final core::int #t184 = #t183 as{TypeError,ForNonNullableByDefault} core::int;
+          #t181.{core::Set::add}(#t184);
+        }
+    }
+  } =>#t181, block {
+    final core::Map<core::int, core::int> #t185 = <core::int, core::int>{};
+    for (dynamic e in iterable) {
+      final core::Map<core::int, core::int>? #t186 = w;
+      if(!#t186.{core::Object::==}(null))
+        for (final core::MapEntry<core::int, core::int> #t187 in #t186{core::Map<core::int, core::int>}.{core::Map::entries})
+          #t185.{core::Map::[]=}(#t187.{core::MapEntry::key}, #t187.{core::MapEntry::value});
+    }
+  } =>#t185, block {
+    final core::Set<core::int> #t188 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t189 = x;
+      if(!#t189.{core::Object::==}(null))
+        for (final dynamic #t190 in #t189{core::Iterable<dynamic>}) {
+          final core::int #t191 = #t190 as{TypeError,ForNonNullableByDefault} core::int;
+          #t188.{core::Set::add}(#t191);
+        }
+    }
+  } =>#t188, block {
+    final core::Set<core::int> #t192 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t193 = y;
+      if(!#t193.{core::Object::==}(null))
+        for (final dynamic #t194 in #t193{core::Iterable<dynamic>}) {
+          final core::int #t195 = #t194 as{TypeError,ForNonNullableByDefault} core::int;
+          #t192.{core::Set::add}(#t195);
+        }
+    }
+  } =>#t192, block {
+    final core::Set<core::int> #t196 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t197 = z;
+      if(!#t197.{core::Object::==}(null))
+        for (final dynamic #t198 in #t197{core::Iterable<dynamic>}) {
+          final core::int #t199 = #t198 as{TypeError,ForNonNullableByDefault} core::int;
+          #t196.{core::Set::add}(#t199);
+        }
+    }
+  } =>#t196, block {
+    final core::Map<core::int, core::int> #t200 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Map<core::int, core::int>? #t201 = w;
+      if(!#t201.{core::Object::==}(null))
+        for (final core::MapEntry<core::int, core::int> #t202 in #t201{core::Map<core::int, core::int>}.{core::Map::entries})
+          #t200.{core::Map::[]=}(#t202.{core::MapEntry::key}, #t202.{core::MapEntry::value});
+    }
+  } =>#t200];
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.strong.transformed.expect
new file mode 100644
index 0000000..84cd03a
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.strong.transformed.expect
@@ -0,0 +1,965 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:8:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...a}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:9:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...b}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:10:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...c}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:11:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...d}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:12:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int, int>{...a}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:12:19: Error: Unexpected type 'List<int>?' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//     <int, int>{...a}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int>{...d}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//     <int>{...d}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:14:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...a}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:15:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...b}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:16:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...c}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...d}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:18:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...a}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:19:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...b}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:20:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...c}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...d}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:22:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...a}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:23:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...b}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:24:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...c}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...d}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:50:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...x}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:51:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...y}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:52:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...z}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:53:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...w}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int, int>{...x}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:54:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
+//     <int, int>{...x}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int>{...w}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread.  Expected 'dynamic' or an Iterable.
+//     <int>{...w}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:56:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...x}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:57:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...y}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:58:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...z}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...w}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:60:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...x}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:61:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...y}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:62:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...z}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...w}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:64:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...x}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:65:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...y}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:66:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...z}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...w}, // Error.
+//                                      ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method foo(core::bool condition, core::Iterable<dynamic> iterable, core::List<core::int>? a, core::Set<core::int>? b, core::Iterable<core::int>? c, core::Map<core::int, core::int>? d) → dynamic {
+  return <core::Object>[ block {
+    final core::Set<core::int> #t1 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (final dynamic #t2 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:8:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...a}, // Error.
+        ^") {
+      final core::int #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int;
+      #t1.{core::Set::add}(#t3);
+    }
+  } =>#t1, block {
+    final core::Set<core::int> #t4 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (final dynamic #t5 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:9:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...b}, // Error.
+        ^") {
+      final core::int #t6 = #t5 as{TypeError,ForNonNullableByDefault} core::int;
+      #t4.{core::Set::add}(#t6);
+    }
+  } =>#t4, block {
+    final core::Set<core::int> #t7 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (final dynamic #t8 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:10:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...c}, // Error.
+        ^") {
+      final core::int #t9 = #t8 as{TypeError,ForNonNullableByDefault} core::int;
+      #t7.{core::Set::add}(#t9);
+    }
+  } =>#t7, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:11:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...d}, // Error.
+        ^": null}, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:12:19: Error: Unexpected type 'List<int>?' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+    <int, int>{...a}, // Error.
+                  ^": null}, let final core::Set<core::int> #t10 = new col::_CompactLinkedHashSet::•<core::int>() in let final core::bool #t11 = #t10.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+    <int>{...d}, // Error.
+             ^") in #t10, block {
+    final core::Set<core::int> #t12 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t13 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:14:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...a}, // Error.
+                       ^") {
+        final core::int #t14 = #t13 as{TypeError,ForNonNullableByDefault} core::int;
+        #t12.{core::Set::add}(#t14);
+      }
+  } =>#t12, block {
+    final core::Set<core::int> #t15 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t16 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:15:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...b}, // Error.
+                       ^") {
+        final core::int #t17 = #t16 as{TypeError,ForNonNullableByDefault} core::int;
+        #t15.{core::Set::add}(#t17);
+      }
+  } =>#t15, block {
+    final core::Set<core::int> #t18 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t19 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:16:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...c}, // Error.
+                       ^") {
+        final core::int #t20 = #t19 as{TypeError,ForNonNullableByDefault} core::int;
+        #t18.{core::Set::add}(#t20);
+      }
+  } =>#t18, block {
+    final core::Map<core::int, core::int> #t21 = <core::int, core::int>{};
+    if(condition)
+      #t21.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...d}, // Error.
+                       ^", null);
+  } =>#t21, block {
+    final core::Set<core::int> #t22 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        for (final dynamic #t23 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:18:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...a}, // Error.
+                                    ^") {
+          final core::int #t24 = #t23 as{TypeError,ForNonNullableByDefault} core::int;
+          #t22.{core::Set::add}(#t24);
+        }
+      }
+    }
+  } =>#t22, block {
+    final core::Set<core::int> #t25 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        for (final dynamic #t26 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:19:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...b}, // Error.
+                                    ^") {
+          final core::int #t27 = #t26 as{TypeError,ForNonNullableByDefault} core::int;
+          #t25.{core::Set::add}(#t27);
+        }
+      }
+    }
+  } =>#t25, block {
+    final core::Set<core::int> #t28 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        for (final dynamic #t29 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:20:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...c}, // Error.
+                                    ^") {
+          final core::int #t30 = #t29 as{TypeError,ForNonNullableByDefault} core::int;
+          #t28.{core::Set::add}(#t30);
+        }
+      }
+    }
+  } =>#t28, block {
+    final core::Map<core::int, core::int> #t31 = <core::int, core::int>{};
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        #t31.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...d}, // Error.
+                                    ^", null);
+      }
+    }
+  } =>#t31, block {
+    final core::Set<core::int> #t32 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t33 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:22:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...a}, // Error.
+                                     ^") {
+        final core::int #t34 = #t33 as{TypeError,ForNonNullableByDefault} core::int;
+        #t32.{core::Set::add}(#t34);
+      }
+  } =>#t32, block {
+    final core::Set<core::int> #t35 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t36 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:23:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...b}, // Error.
+                                     ^") {
+        final core::int #t37 = #t36 as{TypeError,ForNonNullableByDefault} core::int;
+        #t35.{core::Set::add}(#t37);
+      }
+  } =>#t35, block {
+    final core::Set<core::int> #t38 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t39 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:24:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...c}, // Error.
+                                     ^") {
+        final core::int #t40 = #t39 as{TypeError,ForNonNullableByDefault} core::int;
+        #t38.{core::Set::add}(#t40);
+      }
+  } =>#t38, block {
+    final core::Map<core::int, core::int> #t41 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      #t41.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...d}, // Error.
+                                     ^", null);
+  } =>#t41, block {
+    final core::Set<core::int> #t42 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t43 = a;
+    if(!#t43.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t43{core::Iterable<dynamic>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t44 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int #t45 = #t44 as{TypeError,ForNonNullableByDefault} core::int;
+          #t42.{core::Set::add}(#t45);
+        }
+      }
+    }
+  } =>#t42, block {
+    final core::Set<core::int> #t46 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t47 = b;
+    if(!#t47.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t47{core::Iterable<dynamic>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t48 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int #t49 = #t48 as{TypeError,ForNonNullableByDefault} core::int;
+          #t46.{core::Set::add}(#t49);
+        }
+      }
+    }
+  } =>#t46, block {
+    final core::Set<core::int> #t50 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t51 = c;
+    if(!#t51.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t51{core::Iterable<dynamic>}.{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,ForNonNullableByDefault} core::int;
+          #t50.{core::Set::add}(#t53);
+        }
+      }
+    }
+  } =>#t50, block {
+    final core::Map<core::int, core::int> #t54 = <core::int, core::int>{};
+    final core::Map<core::int, core::int>? #t55 = d;
+    if(!#t55.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t55{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> #t56 = :sync-for-iterator.{core::Iterator::current};
+        #t54.{core::Map::[]=}(#t56.{core::MapEntry::key}, #t56.{core::MapEntry::value});
+      }
+    }
+  } =>#t54, block {
+    final core::Set<core::int> #t57 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t58 = a;
+      if(!#t58.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t58{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t59 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t60 = #t59 as{TypeError,ForNonNullableByDefault} core::int;
+            #t57.{core::Set::add}(#t60);
+          }
+        }
+      }
+    }
+  } =>#t57, block {
+    final core::Set<core::int> #t61 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t62 = b;
+      if(!#t62.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t62{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t63 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t64 = #t63 as{TypeError,ForNonNullableByDefault} core::int;
+            #t61.{core::Set::add}(#t64);
+          }
+        }
+      }
+    }
+  } =>#t61, block {
+    final core::Set<core::int> #t65 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t66 = c;
+      if(!#t66.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t66{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t67 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t68 = #t67 as{TypeError,ForNonNullableByDefault} core::int;
+            #t65.{core::Set::add}(#t68);
+          }
+        }
+      }
+    }
+  } =>#t65, block {
+    final core::Map<core::int, core::int> #t69 = <core::int, core::int>{};
+    if(condition) {
+      final core::Map<core::int, core::int>? #t70 = d;
+      if(!#t70.{core::Object::==}(null)) {
+        core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t70{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> #t71 = :sync-for-iterator.{core::Iterator::current};
+          #t69.{core::Map::[]=}(#t71.{core::MapEntry::key}, #t71.{core::MapEntry::value});
+        }
+      }
+    }
+  } =>#t69, block {
+    final core::Set<core::int> #t72 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Iterable<dynamic>? #t73 = a;
+          if(!#t73.{core::Object::==}(null)) {
+            core::Iterator<dynamic> :sync-for-iterator = #t73{core::Iterable<dynamic>}.{core::Iterable::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final dynamic #t74 = :sync-for-iterator.{core::Iterator::current};
+              {
+                final core::int #t75 = #t74 as{TypeError,ForNonNullableByDefault} core::int;
+                #t72.{core::Set::add}(#t75);
+              }
+            }
+          }
+        }
+      }
+    }
+  } =>#t72, block {
+    final core::Set<core::int> #t76 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Iterable<dynamic>? #t77 = b;
+          if(!#t77.{core::Object::==}(null)) {
+            core::Iterator<dynamic> :sync-for-iterator = #t77{core::Iterable<dynamic>}.{core::Iterable::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final dynamic #t78 = :sync-for-iterator.{core::Iterator::current};
+              {
+                final core::int #t79 = #t78 as{TypeError,ForNonNullableByDefault} core::int;
+                #t76.{core::Set::add}(#t79);
+              }
+            }
+          }
+        }
+      }
+    }
+  } =>#t76, block {
+    final core::Set<core::int> #t80 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Iterable<dynamic>? #t81 = c;
+          if(!#t81.{core::Object::==}(null)) {
+            core::Iterator<dynamic> :sync-for-iterator = #t81{core::Iterable<dynamic>}.{core::Iterable::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final dynamic #t82 = :sync-for-iterator.{core::Iterator::current};
+              {
+                final core::int #t83 = #t82 as{TypeError,ForNonNullableByDefault} core::int;
+                #t80.{core::Set::add}(#t83);
+              }
+            }
+          }
+        }
+      }
+    }
+  } =>#t80, block {
+    final core::Map<core::int, core::int> #t84 = <core::int, core::int>{};
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Map<core::int, core::int>? #t85 = d;
+          if(!#t85.{core::Object::==}(null)) {
+            core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t85{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> #t86 = :sync-for-iterator.{core::Iterator::current};
+              #t84.{core::Map::[]=}(#t86.{core::MapEntry::key}, #t86.{core::MapEntry::value});
+            }
+          }
+        }
+      }
+    }
+  } =>#t84, block {
+    final core::Set<core::int> #t87 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t88 = a;
+      if(!#t88.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t88{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t89 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t90 = #t89 as{TypeError,ForNonNullableByDefault} core::int;
+            #t87.{core::Set::add}(#t90);
+          }
+        }
+      }
+    }
+  } =>#t87, block {
+    final core::Set<core::int> #t91 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t92 = b;
+      if(!#t92.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t92{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t93 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t94 = #t93 as{TypeError,ForNonNullableByDefault} core::int;
+            #t91.{core::Set::add}(#t94);
+          }
+        }
+      }
+    }
+  } =>#t91, block {
+    final core::Set<core::int> #t95 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t96 = c;
+      if(!#t96.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t96{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t97 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t98 = #t97 as{TypeError,ForNonNullableByDefault} core::int;
+            #t95.{core::Set::add}(#t98);
+          }
+        }
+      }
+    }
+  } =>#t95, block {
+    final core::Map<core::int, core::int> #t99 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Map<core::int, core::int>? #t100 = d;
+      if(!#t100.{core::Object::==}(null)) {
+        core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t100{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> #t101 = :sync-for-iterator.{core::Iterator::current};
+          #t99.{core::Map::[]=}(#t101.{core::MapEntry::key}, #t101.{core::MapEntry::value});
+        }
+      }
+    }
+  } =>#t99];
+}
+static method bar<X extends core::List<core::int>? = core::List<core::int>?, Y extends core::Set<core::int>? = core::Set<core::int>?, Z extends core::Iterable<core::int>? = core::Iterable<core::int>?, W extends core::Map<core::int, core::int>? = core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic {
+  return <core::Object>[ block {
+    final core::Set<core::int> #t102 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (final dynamic #t103 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:50:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...x}, // Error.
+        ^") {
+      final core::int #t104 = #t103 as{TypeError,ForNonNullableByDefault} core::int;
+      #t102.{core::Set::add}(#t104);
+    }
+  } =>#t102, block {
+    final core::Set<core::int> #t105 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (final dynamic #t106 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:51:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...y}, // Error.
+        ^") {
+      final core::int #t107 = #t106 as{TypeError,ForNonNullableByDefault} core::int;
+      #t105.{core::Set::add}(#t107);
+    }
+  } =>#t105, block {
+    final core::Set<core::int> #t108 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (final dynamic #t109 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:52:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...z}, // Error.
+        ^") {
+      final core::int #t110 = #t109 as{TypeError,ForNonNullableByDefault} core::int;
+      #t108.{core::Set::add}(#t110);
+    }
+  } =>#t108, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:53:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...w}, // Error.
+        ^": null}, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:54:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
+    <int, int>{...x}, // Error.
+                  ^": null}, let final core::Set<core::int> #t111 = new col::_CompactLinkedHashSet::•<core::int>() in let final core::bool #t112 = #t111.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread.  Expected 'dynamic' or an Iterable.
+    <int>{...w}, // Error.
+             ^") in #t111, block {
+    final core::Set<core::int> #t113 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t114 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:56:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...x}, // Error.
+                       ^") {
+        final core::int #t115 = #t114 as{TypeError,ForNonNullableByDefault} core::int;
+        #t113.{core::Set::add}(#t115);
+      }
+  } =>#t113, block {
+    final core::Set<core::int> #t116 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t117 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:57:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...y}, // Error.
+                       ^") {
+        final core::int #t118 = #t117 as{TypeError,ForNonNullableByDefault} core::int;
+        #t116.{core::Set::add}(#t118);
+      }
+  } =>#t116, block {
+    final core::Set<core::int> #t119 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t120 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:58:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...z}, // Error.
+                       ^") {
+        final core::int #t121 = #t120 as{TypeError,ForNonNullableByDefault} core::int;
+        #t119.{core::Set::add}(#t121);
+      }
+  } =>#t119, block {
+    final core::Map<core::int, core::int> #t122 = <core::int, core::int>{};
+    if(condition)
+      #t122.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...w}, // Error.
+                       ^", null);
+  } =>#t122, block {
+    final core::Set<core::int> #t123 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        for (final dynamic #t124 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:60:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...x}, // Error.
+                                    ^") {
+          final core::int #t125 = #t124 as{TypeError,ForNonNullableByDefault} core::int;
+          #t123.{core::Set::add}(#t125);
+        }
+      }
+    }
+  } =>#t123, block {
+    final core::Set<core::int> #t126 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        for (final dynamic #t127 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:61:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...y}, // Error.
+                                    ^") {
+          final core::int #t128 = #t127 as{TypeError,ForNonNullableByDefault} core::int;
+          #t126.{core::Set::add}(#t128);
+        }
+      }
+    }
+  } =>#t126, block {
+    final core::Set<core::int> #t129 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        for (final dynamic #t130 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:62:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...z}, // Error.
+                                    ^") {
+          final core::int #t131 = #t130 as{TypeError,ForNonNullableByDefault} core::int;
+          #t129.{core::Set::add}(#t131);
+        }
+      }
+    }
+  } =>#t129, block {
+    final core::Map<core::int, core::int> #t132 = <core::int, core::int>{};
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        #t132.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...w}, // Error.
+                                    ^", null);
+      }
+    }
+  } =>#t132, block {
+    final core::Set<core::int> #t133 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t134 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:64:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...x}, // Error.
+                                     ^") {
+        final core::int #t135 = #t134 as{TypeError,ForNonNullableByDefault} core::int;
+        #t133.{core::Set::add}(#t135);
+      }
+  } =>#t133, block {
+    final core::Set<core::int> #t136 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t137 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:65:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...y}, // Error.
+                                     ^") {
+        final core::int #t138 = #t137 as{TypeError,ForNonNullableByDefault} core::int;
+        #t136.{core::Set::add}(#t138);
+      }
+  } =>#t136, block {
+    final core::Set<core::int> #t139 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t140 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:66:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...z}, // Error.
+                                     ^") {
+        final core::int #t141 = #t140 as{TypeError,ForNonNullableByDefault} core::int;
+        #t139.{core::Set::add}(#t141);
+      }
+  } =>#t139, block {
+    final core::Map<core::int, core::int> #t142 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      #t142.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...w}, // Error.
+                                     ^", null);
+  } =>#t142, block {
+    final core::Set<core::int> #t143 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t144 = x;
+    if(!#t144.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t144{core::Iterable<dynamic>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t145 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int #t146 = #t145 as{TypeError,ForNonNullableByDefault} core::int;
+          #t143.{core::Set::add}(#t146);
+        }
+      }
+    }
+  } =>#t143, block {
+    final core::Set<core::int> #t147 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t148 = y;
+    if(!#t148.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t148{core::Iterable<dynamic>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t149 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int #t150 = #t149 as{TypeError,ForNonNullableByDefault} core::int;
+          #t147.{core::Set::add}(#t150);
+        }
+      }
+    }
+  } =>#t147, block {
+    final core::Set<core::int> #t151 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t152 = z;
+    if(!#t152.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t152{core::Iterable<dynamic>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t153 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int #t154 = #t153 as{TypeError,ForNonNullableByDefault} core::int;
+          #t151.{core::Set::add}(#t154);
+        }
+      }
+    }
+  } =>#t151, block {
+    final core::Map<core::int, core::int> #t155 = <core::int, core::int>{};
+    final core::Map<core::int, core::int>? #t156 = w;
+    if(!#t156.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t156{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> #t157 = :sync-for-iterator.{core::Iterator::current};
+        #t155.{core::Map::[]=}(#t157.{core::MapEntry::key}, #t157.{core::MapEntry::value});
+      }
+    }
+  } =>#t155, block {
+    final core::Set<core::int> #t158 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t159 = x;
+      if(!#t159.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t159{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t160 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t161 = #t160 as{TypeError,ForNonNullableByDefault} core::int;
+            #t158.{core::Set::add}(#t161);
+          }
+        }
+      }
+    }
+  } =>#t158, block {
+    final core::Set<core::int> #t162 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t163 = y;
+      if(!#t163.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t163{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t164 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t165 = #t164 as{TypeError,ForNonNullableByDefault} core::int;
+            #t162.{core::Set::add}(#t165);
+          }
+        }
+      }
+    }
+  } =>#t162, block {
+    final core::Set<core::int> #t166 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t167 = z;
+      if(!#t167.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t167{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t168 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t169 = #t168 as{TypeError,ForNonNullableByDefault} core::int;
+            #t166.{core::Set::add}(#t169);
+          }
+        }
+      }
+    }
+  } =>#t166, block {
+    final core::Map<core::int, core::int> #t170 = <core::int, core::int>{};
+    if(condition) {
+      final core::Map<core::int, core::int>? #t171 = w;
+      if(!#t171.{core::Object::==}(null)) {
+        core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t171{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> #t172 = :sync-for-iterator.{core::Iterator::current};
+          #t170.{core::Map::[]=}(#t172.{core::MapEntry::key}, #t172.{core::MapEntry::value});
+        }
+      }
+    }
+  } =>#t170, block {
+    final core::Set<core::int> #t173 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Iterable<dynamic>? #t174 = x;
+          if(!#t174.{core::Object::==}(null)) {
+            core::Iterator<dynamic> :sync-for-iterator = #t174{core::Iterable<dynamic>}.{core::Iterable::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final dynamic #t175 = :sync-for-iterator.{core::Iterator::current};
+              {
+                final core::int #t176 = #t175 as{TypeError,ForNonNullableByDefault} core::int;
+                #t173.{core::Set::add}(#t176);
+              }
+            }
+          }
+        }
+      }
+    }
+  } =>#t173, block {
+    final core::Set<core::int> #t177 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Iterable<dynamic>? #t178 = y;
+          if(!#t178.{core::Object::==}(null)) {
+            core::Iterator<dynamic> :sync-for-iterator = #t178{core::Iterable<dynamic>}.{core::Iterable::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final dynamic #t179 = :sync-for-iterator.{core::Iterator::current};
+              {
+                final core::int #t180 = #t179 as{TypeError,ForNonNullableByDefault} core::int;
+                #t177.{core::Set::add}(#t180);
+              }
+            }
+          }
+        }
+      }
+    }
+  } =>#t177, block {
+    final core::Set<core::int> #t181 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Iterable<dynamic>? #t182 = z;
+          if(!#t182.{core::Object::==}(null)) {
+            core::Iterator<dynamic> :sync-for-iterator = #t182{core::Iterable<dynamic>}.{core::Iterable::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final dynamic #t183 = :sync-for-iterator.{core::Iterator::current};
+              {
+                final core::int #t184 = #t183 as{TypeError,ForNonNullableByDefault} core::int;
+                #t181.{core::Set::add}(#t184);
+              }
+            }
+          }
+        }
+      }
+    }
+  } =>#t181, block {
+    final core::Map<core::int, core::int> #t185 = <core::int, core::int>{};
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Map<core::int, core::int>? #t186 = w;
+          if(!#t186.{core::Object::==}(null)) {
+            core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t186{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> #t187 = :sync-for-iterator.{core::Iterator::current};
+              #t185.{core::Map::[]=}(#t187.{core::MapEntry::key}, #t187.{core::MapEntry::value});
+            }
+          }
+        }
+      }
+    }
+  } =>#t185, block {
+    final core::Set<core::int> #t188 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t189 = x;
+      if(!#t189.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t189{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t190 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t191 = #t190 as{TypeError,ForNonNullableByDefault} core::int;
+            #t188.{core::Set::add}(#t191);
+          }
+        }
+      }
+    }
+  } =>#t188, block {
+    final core::Set<core::int> #t192 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t193 = y;
+      if(!#t193.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t193{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t194 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t195 = #t194 as{TypeError,ForNonNullableByDefault} core::int;
+            #t192.{core::Set::add}(#t195);
+          }
+        }
+      }
+    }
+  } =>#t192, block {
+    final core::Set<core::int> #t196 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t197 = z;
+      if(!#t197.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t197{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t198 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t199 = #t198 as{TypeError,ForNonNullableByDefault} core::int;
+            #t196.{core::Set::add}(#t199);
+          }
+        }
+      }
+    }
+  } =>#t196, block {
+    final core::Map<core::int, core::int> #t200 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Map<core::int, core::int>? #t201 = w;
+      if(!#t201.{core::Object::==}(null)) {
+        core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t201{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> #t202 = :sync-for-iterator.{core::Iterator::current};
+          #t200.{core::Map::[]=}(#t202.{core::MapEntry::key}, #t202.{core::MapEntry::value});
+        }
+      }
+    }
+  } =>#t200];
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.textual_outline.expect
new file mode 100644
index 0000000..92ee2bc
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.textual_outline.expect
@@ -0,0 +1,6 @@
+foo(bool condition, Iterable<dynamic> iterable, List<int>? a, Set<int>? b,
+    Iterable<int>? c, Map<int, int>? d) {}
+bar<X extends List<int>?, Y extends Set<int>?, Z extends Iterable<int>?,
+        W extends Map<int, int>?>(
+    bool condition, Iterable<dynamic> iterable, X x, Y y, Z z, W w) {}
+main() {}
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..b5153b9
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.textual_outline_modelled.expect
@@ -0,0 +1,6 @@
+bar<X extends List<int>?, Y extends Set<int>?, Z extends Iterable<int>?,
+        W extends Map<int, int>?>(
+    bool condition, Iterable<dynamic> iterable, X x, Y y, Z z, W w) {}
+foo(bool condition, Iterable<dynamic> iterable, List<int>? a, Set<int>? b,
+    Iterable<int>? c, Map<int, int>? d) {}
+main() {}
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.weak.expect
new file mode 100644
index 0000000..e89957c
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.weak.expect
@@ -0,0 +1,725 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:8:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...a}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:9:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...b}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:10:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...c}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:11:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...d}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:12:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int, int>{...a}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:12:19: Error: Unexpected type 'List<int>?' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//     <int, int>{...a}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int>{...d}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//     <int>{...d}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:14:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...a}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:15:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...b}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:16:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...c}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...d}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:18:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...a}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:19:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...b}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:20:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...c}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...d}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:22:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...a}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:23:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...b}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:24:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...c}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...d}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:50:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...x}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:51:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...y}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:52:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...z}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:53:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...w}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int, int>{...x}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:54:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
+//     <int, int>{...x}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int>{...w}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread.  Expected 'dynamic' or an Iterable.
+//     <int>{...w}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:56:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...x}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:57:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...y}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:58:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...z}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...w}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:60:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...x}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:61:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...y}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:62:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...z}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...w}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:64:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...x}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:65:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...y}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:66:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...z}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...w}, // Error.
+//                                      ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method foo(core::bool condition, core::Iterable<dynamic> iterable, core::List<core::int>? a, core::Set<core::int>? b, core::Iterable<core::int>? c, core::Map<core::int, core::int>? d) → dynamic {
+  return <core::Object>[ block {
+    final core::Set<core::int> #t1 = col::LinkedHashSet::•<core::int>();
+    for (final dynamic #t2 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:8:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...a}, // Error.
+        ^") {
+      final core::int #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int;
+      #t1.{core::Set::add}(#t3);
+    }
+  } =>#t1, block {
+    final core::Set<core::int> #t4 = col::LinkedHashSet::•<core::int>();
+    for (final dynamic #t5 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:9:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...b}, // Error.
+        ^") {
+      final core::int #t6 = #t5 as{TypeError,ForNonNullableByDefault} core::int;
+      #t4.{core::Set::add}(#t6);
+    }
+  } =>#t4, block {
+    final core::Set<core::int> #t7 = col::LinkedHashSet::•<core::int>();
+    for (final dynamic #t8 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:10:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...c}, // Error.
+        ^") {
+      final core::int #t9 = #t8 as{TypeError,ForNonNullableByDefault} core::int;
+      #t7.{core::Set::add}(#t9);
+    }
+  } =>#t7, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:11:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...d}, // Error.
+        ^": null}, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:12:19: Error: Unexpected type 'List<int>?' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+    <int, int>{...a}, // Error.
+                  ^": null}, let final core::Set<core::int> #t10 = col::LinkedHashSet::•<core::int>() in let final dynamic #t11 = #t10.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+    <int>{...d}, // Error.
+             ^") in #t10, block {
+    final core::Set<core::int> #t12 = col::LinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t13 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:14:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...a}, // Error.
+                       ^") {
+        final core::int #t14 = #t13 as{TypeError,ForNonNullableByDefault} core::int;
+        #t12.{core::Set::add}(#t14);
+      }
+  } =>#t12, block {
+    final core::Set<core::int> #t15 = col::LinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t16 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:15:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...b}, // Error.
+                       ^") {
+        final core::int #t17 = #t16 as{TypeError,ForNonNullableByDefault} core::int;
+        #t15.{core::Set::add}(#t17);
+      }
+  } =>#t15, block {
+    final core::Set<core::int> #t18 = col::LinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t19 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:16:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...c}, // Error.
+                       ^") {
+        final core::int #t20 = #t19 as{TypeError,ForNonNullableByDefault} core::int;
+        #t18.{core::Set::add}(#t20);
+      }
+  } =>#t18, block {
+    final core::Map<core::int, core::int> #t21 = <core::int, core::int>{};
+    if(condition)
+      #t21.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...d}, // Error.
+                       ^", null);
+  } =>#t21, block {
+    final core::Set<core::int> #t22 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable)
+      for (final dynamic #t23 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:18:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...a}, // Error.
+                                    ^") {
+        final core::int #t24 = #t23 as{TypeError,ForNonNullableByDefault} core::int;
+        #t22.{core::Set::add}(#t24);
+      }
+  } =>#t22, block {
+    final core::Set<core::int> #t25 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable)
+      for (final dynamic #t26 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:19:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...b}, // Error.
+                                    ^") {
+        final core::int #t27 = #t26 as{TypeError,ForNonNullableByDefault} core::int;
+        #t25.{core::Set::add}(#t27);
+      }
+  } =>#t25, block {
+    final core::Set<core::int> #t28 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable)
+      for (final dynamic #t29 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:20:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...c}, // Error.
+                                    ^") {
+        final core::int #t30 = #t29 as{TypeError,ForNonNullableByDefault} core::int;
+        #t28.{core::Set::add}(#t30);
+      }
+  } =>#t28, block {
+    final core::Map<core::int, core::int> #t31 = <core::int, core::int>{};
+    for (dynamic e in iterable)
+      #t31.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...d}, // Error.
+                                    ^", null);
+  } =>#t31, block {
+    final core::Set<core::int> #t32 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t33 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:22:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...a}, // Error.
+                                     ^") {
+        final core::int #t34 = #t33 as{TypeError,ForNonNullableByDefault} core::int;
+        #t32.{core::Set::add}(#t34);
+      }
+  } =>#t32, block {
+    final core::Set<core::int> #t35 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t36 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:23:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...b}, // Error.
+                                     ^") {
+        final core::int #t37 = #t36 as{TypeError,ForNonNullableByDefault} core::int;
+        #t35.{core::Set::add}(#t37);
+      }
+  } =>#t35, block {
+    final core::Set<core::int> #t38 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t39 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:24:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...c}, // Error.
+                                     ^") {
+        final core::int #t40 = #t39 as{TypeError,ForNonNullableByDefault} core::int;
+        #t38.{core::Set::add}(#t40);
+      }
+  } =>#t38, block {
+    final core::Map<core::int, core::int> #t41 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      #t41.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...d}, // Error.
+                                     ^", null);
+  } =>#t41, block {
+    final core::Set<core::int> #t42 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t43 = a;
+    if(!#t43.{core::Object::==}(null))
+      for (final dynamic #t44 in #t43{core::Iterable<dynamic>}) {
+        final core::int #t45 = #t44 as{TypeError,ForNonNullableByDefault} core::int;
+        #t42.{core::Set::add}(#t45);
+      }
+  } =>#t42, block {
+    final core::Set<core::int> #t46 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t47 = b;
+    if(!#t47.{core::Object::==}(null))
+      for (final dynamic #t48 in #t47{core::Iterable<dynamic>}) {
+        final core::int #t49 = #t48 as{TypeError,ForNonNullableByDefault} core::int;
+        #t46.{core::Set::add}(#t49);
+      }
+  } =>#t46, block {
+    final core::Set<core::int> #t50 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t51 = c;
+    if(!#t51.{core::Object::==}(null))
+      for (final dynamic #t52 in #t51{core::Iterable<dynamic>}) {
+        final core::int #t53 = #t52 as{TypeError,ForNonNullableByDefault} core::int;
+        #t50.{core::Set::add}(#t53);
+      }
+  } =>#t50, block {
+    final core::Map<core::int, core::int> #t54 = <core::int, core::int>{};
+    final core::Map<core::int, core::int>? #t55 = d;
+    if(!#t55.{core::Object::==}(null))
+      for (final core::MapEntry<core::int, core::int> #t56 in #t55{core::Map<core::int, core::int>}.{core::Map::entries})
+        #t54.{core::Map::[]=}(#t56.{core::MapEntry::key}, #t56.{core::MapEntry::value});
+  } =>#t54, block {
+    final core::Set<core::int> #t57 = col::LinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t58 = a;
+      if(!#t58.{core::Object::==}(null))
+        for (final dynamic #t59 in #t58{core::Iterable<dynamic>}) {
+          final core::int #t60 = #t59 as{TypeError,ForNonNullableByDefault} core::int;
+          #t57.{core::Set::add}(#t60);
+        }
+    }
+  } =>#t57, block {
+    final core::Set<core::int> #t61 = col::LinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t62 = b;
+      if(!#t62.{core::Object::==}(null))
+        for (final dynamic #t63 in #t62{core::Iterable<dynamic>}) {
+          final core::int #t64 = #t63 as{TypeError,ForNonNullableByDefault} core::int;
+          #t61.{core::Set::add}(#t64);
+        }
+    }
+  } =>#t61, block {
+    final core::Set<core::int> #t65 = col::LinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t66 = c;
+      if(!#t66.{core::Object::==}(null))
+        for (final dynamic #t67 in #t66{core::Iterable<dynamic>}) {
+          final core::int #t68 = #t67 as{TypeError,ForNonNullableByDefault} core::int;
+          #t65.{core::Set::add}(#t68);
+        }
+    }
+  } =>#t65, block {
+    final core::Map<core::int, core::int> #t69 = <core::int, core::int>{};
+    if(condition) {
+      final core::Map<core::int, core::int>? #t70 = d;
+      if(!#t70.{core::Object::==}(null))
+        for (final core::MapEntry<core::int, core::int> #t71 in #t70{core::Map<core::int, core::int>}.{core::Map::entries})
+          #t69.{core::Map::[]=}(#t71.{core::MapEntry::key}, #t71.{core::MapEntry::value});
+    }
+  } =>#t69, block {
+    final core::Set<core::int> #t72 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable) {
+      final core::Iterable<dynamic>? #t73 = a;
+      if(!#t73.{core::Object::==}(null))
+        for (final dynamic #t74 in #t73{core::Iterable<dynamic>}) {
+          final core::int #t75 = #t74 as{TypeError,ForNonNullableByDefault} core::int;
+          #t72.{core::Set::add}(#t75);
+        }
+    }
+  } =>#t72, block {
+    final core::Set<core::int> #t76 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable) {
+      final core::Iterable<dynamic>? #t77 = b;
+      if(!#t77.{core::Object::==}(null))
+        for (final dynamic #t78 in #t77{core::Iterable<dynamic>}) {
+          final core::int #t79 = #t78 as{TypeError,ForNonNullableByDefault} core::int;
+          #t76.{core::Set::add}(#t79);
+        }
+    }
+  } =>#t76, block {
+    final core::Set<core::int> #t80 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable) {
+      final core::Iterable<dynamic>? #t81 = c;
+      if(!#t81.{core::Object::==}(null))
+        for (final dynamic #t82 in #t81{core::Iterable<dynamic>}) {
+          final core::int #t83 = #t82 as{TypeError,ForNonNullableByDefault} core::int;
+          #t80.{core::Set::add}(#t83);
+        }
+    }
+  } =>#t80, block {
+    final core::Map<core::int, core::int> #t84 = <core::int, core::int>{};
+    for (dynamic e in iterable) {
+      final core::Map<core::int, core::int>? #t85 = d;
+      if(!#t85.{core::Object::==}(null))
+        for (final core::MapEntry<core::int, core::int> #t86 in #t85{core::Map<core::int, core::int>}.{core::Map::entries})
+          #t84.{core::Map::[]=}(#t86.{core::MapEntry::key}, #t86.{core::MapEntry::value});
+    }
+  } =>#t84, block {
+    final core::Set<core::int> #t87 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t88 = a;
+      if(!#t88.{core::Object::==}(null))
+        for (final dynamic #t89 in #t88{core::Iterable<dynamic>}) {
+          final core::int #t90 = #t89 as{TypeError,ForNonNullableByDefault} core::int;
+          #t87.{core::Set::add}(#t90);
+        }
+    }
+  } =>#t87, block {
+    final core::Set<core::int> #t91 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t92 = b;
+      if(!#t92.{core::Object::==}(null))
+        for (final dynamic #t93 in #t92{core::Iterable<dynamic>}) {
+          final core::int #t94 = #t93 as{TypeError,ForNonNullableByDefault} core::int;
+          #t91.{core::Set::add}(#t94);
+        }
+    }
+  } =>#t91, block {
+    final core::Set<core::int> #t95 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t96 = c;
+      if(!#t96.{core::Object::==}(null))
+        for (final dynamic #t97 in #t96{core::Iterable<dynamic>}) {
+          final core::int #t98 = #t97 as{TypeError,ForNonNullableByDefault} core::int;
+          #t95.{core::Set::add}(#t98);
+        }
+    }
+  } =>#t95, block {
+    final core::Map<core::int, core::int> #t99 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Map<core::int, core::int>? #t100 = d;
+      if(!#t100.{core::Object::==}(null))
+        for (final core::MapEntry<core::int, core::int> #t101 in #t100{core::Map<core::int, core::int>}.{core::Map::entries})
+          #t99.{core::Map::[]=}(#t101.{core::MapEntry::key}, #t101.{core::MapEntry::value});
+    }
+  } =>#t99];
+}
+static method bar<X extends core::List<core::int>? = core::List<core::int>?, Y extends core::Set<core::int>? = core::Set<core::int>?, Z extends core::Iterable<core::int>? = core::Iterable<core::int>?, W extends core::Map<core::int, core::int>? = core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic {
+  return <core::Object>[ block {
+    final core::Set<core::int> #t102 = col::LinkedHashSet::•<core::int>();
+    for (final dynamic #t103 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:50:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...x}, // Error.
+        ^") {
+      final core::int #t104 = #t103 as{TypeError,ForNonNullableByDefault} core::int;
+      #t102.{core::Set::add}(#t104);
+    }
+  } =>#t102, block {
+    final core::Set<core::int> #t105 = col::LinkedHashSet::•<core::int>();
+    for (final dynamic #t106 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:51:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...y}, // Error.
+        ^") {
+      final core::int #t107 = #t106 as{TypeError,ForNonNullableByDefault} core::int;
+      #t105.{core::Set::add}(#t107);
+    }
+  } =>#t105, block {
+    final core::Set<core::int> #t108 = col::LinkedHashSet::•<core::int>();
+    for (final dynamic #t109 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:52:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...z}, // Error.
+        ^") {
+      final core::int #t110 = #t109 as{TypeError,ForNonNullableByDefault} core::int;
+      #t108.{core::Set::add}(#t110);
+    }
+  } =>#t108, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:53:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...w}, // Error.
+        ^": null}, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:54:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
+    <int, int>{...x}, // Error.
+                  ^": null}, let final core::Set<core::int> #t111 = col::LinkedHashSet::•<core::int>() in let final dynamic #t112 = #t111.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread.  Expected 'dynamic' or an Iterable.
+    <int>{...w}, // Error.
+             ^") in #t111, block {
+    final core::Set<core::int> #t113 = col::LinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t114 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:56:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...x}, // Error.
+                       ^") {
+        final core::int #t115 = #t114 as{TypeError,ForNonNullableByDefault} core::int;
+        #t113.{core::Set::add}(#t115);
+      }
+  } =>#t113, block {
+    final core::Set<core::int> #t116 = col::LinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t117 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:57:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...y}, // Error.
+                       ^") {
+        final core::int #t118 = #t117 as{TypeError,ForNonNullableByDefault} core::int;
+        #t116.{core::Set::add}(#t118);
+      }
+  } =>#t116, block {
+    final core::Set<core::int> #t119 = col::LinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t120 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:58:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...z}, // Error.
+                       ^") {
+        final core::int #t121 = #t120 as{TypeError,ForNonNullableByDefault} core::int;
+        #t119.{core::Set::add}(#t121);
+      }
+  } =>#t119, block {
+    final core::Map<core::int, core::int> #t122 = <core::int, core::int>{};
+    if(condition)
+      #t122.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...w}, // Error.
+                       ^", null);
+  } =>#t122, block {
+    final core::Set<core::int> #t123 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable)
+      for (final dynamic #t124 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:60:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...x}, // Error.
+                                    ^") {
+        final core::int #t125 = #t124 as{TypeError,ForNonNullableByDefault} core::int;
+        #t123.{core::Set::add}(#t125);
+      }
+  } =>#t123, block {
+    final core::Set<core::int> #t126 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable)
+      for (final dynamic #t127 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:61:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...y}, // Error.
+                                    ^") {
+        final core::int #t128 = #t127 as{TypeError,ForNonNullableByDefault} core::int;
+        #t126.{core::Set::add}(#t128);
+      }
+  } =>#t126, block {
+    final core::Set<core::int> #t129 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable)
+      for (final dynamic #t130 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:62:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...z}, // Error.
+                                    ^") {
+        final core::int #t131 = #t130 as{TypeError,ForNonNullableByDefault} core::int;
+        #t129.{core::Set::add}(#t131);
+      }
+  } =>#t129, block {
+    final core::Map<core::int, core::int> #t132 = <core::int, core::int>{};
+    for (dynamic e in iterable)
+      #t132.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...w}, // Error.
+                                    ^", null);
+  } =>#t132, block {
+    final core::Set<core::int> #t133 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t134 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:64:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...x}, // Error.
+                                     ^") {
+        final core::int #t135 = #t134 as{TypeError,ForNonNullableByDefault} core::int;
+        #t133.{core::Set::add}(#t135);
+      }
+  } =>#t133, block {
+    final core::Set<core::int> #t136 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t137 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:65:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...y}, // Error.
+                                     ^") {
+        final core::int #t138 = #t137 as{TypeError,ForNonNullableByDefault} core::int;
+        #t136.{core::Set::add}(#t138);
+      }
+  } =>#t136, block {
+    final core::Set<core::int> #t139 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t140 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:66:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...z}, // Error.
+                                     ^") {
+        final core::int #t141 = #t140 as{TypeError,ForNonNullableByDefault} core::int;
+        #t139.{core::Set::add}(#t141);
+      }
+  } =>#t139, block {
+    final core::Map<core::int, core::int> #t142 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      #t142.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...w}, // Error.
+                                     ^", null);
+  } =>#t142, block {
+    final core::Set<core::int> #t143 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t144 = x;
+    if(!#t144.{core::Object::==}(null))
+      for (final dynamic #t145 in #t144{core::Iterable<dynamic>}) {
+        final core::int #t146 = #t145 as{TypeError,ForNonNullableByDefault} core::int;
+        #t143.{core::Set::add}(#t146);
+      }
+  } =>#t143, block {
+    final core::Set<core::int> #t147 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t148 = y;
+    if(!#t148.{core::Object::==}(null))
+      for (final dynamic #t149 in #t148{core::Iterable<dynamic>}) {
+        final core::int #t150 = #t149 as{TypeError,ForNonNullableByDefault} core::int;
+        #t147.{core::Set::add}(#t150);
+      }
+  } =>#t147, block {
+    final core::Set<core::int> #t151 = col::LinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t152 = z;
+    if(!#t152.{core::Object::==}(null))
+      for (final dynamic #t153 in #t152{core::Iterable<dynamic>}) {
+        final core::int #t154 = #t153 as{TypeError,ForNonNullableByDefault} core::int;
+        #t151.{core::Set::add}(#t154);
+      }
+  } =>#t151, block {
+    final core::Map<core::int, core::int> #t155 = <core::int, core::int>{};
+    final core::Map<core::int, core::int>? #t156 = w;
+    if(!#t156.{core::Object::==}(null))
+      for (final core::MapEntry<core::int, core::int> #t157 in #t156{core::Map<core::int, core::int>}.{core::Map::entries})
+        #t155.{core::Map::[]=}(#t157.{core::MapEntry::key}, #t157.{core::MapEntry::value});
+  } =>#t155, block {
+    final core::Set<core::int> #t158 = col::LinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t159 = x;
+      if(!#t159.{core::Object::==}(null))
+        for (final dynamic #t160 in #t159{core::Iterable<dynamic>}) {
+          final core::int #t161 = #t160 as{TypeError,ForNonNullableByDefault} core::int;
+          #t158.{core::Set::add}(#t161);
+        }
+    }
+  } =>#t158, block {
+    final core::Set<core::int> #t162 = col::LinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t163 = y;
+      if(!#t163.{core::Object::==}(null))
+        for (final dynamic #t164 in #t163{core::Iterable<dynamic>}) {
+          final core::int #t165 = #t164 as{TypeError,ForNonNullableByDefault} core::int;
+          #t162.{core::Set::add}(#t165);
+        }
+    }
+  } =>#t162, block {
+    final core::Set<core::int> #t166 = col::LinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t167 = z;
+      if(!#t167.{core::Object::==}(null))
+        for (final dynamic #t168 in #t167{core::Iterable<dynamic>}) {
+          final core::int #t169 = #t168 as{TypeError,ForNonNullableByDefault} core::int;
+          #t166.{core::Set::add}(#t169);
+        }
+    }
+  } =>#t166, block {
+    final core::Map<core::int, core::int> #t170 = <core::int, core::int>{};
+    if(condition) {
+      final core::Map<core::int, core::int>? #t171 = w;
+      if(!#t171.{core::Object::==}(null))
+        for (final core::MapEntry<core::int, core::int> #t172 in #t171{core::Map<core::int, core::int>}.{core::Map::entries})
+          #t170.{core::Map::[]=}(#t172.{core::MapEntry::key}, #t172.{core::MapEntry::value});
+    }
+  } =>#t170, block {
+    final core::Set<core::int> #t173 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable) {
+      final core::Iterable<dynamic>? #t174 = x;
+      if(!#t174.{core::Object::==}(null))
+        for (final dynamic #t175 in #t174{core::Iterable<dynamic>}) {
+          final core::int #t176 = #t175 as{TypeError,ForNonNullableByDefault} core::int;
+          #t173.{core::Set::add}(#t176);
+        }
+    }
+  } =>#t173, block {
+    final core::Set<core::int> #t177 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable) {
+      final core::Iterable<dynamic>? #t178 = y;
+      if(!#t178.{core::Object::==}(null))
+        for (final dynamic #t179 in #t178{core::Iterable<dynamic>}) {
+          final core::int #t180 = #t179 as{TypeError,ForNonNullableByDefault} core::int;
+          #t177.{core::Set::add}(#t180);
+        }
+    }
+  } =>#t177, block {
+    final core::Set<core::int> #t181 = col::LinkedHashSet::•<core::int>();
+    for (dynamic e in iterable) {
+      final core::Iterable<dynamic>? #t182 = z;
+      if(!#t182.{core::Object::==}(null))
+        for (final dynamic #t183 in #t182{core::Iterable<dynamic>}) {
+          final core::int #t184 = #t183 as{TypeError,ForNonNullableByDefault} core::int;
+          #t181.{core::Set::add}(#t184);
+        }
+    }
+  } =>#t181, block {
+    final core::Map<core::int, core::int> #t185 = <core::int, core::int>{};
+    for (dynamic e in iterable) {
+      final core::Map<core::int, core::int>? #t186 = w;
+      if(!#t186.{core::Object::==}(null))
+        for (final core::MapEntry<core::int, core::int> #t187 in #t186{core::Map<core::int, core::int>}.{core::Map::entries})
+          #t185.{core::Map::[]=}(#t187.{core::MapEntry::key}, #t187.{core::MapEntry::value});
+    }
+  } =>#t185, block {
+    final core::Set<core::int> #t188 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t189 = x;
+      if(!#t189.{core::Object::==}(null))
+        for (final dynamic #t190 in #t189{core::Iterable<dynamic>}) {
+          final core::int #t191 = #t190 as{TypeError,ForNonNullableByDefault} core::int;
+          #t188.{core::Set::add}(#t191);
+        }
+    }
+  } =>#t188, block {
+    final core::Set<core::int> #t192 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t193 = y;
+      if(!#t193.{core::Object::==}(null))
+        for (final dynamic #t194 in #t193{core::Iterable<dynamic>}) {
+          final core::int #t195 = #t194 as{TypeError,ForNonNullableByDefault} core::int;
+          #t192.{core::Set::add}(#t195);
+        }
+    }
+  } =>#t192, block {
+    final core::Set<core::int> #t196 = col::LinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t197 = z;
+      if(!#t197.{core::Object::==}(null))
+        for (final dynamic #t198 in #t197{core::Iterable<dynamic>}) {
+          final core::int #t199 = #t198 as{TypeError,ForNonNullableByDefault} core::int;
+          #t196.{core::Set::add}(#t199);
+        }
+    }
+  } =>#t196, block {
+    final core::Map<core::int, core::int> #t200 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Map<core::int, core::int>? #t201 = w;
+      if(!#t201.{core::Object::==}(null))
+        for (final core::MapEntry<core::int, core::int> #t202 in #t201{core::Map<core::int, core::int>}.{core::Map::entries})
+          #t200.{core::Map::[]=}(#t202.{core::MapEntry::key}, #t202.{core::MapEntry::value});
+    }
+  } =>#t200];
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.weak.transformed.expect
new file mode 100644
index 0000000..84cd03a
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.weak.transformed.expect
@@ -0,0 +1,965 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:8:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...a}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:9:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...b}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:10:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...c}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:11:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...d}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:12:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int, int>{...a}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:12:19: Error: Unexpected type 'List<int>?' of a map spread entry.  Expected 'dynamic' or a Map.
+//  - 'List' is from 'dart:core'.
+//     <int, int>{...a}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int>{...d}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread.  Expected 'dynamic' or an Iterable.
+//  - 'Map' is from 'dart:core'.
+//     <int>{...d}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:14:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...a}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:15:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...b}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:16:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...c}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...d}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:18:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...a}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:19:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...b}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:20:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...c}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...d}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:22:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...a}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:23:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...b}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:24:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...c}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...d}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:50:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...x}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:51:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...y}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:52:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...z}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:53:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {...w}, // Error.
+//         ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int, int>{...x}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:54:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
+//     <int, int>{...x}, // Error.
+//                   ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     <int>{...w}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread.  Expected 'dynamic' or an Iterable.
+//     <int>{...w}, // Error.
+//              ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:56:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...x}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:57:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...y}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:58:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...z}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {if (condition) ...w}, // Error.
+//                        ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:60:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...x}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:61:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...y}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:62:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...z}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (dynamic e in iterable) ...w}, // Error.
+//                                     ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:64:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...x}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:65:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...y}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:66:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...z}, // Error.
+//                                      ^
+//
+// pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+//     {for (int i = 0; i < 42; ++i) ...w}, // Error.
+//                                      ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method foo(core::bool condition, core::Iterable<dynamic> iterable, core::List<core::int>? a, core::Set<core::int>? b, core::Iterable<core::int>? c, core::Map<core::int, core::int>? d) → dynamic {
+  return <core::Object>[ block {
+    final core::Set<core::int> #t1 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (final dynamic #t2 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:8:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...a}, // Error.
+        ^") {
+      final core::int #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int;
+      #t1.{core::Set::add}(#t3);
+    }
+  } =>#t1, block {
+    final core::Set<core::int> #t4 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (final dynamic #t5 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:9:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...b}, // Error.
+        ^") {
+      final core::int #t6 = #t5 as{TypeError,ForNonNullableByDefault} core::int;
+      #t4.{core::Set::add}(#t6);
+    }
+  } =>#t4, block {
+    final core::Set<core::int> #t7 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (final dynamic #t8 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:10:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...c}, // Error.
+        ^") {
+      final core::int #t9 = #t8 as{TypeError,ForNonNullableByDefault} core::int;
+      #t7.{core::Set::add}(#t9);
+    }
+  } =>#t7, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:11:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...d}, // Error.
+        ^": null}, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:12:19: Error: Unexpected type 'List<int>?' of a map spread entry.  Expected 'dynamic' or a Map.
+ - 'List' is from 'dart:core'.
+    <int, int>{...a}, // Error.
+                  ^": null}, let final core::Set<core::int> #t10 = new col::_CompactLinkedHashSet::•<core::int>() in let final core::bool #t11 = #t10.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread.  Expected 'dynamic' or an Iterable.
+ - 'Map' is from 'dart:core'.
+    <int>{...d}, // Error.
+             ^") in #t10, block {
+    final core::Set<core::int> #t12 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t13 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:14:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...a}, // Error.
+                       ^") {
+        final core::int #t14 = #t13 as{TypeError,ForNonNullableByDefault} core::int;
+        #t12.{core::Set::add}(#t14);
+      }
+  } =>#t12, block {
+    final core::Set<core::int> #t15 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t16 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:15:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...b}, // Error.
+                       ^") {
+        final core::int #t17 = #t16 as{TypeError,ForNonNullableByDefault} core::int;
+        #t15.{core::Set::add}(#t17);
+      }
+  } =>#t15, block {
+    final core::Set<core::int> #t18 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t19 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:16:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...c}, // Error.
+                       ^") {
+        final core::int #t20 = #t19 as{TypeError,ForNonNullableByDefault} core::int;
+        #t18.{core::Set::add}(#t20);
+      }
+  } =>#t18, block {
+    final core::Map<core::int, core::int> #t21 = <core::int, core::int>{};
+    if(condition)
+      #t21.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...d}, // Error.
+                       ^", null);
+  } =>#t21, block {
+    final core::Set<core::int> #t22 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        for (final dynamic #t23 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:18:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...a}, // Error.
+                                    ^") {
+          final core::int #t24 = #t23 as{TypeError,ForNonNullableByDefault} core::int;
+          #t22.{core::Set::add}(#t24);
+        }
+      }
+    }
+  } =>#t22, block {
+    final core::Set<core::int> #t25 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        for (final dynamic #t26 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:19:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...b}, // Error.
+                                    ^") {
+          final core::int #t27 = #t26 as{TypeError,ForNonNullableByDefault} core::int;
+          #t25.{core::Set::add}(#t27);
+        }
+      }
+    }
+  } =>#t25, block {
+    final core::Set<core::int> #t28 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        for (final dynamic #t29 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:20:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...c}, // Error.
+                                    ^") {
+          final core::int #t30 = #t29 as{TypeError,ForNonNullableByDefault} core::int;
+          #t28.{core::Set::add}(#t30);
+        }
+      }
+    }
+  } =>#t28, block {
+    final core::Map<core::int, core::int> #t31 = <core::int, core::int>{};
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        #t31.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...d}, // Error.
+                                    ^", null);
+      }
+    }
+  } =>#t31, block {
+    final core::Set<core::int> #t32 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t33 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:22:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...a}, // Error.
+                                     ^") {
+        final core::int #t34 = #t33 as{TypeError,ForNonNullableByDefault} core::int;
+        #t32.{core::Set::add}(#t34);
+      }
+  } =>#t32, block {
+    final core::Set<core::int> #t35 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t36 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:23:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...b}, // Error.
+                                     ^") {
+        final core::int #t37 = #t36 as{TypeError,ForNonNullableByDefault} core::int;
+        #t35.{core::Set::add}(#t37);
+      }
+  } =>#t35, block {
+    final core::Set<core::int> #t38 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t39 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:24:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...c}, // Error.
+                                     ^") {
+        final core::int #t40 = #t39 as{TypeError,ForNonNullableByDefault} core::int;
+        #t38.{core::Set::add}(#t40);
+      }
+  } =>#t38, block {
+    final core::Map<core::int, core::int> #t41 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      #t41.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...d}, // Error.
+                                     ^", null);
+  } =>#t41, block {
+    final core::Set<core::int> #t42 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t43 = a;
+    if(!#t43.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t43{core::Iterable<dynamic>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t44 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int #t45 = #t44 as{TypeError,ForNonNullableByDefault} core::int;
+          #t42.{core::Set::add}(#t45);
+        }
+      }
+    }
+  } =>#t42, block {
+    final core::Set<core::int> #t46 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t47 = b;
+    if(!#t47.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t47{core::Iterable<dynamic>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t48 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int #t49 = #t48 as{TypeError,ForNonNullableByDefault} core::int;
+          #t46.{core::Set::add}(#t49);
+        }
+      }
+    }
+  } =>#t46, block {
+    final core::Set<core::int> #t50 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t51 = c;
+    if(!#t51.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t51{core::Iterable<dynamic>}.{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,ForNonNullableByDefault} core::int;
+          #t50.{core::Set::add}(#t53);
+        }
+      }
+    }
+  } =>#t50, block {
+    final core::Map<core::int, core::int> #t54 = <core::int, core::int>{};
+    final core::Map<core::int, core::int>? #t55 = d;
+    if(!#t55.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t55{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> #t56 = :sync-for-iterator.{core::Iterator::current};
+        #t54.{core::Map::[]=}(#t56.{core::MapEntry::key}, #t56.{core::MapEntry::value});
+      }
+    }
+  } =>#t54, block {
+    final core::Set<core::int> #t57 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t58 = a;
+      if(!#t58.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t58{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t59 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t60 = #t59 as{TypeError,ForNonNullableByDefault} core::int;
+            #t57.{core::Set::add}(#t60);
+          }
+        }
+      }
+    }
+  } =>#t57, block {
+    final core::Set<core::int> #t61 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t62 = b;
+      if(!#t62.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t62{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t63 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t64 = #t63 as{TypeError,ForNonNullableByDefault} core::int;
+            #t61.{core::Set::add}(#t64);
+          }
+        }
+      }
+    }
+  } =>#t61, block {
+    final core::Set<core::int> #t65 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t66 = c;
+      if(!#t66.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t66{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t67 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t68 = #t67 as{TypeError,ForNonNullableByDefault} core::int;
+            #t65.{core::Set::add}(#t68);
+          }
+        }
+      }
+    }
+  } =>#t65, block {
+    final core::Map<core::int, core::int> #t69 = <core::int, core::int>{};
+    if(condition) {
+      final core::Map<core::int, core::int>? #t70 = d;
+      if(!#t70.{core::Object::==}(null)) {
+        core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t70{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> #t71 = :sync-for-iterator.{core::Iterator::current};
+          #t69.{core::Map::[]=}(#t71.{core::MapEntry::key}, #t71.{core::MapEntry::value});
+        }
+      }
+    }
+  } =>#t69, block {
+    final core::Set<core::int> #t72 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Iterable<dynamic>? #t73 = a;
+          if(!#t73.{core::Object::==}(null)) {
+            core::Iterator<dynamic> :sync-for-iterator = #t73{core::Iterable<dynamic>}.{core::Iterable::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final dynamic #t74 = :sync-for-iterator.{core::Iterator::current};
+              {
+                final core::int #t75 = #t74 as{TypeError,ForNonNullableByDefault} core::int;
+                #t72.{core::Set::add}(#t75);
+              }
+            }
+          }
+        }
+      }
+    }
+  } =>#t72, block {
+    final core::Set<core::int> #t76 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Iterable<dynamic>? #t77 = b;
+          if(!#t77.{core::Object::==}(null)) {
+            core::Iterator<dynamic> :sync-for-iterator = #t77{core::Iterable<dynamic>}.{core::Iterable::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final dynamic #t78 = :sync-for-iterator.{core::Iterator::current};
+              {
+                final core::int #t79 = #t78 as{TypeError,ForNonNullableByDefault} core::int;
+                #t76.{core::Set::add}(#t79);
+              }
+            }
+          }
+        }
+      }
+    }
+  } =>#t76, block {
+    final core::Set<core::int> #t80 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Iterable<dynamic>? #t81 = c;
+          if(!#t81.{core::Object::==}(null)) {
+            core::Iterator<dynamic> :sync-for-iterator = #t81{core::Iterable<dynamic>}.{core::Iterable::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final dynamic #t82 = :sync-for-iterator.{core::Iterator::current};
+              {
+                final core::int #t83 = #t82 as{TypeError,ForNonNullableByDefault} core::int;
+                #t80.{core::Set::add}(#t83);
+              }
+            }
+          }
+        }
+      }
+    }
+  } =>#t80, block {
+    final core::Map<core::int, core::int> #t84 = <core::int, core::int>{};
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Map<core::int, core::int>? #t85 = d;
+          if(!#t85.{core::Object::==}(null)) {
+            core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t85{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> #t86 = :sync-for-iterator.{core::Iterator::current};
+              #t84.{core::Map::[]=}(#t86.{core::MapEntry::key}, #t86.{core::MapEntry::value});
+            }
+          }
+        }
+      }
+    }
+  } =>#t84, block {
+    final core::Set<core::int> #t87 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t88 = a;
+      if(!#t88.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t88{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t89 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t90 = #t89 as{TypeError,ForNonNullableByDefault} core::int;
+            #t87.{core::Set::add}(#t90);
+          }
+        }
+      }
+    }
+  } =>#t87, block {
+    final core::Set<core::int> #t91 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t92 = b;
+      if(!#t92.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t92{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t93 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t94 = #t93 as{TypeError,ForNonNullableByDefault} core::int;
+            #t91.{core::Set::add}(#t94);
+          }
+        }
+      }
+    }
+  } =>#t91, block {
+    final core::Set<core::int> #t95 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t96 = c;
+      if(!#t96.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t96{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t97 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t98 = #t97 as{TypeError,ForNonNullableByDefault} core::int;
+            #t95.{core::Set::add}(#t98);
+          }
+        }
+      }
+    }
+  } =>#t95, block {
+    final core::Map<core::int, core::int> #t99 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Map<core::int, core::int>? #t100 = d;
+      if(!#t100.{core::Object::==}(null)) {
+        core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t100{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> #t101 = :sync-for-iterator.{core::Iterator::current};
+          #t99.{core::Map::[]=}(#t101.{core::MapEntry::key}, #t101.{core::MapEntry::value});
+        }
+      }
+    }
+  } =>#t99];
+}
+static method bar<X extends core::List<core::int>? = core::List<core::int>?, Y extends core::Set<core::int>? = core::Set<core::int>?, Z extends core::Iterable<core::int>? = core::Iterable<core::int>?, W extends core::Map<core::int, core::int>? = core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic {
+  return <core::Object>[ block {
+    final core::Set<core::int> #t102 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (final dynamic #t103 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:50:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...x}, // Error.
+        ^") {
+      final core::int #t104 = #t103 as{TypeError,ForNonNullableByDefault} core::int;
+      #t102.{core::Set::add}(#t104);
+    }
+  } =>#t102, block {
+    final core::Set<core::int> #t105 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (final dynamic #t106 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:51:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...y}, // Error.
+        ^") {
+      final core::int #t107 = #t106 as{TypeError,ForNonNullableByDefault} core::int;
+      #t105.{core::Set::add}(#t107);
+    }
+  } =>#t105, block {
+    final core::Set<core::int> #t108 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (final dynamic #t109 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:52:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...z}, // Error.
+        ^") {
+      final core::int #t110 = #t109 as{TypeError,ForNonNullableByDefault} core::int;
+      #t108.{core::Set::add}(#t110);
+    }
+  } =>#t108, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:53:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {...w}, // Error.
+        ^": null}, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:54:19: Error: Unexpected type 'X' of a map spread entry.  Expected 'dynamic' or a Map.
+    <int, int>{...x}, // Error.
+                  ^": null}, let final core::Set<core::int> #t111 = new col::_CompactLinkedHashSet::•<core::int>() in let final core::bool #t112 = #t111.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread.  Expected 'dynamic' or an Iterable.
+    <int>{...w}, // Error.
+             ^") in #t111, block {
+    final core::Set<core::int> #t113 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t114 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:56:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...x}, // Error.
+                       ^") {
+        final core::int #t115 = #t114 as{TypeError,ForNonNullableByDefault} core::int;
+        #t113.{core::Set::add}(#t115);
+      }
+  } =>#t113, block {
+    final core::Set<core::int> #t116 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t117 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:57:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...y}, // Error.
+                       ^") {
+        final core::int #t118 = #t117 as{TypeError,ForNonNullableByDefault} core::int;
+        #t116.{core::Set::add}(#t118);
+      }
+  } =>#t116, block {
+    final core::Set<core::int> #t119 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition)
+      for (final dynamic #t120 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:58:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...z}, // Error.
+                       ^") {
+        final core::int #t121 = #t120 as{TypeError,ForNonNullableByDefault} core::int;
+        #t119.{core::Set::add}(#t121);
+      }
+  } =>#t119, block {
+    final core::Map<core::int, core::int> #t122 = <core::int, core::int>{};
+    if(condition)
+      #t122.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {if (condition) ...w}, // Error.
+                       ^", null);
+  } =>#t122, block {
+    final core::Set<core::int> #t123 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        for (final dynamic #t124 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:60:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...x}, // Error.
+                                    ^") {
+          final core::int #t125 = #t124 as{TypeError,ForNonNullableByDefault} core::int;
+          #t123.{core::Set::add}(#t125);
+        }
+      }
+    }
+  } =>#t123, block {
+    final core::Set<core::int> #t126 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        for (final dynamic #t127 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:61:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...y}, // Error.
+                                    ^") {
+          final core::int #t128 = #t127 as{TypeError,ForNonNullableByDefault} core::int;
+          #t126.{core::Set::add}(#t128);
+        }
+      }
+    }
+  } =>#t126, block {
+    final core::Set<core::int> #t129 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        for (final dynamic #t130 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:62:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...z}, // Error.
+                                    ^") {
+          final core::int #t131 = #t130 as{TypeError,ForNonNullableByDefault} core::int;
+          #t129.{core::Set::add}(#t131);
+        }
+      }
+    }
+  } =>#t129, block {
+    final core::Map<core::int, core::int> #t132 = <core::int, core::int>{};
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        #t132.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (dynamic e in iterable) ...w}, // Error.
+                                    ^", null);
+      }
+    }
+  } =>#t132, block {
+    final core::Set<core::int> #t133 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t134 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:64:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...x}, // Error.
+                                     ^") {
+        final core::int #t135 = #t134 as{TypeError,ForNonNullableByDefault} core::int;
+        #t133.{core::Set::add}(#t135);
+      }
+  } =>#t133, block {
+    final core::Set<core::int> #t136 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t137 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:65:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...y}, // Error.
+                                     ^") {
+        final core::int #t138 = #t137 as{TypeError,ForNonNullableByDefault} core::int;
+        #t136.{core::Set::add}(#t138);
+      }
+  } =>#t136, block {
+    final core::Set<core::int> #t139 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      for (final dynamic #t140 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:66:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...z}, // Error.
+                                     ^") {
+        final core::int #t141 = #t140 as{TypeError,ForNonNullableByDefault} core::int;
+        #t139.{core::Set::add}(#t141);
+      }
+  } =>#t139, block {
+    final core::Map<core::int, core::int> #t142 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1))
+      #t142.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+    {for (int i = 0; i < 42; ++i) ...w}, // Error.
+                                     ^", null);
+  } =>#t142, block {
+    final core::Set<core::int> #t143 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t144 = x;
+    if(!#t144.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t144{core::Iterable<dynamic>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t145 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int #t146 = #t145 as{TypeError,ForNonNullableByDefault} core::int;
+          #t143.{core::Set::add}(#t146);
+        }
+      }
+    }
+  } =>#t143, block {
+    final core::Set<core::int> #t147 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t148 = y;
+    if(!#t148.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t148{core::Iterable<dynamic>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t149 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int #t150 = #t149 as{TypeError,ForNonNullableByDefault} core::int;
+          #t147.{core::Set::add}(#t150);
+        }
+      }
+    }
+  } =>#t147, block {
+    final core::Set<core::int> #t151 = new col::_CompactLinkedHashSet::•<core::int>();
+    final core::Iterable<dynamic>? #t152 = z;
+    if(!#t152.{core::Object::==}(null)) {
+      core::Iterator<dynamic> :sync-for-iterator = #t152{core::Iterable<dynamic>}.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        final dynamic #t153 = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::int #t154 = #t153 as{TypeError,ForNonNullableByDefault} core::int;
+          #t151.{core::Set::add}(#t154);
+        }
+      }
+    }
+  } =>#t151, block {
+    final core::Map<core::int, core::int> #t155 = <core::int, core::int>{};
+    final core::Map<core::int, core::int>? #t156 = w;
+    if(!#t156.{core::Object::==}(null)) {
+      core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t156{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> #t157 = :sync-for-iterator.{core::Iterator::current};
+        #t155.{core::Map::[]=}(#t157.{core::MapEntry::key}, #t157.{core::MapEntry::value});
+      }
+    }
+  } =>#t155, block {
+    final core::Set<core::int> #t158 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t159 = x;
+      if(!#t159.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t159{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t160 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t161 = #t160 as{TypeError,ForNonNullableByDefault} core::int;
+            #t158.{core::Set::add}(#t161);
+          }
+        }
+      }
+    }
+  } =>#t158, block {
+    final core::Set<core::int> #t162 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t163 = y;
+      if(!#t163.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t163{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t164 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t165 = #t164 as{TypeError,ForNonNullableByDefault} core::int;
+            #t162.{core::Set::add}(#t165);
+          }
+        }
+      }
+    }
+  } =>#t162, block {
+    final core::Set<core::int> #t166 = new col::_CompactLinkedHashSet::•<core::int>();
+    if(condition) {
+      final core::Iterable<dynamic>? #t167 = z;
+      if(!#t167.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t167{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t168 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t169 = #t168 as{TypeError,ForNonNullableByDefault} core::int;
+            #t166.{core::Set::add}(#t169);
+          }
+        }
+      }
+    }
+  } =>#t166, block {
+    final core::Map<core::int, core::int> #t170 = <core::int, core::int>{};
+    if(condition) {
+      final core::Map<core::int, core::int>? #t171 = w;
+      if(!#t171.{core::Object::==}(null)) {
+        core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t171{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> #t172 = :sync-for-iterator.{core::Iterator::current};
+          #t170.{core::Map::[]=}(#t172.{core::MapEntry::key}, #t172.{core::MapEntry::value});
+        }
+      }
+    }
+  } =>#t170, block {
+    final core::Set<core::int> #t173 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Iterable<dynamic>? #t174 = x;
+          if(!#t174.{core::Object::==}(null)) {
+            core::Iterator<dynamic> :sync-for-iterator = #t174{core::Iterable<dynamic>}.{core::Iterable::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final dynamic #t175 = :sync-for-iterator.{core::Iterator::current};
+              {
+                final core::int #t176 = #t175 as{TypeError,ForNonNullableByDefault} core::int;
+                #t173.{core::Set::add}(#t176);
+              }
+            }
+          }
+        }
+      }
+    }
+  } =>#t173, block {
+    final core::Set<core::int> #t177 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Iterable<dynamic>? #t178 = y;
+          if(!#t178.{core::Object::==}(null)) {
+            core::Iterator<dynamic> :sync-for-iterator = #t178{core::Iterable<dynamic>}.{core::Iterable::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final dynamic #t179 = :sync-for-iterator.{core::Iterator::current};
+              {
+                final core::int #t180 = #t179 as{TypeError,ForNonNullableByDefault} core::int;
+                #t177.{core::Set::add}(#t180);
+              }
+            }
+          }
+        }
+      }
+    }
+  } =>#t177, block {
+    final core::Set<core::int> #t181 = new col::_CompactLinkedHashSet::•<core::int>();
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Iterable<dynamic>? #t182 = z;
+          if(!#t182.{core::Object::==}(null)) {
+            core::Iterator<dynamic> :sync-for-iterator = #t182{core::Iterable<dynamic>}.{core::Iterable::iterator};
+            for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+              final dynamic #t183 = :sync-for-iterator.{core::Iterator::current};
+              {
+                final core::int #t184 = #t183 as{TypeError,ForNonNullableByDefault} core::int;
+                #t181.{core::Set::add}(#t184);
+              }
+            }
+          }
+        }
+      }
+    }
+  } =>#t181, block {
+    final core::Map<core::int, core::int> #t185 = <core::int, core::int>{};
+    {
+      core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator};
+      for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+        dynamic e = :sync-for-iterator.{core::Iterator::current};
+        {
+          final core::Map<core::int, core::int>? #t186 = w;
+          if(!#t186.{core::Object::==}(null)) {
+            core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t186{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> #t187 = :sync-for-iterator.{core::Iterator::current};
+              #t185.{core::Map::[]=}(#t187.{core::MapEntry::key}, #t187.{core::MapEntry::value});
+            }
+          }
+        }
+      }
+    }
+  } =>#t185, block {
+    final core::Set<core::int> #t188 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t189 = x;
+      if(!#t189.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t189{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t190 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t191 = #t190 as{TypeError,ForNonNullableByDefault} core::int;
+            #t188.{core::Set::add}(#t191);
+          }
+        }
+      }
+    }
+  } =>#t188, block {
+    final core::Set<core::int> #t192 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t193 = y;
+      if(!#t193.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t193{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t194 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t195 = #t194 as{TypeError,ForNonNullableByDefault} core::int;
+            #t192.{core::Set::add}(#t195);
+          }
+        }
+      }
+    }
+  } =>#t192, block {
+    final core::Set<core::int> #t196 = new col::_CompactLinkedHashSet::•<core::int>();
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Iterable<dynamic>? #t197 = z;
+      if(!#t197.{core::Object::==}(null)) {
+        core::Iterator<dynamic> :sync-for-iterator = #t197{core::Iterable<dynamic>}.{core::Iterable::iterator};
+        for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
+          final dynamic #t198 = :sync-for-iterator.{core::Iterator::current};
+          {
+            final core::int #t199 = #t198 as{TypeError,ForNonNullableByDefault} core::int;
+            #t196.{core::Set::add}(#t199);
+          }
+        }
+      }
+    }
+  } =>#t196, block {
+    final core::Map<core::int, core::int> #t200 = <core::int, core::int>{};
+    for (core::int i = 0; i.{core::num::<}(42); i = i.{core::num::+}(1)) {
+      final core::Map<core::int, core::int>? #t201 = w;
+      if(!#t201.{core::Object::==}(null)) {
+        core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t201{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> #t202 = :sync-for-iterator.{core::Iterator::current};
+          #t200.{core::Map::[]=}(#t202.{core::MapEntry::key}, #t202.{core::MapEntry::value});
+        }
+      }
+    }
+  } =>#t200];
+}
+static method main() → dynamic {}