OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 import 'package:expect/expect.dart'; | 5 import 'package:expect/expect.dart'; |
6 | 6 |
7 import "package:async_helper/async_helper.dart"; | 7 import "package:async_helper/async_helper.dart"; |
8 import 'compiler_helper.dart'; | 8 import 'compiler_helper.dart'; |
9 import 'package:compiler/src/types/types.dart'; | 9 import 'package:compiler/src/types/types.dart'; |
10 import 'type_mask_test_helper.dart'; | 10 import 'type_mask_test_helper.dart'; |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 test4(); | 157 test4(); |
158 test5(); | 158 test5(); |
159 test6(); | 159 test6(); |
160 } | 160 } |
161 """; | 161 """; |
162 | 162 |
163 main() { | 163 main() { |
164 Uri uri = new Uri(scheme: 'source'); | 164 Uri uri = new Uri(scheme: 'source'); |
165 | 165 |
166 checkReturn(MockCompiler compiler, String name, type) { | 166 checkReturn(MockCompiler compiler, String name, type) { |
167 var typesInferrer = compiler.globalInference.typesInferrer; | 167 var typesInferrer = compiler.globalInference.typesInferrerInternal; |
168 var element = findElement(compiler, name); | 168 var element = findElement(compiler, name); |
169 Expect.equals( | 169 Expect.equals( |
170 type, | 170 type, |
171 simplify(typesInferrer.getReturnTypeOfElement(element), compiler), | 171 simplify(typesInferrer.getReturnTypeOfElement(element), compiler), |
172 name); | 172 name); |
173 } | 173 } |
174 | 174 |
175 var compiler1 = compilerFor(TEST1, uri); | 175 var compiler1 = compilerFor(TEST1, uri); |
176 asyncTest(() => compiler1.run(uri).then((_) { | 176 asyncTest(() => compiler1.run(uri).then((_) { |
177 checkReturn(compiler1, 'test1', compiler1.commonMasks.uint31Type); | 177 checkReturn( |
| 178 compiler1, 'test1', compiler1.closedWorld.commonMasks.uint31Type); |
178 checkReturn(compiler1, 'test2', | 179 checkReturn(compiler1, 'test2', |
179 compiler1.commonMasks.dynamicType.nonNullable()); | 180 compiler1.closedWorld.commonMasks.dynamicType.nonNullable()); |
180 checkReturn(compiler1, 'test3', compiler1.commonMasks.uint31Type); | 181 checkReturn( |
181 checkReturn(compiler1, 'test4', compiler1.commonMasks.mapType); | 182 compiler1, 'test3', compiler1.closedWorld.commonMasks.uint31Type); |
| 183 checkReturn( |
| 184 compiler1, 'test4', compiler1.closedWorld.commonMasks.mapType); |
182 checkReturn(compiler1, 'test5', | 185 checkReturn(compiler1, 'test5', |
183 compiler1.commonMasks.dynamicType.nonNullable()); | 186 compiler1.closedWorld.commonMasks.dynamicType.nonNullable()); |
184 checkReturn(compiler1, 'test6', | 187 checkReturn(compiler1, 'test6', |
185 compiler1.commonMasks.dynamicType.nonNullable()); | 188 compiler1.closedWorld.commonMasks.dynamicType.nonNullable()); |
186 })); | 189 })); |
187 | 190 |
188 var compiler2 = compilerFor(TEST2, uri); | 191 var compiler2 = compilerFor(TEST2, uri); |
189 asyncTest(() => compiler2.run(uri).then((_) { | 192 asyncTest(() => compiler2.run(uri).then((_) { |
| 193 checkReturn(compiler2, 'test1', |
| 194 compiler2.closedWorld.commonMasks.mapType.nonNullable()); |
190 checkReturn( | 195 checkReturn( |
191 compiler2, 'test1', compiler2.commonMasks.mapType.nonNullable()); | 196 compiler2, 'test2', compiler2.closedWorld.commonMasks.mapType); |
192 checkReturn(compiler2, 'test2', compiler2.commonMasks.mapType); | 197 checkReturn( |
193 checkReturn(compiler2, 'test3', compiler2.commonMasks.mapType); | 198 compiler2, 'test3', compiler2.closedWorld.commonMasks.mapType); |
194 checkReturn(compiler2, 'test4', compiler2.commonMasks.mapType); | 199 checkReturn( |
195 checkReturn(compiler2, 'test5', compiler2.commonMasks.mapType); | 200 compiler2, 'test4', compiler2.closedWorld.commonMasks.mapType); |
| 201 checkReturn( |
| 202 compiler2, 'test5', compiler2.closedWorld.commonMasks.mapType); |
196 | 203 |
197 checkReturn(compiler2, 'test6', compiler2.commonMasks.numType); | 204 checkReturn( |
198 checkReturn(compiler2, 'test7', compiler2.commonMasks.uint31Type); | 205 compiler2, 'test6', compiler2.closedWorld.commonMasks.numType); |
199 checkReturn(compiler2, 'test8', compiler2.commonMasks.uint31Type); | 206 checkReturn( |
200 checkReturn(compiler2, 'test9', compiler2.commonMasks.uint31Type); | 207 compiler2, 'test7', compiler2.closedWorld.commonMasks.uint31Type); |
201 checkReturn(compiler2, 'test10', compiler2.commonMasks.numType); | 208 checkReturn( |
202 checkReturn(compiler2, 'test11', compiler2.commonMasks.doubleType); | 209 compiler2, 'test8', compiler2.closedWorld.commonMasks.uint31Type); |
| 210 checkReturn( |
| 211 compiler2, 'test9', compiler2.closedWorld.commonMasks.uint31Type); |
| 212 checkReturn( |
| 213 compiler2, 'test10', compiler2.closedWorld.commonMasks.numType); |
| 214 checkReturn( |
| 215 compiler2, 'test11', compiler2.closedWorld.commonMasks.doubleType); |
203 })); | 216 })); |
204 | 217 |
205 var compiler3 = compilerFor(TEST3, uri); | 218 var compiler3 = compilerFor(TEST3, uri); |
206 asyncTest(() => compiler3.run(uri).then((_) { | 219 asyncTest(() => compiler3.run(uri).then((_) { |
207 checkReturn(compiler3, 'test1', const TypeMask.nonNullEmpty()); | 220 checkReturn(compiler3, 'test1', const TypeMask.nonNullEmpty()); |
208 checkReturn(compiler3, 'test2', compiler3.commonMasks.mapType); | 221 checkReturn( |
209 checkReturn(compiler3, 'test3', compiler3.commonMasks.mapType); | 222 compiler3, 'test2', compiler3.closedWorld.commonMasks.mapType); |
210 checkReturn(compiler3, 'test4', compiler3.commonMasks.mapType); | 223 checkReturn( |
211 checkReturn(compiler3, 'test5', compiler3.commonMasks.mapType); | 224 compiler3, 'test3', compiler3.closedWorld.commonMasks.mapType); |
212 checkReturn(compiler3, 'test6', compiler3.commonMasks.mapType); | 225 checkReturn( |
| 226 compiler3, 'test4', compiler3.closedWorld.commonMasks.mapType); |
| 227 checkReturn( |
| 228 compiler3, 'test5', compiler3.closedWorld.commonMasks.mapType); |
| 229 checkReturn( |
| 230 compiler3, 'test6', compiler3.closedWorld.commonMasks.mapType); |
213 })); | 231 })); |
214 | 232 |
215 var compiler4 = compilerFor(TEST4, uri); | 233 var compiler4 = compilerFor(TEST4, uri); |
216 asyncTest(() => compiler4.run(uri).then((_) { | 234 asyncTest(() => compiler4.run(uri).then((_) { |
217 checkReturn(compiler4, 'test1', const TypeMask.nonNullEmpty()); | 235 checkReturn(compiler4, 'test1', const TypeMask.nonNullEmpty()); |
218 checkReturn(compiler4, 'test2', compiler4.commonMasks.mapType); | 236 checkReturn( |
219 checkReturn(compiler4, 'test3', compiler4.commonMasks.mapType); | 237 compiler4, 'test2', compiler4.closedWorld.commonMasks.mapType); |
220 checkReturn(compiler4, 'test4', compiler4.commonMasks.mapType); | 238 checkReturn( |
221 checkReturn(compiler4, 'test5', compiler4.commonMasks.mapType); | 239 compiler4, 'test3', compiler4.closedWorld.commonMasks.mapType); |
222 checkReturn(compiler4, 'test6', compiler4.commonMasks.mapType); | 240 checkReturn( |
| 241 compiler4, 'test4', compiler4.closedWorld.commonMasks.mapType); |
| 242 checkReturn( |
| 243 compiler4, 'test5', compiler4.closedWorld.commonMasks.mapType); |
| 244 checkReturn( |
| 245 compiler4, 'test6', compiler4.closedWorld.commonMasks.mapType); |
223 })); | 246 })); |
224 } | 247 } |
OLD | NEW |