pkg/front_end/testcases/general/control_flow_collection_inference.dart:123:49: Context: Write to i@7018
  var list10 = [for (int i = 0; oracle("foo"); i++) 42];
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:124:48: Context: Write to i@7018
  var set10 = {for (int i = 0; oracle("foo"); i++) 42, null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:125:48: Context: Write to i@7018
  var map10 = {for (int i = 0; oracle("foo"); i++) "bar": 42, "baz": null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:126:49: Context: Write to i@7018
  var list11 = [for (int i = 0; oracle("foo"); i++) dynVar];
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:127:48: Context: Write to i@7018
  var set11 = {for (int i = 0; oracle("foo"); i++) dynVar, null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:128:48: Context: Write to i@7018
  var map11 = {for (int i = 0; oracle("foo"); i++) "bar": dynVar, "baz": null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:129:49: Context: Write to i@7018
  var list12 = [for (int i = 0; oracle("foo"); i++) [42]];
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:130:48: Context: Write to i@7018
  var set12 = {for (int i = 0; oracle("foo"); i++) [42], null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:131:48: Context: Write to i@7018
  var map12 = {for (int i = 0; oracle("foo"); i++) "bar": [42], "baz": null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:132:49: Context: Write to i@7018
  var list20 = [for (int i = 0; oracle("foo"); i++) ...[42]];
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:133:48: Context: Write to i@7018
  var set20 = {for (int i = 0; oracle("foo"); i++) ...[42], null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:134:48: Context: Write to i@7018
  var map20 = {for (int i = 0; oracle("foo"); i++) ...{"bar": 42}, "baz": null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:135:49: Context: Write to i@7018
  var list21 = [for (int i = 0; oracle("foo"); i++) ...[dynVar]];
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:136:48: Context: Write to i@7018
  var set21 = {for (int i = 0; oracle("foo"); i++) ...[dynVar], null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:137:48: Context: Write to i@7018
  var map21 = {for (int i = 0; oracle("foo"); i++) ...{"bar": dynVar}, "baz": null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:138:49: Context: Write to i@7018
  var list22 = [for (int i = 0; oracle("foo"); i++) ...[[42]]];
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:139:48: Context: Write to i@7018
  var set22 = {for (int i = 0; oracle("foo"); i++) ...[[42]], null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:140:48: Context: Write to i@7018
  var map22 = {for (int i = 0; oracle("foo"); i++) ...{"bar": [42]}, "baz": null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:141:49: Context: Write to i@7018
  var list30 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[42]];
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:142:48: Context: Write to i@7018
  var set30 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[42], null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:143:48: Context: Write to i@7018
  var map30 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...{"bar": 42}, "baz": null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:144:49: Context: Write to i@7018
  var list31 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[dynVar]];
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:145:48: Context: Write to i@7018
  var set31 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[dynVar], null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:146:48: Context: Write to i@7018
  var map31 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...{"bar": dynVar}, "baz": null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:147:49: Context: Write to i@7018
  var list33 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[42]]];
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:148:48: Context: Write to i@7018
  var set33 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[42]], null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:149:48: Context: Write to i@7018
  var map33 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...{"bar": [42]}, "baz": null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:150:61: Context: Write to i@7018
  List<List<int>> list40 = [for (int i = 0; oracle("foo"); i++) ...[[]]];
                                                            ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:151:59: Context: Write to i@7018
  Set<List<int>> set40 = {for (int i = 0; oracle("foo"); i++) ...[[]], null};
                                                          ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:152:67: Context: Write to i@7018
  Map<String, List<int>> map40 = {for (int i = 0; oracle("foo"); i++) ...{"bar": []}, "baz": null};
                                                                  ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:153:61: Context: Write to i@7018
  List<List<int>> list41 = [for (int i = 0; oracle("foo"); i++) ...{[]}];
                                                            ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:154:59: Context: Write to i@7018
  Set<List<int>> set41 = {for (int i = 0; oracle("foo"); i++) ...{[]}, null};
                                                          ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:155:61: Context: Write to i@7018
  List<List<int>> list42 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]]];
                                                            ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:156:59: Context: Write to i@7018
  Set<List<int>> set42 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]], null};
                                                          ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:157:67: Context: Write to i@7018
  Map<String, List<int>> map42 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...{"bar": []}, "baz": null};
                                                                  ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:158:55: Context: Write to i@7018
  List<int> list50 = [for (int i = 0; oracle("foo"); i++) ...[]];
                                                      ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:159:53: Context: Write to i@7018
  Set<int> set50 = {for (int i = 0; oracle("foo"); i++) ...[], null};
                                                    ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:160:61: Context: Write to i@7018
  Map<String, int> map50 = {for (int i = 0; oracle("foo"); i++) ...{}, "baz": null};
                                                            ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:161:55: Context: Write to i@7018
  List<int> list51 = [for (int i = 0; oracle("foo"); i++) ...{}];
                                                      ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:162:53: Context: Write to i@7018
  Set<int> set51 = {for (int i = 0; oracle("foo"); i++) ...{}, null};
                                                    ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:163:55: Context: Write to i@7018
  List<int> list52 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[]];
                                                      ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:164:53: Context: Write to i@7018
  Set<int> set52 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[], null};
                                                    ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:165:61: Context: Write to i@7018
  List<List<int>> list60 = [for (int i = 0; oracle("foo"); i++) ...[[]]];
                                                            ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:166:59: Context: Write to i@7018
  Set<List<int>> set60 = {for (int i = 0; oracle("foo"); i++) ...[[]], null};
                                                          ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:167:67: Context: Write to i@7018
  Map<String, List<int>> map60 = {for (int i = 0; oracle("foo"); i++) ...{"bar": []}, "baz": null};
                                                                  ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:168:61: Context: Write to i@7018
  List<List<int>> list61 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]]];
                                                            ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:169:59: Context: Write to i@7018
  Set<List<int>> set61 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]], null};
                                                          ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:170:67: Context: Write to i@7018
  Map<String, List<int>> map61 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...{"bar": []}, "baz": null};
                                                                  ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:171:61: Context: Write to i@7018
  List<List<int>> list70 = [for (int i = 0; oracle("foo"); i++) []];
                                                            ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:172:59: Context: Write to i@7018
  Set<List<int>> set70 = {for (int i = 0; oracle("foo"); i++) [], null};
                                                          ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:173:67: Context: Write to i@7018
  Map<String, List<int>> map70 = {for (int i = 0; oracle("foo"); i++) "bar": [], "baz": null};
                                                                  ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:174:61: Context: Write to i@7018
  List<List<int>> list71 = [for (int i = 0; oracle("foo"); i++) if (oracle()) []];
                                                            ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:175:59: Context: Write to i@7018
  Set<List<int>> set71 = {for (int i = 0; oracle("foo"); i++) if (oracle()) [], null};
                                                          ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:176:67: Context: Write to i@7018
  Map<String, List<int>> map71 = {for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": [], "baz": null};
                                                                  ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:177:49: Context: Write to i@7018
  var list80 = [for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:178:48: Context: Write to i@7018
  var set80 = {for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:179:48: Context: Write to i@7018
  var map80 = {for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:180:49: Context: Write to i@7018
  var list81 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else ...listDouble];
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:181:48: Context: Write to i@7018
  var set81 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else ...listDouble, null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:182:48: Context: Write to i@7018
  var map81 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...mapStringInt else ...mapStringDouble, "baz": null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:183:49: Context: Write to i@7018
  var list82 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else ...dynVar];
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:184:48: Context: Write to i@7018
  var set82 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else ...dynVar, null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:185:48: Context: Write to i@7018
  var map82 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...mapStringInt else ...dynVar, "baz": null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:186:49: Context: Write to i@7018
  var list83 = [for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...listDouble];
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:187:48: Context: Write to i@7018
  var set83 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else 3.14, null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:188:48: Context: Write to i@7018
  var map83 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...mapStringInt else "bar": 3.14, "baz": null};
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:189:55: Context: Write to i@7018
  List<int> list90 = [for (int i = 0; oracle("foo"); i++) dynVar];
                                                      ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:190:53: Context: Write to i@7018
  Set<int> set90 = {for (int i = 0; oracle("foo"); i++) dynVar, null};
                                                    ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:191:61: Context: Write to i@7018
  Map<String, int> map90 = {for (int i = 0; oracle("foo"); i++) "bar": dynVar, "baz": null};
                                                            ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:192:55: Context: Write to i@7018
  List<int> list91 = [for (int i = 0; oracle("foo"); i++) ...dynVar];
                                                      ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:193:53: Context: Write to i@7018
  Set<int> set91 = {for (int i = 0; oracle("foo"); i++) ...dynVar, null};
                                                    ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:194:61: Context: Write to i@7018
  Map<String, int> map91 = {for (int i = 0; oracle("foo"); i++) ...dynVar, "baz": null};
                                                            ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:195:40: Context: Write to index@6916
  List<int> list100 = <int>[for (index = 0; oracle("foo"); index++) 42];
                                       ^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:195:65: Context: Write to index@6916
  List<int> list100 = <int>[for (index = 0; oracle("foo"); index++) 42];
                                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:196:38: Context: Write to index@6916
  Set<int> set100 = <int>{for (index = 0; oracle("foo"); index++) 42};
                                     ^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:196:63: Context: Write to index@6916
  Set<int> set100 = <int>{for (index = 0; oracle("foo"); index++) 42};
                                                              ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:197:54: Context: Write to index@6916
  Map<String, int> map100 = <String, int>{for (index = 0; oracle("foo"); index++) "bar": 42};
                                                     ^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:197:79: Context: Write to index@6916
  Map<String, int> map100 = <String, int>{for (index = 0; oracle("foo"); index++) "bar": 42};
                                                                              ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:204:48: Context: Write to i@7018
  List<int> list130 = [for (var i = 1; i < 2; i++) i];
                                               ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:205:46: Context: Write to i@7018
  Set<int> set130 = {for (var i = 1; i < 2; i++) i};
                                             ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:206:51: Context: Write to i@7018
  Map<int, int> map130 = {for (var i = 1; i < 2; i++) i: i};
                                                  ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:210:41: Context: Write to i@13789
  <int>[for (int i = 0; oracle("foo"); i++) "bar"];
                                        ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:211:41: Context: Write to i@13789
  <int>{for (int i = 0; oracle("foo"); i++) "bar", null};
                                        ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:46: Context: Write to i@13789
  <int, int>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
                                             ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:41: Context: Write to i@13789
  <int>[for (int i = 0; oracle("foo"); i++) ...["bar"]];
                                        ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:41: Context: Write to i@13789
  <int>{for (int i = 0; oracle("foo"); i++) ...["bar"], null};
                                        ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:46: Context: Write to i@13789
  <int, int>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
                                             ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:41: Context: Write to i@13789
  <int>[for (int i = 0; oracle("foo"); i++) ...map];
                                        ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:41: Context: Write to i@13789
  <int>{for (int i = 0; oracle("foo"); i++) ...map, null};
                                        ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:46: Context: Write to i@13789
  <int, int>{for (int i = 0; oracle("foo"); i++) ...list, 42: null};
                                             ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:44: Context: Write to i@13789
  <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
                                           ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:44: Context: Write to i@13789
  <String>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
                                           ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:52: Context: Write to i@13789
  <String, String>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
                                                   ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:41: Context: Write to i@13789
  <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42];
                                        ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:41: Context: Write to i@13789
  <int>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42, null};
                                        ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:49: Context: Write to i@13789
  <String, int>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...list else "bar": 42, "baz": null};
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:41: Context: Write to i@13789
  <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map];
                                        ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:41: Context: Write to i@13789
  <int>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map, null};
                                        ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:49: Context: Write to i@13789
  <String, int>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else ...list, "baz": null};
                                                ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:267:29: Context: Possible promotion of a@16609
  List<int> list10 = [if (a is B) a.foo];
                            ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:268:27: Context: Possible promotion of a@16609
  Set<int> set10 = {if (a is B) a.foo};
                          ^^
pkg/front_end/testcases/general/control_flow_collection_inference.dart:269:32: Context: Possible promotion of a@16609
  Map<int, int> map10 = {if (a is B) a.foo: a.foo};
                               ^^
