| OLD | NEW |
| (Empty) | |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 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. |
| 4 |
| 5 import 'package:expect/expect.dart'; |
| 6 import "package:async_helper/async_helper.dart"; |
| 7 |
| 8 import 'compiler_helper.dart'; |
| 9 import 'type_mask_test_helper.dart'; |
| 10 |
| 11 const String TEST = ''' |
| 12 int closure(int x) { |
| 13 return x; |
| 14 } |
| 15 |
| 16 class A { |
| 17 static const DEFAULT = const {'fun' : closure}; |
| 18 |
| 19 final map; |
| 20 |
| 21 A([maparg]) : map = maparg == null ? DEFAULT : maparg; |
| 22 } |
| 23 |
| 24 main() { |
| 25 var a = new A(); |
| 26 a.map['fun'](3.3); |
| 27 print(closure(22)); |
| 28 } |
| 29 '''; |
| 30 |
| 31 void main() { |
| 32 Uri uri = new Uri(scheme: 'source'); |
| 33 var compiler = compilerFor(TEST, uri, |
| 34 expectedErrors: 0, expectedWarnings: 0); |
| 35 compiler.stopAfterTypeInference = true; |
| 36 asyncTest(() => compiler.runCompiler(uri).then((_) { |
| 37 var typesTask = compiler.typesTask; |
| 38 var typesInferrer = typesTask.typesInferrer; |
| 39 var element = findElement(compiler, 'closure'); |
| 40 var mask = typesInferrer.getReturnTypeOfElement(element); |
| 41 Expect.equals(typesTask.numType, simplify(mask, compiler)); |
| 42 })); |
| 43 } |
| OLD | NEW |