library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:10:17: Error: Unexpected token 'if'.
//   var list10 = [if (oracle("foo")) 42];
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:11:16: Error: Unexpected token 'if'.
//   var set10 = {if (oracle("foo")) 42, null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:12:16: Error: Unexpected token 'if'.
//   var map10 = {if (oracle("foo")) "bar": 42, "baz": null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:13:17: Error: Unexpected token 'if'.
//   var list11 = [if (oracle("foo")) dynVar];
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:14:16: Error: Unexpected token 'if'.
//   var set11 = {if (oracle("foo")) dynVar, null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:15:16: Error: Unexpected token 'if'.
//   var map11 = {if (oracle("foo")) "bar": dynVar, "baz": null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:16:17: Error: Unexpected token 'if'.
//   var list12 = [if (oracle("foo")) [42]];
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:17:16: Error: Unexpected token 'if'.
//   var set12 = {if (oracle("foo")) [42], null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:18:16: Error: Unexpected token 'if'.
//   var map12 = {if (oracle("foo")) "bar": [42], "baz": null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:19:36: Error: Unexpected token '...'.
//   var list20 = [if (oracle("foo")) ...[42]];
//                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:19:17: Error: Unexpected token 'if'.
//   var list20 = [if (oracle("foo")) ...[42]];
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:20:35: Error: Unexpected token '...'.
//   var set20 = {if (oracle("foo")) ...[42], null};
//                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:20:16: Error: Unexpected token 'if'.
//   var set20 = {if (oracle("foo")) ...[42], null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:21:35: Error: Unexpected token '...'.
//   var map20 = {if (oracle("foo")) ...{"bar": 42}, "baz": null};
//                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:21:16: Error: Unexpected token 'if'.
//   var map20 = {if (oracle("foo")) ...{"bar": 42}, "baz": null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:22:36: Error: Unexpected token '...'.
//   var list21 = [if (oracle("foo")) ...[dynVar]];
//                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:22:17: Error: Unexpected token 'if'.
//   var list21 = [if (oracle("foo")) ...[dynVar]];
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:23:35: Error: Unexpected token '...'.
//   var set21 = {if (oracle("foo")) ...[dynVar], null};
//                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:23:16: Error: Unexpected token 'if'.
//   var set21 = {if (oracle("foo")) ...[dynVar], null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:24:35: Error: Unexpected token '...'.
//   var map21 = {if (oracle("foo")) ...{"bar": dynVar}, "baz": null};
//                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:24:16: Error: Unexpected token 'if'.
//   var map21 = {if (oracle("foo")) ...{"bar": dynVar}, "baz": null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:25:36: Error: Unexpected token '...'.
//   var list22 = [if (oracle("foo")) ...[[42]]];
//                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:25:17: Error: Unexpected token 'if'.
//   var list22 = [if (oracle("foo")) ...[[42]]];
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:26:35: Error: Unexpected token '...'.
//   var set22 = {if (oracle("foo")) ...[[42]], null};
//                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:26:16: Error: Unexpected token 'if'.
//   var set22 = {if (oracle("foo")) ...[[42]], null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:27:35: Error: Unexpected token '...'.
//   var map22 = {if (oracle("foo")) ...{"bar": [42]}, "baz": null};
//                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:27:16: Error: Unexpected token 'if'.
//   var map22 = {if (oracle("foo")) ...{"bar": [42]}, "baz": null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:28:50: Error: Unexpected token '...'.
//   var list30 = [if (oracle("foo")) if (oracle()) ...[42]];
//                                                  ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:28:36: Error: Unexpected token 'if'.
//   var list30 = [if (oracle("foo")) if (oracle()) ...[42]];
//                                    ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:28:17: Error: Unexpected token 'if'.
//   var list30 = [if (oracle("foo")) if (oracle()) ...[42]];
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:29:49: Error: Unexpected token '...'.
//   var set30 = {if (oracle("foo")) if (oracle()) ...[42], null};
//                                                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:29:35: Error: Unexpected token 'if'.
//   var set30 = {if (oracle("foo")) if (oracle()) ...[42], null};
//                                   ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:29:16: Error: Unexpected token 'if'.
//   var set30 = {if (oracle("foo")) if (oracle()) ...[42], null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:30:49: Error: Unexpected token '...'.
//   var map30 = {if (oracle("foo")) if (oracle()) ...{"bar": 42}, "baz": null};
//                                                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:30:35: Error: Unexpected token 'if'.
//   var map30 = {if (oracle("foo")) if (oracle()) ...{"bar": 42}, "baz": null};
//                                   ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:30:16: Error: Unexpected token 'if'.
//   var map30 = {if (oracle("foo")) if (oracle()) ...{"bar": 42}, "baz": null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:31:50: Error: Unexpected token '...'.
//   var list31 = [if (oracle("foo")) if (oracle()) ...[dynVar]];
//                                                  ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:31:36: Error: Unexpected token 'if'.
//   var list31 = [if (oracle("foo")) if (oracle()) ...[dynVar]];
//                                    ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:31:17: Error: Unexpected token 'if'.
//   var list31 = [if (oracle("foo")) if (oracle()) ...[dynVar]];
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:32:49: Error: Unexpected token '...'.
//   var set31 = {if (oracle("foo")) if (oracle()) ...[dynVar], null};
//                                                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:32:35: Error: Unexpected token 'if'.
//   var set31 = {if (oracle("foo")) if (oracle()) ...[dynVar], null};
//                                   ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:32:16: Error: Unexpected token 'if'.
//   var set31 = {if (oracle("foo")) if (oracle()) ...[dynVar], null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:33:49: Error: Unexpected token '...'.
//   var map31 = {if (oracle("foo")) if (oracle()) ...{"bar": dynVar}, "baz": null};
//                                                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:33:35: Error: Unexpected token 'if'.
//   var map31 = {if (oracle("foo")) if (oracle()) ...{"bar": dynVar}, "baz": null};
//                                   ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:33:16: Error: Unexpected token 'if'.
//   var map31 = {if (oracle("foo")) if (oracle()) ...{"bar": dynVar}, "baz": null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:34:50: Error: Unexpected token '...'.
//   var list33 = [if (oracle("foo")) if (oracle()) ...[[42]]];
//                                                  ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:34:36: Error: Unexpected token 'if'.
//   var list33 = [if (oracle("foo")) if (oracle()) ...[[42]]];
//                                    ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:34:17: Error: Unexpected token 'if'.
//   var list33 = [if (oracle("foo")) if (oracle()) ...[[42]]];
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:35:49: Error: Unexpected token '...'.
//   var set33 = {if (oracle("foo")) if (oracle()) ...[[42]], null};
//                                                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:35:35: Error: Unexpected token 'if'.
//   var set33 = {if (oracle("foo")) if (oracle()) ...[[42]], null};
//                                   ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:35:16: Error: Unexpected token 'if'.
//   var set33 = {if (oracle("foo")) if (oracle()) ...[[42]], null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:36:49: Error: Unexpected token '...'.
//   var map33 = {if (oracle("foo")) if (oracle()) ...{"bar": [42]}, "baz": null};
//                                                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:36:35: Error: Unexpected token 'if'.
//   var map33 = {if (oracle("foo")) if (oracle()) ...{"bar": [42]}, "baz": null};
//                                   ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:36:16: Error: Unexpected token 'if'.
//   var map33 = {if (oracle("foo")) if (oracle()) ...{"bar": [42]}, "baz": null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:37:48: Error: Unexpected token '...'.
//   List<List<int>> list40 = [if (oracle("foo")) ...[[]]];
//                                                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:37:29: Error: Unexpected token 'if'.
//   List<List<int>> list40 = [if (oracle("foo")) ...[[]]];
//                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:38:46: Error: Unexpected token '...'.
//   Set<List<int>> set40 = {if (oracle("foo")) ...[[]], null};
//                                              ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:38:27: Error: Unexpected token 'if'.
//   Set<List<int>> set40 = {if (oracle("foo")) ...[[]], null};
//                           ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:39:54: Error: Unexpected token '...'.
//   Map<String, List<int>> map40 = {if (oracle("foo")) ...{"bar", []}, "baz": null};
//                                                      ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:39:35: Error: Unexpected token 'if'.
//   Map<String, List<int>> map40 = {if (oracle("foo")) ...{"bar", []}, "baz": null};
//                                   ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:40:48: Error: Unexpected token '...'.
//   List<List<int>> list41 = [if (oracle("foo")) ...{[]}];
//                                                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:40:29: Error: Unexpected token 'if'.
//   List<List<int>> list41 = [if (oracle("foo")) ...{[]}];
//                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:41:46: Error: Unexpected token '...'.
//   Set<List<int>> set41 = {if (oracle("foo")) ...{[]}, null};
//                                              ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:41:27: Error: Unexpected token 'if'.
//   Set<List<int>> set41 = {if (oracle("foo")) ...{[]}, null};
//                           ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:42:62: Error: Unexpected token '...'.
//   List<List<int>> list42 = [if (oracle("foo")) if (oracle()) ...[[]]];
//                                                              ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:42:48: Error: Unexpected token 'if'.
//   List<List<int>> list42 = [if (oracle("foo")) if (oracle()) ...[[]]];
//                                                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:42:29: Error: Unexpected token 'if'.
//   List<List<int>> list42 = [if (oracle("foo")) if (oracle()) ...[[]]];
//                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:43:60: Error: Unexpected token '...'.
//   Set<List<int>> set42 = {if (oracle("foo")) if (oracle()) ...[[]], null};
//                                                            ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:43:46: Error: Unexpected token 'if'.
//   Set<List<int>> set42 = {if (oracle("foo")) if (oracle()) ...[[]], null};
//                                              ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:43:27: Error: Unexpected token 'if'.
//   Set<List<int>> set42 = {if (oracle("foo")) if (oracle()) ...[[]], null};
//                           ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:44:68: Error: Unexpected token '...'.
//   Map<String, List<int>> map42 = {if (oracle("foo")) if (oracle()) ...{"bar": []}, "baz": null};
//                                                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:44:54: Error: Unexpected token 'if'.
//   Map<String, List<int>> map42 = {if (oracle("foo")) if (oracle()) ...{"bar": []}, "baz": null};
//                                                      ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:44:35: Error: Unexpected token 'if'.
//   Map<String, List<int>> map42 = {if (oracle("foo")) if (oracle()) ...{"bar": []}, "baz": null};
//                                   ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:45:42: Error: Unexpected token '...'.
//   List<int> list50 = [if (oracle("foo")) ...[]];
//                                          ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:45:23: Error: Unexpected token 'if'.
//   List<int> list50 = [if (oracle("foo")) ...[]];
//                       ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:46:40: Error: Unexpected token '...'.
//   Set<int> set50 = {if (oracle("foo")) ...[], null};
//                                        ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:46:21: Error: Unexpected token 'if'.
//   Set<int> set50 = {if (oracle("foo")) ...[], null};
//                     ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:47:48: Error: Unexpected token '...'.
//   Map<String, int> map50 = {if (oracle("foo")) ...{}, "baz": null};
//                                                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:47:29: Error: Unexpected token 'if'.
//   Map<String, int> map50 = {if (oracle("foo")) ...{}, "baz": null};
//                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:48:42: Error: Unexpected token '...'.
//   List<int> list51 = [if (oracle("foo")) ...{}];
//                                          ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:48:23: Error: Unexpected token 'if'.
//   List<int> list51 = [if (oracle("foo")) ...{}];
//                       ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:49:40: Error: Unexpected token '...'.
//   Set<int> set51 = {if (oracle("foo")) ...{}, null};
//                                        ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:49:21: Error: Unexpected token 'if'.
//   Set<int> set51 = {if (oracle("foo")) ...{}, null};
//                     ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:50:56: Error: Unexpected token '...'.
//   List<int> list52 = [if (oracle("foo")) if (oracle()) ...[]];
//                                                        ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:50:42: Error: Unexpected token 'if'.
//   List<int> list52 = [if (oracle("foo")) if (oracle()) ...[]];
//                                          ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:50:23: Error: Unexpected token 'if'.
//   List<int> list52 = [if (oracle("foo")) if (oracle()) ...[]];
//                       ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:51:54: Error: Unexpected token '...'.
//   Set<int> set52 = {if (oracle("foo")) if (oracle()) ...[], null};
//                                                      ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:51:40: Error: Unexpected token 'if'.
//   Set<int> set52 = {if (oracle("foo")) if (oracle()) ...[], null};
//                                        ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:51:21: Error: Unexpected token 'if'.
//   Set<int> set52 = {if (oracle("foo")) if (oracle()) ...[], null};
//                     ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:52:62: Error: Unexpected token '...'.
//   Map<String, int> map52 = {if (oracle("foo")) if (oracle()) ...{}, "baz": null};
//                                                              ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:52:48: Error: Unexpected token 'if'.
//   Map<String, int> map52 = {if (oracle("foo")) if (oracle()) ...{}, "baz": null};
//                                                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:52:29: Error: Unexpected token 'if'.
//   Map<String, int> map52 = {if (oracle("foo")) if (oracle()) ...{}, "baz": null};
//                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:53:48: Error: Unexpected token '...'.
//   List<List<int>> list60 = [if (oracle("foo")) ...[[]]];
//                                                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:53:29: Error: Unexpected token 'if'.
//   List<List<int>> list60 = [if (oracle("foo")) ...[[]]];
//                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:54:46: Error: Unexpected token '...'.
//   Set<List<int>> set60 = {if (oracle("foo")) ...[[]], null};
//                                              ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:54:27: Error: Unexpected token 'if'.
//   Set<List<int>> set60 = {if (oracle("foo")) ...[[]], null};
//                           ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:55:54: Error: Unexpected token '...'.
//   Map<String, List<int>> map60 = {if (oracle("foo")) ...{"bar": []}, "baz": null};
//                                                      ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:55:35: Error: Unexpected token 'if'.
//   Map<String, List<int>> map60 = {if (oracle("foo")) ...{"bar": []}, "baz": null};
//                                   ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:56:62: Error: Unexpected token '...'.
//   List<List<int>> list61 = [if (oracle("foo")) if (oracle()) ...[[]]];
//                                                              ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:56:48: Error: Unexpected token 'if'.
//   List<List<int>> list61 = [if (oracle("foo")) if (oracle()) ...[[]]];
//                                                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:56:29: Error: Unexpected token 'if'.
//   List<List<int>> list61 = [if (oracle("foo")) if (oracle()) ...[[]]];
//                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:57:60: Error: Unexpected token '...'.
//   Set<List<int>> set61 = {if (oracle("foo")) if (oracle()) ...[[]], null};
//                                                            ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:57:46: Error: Unexpected token 'if'.
//   Set<List<int>> set61 = {if (oracle("foo")) if (oracle()) ...[[]], null};
//                                              ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:57:27: Error: Unexpected token 'if'.
//   Set<List<int>> set61 = {if (oracle("foo")) if (oracle()) ...[[]], null};
//                           ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:58:68: Error: Unexpected token '...'.
//   Map<String, List<int>> map61 = {if (oracle("foo")) if (oracle()) ...{"bar": []}, "baz": null};
//                                                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:58:54: Error: Unexpected token 'if'.
//   Map<String, List<int>> map61 = {if (oracle("foo")) if (oracle()) ...{"bar": []}, "baz": null};
//                                                      ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:58:35: Error: Unexpected token 'if'.
//   Map<String, List<int>> map61 = {if (oracle("foo")) if (oracle()) ...{"bar": []}, "baz": null};
//                                   ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:59:29: Error: Unexpected token 'if'.
//   List<List<int>> list70 = [if (oracle("foo")) []];
//                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:60:27: Error: Unexpected token 'if'.
//   Set<List<int>> set70 = {if (oracle("foo")) [], null};
//                           ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:61:48: Error: Unexpected token 'if'.
//   List<List<int>> list71 = [if (oracle("foo")) if (oracle()) []];
//                                                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:61:29: Error: Unexpected token 'if'.
//   List<List<int>> list71 = [if (oracle("foo")) if (oracle()) []];
//                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:62:46: Error: Unexpected token 'if'.
//   Set<List<int>> set71 = {if (oracle("foo")) if (oracle()) [], null};
//                                              ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:62:27: Error: Unexpected token 'if'.
//   Set<List<int>> set71 = {if (oracle("foo")) if (oracle()) [], null};
//                           ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:63:17: Error: Unexpected token 'if'.
//   var list80 = [if (oracle("foo")) 42 else 3.14];
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:64:16: Error: Unexpected token 'if'.
//   var set80 = {if (oracle("foo")) 42 else 3.14, null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:65:16: Error: Unexpected token 'if'.
//   var map80 = {if (oracle("foo")) "bar": 42 else "bar": 3.14, "baz": null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:66:36: Error: Unexpected token '...'.
//   var list81 = [if (oracle("foo")) ...listInt else ...listDouble];
//                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:66:52: Error: Unexpected token '...'.
//   var list81 = [if (oracle("foo")) ...listInt else ...listDouble];
//                                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:66:17: Error: Unexpected token 'if'.
//   var list81 = [if (oracle("foo")) ...listInt else ...listDouble];
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:67:35: Error: Unexpected token '...'.
//   var set81 = {if (oracle("foo")) ...listInt else ...listDouble, null};
//                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:67:51: Error: Unexpected token '...'.
//   var set81 = {if (oracle("foo")) ...listInt else ...listDouble, null};
//                                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:67:16: Error: Unexpected token 'if'.
//   var set81 = {if (oracle("foo")) ...listInt else ...listDouble, null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:68:35: Error: Unexpected token '...'.
//   var map81 = {if (oracle("foo")) ...mapToInt else ...mapToDouble, "baz": null};
//                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:68:52: Error: Unexpected token '...'.
//   var map81 = {if (oracle("foo")) ...mapToInt else ...mapToDouble, "baz": null};
//                                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:68:16: Error: Unexpected token 'if'.
//   var map81 = {if (oracle("foo")) ...mapToInt else ...mapToDouble, "baz": null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:69:36: Error: Unexpected token '...'.
//   var list82 = [if (oracle("foo")) ...listInt else ...dynVar];
//                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:69:52: Error: Unexpected token '...'.
//   var list82 = [if (oracle("foo")) ...listInt else ...dynVar];
//                                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:69:17: Error: Unexpected token 'if'.
//   var list82 = [if (oracle("foo")) ...listInt else ...dynVar];
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:70:35: Error: Unexpected token '...'.
//   var set82 = {if (oracle("foo")) ...listInt else ...dynVar, null};
//                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:70:51: Error: Unexpected token '...'.
//   var set82 = {if (oracle("foo")) ...listInt else ...dynVar, null};
//                                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:70:16: Error: Unexpected token 'if'.
//   var set82 = {if (oracle("foo")) ...listInt else ...dynVar, null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:71:35: Error: Unexpected token '...'.
//   var map82 = {if (oracle("foo")) ...mapToInt else ...dynVar, null};
//                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:71:52: Error: Unexpected token '...'.
//   var map82 = {if (oracle("foo")) ...mapToInt else ...dynVar, null};
//                                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:71:16: Error: Unexpected token 'if'.
//   var map82 = {if (oracle("foo")) ...mapToInt else ...dynVar, null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:72:44: Error: Unexpected token '...'.
//   var list83 = [if (oracle("foo")) 42 else ...listDouble];
//                                            ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:72:17: Error: Unexpected token 'if'.
//   var list83 = [if (oracle("foo")) 42 else ...listDouble];
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:73:35: Error: Unexpected token '...'.
//   var set83 = {if (oracle("foo")) ...listInt else 3.14, null};
//                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:73:16: Error: Unexpected token 'if'.
//   var set83 = {if (oracle("foo")) ...listInt else 3.14, null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:74:35: Error: Unexpected token '...'.
//   var map83 = {if (oracle("foo")) ...mapToInt else "bar": 3.14, "baz": null};
//                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:74:16: Error: Unexpected token 'if'.
//   var map83 = {if (oracle("foo")) ...mapToInt else "bar": 3.14, "baz": null};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:75:23: Error: Unexpected token 'if'.
//   List<int> list90 = [if (oracle("foo")) dynVar];
//                       ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:76:21: Error: Unexpected token 'if'.
//   Set<int> set90 = {if (oracle("foo")) dynVar, null};
//                     ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:77:29: Error: Unexpected token 'if'.
//   Map<String, int> map90 = {if (oracle("foo")) "bar": dynVar, "baz": null};
//                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:78:42: Error: Unexpected token '...'.
//   List<int> list91 = [if (oracle("foo")) ...dynVar];
//                                          ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:78:23: Error: Unexpected token 'if'.
//   List<int> list91 = [if (oracle("foo")) ...dynVar];
//                       ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:79:40: Error: Unexpected token '...'.
//   Set<int> set91 = {if (oracle("foo")) ...dynVar, null};
//                                        ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:79:21: Error: Unexpected token 'if'.
//   Set<int> set91 = {if (oracle("foo")) ...dynVar, null};
//                     ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:80:48: Error: Unexpected token '...'.
//   Map<String, int> map91 = {if (oracle("foo")) ...dynVar, "baz": null};
//                                                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:80:29: Error: Unexpected token 'if'.
//   Map<String, int> map91 = {if (oracle("foo")) ...dynVar, "baz": null};
//                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:81:24: Error: Unexpected token 'if'.
//   List<int> list100 = [if (dynVar) 42];
//                        ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:82:22: Error: Unexpected token 'if'.
//   Set<int> set100 = {if (dynVar) 42};
//                      ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:83:27: Error: Unexpected token 'if'.
//   Map<int, int> map100 = {if (dynVar) 42: 42};
//                           ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:87:9: Error: Unexpected token 'if'.
//   <int>[if (oracle("foo")) "bar"];
//         ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:88:9: Error: Unexpected token 'if'.
//   <int>{if (oracle("foo")) "bar", null};
//         ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:17: Error: Unexpected token 'if'.
//   <String, int>{if (oracle("foo")) "bar": "bar", "baz": null};
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:28: Error: Unexpected token '...'.
//   <int>[if (oracle("foo")) ...["bar"]];
//                            ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:9: Error: Unexpected token 'if'.
//   <int>[if (oracle("foo")) ...["bar"]];
//         ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:28: Error: Unexpected token '...'.
//   <int>{if (oracle("foo")) ...["bar"], null};
//                            ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:9: Error: Unexpected token 'if'.
//   <int>{if (oracle("foo")) ...["bar"], null};
//         ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:36: Error: Unexpected token '...'.
//   <String, int>{if (oracle("foo")) ...{"bar": "bar"}, "baz": null};
//                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:17: Error: Unexpected token 'if'.
//   <String, int>{if (oracle("foo")) ...{"bar": "bar"}, "baz": null};
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:28: Error: Unexpected token '...'.
//   <int>[if (oracle("foo")) ...map];
//                            ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:9: Error: Unexpected token 'if'.
//   <int>[if (oracle("foo")) ...map];
//         ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:28: Error: Unexpected token '...'.
//   <int>{if (oracle("foo")) ...map, null};
//                            ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:9: Error: Unexpected token 'if'.
//   <int>{if (oracle("foo")) ...map, null};
//         ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:36: Error: Unexpected token '...'.
//   <String, int>{if (oracle("foo")) ...["bar"], "baz": null};
//                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:17: Error: Unexpected token 'if'.
//   <String, int>{if (oracle("foo")) ...["bar"], "baz": null};
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:12: Error: Unexpected token 'if'.
//   <String>[if (oracle("foo")) 42 else 3.14];
//            ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:12: Error: Unexpected token 'if'.
//   <String>{if (oracle("foo")) 42 else 3.14, null};
//            ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:20: Error: Unexpected token 'if'.
//   <String, String>{if (oracle("foo")) "bar": 42 else "baz": 3.14, "baz": null};
//                    ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:28: Error: Unexpected token '...'.
//   <int>[if (oracle("foo")) ...map else 42];
//                            ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:9: Error: Unexpected token 'if'.
//   <int>[if (oracle("foo")) ...map else 42];
//         ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:28: Error: Unexpected token '...'.
//   <int>{if (oracle("foo")) ...map else 42, null};
//                            ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:9: Error: Unexpected token 'if'.
//   <int>{if (oracle("foo")) ...map else 42, null};
//         ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:36: Error: Unexpected token '...'.
//   <String, int>{if (oracle("foo")) ...[42] else "bar": 42, "baz": null};
//                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:17: Error: Unexpected token 'if'.
//   <String, int>{if (oracle("foo")) ...[42] else "bar": 42, "baz": null};
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:36: Error: Unexpected token '...'.
//   <int>[if (oracle("foo")) 42 else ...map];
//                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:9: Error: Unexpected token 'if'.
//   <int>[if (oracle("foo")) 42 else ...map];
//         ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:28: Error: Unexpected token '...'.
//   <int>{if (oracle("foo")) ...map else 42, null};
//                            ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:9: Error: Unexpected token 'if'.
//   <int>{if (oracle("foo")) ...map else 42, null};
//         ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:51: Error: Unexpected token '...'.
//   <String, int>{if (oracle("foo")) "bar": 42 else ...[42], "baz": null};
//                                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:17: Error: Unexpected token 'if'.
//   <String, int>{if (oracle("foo")) "bar": 42 else ...[42], "baz": null};
//                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:106:25: Error: Unexpected token 'if'.
//   Set<dynamic> set10 = {if (oracle("foo")) 42 else "bar": 3.14};
//                         ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:107:34: Error: Unexpected token 'if'.
//   Map<dynamic, dynamic> map10 = {if (oracle("foo")) 42 else "bar": 3.14};
//                                  ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:108:25: Error: Unexpected token 'if'.
//   Set<dynamic> set11 = {if (oracle("foo")) "bar": 3.14 else 42};
//                         ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:109:34: Error: Unexpected token 'if'.
//   Map<dynamic, dynamic> map11 = {if (oracle("foo")) "bar": 3.14 else 42};
//                                  ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:110:16: Error: Unexpected token 'if'.
//   var map12 = {if (oracle("foo")) 42 else "bar": 3.14};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:111:16: Error: Unexpected token 'if'.
//   var map13 = {if (oracle("foo")) "bar": 3.14 else 42};
//                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:23: Error: Unexpected token 'if'.
//   List<int> list20 = [if (42) 42];
//                       ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:21: Error: Unexpected token 'if'.
//   Set<int> set20 = {if (42) 42};
//                     ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:26: Error: Unexpected token 'if'.
//   Map<int, int> map30 = {if (42) 42: 42};
//                          ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:34: Error: Unexpected token 'if'.
//   List<String> list40 = <String>[if (oracle("foo")) true else 42];
//                                  ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:32: Error: Unexpected token 'if'.
//   Set<String> set40 = <String>{if (oracle("foo")) true else 42};
//                                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:42: Error: Unexpected token 'if'.
//   Map<String, int> map40 = <String, int>{if (oracle("foo")) true: 42 else 42: 42};
//                                          ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:42: Error: Unexpected token 'if'.
//   Map<int, String> map41 = <int, String>{if (oracle("foo")) 42: true else 42: 42};
//                                          ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:123:17: Error: Unexpected token 'for'.
//   var list10 = [for (int i = 0; oracle("foo"); i++) 42];
//                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:124:16: Error: Unexpected token 'for'.
//   var set10 = {for (int i = 0; oracle("foo"); i++) 42, null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:125:16: Error: Unexpected token 'for'.
//   var map10 = {for (int i = 0; oracle("foo"); i++) "bar": 42, "baz": null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:126:17: Error: Unexpected token 'for'.
//   var list11 = [for (int i = 0; oracle("foo"); i++) dynVar];
//                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:127:16: Error: Unexpected token 'for'.
//   var set11 = {for (int i = 0; oracle("foo"); i++) dynVar, null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:128:16: Error: Unexpected token 'for'.
//   var map11 = {for (int i = 0; oracle("foo"); i++) "bar": dynVar, "baz": null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:129:17: Error: Unexpected token 'for'.
//   var list12 = [for (int i = 0; oracle("foo"); i++) [42]];
//                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:130:16: Error: Unexpected token 'for'.
//   var set12 = {for (int i = 0; oracle("foo"); i++) [42], null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:131:16: Error: Unexpected token 'for'.
//   var map12 = {for (int i = 0; oracle("foo"); i++) "bar": [42], "baz": null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:132:53: Error: Unexpected token '...'.
//   var list20 = [for (int i = 0; oracle("foo"); i++) ...[42]];
//                                                     ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:132:17: Error: Unexpected token 'for'.
//   var list20 = [for (int i = 0; oracle("foo"); i++) ...[42]];
//                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:133:52: Error: Unexpected token '...'.
//   var set20 = {for (int i = 0; oracle("foo"); i++) ...[42], null};
//                                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:133:16: Error: Unexpected token 'for'.
//   var set20 = {for (int i = 0; oracle("foo"); i++) ...[42], null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:134:52: Error: Unexpected token '...'.
//   var map20 = {for (int i = 0; oracle("foo"); i++) ...{"bar": 42}, "baz": null};
//                                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:134:16: Error: Unexpected token 'for'.
//   var map20 = {for (int i = 0; oracle("foo"); i++) ...{"bar": 42}, "baz": null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:135:53: Error: Unexpected token '...'.
//   var list21 = [for (int i = 0; oracle("foo"); i++) ...[dynVar]];
//                                                     ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:135:17: Error: Unexpected token 'for'.
//   var list21 = [for (int i = 0; oracle("foo"); i++) ...[dynVar]];
//                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:136:52: Error: Unexpected token '...'.
//   var set21 = {for (int i = 0; oracle("foo"); i++) ...[dynVar], null};
//                                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:136:16: Error: Unexpected token 'for'.
//   var set21 = {for (int i = 0; oracle("foo"); i++) ...[dynVar], null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:137:52: Error: Unexpected token '...'.
//   var map21 = {for (int i = 0; oracle("foo"); i++) ...{"bar": dynVar}, "baz": null};
//                                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:137:16: Error: Unexpected token 'for'.
//   var map21 = {for (int i = 0; oracle("foo"); i++) ...{"bar": dynVar}, "baz": null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:138:53: Error: Unexpected token '...'.
//   var list22 = [for (int i = 0; oracle("foo"); i++) ...[[42]]];
//                                                     ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:138:17: Error: Unexpected token 'for'.
//   var list22 = [for (int i = 0; oracle("foo"); i++) ...[[42]]];
//                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:139:52: Error: Unexpected token '...'.
//   var set22 = {for (int i = 0; oracle("foo"); i++) ...[[42]], null};
//                                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:139:16: Error: Unexpected token 'for'.
//   var set22 = {for (int i = 0; oracle("foo"); i++) ...[[42]], null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:140:52: Error: Unexpected token '...'.
//   var map22 = {for (int i = 0; oracle("foo"); i++) ...{"bar": [42]}, "baz": null};
//                                                    ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:140:16: Error: Unexpected token 'for'.
//   var map22 = {for (int i = 0; oracle("foo"); i++) ...{"bar": [42]}, "baz": null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:141:67: Error: Unexpected token '...'.
//   var list30 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[42]];
//                                                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:141:53: Error: Unexpected token 'if'.
//   var list30 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[42]];
//                                                     ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:141:17: Error: Unexpected token 'for'.
//   var list30 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[42]];
//                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:142:66: Error: Unexpected token '...'.
//   var set30 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[42], null};
//                                                                  ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:142:52: Error: Unexpected token 'if'.
//   var set30 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[42], null};
//                                                    ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:142:16: Error: Unexpected token 'for'.
//   var set30 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[42], null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:143:66: Error: Unexpected token '...'.
//   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:143:52: Error: Unexpected token 'if'.
//   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:143:16: Error: Unexpected token 'for'.
//   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:67: Error: Unexpected token '...'.
//   var list31 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[dynVar]];
//                                                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:144:53: Error: Unexpected token 'if'.
//   var list31 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[dynVar]];
//                                                     ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:144:17: Error: Unexpected token 'for'.
//   var list31 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[dynVar]];
//                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:145:66: Error: Unexpected token '...'.
//   var set31 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[dynVar], null};
//                                                                  ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:145:52: Error: Unexpected token 'if'.
//   var set31 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[dynVar], null};
//                                                    ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:145:16: Error: Unexpected token 'for'.
//   var set31 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[dynVar], null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:146:66: Error: Unexpected token '...'.
//   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:146:52: Error: Unexpected token 'if'.
//   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:146:16: Error: Unexpected token 'for'.
//   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:67: Error: Unexpected token '...'.
//   var list33 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[42]]];
//                                                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:147:53: Error: Unexpected token 'if'.
//   var list33 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[42]]];
//                                                     ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:147:17: Error: Unexpected token 'for'.
//   var list33 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[42]]];
//                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:148:66: Error: Unexpected token '...'.
//   var set33 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[42]], null};
//                                                                  ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:148:52: Error: Unexpected token 'if'.
//   var set33 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[42]], null};
//                                                    ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:148:16: Error: Unexpected token 'for'.
//   var set33 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[42]], null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:149:66: Error: Unexpected token '...'.
//   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:149:52: Error: Unexpected token 'if'.
//   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:149:16: Error: Unexpected token 'for'.
//   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:65: Error: Unexpected token '...'.
//   List<List<int>> list40 = [for (int i = 0; oracle("foo"); i++) ...[[]]];
//                                                                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:150:29: Error: Unexpected token 'for'.
//   List<List<int>> list40 = [for (int i = 0; oracle("foo"); i++) ...[[]]];
//                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:151:63: Error: Unexpected token '...'.
//   Set<List<int>> set40 = {for (int i = 0; oracle("foo"); i++) ...[[]], null};
//                                                               ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:151:27: Error: Unexpected token 'for'.
//   Set<List<int>> set40 = {for (int i = 0; oracle("foo"); i++) ...[[]], null};
//                           ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:152:71: Error: Unexpected token '...'.
//   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:152:35: Error: Unexpected token 'for'.
//   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:65: Error: Unexpected token '...'.
//   List<List<int>> list41 = [for (int i = 0; oracle("foo"); i++) ...{[]}];
//                                                                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:153:29: Error: Unexpected token 'for'.
//   List<List<int>> list41 = [for (int i = 0; oracle("foo"); i++) ...{[]}];
//                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:154:63: Error: Unexpected token '...'.
//   Set<List<int>> set41 = {for (int i = 0; oracle("foo"); i++) ...{[]}, null};
//                                                               ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:154:27: Error: Unexpected token 'for'.
//   Set<List<int>> set41 = {for (int i = 0; oracle("foo"); i++) ...{[]}, null};
//                           ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:155:79: Error: Unexpected token '...'.
//   List<List<int>> list42 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]]];
//                                                                               ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:155:65: Error: Unexpected token 'if'.
//   List<List<int>> list42 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]]];
//                                                                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:155:29: Error: Unexpected token 'for'.
//   List<List<int>> list42 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]]];
//                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:156:77: Error: Unexpected token '...'.
//   Set<List<int>> set42 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]], null};
//                                                                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:156:63: Error: Unexpected token 'if'.
//   Set<List<int>> set42 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]], null};
//                                                               ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:156:27: Error: Unexpected token 'for'.
//   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:85: Error: Unexpected token '...'.
//   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:157:71: Error: Unexpected token 'if'.
//   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:157:35: Error: Unexpected token 'for'.
//   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:59: Error: Unexpected token '...'.
//   List<int> list50 = [for (int i = 0; oracle("foo"); i++) ...[]];
//                                                           ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:158:23: Error: Unexpected token 'for'.
//   List<int> list50 = [for (int i = 0; oracle("foo"); i++) ...[]];
//                       ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:159:57: Error: Unexpected token '...'.
//   Set<int> set50 = {for (int i = 0; oracle("foo"); i++) ...[], null};
//                                                         ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:159:21: Error: Unexpected token 'for'.
//   Set<int> set50 = {for (int i = 0; oracle("foo"); i++) ...[], null};
//                     ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:160:65: Error: Unexpected token '...'.
//   Map<String, int> map50 = {for (int i = 0; oracle("foo"); i++) ...{}, "baz": null};
//                                                                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:160:29: Error: Unexpected token 'for'.
//   Map<String, int> map50 = {for (int i = 0; oracle("foo"); i++) ...{}, "baz": null};
//                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:161:59: Error: Unexpected token '...'.
//   List<int> list51 = [for (int i = 0; oracle("foo"); i++) ...{}];
//                                                           ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:161:23: Error: Unexpected token 'for'.
//   List<int> list51 = [for (int i = 0; oracle("foo"); i++) ...{}];
//                       ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:162:57: Error: Unexpected token '...'.
//   Set<int> set51 = {for (int i = 0; oracle("foo"); i++) ...{}, null};
//                                                         ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:162:21: Error: Unexpected token 'for'.
//   Set<int> set51 = {for (int i = 0; oracle("foo"); i++) ...{}, null};
//                     ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:163:73: Error: Unexpected token '...'.
//   List<int> list52 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[]];
//                                                                         ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:163:59: Error: Unexpected token 'if'.
//   List<int> list52 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[]];
//                                                           ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:163:23: Error: Unexpected token 'for'.
//   List<int> list52 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[]];
//                       ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:164:71: Error: Unexpected token '...'.
//   Set<int> set52 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[], null};
//                                                                       ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:164:57: Error: Unexpected token 'if'.
//   Set<int> set52 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[], null};
//                                                         ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:164:21: Error: Unexpected token 'for'.
//   Set<int> set52 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[], null};
//                     ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:165:65: Error: Unexpected token '...'.
//   List<List<int>> list60 = [for (int i = 0; oracle("foo"); i++) ...[[]]];
//                                                                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:165:29: Error: Unexpected token 'for'.
//   List<List<int>> list60 = [for (int i = 0; oracle("foo"); i++) ...[[]]];
//                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:166:63: Error: Unexpected token '...'.
//   Set<List<int>> set60 = {for (int i = 0; oracle("foo"); i++) ...[[]], null};
//                                                               ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:166:27: Error: Unexpected token 'for'.
//   Set<List<int>> set60 = {for (int i = 0; oracle("foo"); i++) ...[[]], null};
//                           ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:167:71: Error: Unexpected token '...'.
//   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:167:35: Error: Unexpected token 'for'.
//   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:79: Error: Unexpected token '...'.
//   List<List<int>> list61 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]]];
//                                                                               ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:168:65: Error: Unexpected token 'if'.
//   List<List<int>> list61 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]]];
//                                                                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:168:29: Error: Unexpected token 'for'.
//   List<List<int>> list61 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]]];
//                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:169:77: Error: Unexpected token '...'.
//   Set<List<int>> set61 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]], null};
//                                                                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:169:63: Error: Unexpected token 'if'.
//   Set<List<int>> set61 = {for (int i = 0; oracle("foo"); i++) if (oracle()) ...[[]], null};
//                                                               ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:169:27: Error: Unexpected token 'for'.
//   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:85: Error: Unexpected token '...'.
//   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:170:71: Error: Unexpected token 'if'.
//   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:170:35: Error: Unexpected token 'for'.
//   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:29: Error: Unexpected token 'for'.
//   List<List<int>> list70 = [for (int i = 0; oracle("foo"); i++) []];
//                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:172:27: Error: Unexpected token 'for'.
//   Set<List<int>> set70 = {for (int i = 0; oracle("foo"); i++) [], null};
//                           ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:173:35: Error: Unexpected token 'for'.
//   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:65: Error: Unexpected token 'if'.
//   List<List<int>> list71 = [for (int i = 0; oracle("foo"); i++) if (oracle()) []];
//                                                                 ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:174:29: Error: Unexpected token 'for'.
//   List<List<int>> list71 = [for (int i = 0; oracle("foo"); i++) if (oracle()) []];
//                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:175:63: Error: Unexpected token 'if'.
//   Set<List<int>> set71 = {for (int i = 0; oracle("foo"); i++) if (oracle()) [], null};
//                                                               ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:175:27: Error: Unexpected token 'for'.
//   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:71: Error: Unexpected token 'if'.
//   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:176:35: Error: Unexpected token 'for'.
//   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:53: Error: Unexpected token 'if'.
//   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:177:17: Error: Unexpected token 'for'.
//   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:52: Error: Unexpected token 'if'.
//   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:178:16: Error: Unexpected token 'for'.
//   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:52: Error: Unexpected token 'if'.
//   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:179:16: Error: Unexpected token 'for'.
//   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:67: Error: Unexpected token '...'.
//   var list81 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else ...listDouble];
//                                                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:180:83: Error: Unexpected token '...'.
//   var list81 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else ...listDouble];
//                                                                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:180:53: Error: Unexpected token 'if'.
//   var list81 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else ...listDouble];
//                                                     ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:180:17: Error: Unexpected token 'for'.
//   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:66: Error: Unexpected token '...'.
//   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:181:82: Error: Unexpected token '...'.
//   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:181:52: Error: Unexpected token 'if'.
//   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:181:16: Error: Unexpected token 'for'.
//   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:66: Error: Unexpected token '...'.
//   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:182:87: Error: Unexpected token '...'.
//   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:182:52: Error: Unexpected token 'if'.
//   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:182:16: Error: Unexpected token 'for'.
//   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:67: Error: Unexpected token '...'.
//   var list82 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else ...dynVar];
//                                                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:183:83: Error: Unexpected token '...'.
//   var list82 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else ...dynVar];
//                                                                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:183:53: Error: Unexpected token 'if'.
//   var list82 = [for (int i = 0; oracle("foo"); i++) if (oracle()) ...listInt else ...dynVar];
//                                                     ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:183:17: Error: Unexpected token 'for'.
//   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:66: Error: Unexpected token '...'.
//   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:184:82: Error: Unexpected token '...'.
//   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:184:52: Error: Unexpected token 'if'.
//   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:184:16: Error: Unexpected token 'for'.
//   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:66: Error: Unexpected token '...'.
//   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:185:87: Error: Unexpected token '...'.
//   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:185:52: Error: Unexpected token 'if'.
//   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:185:16: Error: Unexpected token 'for'.
//   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:75: Error: Unexpected token '...'.
//   var list83 = [for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...listDouble];
//                                                                           ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:186:53: Error: Unexpected token 'if'.
//   var list83 = [for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...listDouble];
//                                                     ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:186:17: Error: Unexpected token 'for'.
//   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:66: Error: Unexpected token '...'.
//   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:187:52: Error: Unexpected token 'if'.
//   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:187:16: Error: Unexpected token 'for'.
//   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:66: Error: Unexpected token '...'.
//   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:188:52: Error: Unexpected token 'if'.
//   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:188:16: Error: Unexpected token 'for'.
//   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:23: Error: Unexpected token 'for'.
//   List<int> list90 = [for (int i = 0; oracle("foo"); i++) dynVar];
//                       ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:190:21: Error: Unexpected token 'for'.
//   Set<int> set90 = {for (int i = 0; oracle("foo"); i++) dynVar, null};
//                     ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:191:29: Error: Unexpected token 'for'.
//   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:59: Error: Unexpected token '...'.
//   List<int> list91 = [for (int i = 0; oracle("foo"); i++) ...dynVar];
//                                                           ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:192:23: Error: Unexpected token 'for'.
//   List<int> list91 = [for (int i = 0; oracle("foo"); i++) ...dynVar];
//                       ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:193:57: Error: Unexpected token '...'.
//   Set<int> set91 = {for (int i = 0; oracle("foo"); i++) ...dynVar, null};
//                                                         ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:193:21: Error: Unexpected token 'for'.
//   Set<int> set91 = {for (int i = 0; oracle("foo"); i++) ...dynVar, null};
//                     ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:194:65: Error: Unexpected token '...'.
//   Map<String, int> map91 = {for (int i = 0; oracle("foo"); i++) ...dynVar, "baz": null};
//                                                                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:194:29: Error: Unexpected token 'for'.
//   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:29: Error: Unexpected token 'for'.
//   List<int> list100 = <int>[for (index = 0; oracle("foo"); index++) 42];
//                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:196:27: Error: Unexpected token 'for'.
//   Set<int> set100 = <int>{for (index = 0; oracle("foo"); index++) 42};
//                           ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:197:43: Error: Unexpected token 'for'.
//   Map<String, int> map100 = <String, int>{for (index = 0; oracle("foo"); index++) "bar": 42};
//                                           ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:198:18: Error: Unexpected token 'for'.
//   var list110 = [for (var i in [1, 2, 3]) i];
//                  ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:199:17: Error: Unexpected token 'for'.
//   var set110 = {for (var i in [1, 2, 3]) i, null};
//                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:200:17: Error: Unexpected token 'for'.
//   var map110 = {for (var i in [1, 2, 3]) "bar": i, "baz": null};
//                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:201:24: Error: Unexpected token 'for'.
//   List<int> list120 = [for (var i in dynVar) i];
//                        ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:202:22: Error: Unexpected token 'for'.
//   Set<int> set120 = {for (var i in dynVar) i, null};
//                      ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:203:30: Error: Unexpected token 'for'.
//   Map<String, int> map120 = {for (var i in dynVar) "bar": i, "baz": null};
//                              ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:204:24: Error: Unexpected token 'for'.
//   List<int> list130 = [for (var i = 1; i < 2; i++) i];
//                        ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:205:22: Error: Unexpected token 'for'.
//   Set<int> set130 = {for (var i = 1; i < 2; i++) i};
//                      ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:206:27: Error: Unexpected token 'for'.
//   Map<int, int> map130 = {for (var i = 1; i < 2; i++) i: i};
//                           ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:210:9: Error: Unexpected token 'for'.
//   <int>[for (int i = 0; oracle("foo"); i++) "bar"];
//         ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:211:9: Error: Unexpected token 'for'.
//   <int>{for (int i = 0; oracle("foo"); i++) "bar", null};
//         ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:14: Error: Unexpected token 'for'.
//   <int, int>{for (int i = 0; oracle("foo"); i++) "bar": "bar", "baz": null};
//              ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:45: Error: Unexpected token '...'.
//   <int>[for (int i = 0; oracle("foo"); i++) ...["bar"]];
//                                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:9: Error: Unexpected token 'for'.
//   <int>[for (int i = 0; oracle("foo"); i++) ...["bar"]];
//         ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:45: Error: Unexpected token '...'.
//   <int>{for (int i = 0; oracle("foo"); i++) ...["bar"], null};
//                                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:9: Error: Unexpected token 'for'.
//   <int>{for (int i = 0; oracle("foo"); i++) ...["bar"], null};
//         ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:50: Error: Unexpected token '...'.
//   <int, int>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
//                                                  ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:14: Error: Unexpected token 'for'.
//   <int, int>{for (int i = 0; oracle("foo"); i++) ...{"bar": "bar"}, "baz": null};
//              ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:45: Error: Unexpected token '...'.
//   <int>[for (int i = 0; oracle("foo"); i++) ...map];
//                                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:9: Error: Unexpected token 'for'.
//   <int>[for (int i = 0; oracle("foo"); i++) ...map];
//         ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:45: Error: Unexpected token '...'.
//   <int>{for (int i = 0; oracle("foo"); i++) ...map, null};
//                                             ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:9: Error: Unexpected token 'for'.
//   <int>{for (int i = 0; oracle("foo"); i++) ...map, null};
//         ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:50: Error: Unexpected token '...'.
//   <int, int>{for (int i = 0; oracle("foo"); i++) ...list, 42: null};
//                                                  ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:14: Error: Unexpected token 'for'.
//   <int, int>{for (int i = 0; oracle("foo"); i++) ...list, 42: null};
//              ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:48: Error: Unexpected token 'if'.
//   <String>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14];
//                                                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:12: Error: Unexpected token 'for'.
//   <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:48: Error: Unexpected token 'if'.
//   <String>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else 3.14, null};
//                                                ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:12: Error: Unexpected token 'for'.
//   <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:56: Error: Unexpected token 'if'.
//   <String, String>{for (int i = 0; oracle("foo"); i++) if (oracle()) "bar": 42 else "bar": 3.14, "baz": null};
//                                                        ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:20: Error: Unexpected token 'for'.
//   <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:59: Error: Unexpected token '...'.
//   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42];
//                                                           ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:45: Error: Unexpected token 'if'.
//   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42];
//                                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:9: Error: Unexpected token 'for'.
//   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42];
//         ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:59: Error: Unexpected token '...'.
//   <int>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42, null};
//                                                           ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:45: Error: Unexpected token 'if'.
//   <int>{for (int i = 0; oracle("foo"); i++) if (oracle()) ...map else 42, null};
//                                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:9: Error: Unexpected token 'for'.
//   <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:67: Error: Unexpected token '...'.
//   <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:224:53: Error: Unexpected token 'if'.
//   <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:224:17: Error: Unexpected token 'for'.
//   <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:67: Error: Unexpected token '...'.
//   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map];
//                                                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:45: Error: Unexpected token 'if'.
//   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map];
//                                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:9: Error: Unexpected token 'for'.
//   <int>[for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map];
//         ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:67: Error: Unexpected token '...'.
//   <int>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map, null};
//                                                                   ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:45: Error: Unexpected token 'if'.
//   <int>{for (int i = 0; oracle("foo"); i++) if (oracle()) 42 else ...map, null};
//                                             ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:9: Error: Unexpected token 'for'.
//   <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:82: Error: Unexpected token '...'.
//   <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:227:53: Error: Unexpected token 'if'.
//   <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:227:17: Error: Unexpected token 'for'.
//   <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:230:9: Error: Unexpected token 'for'.
//   <int>[for (i in <int>[1]) i];
//         ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:231:9: Error: Unexpected token 'for'.
//   <int>{for (i in <int>[1]) i, null};
//         ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:16: Error: Unexpected token 'for'.
// 	<String, int>{for (i in <int>[1]) "bar": i, "baz": null};
// 	              ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:234:17: Error: Unexpected token 'for'.
//   var list10 = [for (var i in "not iterable") i];
//                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:235:16: Error: Unexpected token 'for'.
//   var set10 = {for (var i in "not iterable") i, null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:236:16: Error: Unexpected token 'for'.
//   var map10 = {for (var i in "not iterable") "bar": i, "baz": null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:17: Error: Unexpected token 'for'.
//   var list20 = [for (int i in ["not", "int"]) i];
//                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:16: Error: Unexpected token 'for'.
//   var set20 = {for (int i in ["not", "int"]) i, null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:16: Error: Unexpected token 'for'.
//   var map20 = {for (int i in ["not", "int"]) "bar": i, "baz": null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:23: Error: Unexpected token 'for'.
//   var list30 = [await for (var i in "not stream") i];
//                       ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:241:22: Error: Unexpected token 'for'.
//   var set30 = {await for (var i in "not stream") i, null};
//                      ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:242:22: Error: Unexpected token 'for'.
//   var map30 = {await for (var i in "not stream") "bar": i, "baz": null};
//                      ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:23: Error: Unexpected token 'for'.
//   var list40 = [await for (int i in Stream.fromIterable(["not", "int"])) i];
//                       ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:22: Error: Unexpected token 'for'.
//   var set40 = {await for (int i in Stream.fromIterable(["not", "int"])) i, null};
//                      ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:22: Error: Unexpected token 'for'.
//   var map40 = {await for (int i in Stream.fromIterable(["not", "int"])) "bar": i, "baz": null};
//                      ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:17: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
// Try removing the keyword, or use a for-each statement.
//   var list50 = [await for (;;) 42];
//                 ^^^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:246:23: Error: Unexpected token 'for'.
//   var list50 = [await for (;;) 42];
//                       ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
// Try removing the keyword, or use a for-each statement.
//   var set50 = {await for (;;) 42, null};
//                ^^^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:247:22: Error: Unexpected token 'for'.
//   var set50 = {await for (;;) 42, null};
//                      ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:248:16: Error: The keyword 'await' isn't allowed for a normal 'for' statement.
// Try removing the keyword, or use a for-each statement.
//   var map50 = {await for (;;) "bar": 42, "baz": null};
//                ^^^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:248:22: Error: Unexpected token 'for'.
//   var map50 = {await for (;;) "bar": 42, "baz": null};
//                      ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:249:17: Error: Unexpected token 'for'.
//   var list60 = [for (; "not bool";) 42];
//                 ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:250:16: Error: Unexpected token 'for'.
//   var set60 = {for (; "not bool";) 42, null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:16: Error: Unexpected token 'for'.
//   var map60 = {for (; "not bool";) "bar": 42, "baz": null};
//                ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:255:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
// Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
//   <int>[await for (int i in stream) i];
//                          ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:255:15: Error: Unexpected token 'for'.
//   <int>[await for (int i in stream) i];
//               ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:256:26: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
// Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
//   <int>{await for (int i in stream) i};
//                          ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:256:15: Error: Unexpected token 'for'.
//   <int>{await for (int i in stream) i};
//               ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:257:34: Error: The asynchronous for-in can only be used in functions marked with 'async' or 'async*'.
// Try marking the function body with either 'async' or 'async*', or removing the 'await' before the for loop.
//   <String, int>{await for (int i in stream) "bar": i};
//                                  ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:257:23: Error: Unexpected token 'for'.
//   <String, int>{await for (int i in stream) "bar": i};
//                       ^^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:267:23: Error: Unexpected token 'if'.
//   List<int> list10 = [if (a is B) a.foo];
//                       ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:268:21: Error: Unexpected token 'if'.
//   Set<int> set10 = {if (a is B) a.foo};
//                     ^^
//
// pkg/front_end/testcases/general/control_flow_collection_inference.dart:269:26: Error: Unexpected token 'if'.
//   Map<int, int> map10 = {if (a is B) a.foo: a.foo};
//                          ^^
//
import self as self;
import "dart:core" as core;
import "dart:async" as asy;

