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:84:9: Error: Unexpected token 'if'.
//   <int>[if (oracle("foo")) "bar"];
//         ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:85:9: Error: Unexpected token 'if'.
//   <int>{if (oracle("foo")) "bar", null};
//         ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:86:17: Error: Unexpected token 'if'.
//   <String, int>{if (oracle("foo")) "bar": "bar", "baz": null};
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:87:28: Error: Unexpected token '...'.
//   <int>[if (oracle("foo")) ...["bar"]];
//                            ^^^
//
// 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:28: Error: Unexpected token '...'.
//   <int>{if (oracle("foo")) ...["bar"], null};
//                            ^^^
//
// 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:36: Error: Unexpected token '...'.
//   <String, int>{if (oracle("foo")) ...{"bar": "bar"}, "baz": 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")) ...map];
//                            ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:90:9: Error: Unexpected token 'if'.
//   <int>[if (oracle("foo")) ...map];
//         ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:91:28: Error: Unexpected token '...'.
//   <int>{if (oracle("foo")) ...map, null};
//                            ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:91:9: Error: Unexpected token 'if'.
//   <int>{if (oracle("foo")) ...map, null};
//         ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:92:36: Error: Unexpected token '...'.
//   <String, int>{if (oracle("foo")) ...["bar"], "baz": null};
//                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:92:17: Error: Unexpected token 'if'.
//   <String, int>{if (oracle("foo")) ...["bar"], "baz": null};
//                 ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:93:12: Error: Unexpected token 'if'.
//   <String>[if (oracle("foo")) 42 else 3.14];
//            ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:94:12: Error: Unexpected token 'if'.
//   <String>{if (oracle("foo")) 42 else 3.14, null};
//            ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:95: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:96:28: Error: Unexpected token '...'.
//   <int>[if (oracle("foo")) ...map else 42];
//                            ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:96:9: Error: Unexpected token 'if'.
//   <int>[if (oracle("foo")) ...map else 42];
//         ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:97:28: Error: Unexpected token '...'.
//   <int>{if (oracle("foo")) ...map else 42, null};
//                            ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:97:9: Error: Unexpected token 'if'.
//   <int>{if (oracle("foo")) ...map else 42, null};
//         ^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:98:36: Error: Unexpected token '...'.
//   <String, int>{if (oracle("foo")) ...[42] else "bar": 42, "baz": null};
//                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:98: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:99:36: Error: Unexpected token '...'.
//   <int>[if (oracle("foo")) 42 else ...map];
//                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:99:9: Error: Unexpected token 'if'.
//   <int>[if (oracle("foo")) 42 else ...map];
//         ^^
//
// 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:51: Error: Unexpected token '...'.
//   <String, int>{if (oracle("foo")) "bar": 42 else ...[42], "baz": null};
//                                                   ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:101: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:17: Error: Unexpected token 'for'.
//   var list10 = [for (int i = 0; oracle("foo"); i++) 42];
//                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:107: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:108: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:109:17: Error: Unexpected token 'for'.
//   var list11 = [for (int i = 0; oracle("foo"); i++) dynVar];
//                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:110: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:111: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:112:17: Error: Unexpected token 'for'.
//   var list12 = [for (int i = 0; oracle("foo"); i++) [42]];
//                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:113: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:114: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:115:53: Error: Unexpected token '...'.
//   var list20 = [for (int i = 0; oracle("foo"); i++) ...[42]];
//                                                     ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:115:17: Error: Unexpected token 'for'.
//   var list20 = [for (int i = 0; oracle("foo"); i++) ...[42]];
//                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:116:52: Error: Unexpected token '...'.
//   var set20 = {for (int i = 0; oracle("foo"); i++) ...[42], null};
//                                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:116: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:117: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:117: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:118:53: Error: Unexpected token '...'.
//   var list21 = [for (int i = 0; oracle("foo"); i++) ...[dynVar]];
//                                                     ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:118:17: Error: Unexpected token 'for'.
//   var list21 = [for (int i = 0; oracle("foo"); i++) ...[dynVar]];
//                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:119:52: Error: Unexpected token '...'.
//   var set21 = {for (int i = 0; oracle("foo"); i++) ...[dynVar], null};
//                                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:119: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:120: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:120: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:121:53: Error: Unexpected token '...'.
//   var list22 = [for (int i = 0; oracle("foo"); i++) ...[[42]]];
//                                                     ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:121:17: Error: Unexpected token 'for'.
//   var list22 = [for (int i = 0; oracle("foo"); i++) ...[[42]]];
//                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:122:52: Error: Unexpected token '...'.
//   var set22 = {for (int i = 0; oracle("foo"); i++) ...[[42]], null};
//                                                    ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:122: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:123: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:123: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:124: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:124: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:124: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:125: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:125: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:125: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:126: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:126: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:126: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:127: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:127: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:127: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:128: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:128: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:128: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:129: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:129: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:129: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:130: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:130: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:130: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:131: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:131: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:131: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:132: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:132: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:132: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:133:65: Error: Unexpected token '...'.
//   List<List<int>> list40 = [for (int i = 0; oracle("foo"); i++) ...[[]]];
//                                                                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:133: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:134: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:134: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:135: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:135: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:136:65: Error: Unexpected token '...'.
//   List<List<int>> list41 = [for (int i = 0; oracle("foo"); i++) ...{[]}];
//                                                                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:136: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:137: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:137: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:138: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:138: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:138: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:139: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:139: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:139: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:140: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:140: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:140: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:141:59: Error: Unexpected token '...'.
//   List<int> list50 = [for (int i = 0; oracle("foo"); i++) ...[]];
//                                                           ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:141:23: Error: Unexpected token 'for'.
//   List<int> list50 = [for (int i = 0; oracle("foo"); i++) ...[]];
//                       ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:142:57: Error: Unexpected token '...'.
//   Set<int> set50 = {for (int i = 0; oracle("foo"); i++) ...[], null};
//                                                         ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:142: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:143: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:143: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:144:59: Error: Unexpected token '...'.
//   List<int> list51 = [for (int i = 0; oracle("foo"); i++) ...{}];
//                                                           ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:144:23: Error: Unexpected token 'for'.
//   List<int> list51 = [for (int i = 0; oracle("foo"); i++) ...{}];
//                       ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:145:57: Error: Unexpected token '...'.
//   Set<int> set51 = {for (int i = 0; oracle("foo"); i++) ...{}, null};
//                                                         ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:145: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:146: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:146: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:146: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:147: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:147: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:147: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:148:65: Error: Unexpected token '...'.
//   List<List<int>> list60 = [for (int i = 0; oracle("foo"); i++) ...[[]]];
//                                                                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:148: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:149: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:149: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:150: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:150: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:151: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:151: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:151: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:152: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:152: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:152: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:153: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:153: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:153: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:154: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:155: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:156: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:157: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:157: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:158: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:158: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:159: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:159: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:160: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:160: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:161: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:161: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:162: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:162: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:163: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:163: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:163: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:163: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:164: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:164: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:164: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:164: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:165: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:165: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:165: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:165: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:166: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:166: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:166: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:166: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:167: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:167: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:167: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:167: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:168: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:168: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:168: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:168: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:169: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:169: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:169: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:170: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:170: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:170: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:171: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:171: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:171: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:172: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:173: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:174: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:175:59: Error: Unexpected token '...'.
//   List<int> list91 = [for (int i = 0; oracle("foo"); i++) ...dynVar];
//                                                           ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:175: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:176: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:176: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:177: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:177: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:178: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:179: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:180: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:181:18: Error: Unexpected token 'for'.
//   var list110 = [for (var i in [1, 2, 3]) i];
//                  ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:182: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:183: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:184:24: Error: Unexpected token 'for'.
//   List<int> list120 = [for (var i in dynVar) i];
//                        ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:185:22: Error: Unexpected token 'for'.
//   Set<int> set120 = {for (var i in dynVar) i, null};
//                      ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:186: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:190:9: Error: Unexpected token 'for'.
//   <int>[for (int i = 0; oracle("foo"); i++) "bar"];
//         ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:191:9: Error: Unexpected token 'for'.
//   <int>{for (int i = 0; oracle("foo"); i++) "bar", null};
//         ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:192: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:193:45: Error: Unexpected token '...'.
//   <int>[for (int i = 0; oracle("foo"); i++) ...["bar"]];
//                                             ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:193:9: Error: Unexpected token 'for'.
//   <int>[for (int i = 0; oracle("foo"); i++) ...["bar"]];
//         ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:194:45: Error: Unexpected token '...'.
//   <int>{for (int i = 0; oracle("foo"); i++) ...["bar"], null};
//                                             ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:194:9: Error: Unexpected token 'for'.
//   <int>{for (int i = 0; oracle("foo"); i++) ...["bar"], null};
//         ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:195: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:195: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:196:45: Error: Unexpected token '...'.
//   <int>[for (int i = 0; oracle("foo"); i++) ...map];
//                                             ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:196:9: Error: Unexpected token 'for'.
//   <int>[for (int i = 0; oracle("foo"); i++) ...map];
//         ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:197:45: Error: Unexpected token '...'.
//   <int>{for (int i = 0; oracle("foo"); i++) ...map, null};
//                                             ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:197:9: Error: Unexpected token 'for'.
//   <int>{for (int i = 0; oracle("foo"); i++) ...map, null};
//         ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:198: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:198: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:199: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:199: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:200: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:200: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:201: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:201: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:202: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:202: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:202: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:203: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:203: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:203: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:204: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:204: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:204: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:205: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:205: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:205: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:206: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:206: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:206: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:207: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:207: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:207: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:210:9: Error: Unexpected token 'for'.
//   <int>[for (i in <int>[1]) i];
//         ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:211:9: Error: Unexpected token 'for'.
//   <int>{for (i in <int>[1]) i, null};
//         ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:212: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:214:17: Error: Unexpected token 'for'.
//   var list10 = [for (var i in "not iterable") i];
//                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:215:16: Error: Unexpected token 'for'.
//   var set10 = {for (var i in "not iterable") i, null};
//                ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:216: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:217:17: Error: Unexpected token 'for'.
//   var list20 = [for (int i in ["not", "int"]) i];
//                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:218:16: Error: Unexpected token 'for'.
//   var set20 = {for (int i in ["not", "int"]) i, null};
//                ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:219: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:220:23: Error: Unexpected token 'for'.
//   var list30 = [await for (var i in "not stream") i];
//                       ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:221: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:222: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:223: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:224: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:225: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:226: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:226:23: Error: Unexpected token 'for'.
//   var list50 = [await for (;;) 42];
//                       ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:227: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:227:22: Error: Unexpected token 'for'.
//   var set50 = {await for (;;) 42, null};
//                      ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:228: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:228:22: Error: Unexpected token 'for'.
//   var map50 = {await for (;;) "bar": 42, "baz": null};
//                      ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:229:17: Error: Unexpected token 'for'.
//   var list60 = [for (; "not bool";) 42];
//                 ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:230:16: Error: Unexpected token 'for'.
//   var set60 = {for (; "not bool";) 42, null};
//                ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:231:16: Error: Unexpected token 'for'.
//   var map60 = {for (; "not bool";) "bar": 42, "baz": null};
//                ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:235: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:235:15: Error: Unexpected token 'for'.
//   <int>[await for (int i in stream) i];
//               ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:236: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:236:15: Error: Unexpected token 'for'.
//   <int>{await for (int i in stream) i};
//               ^^^
//
// pkg/front_end/testcases/control_flow_collection_inference.dart:237: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:237:23: Error: Unexpected token 'for'.
//   <String, int>{await for (int i in stream) "bar": i};
//                       ^^^
//
import self as self;
import "dart:core" as core;
import "dart:async" as asy;

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};
}
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};
}
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};
}
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 main() → dynamic {}
