library;
//
// Problems in library:
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:10:17: Error: Unexpected token 'if'.
//   var list10 = [if (oracle("foo")) 42];
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:11:16: Error: Unexpected token 'if'.
//   var set10 = {if (oracle("foo")) 42, null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:12:16: Error: Unexpected token 'if'.
//   var map10 = {if (oracle("foo")) "bar": 42, "baz": null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:13:17: Error: Unexpected token 'if'.
//   var list11 = [if (oracle("foo")) dynVar];
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:14:16: Error: Unexpected token 'if'.
//   var set11 = {if (oracle("foo")) dynVar, null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:15:16: Error: Unexpected token 'if'.
//   var map11 = {if (oracle("foo")) "bar": dynVar, "baz": null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:16:17: Error: Unexpected token 'if'.
//   var list12 = [if (oracle("foo")) [42]];
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:17:16: Error: Unexpected token 'if'.
//   var set12 = {if (oracle("foo")) [42], null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:18:16: Error: Unexpected token 'if'.
//   var map12 = {if (oracle("foo")) "bar": [42], "baz": null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:19:36: Error: Unexpected token '...'.
//   var list20 = [if (oracle("foo")) ...[42]];
//                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:19:17: Error: Unexpected token 'if'.
//   var list20 = [if (oracle("foo")) ...[42]];
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:20:35: Error: Unexpected token '...'.
//   var set20 = {if (oracle("foo")) ...[42], null};
//                                   ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:20:16: Error: Unexpected token 'if'.
//   var set20 = {if (oracle("foo")) ...[42], null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:21:35: Error: Unexpected token '...'.
//   var map20 = {if (oracle("foo")) ...{"bar": 42}, "baz": null};
//                                   ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:21:16: Error: Unexpected token 'if'.
//   var map20 = {if (oracle("foo")) ...{"bar": 42}, "baz": null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:22:36: Error: Unexpected token '...'.
//   var list21 = [if (oracle("foo")) ...[dynVar]];
//                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:22:17: Error: Unexpected token 'if'.
//   var list21 = [if (oracle("foo")) ...[dynVar]];
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:23:35: Error: Unexpected token '...'.
//   var set21 = {if (oracle("foo")) ...[dynVar], null};
//                                   ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:23:16: Error: Unexpected token 'if'.
//   var set21 = {if (oracle("foo")) ...[dynVar], null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:24:35: Error: Unexpected token '...'.
//   var map21 = {if (oracle("foo")) ...{"bar": dynVar}, "baz": null};
//                                   ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:24:16: Error: Unexpected token 'if'.
//   var map21 = {if (oracle("foo")) ...{"bar": dynVar}, "baz": null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:25:36: Error: Unexpected token '...'.
//   var list22 = [if (oracle("foo")) ...[[42]]];
//                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:25:17: Error: Unexpected token 'if'.
//   var list22 = [if (oracle("foo")) ...[[42]]];
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:26:35: Error: Unexpected token '...'.
//   var set22 = {if (oracle("foo")) ...[[42]], null};
//                                   ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:26:16: Error: Unexpected token 'if'.
//   var set22 = {if (oracle("foo")) ...[[42]], null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:27:35: Error: Unexpected token '...'.
//   var map22 = {if (oracle("foo")) ...{"bar": [42]}, "baz": null};
//                                   ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:27:16: Error: Unexpected token 'if'.
//   var map22 = {if (oracle("foo")) ...{"bar": [42]}, "baz": null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:28:50: Error: Unexpected token '...'.
//   var list30 = [if (oracle("foo")) if (oracle()) ...[42]];
//                                                  ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:28:36: Error: Unexpected token 'if'.
//   var list30 = [if (oracle("foo")) if (oracle()) ...[42]];
//                                    ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:28:17: Error: Unexpected token 'if'.
//   var list30 = [if (oracle("foo")) if (oracle()) ...[42]];
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:29:49: Error: Unexpected token '...'.
//   var set30 = {if (oracle("foo")) if (oracle()) ...[42], null};
//                                                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:29:35: Error: Unexpected token 'if'.
//   var set30 = {if (oracle("foo")) if (oracle()) ...[42], null};
//                                   ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:29:16: Error: Unexpected token 'if'.
//   var set30 = {if (oracle("foo")) if (oracle()) ...[42], null};
//                ^^
//
// pkg/front_end/testcases/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/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/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/control_flow_collection_inference.dart:31:50: Error: Unexpected token '...'.
//   var list31 = [if (oracle("foo")) if (oracle()) ...[dynVar]];
//                                                  ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:31:36: Error: Unexpected token 'if'.
//   var list31 = [if (oracle("foo")) if (oracle()) ...[dynVar]];
//                                    ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:31:17: Error: Unexpected token 'if'.
//   var list31 = [if (oracle("foo")) if (oracle()) ...[dynVar]];
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:32:49: Error: Unexpected token '...'.
//   var set31 = {if (oracle("foo")) if (oracle()) ...[dynVar], null};
//                                                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:32:35: Error: Unexpected token 'if'.
//   var set31 = {if (oracle("foo")) if (oracle()) ...[dynVar], null};
//                                   ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:32:16: Error: Unexpected token 'if'.
//   var set31 = {if (oracle("foo")) if (oracle()) ...[dynVar], null};
//                ^^
//
// pkg/front_end/testcases/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/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/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/control_flow_collection_inference.dart:34:50: Error: Unexpected token '...'.
//   var list33 = [if (oracle("foo")) if (oracle()) ...[[42]]];
//                                                  ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:34:36: Error: Unexpected token 'if'.
//   var list33 = [if (oracle("foo")) if (oracle()) ...[[42]]];
//                                    ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:34:17: Error: Unexpected token 'if'.
//   var list33 = [if (oracle("foo")) if (oracle()) ...[[42]]];
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:35:49: Error: Unexpected token '...'.
//   var set33 = {if (oracle("foo")) if (oracle()) ...[[42]], null};
//                                                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:35:35: Error: Unexpected token 'if'.
//   var set33 = {if (oracle("foo")) if (oracle()) ...[[42]], null};
//                                   ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:35:16: Error: Unexpected token 'if'.
//   var set33 = {if (oracle("foo")) if (oracle()) ...[[42]], null};
//                ^^
//
// pkg/front_end/testcases/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/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/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/control_flow_collection_inference.dart:37:48: Error: Unexpected token '...'.
//   List<List<int>> list40 = [if (oracle("foo")) ...[[]]];
//                                                ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:37:29: Error: Unexpected token 'if'.
//   List<List<int>> list40 = [if (oracle("foo")) ...[[]]];
//                             ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:38:46: Error: Unexpected token '...'.
//   Set<List<int>> set40 = {if (oracle("foo")) ...[[]], null};
//                                              ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:38:27: Error: Unexpected token 'if'.
//   Set<List<int>> set40 = {if (oracle("foo")) ...[[]], null};
//                           ^^
//
// pkg/front_end/testcases/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/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/control_flow_collection_inference.dart:40:48: Error: Unexpected token '...'.
//   List<List<int>> list41 = [if (oracle("foo")) ...{[]}];
//                                                ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:40:29: Error: Unexpected token 'if'.
//   List<List<int>> list41 = [if (oracle("foo")) ...{[]}];
//                             ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:41:46: Error: Unexpected token '...'.
//   Set<List<int>> set41 = {if (oracle("foo")) ...{[]}, null};
//                                              ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:41:27: Error: Unexpected token 'if'.
//   Set<List<int>> set41 = {if (oracle("foo")) ...{[]}, null};
//                           ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:42:62: Error: Unexpected token '...'.
//   List<List<int>> list42 = [if (oracle("foo")) if (oracle()) ...[[]]];
//                                                              ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:42:48: Error: Unexpected token 'if'.
//   List<List<int>> list42 = [if (oracle("foo")) if (oracle()) ...[[]]];
//                                                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:42:29: Error: Unexpected token 'if'.
//   List<List<int>> list42 = [if (oracle("foo")) if (oracle()) ...[[]]];
//                             ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:43:60: Error: Unexpected token '...'.
//   Set<List<int>> set42 = {if (oracle("foo")) if (oracle()) ...[[]], null};
//                                                            ^^^
//
// pkg/front_end/testcases/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/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/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/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/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/control_flow_collection_inference.dart:45:42: Error: Unexpected token '...'.
//   List<int> list50 = [if (oracle("foo")) ...[]];
//                                          ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:45:23: Error: Unexpected token 'if'.
//   List<int> list50 = [if (oracle("foo")) ...[]];
//                       ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:46:40: Error: Unexpected token '...'.
//   Set<int> set50 = {if (oracle("foo")) ...[], null};
//                                        ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:46:21: Error: Unexpected token 'if'.
//   Set<int> set50 = {if (oracle("foo")) ...[], null};
//                     ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:47:48: Error: Unexpected token '...'.
//   Map<String, int> map50 = {if (oracle("foo")) ...{}, "baz": null};
//                                                ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:47:29: Error: Unexpected token 'if'.
//   Map<String, int> map50 = {if (oracle("foo")) ...{}, "baz": null};
//                             ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:48:42: Error: Unexpected token '...'.
//   List<int> list51 = [if (oracle("foo")) ...{}];
//                                          ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:48:23: Error: Unexpected token 'if'.
//   List<int> list51 = [if (oracle("foo")) ...{}];
//                       ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:49:40: Error: Unexpected token '...'.
//   Set<int> set51 = {if (oracle("foo")) ...{}, null};
//                                        ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:49:21: Error: Unexpected token 'if'.
//   Set<int> set51 = {if (oracle("foo")) ...{}, null};
//                     ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:50:56: Error: Unexpected token '...'.
//   List<int> list52 = [if (oracle("foo")) if (oracle()) ...[]];
//                                                        ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:50:42: Error: Unexpected token 'if'.
//   List<int> list52 = [if (oracle("foo")) if (oracle()) ...[]];
//                                          ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:50:23: Error: Unexpected token 'if'.
//   List<int> list52 = [if (oracle("foo")) if (oracle()) ...[]];
//                       ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:51:54: Error: Unexpected token '...'.
//   Set<int> set52 = {if (oracle("foo")) if (oracle()) ...[], null};
//                                                      ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:51:40: Error: Unexpected token 'if'.
//   Set<int> set52 = {if (oracle("foo")) if (oracle()) ...[], null};
//                                        ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:51:21: Error: Unexpected token 'if'.
//   Set<int> set52 = {if (oracle("foo")) if (oracle()) ...[], null};
//                     ^^
//
// pkg/front_end/testcases/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/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/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/control_flow_collection_inference.dart:53:48: Error: Unexpected token '...'.
//   List<List<int>> list60 = [if (oracle("foo")) ...[[]]];
//                                                ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:53:29: Error: Unexpected token 'if'.
//   List<List<int>> list60 = [if (oracle("foo")) ...[[]]];
//                             ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:54:46: Error: Unexpected token '...'.
//   Set<List<int>> set60 = {if (oracle("foo")) ...[[]], null};
//                                              ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:54:27: Error: Unexpected token 'if'.
//   Set<List<int>> set60 = {if (oracle("foo")) ...[[]], null};
//                           ^^
//
// pkg/front_end/testcases/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/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/control_flow_collection_inference.dart:56:62: Error: Unexpected token '...'.
//   List<List<int>> list61 = [if (oracle("foo")) if (oracle()) ...[[]]];
//                                                              ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:56:48: Error: Unexpected token 'if'.
//   List<List<int>> list61 = [if (oracle("foo")) if (oracle()) ...[[]]];
//                                                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:56:29: Error: Unexpected token 'if'.
//   List<List<int>> list61 = [if (oracle("foo")) if (oracle()) ...[[]]];
//                             ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:57:60: Error: Unexpected token '...'.
//   Set<List<int>> set61 = {if (oracle("foo")) if (oracle()) ...[[]], null};
//                                                            ^^^
//
// pkg/front_end/testcases/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/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/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/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/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/control_flow_collection_inference.dart:59:29: Error: Unexpected token 'if'.
//   List<List<int>> list70 = [if (oracle("foo")) []];
//                             ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:60:27: Error: Unexpected token 'if'.
//   Set<List<int>> set70 = {if (oracle("foo")) [], null};
//                           ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:61:48: Error: Unexpected token 'if'.
//   List<List<int>> list71 = [if (oracle("foo")) if (oracle()) []];
//                                                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:61:29: Error: Unexpected token 'if'.
//   List<List<int>> list71 = [if (oracle("foo")) if (oracle()) []];
//                             ^^
//
// pkg/front_end/testcases/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/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/control_flow_collection_inference.dart:63:17: Error: Unexpected token 'if'.
//   var list80 = [if (oracle("foo")) 42 else 3.14];
//                 ^^
//
// pkg/front_end/testcases/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/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/control_flow_collection_inference.dart:66:36: Error: Unexpected token '...'.
//   var list81 = [if (oracle("foo")) ...listInt else ...listDouble];
//                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:66:52: Error: Unexpected token '...'.
//   var list81 = [if (oracle("foo")) ...listInt else ...listDouble];
//                                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:66:17: Error: Unexpected token 'if'.
//   var list81 = [if (oracle("foo")) ...listInt else ...listDouble];
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:67:35: Error: Unexpected token '...'.
//   var set81 = {if (oracle("foo")) ...listInt else ...listDouble, null};
//                                   ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:67:51: Error: Unexpected token '...'.
//   var set81 = {if (oracle("foo")) ...listInt else ...listDouble, null};
//                                                   ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:67:16: Error: Unexpected token 'if'.
//   var set81 = {if (oracle("foo")) ...listInt else ...listDouble, null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:68:35: Error: Unexpected token '...'.
//   var map81 = {if (oracle("foo")) ...mapToInt else ...mapToDouble, "baz": null};
//                                   ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:68:52: Error: Unexpected token '...'.
//   var map81 = {if (oracle("foo")) ...mapToInt else ...mapToDouble, "baz": null};
//                                                    ^^^
//
// pkg/front_end/testcases/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/control_flow_collection_inference.dart:69:36: Error: Unexpected token '...'.
//   var list82 = [if (oracle("foo")) ...listInt else ...dynVar];
//                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:69:52: Error: Unexpected token '...'.
//   var list82 = [if (oracle("foo")) ...listInt else ...dynVar];
//                                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:69:17: Error: Unexpected token 'if'.
//   var list82 = [if (oracle("foo")) ...listInt else ...dynVar];
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:70:35: Error: Unexpected token '...'.
//   var set82 = {if (oracle("foo")) ...listInt else ...dynVar, null};
//                                   ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:70:51: Error: Unexpected token '...'.
//   var set82 = {if (oracle("foo")) ...listInt else ...dynVar, null};
//                                                   ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:70:16: Error: Unexpected token 'if'.
//   var set82 = {if (oracle("foo")) ...listInt else ...dynVar, null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:71:35: Error: Unexpected token '...'.
//   var map82 = {if (oracle("foo")) ...mapToInt else ...dynVar, null};
//                                   ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:71:52: Error: Unexpected token '...'.
//   var map82 = {if (oracle("foo")) ...mapToInt else ...dynVar, null};
//                                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:71:16: Error: Unexpected token 'if'.
//   var map82 = {if (oracle("foo")) ...mapToInt else ...dynVar, null};
//                ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:72:44: Error: Unexpected token '...'.
//   var list83 = [if (oracle("foo")) 42 else ...listDouble];
//                                            ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:72:17: Error: Unexpected token 'if'.
//   var list83 = [if (oracle("foo")) 42 else ...listDouble];
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:73:35: Error: Unexpected token '...'.
//   var set83 = {if (oracle("foo")) ...listInt else 3.14, null};
//                                   ^^^
//
// pkg/front_end/testcases/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/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/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/control_flow_collection_inference.dart:75:23: Error: Unexpected token 'if'.
//   List<int> list90 = [if (oracle("foo")) dynVar];
//                       ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:76:21: Error: Unexpected token 'if'.
//   Set<int> set90 = {if (oracle("foo")) dynVar, null};
//                     ^^
//
// pkg/front_end/testcases/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/control_flow_collection_inference.dart:78:42: Error: Unexpected token '...'.
//   List<int> list91 = [if (oracle("foo")) ...dynVar];
//                                          ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:78:23: Error: Unexpected token 'if'.
//   List<int> list91 = [if (oracle("foo")) ...dynVar];
//                       ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:79:40: Error: Unexpected token '...'.
//   Set<int> set91 = {if (oracle("foo")) ...dynVar, null};
//                                        ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:79:21: Error: Unexpected token 'if'.
//   Set<int> set91 = {if (oracle("foo")) ...dynVar, null};
//                     ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:80:48: Error: Unexpected token '...'.
//   Map<String, int> map91 = {if (oracle("foo")) ...dynVar, "baz": null};
//                                                ^^^
//
// pkg/front_end/testcases/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/control_flow_collection_inference.dart:81:24: Error: Unexpected token 'if'.
//   List<int> list100 = [if (dynVar) 42];
//                        ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:82:22: Error: Unexpected token 'if'.
//   Set<int> set100 = {if (dynVar) 42};
//                      ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:83:27: Error: Unexpected token 'if'.
//   Map<int, int> map100 = {if (dynVar) 42: 42};
//                           ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:87:9: Error: Unexpected token 'if'.
//   <int>[if (oracle("foo")) "bar"];
//         ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:88:9: Error: Unexpected token 'if'.
//   <int>{if (oracle("foo")) "bar", null};
//         ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:89:17: Error: Unexpected token 'if'.
//   <String, int>{if (oracle("foo")) "bar": "bar", "baz": null};
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:90:28: Error: Unexpected token '...'.
//   <int>[if (oracle("foo")) ...["bar"]];
//                            ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:90:9: Error: Unexpected token 'if'.
//   <int>[if (oracle("foo")) ...["bar"]];
//         ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:91:28: Error: Unexpected token '...'.
//   <int>{if (oracle("foo")) ...["bar"], null};
//                            ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:91:9: Error: Unexpected token 'if'.
//   <int>{if (oracle("foo")) ...["bar"], null};
//         ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:92:36: Error: Unexpected token '...'.
//   <String, int>{if (oracle("foo")) ...{"bar": "bar"}, "baz": null};
//                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:92:17: Error: Unexpected token 'if'.
//   <String, int>{if (oracle("foo")) ...{"bar": "bar"}, "baz": null};
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:93:28: Error: Unexpected token '...'.
//   <int>[if (oracle("foo")) ...map];
//                            ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:93:9: Error: Unexpected token 'if'.
//   <int>[if (oracle("foo")) ...map];
//         ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:94:28: Error: Unexpected token '...'.
//   <int>{if (oracle("foo")) ...map, null};
//                            ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:94:9: Error: Unexpected token 'if'.
//   <int>{if (oracle("foo")) ...map, null};
//         ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:95:36: Error: Unexpected token '...'.
//   <String, int>{if (oracle("foo")) ...["bar"], "baz": null};
//                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:95:17: Error: Unexpected token 'if'.
//   <String, int>{if (oracle("foo")) ...["bar"], "baz": null};
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:96:12: Error: Unexpected token 'if'.
//   <String>[if (oracle("foo")) 42 else 3.14];
//            ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:97:12: Error: Unexpected token 'if'.
//   <String>{if (oracle("foo")) 42 else 3.14, null};
//            ^^
//
// pkg/front_end/testcases/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/control_flow_collection_inference.dart:99:28: Error: Unexpected token '...'.
//   <int>[if (oracle("foo")) ...map else 42];
//                            ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:99:9: Error: Unexpected token 'if'.
//   <int>[if (oracle("foo")) ...map else 42];
//         ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:100:28: Error: Unexpected token '...'.
//   <int>{if (oracle("foo")) ...map else 42, null};
//                            ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:100:9: Error: Unexpected token 'if'.
//   <int>{if (oracle("foo")) ...map else 42, null};
//         ^^
//
// pkg/front_end/testcases/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/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/control_flow_collection_inference.dart:102:36: Error: Unexpected token '...'.
//   <int>[if (oracle("foo")) 42 else ...map];
//                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:102:9: Error: Unexpected token 'if'.
//   <int>[if (oracle("foo")) 42 else ...map];
//         ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:103:28: Error: Unexpected token '...'.
//   <int>{if (oracle("foo")) ...map else 42, null};
//                            ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:103:9: Error: Unexpected token 'if'.
//   <int>{if (oracle("foo")) ...map else 42, null};
//         ^^
//
// pkg/front_end/testcases/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/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/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/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/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/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/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/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/control_flow_collection_inference.dart:112:23: Error: Unexpected token 'if'.
//   List<int> list20 = [if (42) 42];
//                       ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:113:21: Error: Unexpected token 'if'.
//   Set<int> set20 = {if (42) 42};
//                     ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:114:26: Error: Unexpected token 'if'.
//   Map<int, int> map30 = {if (42) 42: 42};
//                          ^^
//
// pkg/front_end/testcases/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/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/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/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/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/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/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/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/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/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/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/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/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/control_flow_collection_inference.dart:132:53: Error: Unexpected token '...'.
//   var list20 = [for (int i = 0; oracle("foo"); i++) ...[42]];
//                                                     ^^^
//
// pkg/front_end/testcases/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/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/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/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/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/control_flow_collection_inference.dart:135:53: Error: Unexpected token '...'.
//   var list21 = [for (int i = 0; oracle("foo"); i++) ...[dynVar]];
//                                                     ^^^
//
// pkg/front_end/testcases/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/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/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/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/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/control_flow_collection_inference.dart:138:53: Error: Unexpected token '...'.
//   var list22 = [for (int i = 0; oracle("foo"); i++) ...[[42]]];
//                                                     ^^^
//
// pkg/front_end/testcases/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/control_flow_collection_inference.dart:158:59: Error: Unexpected token '...'.
//   List<int> list50 = [for (int i = 0; oracle("foo"); i++) ...[]];
//                                                           ^^^
//
// pkg/front_end/testcases/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/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/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/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/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/control_flow_collection_inference.dart:161:59: Error: Unexpected token '...'.
//   List<int> list51 = [for (int i = 0; oracle("foo"); i++) ...{}];
//                                                           ^^^
//
// pkg/front_end/testcases/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/control_flow_collection_inference.dart:201:24: Error: Unexpected token 'for'.
//   List<int> list120 = [for (var i in dynVar) i];
//                        ^^^
//
// pkg/front_end/testcases/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/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/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/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/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/control_flow_collection_inference.dart:210:9: Error: Unexpected token 'for'.
//   <int>[for (int i = 0; oracle("foo"); i++) "bar"];
//         ^^^
//
// pkg/front_end/testcases/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/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/control_flow_collection_inference.dart:213:45: Error: Unexpected token '...'.
//   <int>[for (int i = 0; oracle("foo"); i++) ...["bar"]];
//                                             ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:213:9: Error: Unexpected token 'for'.
//   <int>[for (int i = 0; oracle("foo"); i++) ...["bar"]];
//         ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:214:45: Error: Unexpected token '...'.
//   <int>{for (int i = 0; oracle("foo"); i++) ...["bar"], null};
//                                             ^^^
//
// pkg/front_end/testcases/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/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/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/control_flow_collection_inference.dart:216:45: Error: Unexpected token '...'.
//   <int>[for (int i = 0; oracle("foo"); i++) ...map];
//                                             ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:216:9: Error: Unexpected token 'for'.
//   <int>[for (int i = 0; oracle("foo"); i++) ...map];
//         ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:217:45: Error: Unexpected token '...'.
//   <int>{for (int i = 0; oracle("foo"); i++) ...map, null};
//                                             ^^^
//
// pkg/front_end/testcases/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/control_flow_collection_inference.dart:230:9: Error: Unexpected token 'for'.
//   <int>[for (i in <int>[1]) i];
//         ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:231:9: Error: Unexpected token 'for'.
//   <int>{for (i in <int>[1]) i, null};
//         ^^^
//
// pkg/front_end/testcases/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/control_flow_collection_inference.dart:234:17: Error: Unexpected token 'for'.
//   var list10 = [for (var i in "not iterable") i];
//                 ^^^
//
// pkg/front_end/testcases/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/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/control_flow_collection_inference.dart:237:17: Error: Unexpected token 'for'.
//   var list20 = [for (int i in ["not", "int"]) i];
//                 ^^^
//
// pkg/front_end/testcases/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/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/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/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/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/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/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/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/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/control_flow_collection_inference.dart:246:23: Error: Unexpected token 'for'.
//   var list50 = [await for (;;) 42];
//                       ^^^
//
// pkg/front_end/testcases/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/control_flow_collection_inference.dart:247:22: Error: Unexpected token 'for'.
//   var set50 = {await for (;;) 42, null};
//                      ^^^
//
// pkg/front_end/testcases/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/control_flow_collection_inference.dart:248:22: Error: Unexpected token 'for'.
//   var map50 = {await for (;;) "bar": 42, "baz": null};
//                      ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:249:17: Error: Unexpected token 'for'.
//   var list60 = [for (; "not bool";) 42];
//                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:250:16: Error: Unexpected token 'for'.
//   var set60 = {for (; "not bool";) 42, null};
//                ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:251:16: Error: Unexpected token 'for'.
//   var map60 = {for (; "not bool";) "bar": 42, "baz": null};
//                ^^^
//
// pkg/front_end/testcases/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/control_flow_collection_inference.dart:255:15: Error: Unexpected token 'for'.
//   <int>[await for (int i in stream) i];
//               ^^^
//
// pkg/front_end/testcases/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/control_flow_collection_inference.dart:256:15: Error: Unexpected token 'for'.
//   <int>{await for (int i in stream) i};
//               ^^^
//
// pkg/front_end/testcases/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/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/control_flow_collection_inference.dart:267:23: Error: Unexpected token 'if'.
//   List<int> list10 = [if (a is B) a.foo];
//                       ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:268:21: Error: Unexpected token 'if'.
//   Set<int> set10 = {if (a is B) a.foo};
//                     ^^
//
// pkg/front_end/testcases/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 = null]) → 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 async {
  <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};
}
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 {}