class A extends core::Object {
  synthetic constructor •() → self::A*
    : super core::Object::•()
    ;
}
class B extends self::A {
  synthetic constructor •() → self::B*
    : super self::A::•()
    ;
  get foo() → core::int*
    return 42;
}
static method oracle<T extends core::Object* = dynamic>([self::oracle::T* t = #C1]) → dynamic
  return true;
static method testIfElement(dynamic dynVar, core::List<core::int*>* listInt, core::List<core::double*>* listDouble, core::Map<core::String*, core::int*>* mapToInt, core::Map<core::String*, core::double*>* mapToDouble) → dynamic {
  dynamic list10 = <dynamic>[];
  dynamic set10 = <dynamic>{null};
  dynamic map10 = <dynamic, dynamic>{"baz": null};
  dynamic list11 = <dynamic>[];
  dynamic set11 = <dynamic>{null};
  dynamic map11 = <dynamic, dynamic>{"baz": null};
  dynamic list12 = <dynamic>[];
  dynamic set12 = <dynamic>{null};
  dynamic map12 = <dynamic, dynamic>{"baz": null};
  dynamic list20 = <dynamic>[];
  dynamic set20 = <dynamic>{null};
  dynamic map20 = <dynamic, dynamic>{"baz": null};
  dynamic list21 = <dynamic>[];
  dynamic set21 = <dynamic>{null};
  dynamic map21 = <dynamic, dynamic>{"baz": null};
  dynamic list22 = <dynamic>[];
  dynamic set22 = <dynamic>{null};
  dynamic map22 = <dynamic, dynamic>{"baz": null};
  dynamic list30 = <dynamic>[];
  dynamic set30 = <dynamic>{null};
  dynamic map30 = <dynamic, dynamic>{"baz": null};
  dynamic list31 = <dynamic>[];
  dynamic set31 = <dynamic>{null};
  dynamic map31 = <dynamic, dynamic>{"baz": null};
  dynamic list33 = <dynamic>[];
  dynamic set33 = <dynamic>{null};
  dynamic map33 = <dynamic, dynamic>{"baz": null};
  core::List<core::List<core::int*>*>* list40 = <dynamic>[];
  core::Set<core::List<core::int*>*>* set40 = <dynamic>{null};
  core::Map<core::String*, core::List<core::int*>*>* map40 = <dynamic, dynamic>{"baz": null};
  core::List<core::List<core::int*>*>* list41 = <dynamic>[];
  core::Set<core::List<core::int*>*>* set41 = <dynamic>{null};
  core::List<core::List<core::int*>*>* list42 = <dynamic>[];
  core::Set<core::List<core::int*>*>* set42 = <dynamic>{null};
  core::Map<core::String*, core::List<core::int*>*>* map42 = <dynamic, dynamic>{"baz": null};
  core::List<core::int*>* list50 = <dynamic>[];
  core::Set<core::int*>* set50 = <dynamic>{null};
  core::Map<core::String*, core::int*>* map50 = <dynamic, dynamic>{"baz": null};
  core::List<core::int*>* list51 = <dynamic>[];
  core::Set<core::int*>* set51 = <dynamic>{null};
  core::List<core::int*>* list52 = <dynamic>[];
  core::Set<core::int*>* set52 = <dynamic>{null};
  core::Map<core::String*, core::int*>* map52 = <dynamic, dynamic>{"baz": null};
  core::List<core::List<core::int*>*>* list60 = <dynamic>[];
  core::Set<core::List<core::int*>*>* set60 = <dynamic>{null};
  core::Map<core::String*, core::List<core::int*>*>* map60 = <dynamic, dynamic>{"baz": null};
  core::List<core::List<core::int*>*>* list61 = <dynamic>[];
  core::Set<core::List<core::int*>*>* set61 = <dynamic>{null};
  core::Map<core::String*, core::List<core::int*>*>* map61 = <dynamic, dynamic>{"baz": null};
  core::List<core::List<core::int*>*>* list70 = <dynamic>[];
  core::Set<core::List<core::int*>*>* set70 = <dynamic>{null};
  core::List<core::List<core::int*>*>* list71 = <dynamic>[];
  core::Set<core::List<core::int*>*>* set71 = <dynamic>{null};
  dynamic list80 = <dynamic>[];
  dynamic set80 = <dynamic>{null};
  dynamic map80 = <dynamic, dynamic>{"baz": null};
  dynamic list81 = <dynamic>[];
  dynamic set81 = <dynamic>{null};
  dynamic map81 = <dynamic, dynamic>{"baz": null};
  dynamic list82 = <dynamic>[];
  dynamic set82 = <dynamic>{null};
  dynamic map82 = <dynamic>{null};
  dynamic list83 = <dynamic>[];
  dynamic set83 = <dynamic>{null};
  dynamic map83 = <dynamic, dynamic>{"baz": null};
  core::List<core::int*>* list90 = <dynamic>[];
  core::Set<core::int*>* set90 = <dynamic>{null};
  core::Map<core::String*, core::int*>* map90 = <dynamic, dynamic>{"baz": null};
  core::List<core::int*>* list91 = <dynamic>[];
  core::Set<core::int*>* set91 = <dynamic>{null};
  core::Map<core::String*, core::int*>* map91 = <dynamic, dynamic>{"baz": null};
  core::List<core::int*>* list100 = <dynamic>[];
  core::Set<core::int*>* set100 = <dynamic, dynamic>{};
  core::Map<core::int*, core::int*>* map100 = <dynamic, dynamic>{};
}
static method testIfElementErrors(core::Map<core::int*, core::int*>* map) → dynamic {
  <core::int*>[];
  <core::int*>{null};
  <core::String*, core::int*>{"baz": null};
  <core::int*>[];
  <core::int*>{null};
  <core::String*, core::int*>{"baz": null};
  <core::int*>[];
  <core::int*>{null};
  <core::String*, core::int*>{"baz": null};
  <core::String*>[];
  <core::String*>{null};
  <core::String*, core::String*>{"baz": null};
  <core::int*>[];
  <core::int*>{null};
  <core::String*, core::int*>{"baz": null};
  <core::int*>[];
  <core::int*>{null};
  <core::String*, core::int*>{"baz": null};
  core::Set<dynamic>* set10 = <dynamic, dynamic>{};
  core::Map<dynamic, dynamic>* map10 = <dynamic, dynamic>{};
  core::Set<dynamic>* set11 = <dynamic, dynamic>{};
  core::Map<dynamic, dynamic>* map11 = <dynamic, dynamic>{};
  dynamic map12 = <dynamic, dynamic>{};
  dynamic map13 = <dynamic, dynamic>{};
  core::List<core::int*>* list20 = <dynamic>[];
  core::Set<core::int*>* set20 = <dynamic, dynamic>{};
  core::Map<core::int*, core::int*>* map30 = <dynamic, dynamic>{};
  core::List<core::String*>* list40 = <core::String*>[];
  core::Set<core::String*>* set40 = <core::String*>{};
  core::Map<core::String*, core::int*>* map40 = <core::String*, core::int*>{};
  core::Map<core::int*, core::String*>* map41 = <core::int*, core::String*>{};
}
static method testForElement(dynamic dynVar, core::List<core::int*>* listInt, core::List<core::double*>* listDouble, core::int* index, core::Map<core::String*, core::int*>* mapStringInt, core::Map<core::String*, core::double*>* mapStringDouble) → dynamic {
  dynamic list10 = <dynamic>[];
  dynamic set10 = <dynamic>{null};
  dynamic map10 = <dynamic, dynamic>{"baz": null};
  dynamic list11 = <dynamic>[];
  dynamic set11 = <dynamic>{null};
  dynamic map11 = <dynamic, dynamic>{"baz": null};
  dynamic list12 = <dynamic>[];
  dynamic set12 = <dynamic>{null};
  dynamic map12 = <dynamic, dynamic>{"baz": null};
  dynamic list20 = <dynamic>[];
  dynamic set20 = <dynamic>{null};
  dynamic map20 = <dynamic, dynamic>{"baz": null};
  dynamic list21 = <dynamic>[];
  dynamic set21 = <dynamic>{null};
  dynamic map21 = <dynamic, dynamic>{"baz": null};
  dynamic list22 = <dynamic>[];
  dynamic set22 = <dynamic>{null};
  dynamic map22 = <dynamic, dynamic>{"baz": null};
  dynamic list30 = <dynamic>[];
  dynamic set30 = <dynamic>{null};
  dynamic map30 = <dynamic, dynamic>{"baz": null};
  dynamic list31 = <dynamic>[];
  dynamic set31 = <dynamic>{null};
  dynamic map31 = <dynamic, dynamic>{"baz": null};
  dynamic list33 = <dynamic>[];
  dynamic set33 = <dynamic>{null};
  dynamic map33 = <dynamic, dynamic>{"baz": null};
  core::List<core::List<core::int*>*>* list40 = <dynamic>[];
  core::Set<core::List<core::int*>*>* set40 = <dynamic>{null};
  core::Map<core::String*, core::List<core::int*>*>* map40 = <dynamic, dynamic>{"baz": null};
  core::List<core::List<core::int*>*>* list41 = <dynamic>[];
  core::Set<core::List<core::int*>*>* set41 = <dynamic>{null};
  core::List<core::List<core::int*>*>* list42 = <dynamic>[];
  core::Set<core::List<core::int*>*>* set42 = <dynamic>{null};
  core::Map<core::String*, core::List<core::int*>*>* map42 = <dynamic, dynamic>{"baz": null};
  core::List<core::int*>* list50 = <dynamic>[];
  core::Set<core::int*>* set50 = <dynamic>{null};
  core::Map<core::String*, core::int*>* map50 = <dynamic, dynamic>{"baz": null};
  core::List<core::int*>* list51 = <dynamic>[];
  core::Set<core::int*>* set51 = <dynamic>{null};
  core::List<core::int*>* list52 = <dynamic>[];
  core::Set<core::int*>* set52 = <dynamic>{null};
  core::List<core::List<core::int*>*>* list60 = <dynamic>[];
  core::Set<core::List<core::int*>*>* set60 = <dynamic>{null};
  core::Map<core::String*, core::List<core::int*>*>* map60 = <dynamic, dynamic>{"baz": null};
  core::List<core::List<core::int*>*>* list61 = <dynamic>[];
  core::Set<core::List<core::int*>*>* set61 = <dynamic>{null};
  core::Map<core::String*, core::List<core::int*>*>* map61 = <dynamic, dynamic>{"baz": null};
  core::List<core::List<core::int*>*>* list70 = <dynamic>[];
  core::Set<core::List<core::int*>*>* set70 = <dynamic>{null};
  core::Map<core::String*, core::List<core::int*>*>* map70 = <dynamic, dynamic>{"baz": null};
  core::List<core::List<core::int*>*>* list71 = <dynamic>[];
  core::Set<core::List<core::int*>*>* set71 = <dynamic>{null};
  core::Map<core::String*, core::List<core::int*>*>* map71 = <dynamic, dynamic>{"baz": null};
  dynamic list80 = <dynamic>[];
  dynamic set80 = <dynamic>{null};
  dynamic map80 = <dynamic, dynamic>{"baz": null};
  dynamic list81 = <dynamic>[];
  dynamic set81 = <dynamic>{null};
  dynamic map81 = <dynamic, dynamic>{"baz": null};
  dynamic list82 = <dynamic>[];
  dynamic set82 = <dynamic>{null};
  dynamic map82 = <dynamic, dynamic>{"baz": null};
  dynamic list83 = <dynamic>[];
  dynamic set83 = <dynamic>{null};
  dynamic map83 = <dynamic, dynamic>{"baz": null};
  core::List<core::int*>* list90 = <dynamic>[];
  core::Set<core::int*>* set90 = <dynamic>{null};
  core::Map<core::String*, core::int*>* map90 = <dynamic, dynamic>{"baz": null};
  core::List<core::int*>* list91 = <dynamic>[];
  core::Set<core::int*>* set91 = <dynamic>{null};
  core::Map<core::String*, core::int*>* map91 = <dynamic, dynamic>{"baz": null};
  core::List<core::int*>* list100 = <core::int*>[];
  core::Set<core::int*>* set100 = <core::int*>{};
  core::Map<core::String*, core::int*>* map100 = <core::String*, core::int*>{};
  dynamic list110 = <dynamic>[];
  dynamic set110 = <dynamic>{null};
  dynamic map110 = <dynamic, dynamic>{"baz": null};
  core::List<core::int*>* list120 = <dynamic>[];
  core::Set<core::int*>* set120 = <dynamic>{null};
  core::Map<core::String*, core::int*>* map120 = <dynamic, dynamic>{"baz": null};
  core::List<core::int*>* list130 = <dynamic>[];
  core::Set<core::int*>* set130 = <dynamic, dynamic>{};
  core::Map<core::int*, core::int*>* map130 = <dynamic, dynamic>{};
}
static method testForElementErrors(core::Map<core::int*, core::int*>* map, core::List<core::int*>* list) → dynamic /* originally async */ {
  final asy::_AsyncAwaitCompleter<dynamic>* :async_completer = new asy::_AsyncAwaitCompleter::•<dynamic>();
  asy::FutureOr<dynamic>* :return_value;
  dynamic :async_stack_trace;
  dynamic :async_op_then;
  dynamic :async_op_error;
  dynamic :await_jump_var = 0;
  dynamic :await_ctx_var;
  function :async_op([dynamic :result, dynamic :exception, dynamic :stack_trace]) → dynamic yielding 
    try {
      #L1:
      {
        <core::int*>[];
        <core::int*>{null};
        <core::int*, core::int*>{"baz": null};
        <core::int*>[];
        <core::int*>{null};
        <core::int*, core::int*>{"baz": null};
        <core::int*>[];
        <core::int*>{null};
        <core::int*, core::int*>{42: null};
        <core::String*>[];
        <core::String*>{null};
        <core::String*, core::String*>{"baz": null};
        <core::int*>[];
        <core::int*>{null};
        <core::String*, core::int*>{"baz": null};
        <core::int*>[];
        <core::int*>{null};
        <core::String*, core::int*>{"baz": null};
        final dynamic i = 0;
        <core::int*>[];
        <core::int*>{null};
        <core::String*, core::int*>{"baz": null};
        dynamic list10 = <dynamic>[];
        dynamic set10 = <dynamic>{null};
        dynamic map10 = <dynamic, dynamic>{"baz": null};
        dynamic list20 = <dynamic>[];
        dynamic set20 = <dynamic>{null};
        dynamic map20 = <dynamic, dynamic>{"baz": null};
        dynamic list30 = <dynamic>[];
        dynamic set30 = <dynamic>{null};
        dynamic map30 = <dynamic, dynamic>{"baz": null};
        dynamic list40 = <dynamic>[];
        dynamic set40 = <dynamic>{null};
        dynamic map40 = <dynamic, dynamic>{"baz": null};
        dynamic list50 = <dynamic>[];
        dynamic set50 = <dynamic>{null};
        dynamic map50 = <dynamic, dynamic>{"baz": null};
        dynamic list60 = <dynamic>[];
        dynamic set60 = <dynamic>{null};
        dynamic map60 = <dynamic, dynamic>{"baz": null};
      }
      asy::_completeOnAsyncReturn(:async_completer, :return_value);
      return;
    }
    on dynamic catch(dynamic :exception, dynamic :stack_trace) {
      :async_completer.{asy::Completer::completeError}(:exception, :stack_trace);
    }
  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
  :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
  :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
  :async_completer.start(:async_op);
  return :async_completer.{asy::Completer::future};
}
static method testForElementErrorsNotAsync(asy::Stream<core::int*>* stream) → dynamic {
  <core::int*>[];
  <core::int*>{};
  <core::String*, core::int*>{};
}
static method testPromotion(self::A* a) → dynamic {
  core::List<core::int*>* list10 = <dynamic>[];
  core::Set<core::int*>* set10 = <dynamic, dynamic>{};
  core::Map<core::int*, core::int*>* map10 = <dynamic, dynamic>{};
}
static method main() → dynamic {}

constants  {
  #C1 = null
}
