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 import "package:async_helper/async_helper.dart"; | 6 import "package:async_helper/async_helper.dart"; |
7 import 'compiler_helper.dart'; | 7 import 'compiler_helper.dart'; |
8 import 'parser_helper.dart'; | 8 import 'parser_helper.dart'; |
| 9 import 'type_mask_test_helper.dart'; |
9 | 10 |
10 const String TEST = """ | 11 const String TEST = """ |
11 bar() => 42; | 12 bar() => 42; |
12 baz() => bar; | 13 baz() => bar; |
13 | 14 |
14 class A { | 15 class A { |
15 foo() => 42; | 16 foo() => 42; |
16 } | 17 } |
17 | 18 |
18 class B extends A { | 19 class B extends A { |
(...skipping 10 matching lines...) Expand all Loading... |
29 Uri uri = new Uri(scheme: 'source'); | 30 Uri uri = new Uri(scheme: 'source'); |
30 var compiler = compilerFor(TEST, uri); | 31 var compiler = compilerFor(TEST, uri); |
31 asyncTest(() => compiler.runCompiler(uri).then((_) { | 32 asyncTest(() => compiler.runCompiler(uri).then((_) { |
32 var typesTask = compiler.typesTask; | 33 var typesTask = compiler.typesTask; |
33 var typesInferrer = typesTask.typesInferrer; | 34 var typesInferrer = typesTask.typesInferrer; |
34 | 35 |
35 checkReturn(String name, type) { | 36 checkReturn(String name, type) { |
36 var element = findElement(compiler, name); | 37 var element = findElement(compiler, name); |
37 Expect.equals( | 38 Expect.equals( |
38 type, | 39 type, |
39 typesInferrer.getReturnTypeOfElement(element).simplify(compiler), | 40 simplify(typesInferrer.getReturnTypeOfElement(element), compiler), |
40 name); | 41 name); |
41 } | 42 } |
42 | 43 |
43 checkReturnInClass(String className, String methodName, type) { | 44 checkReturnInClass(String className, String methodName, type) { |
44 var cls = findElement(compiler, className); | 45 var cls = findElement(compiler, className); |
45 var element = cls.lookupLocalMember(methodName); | 46 var element = cls.lookupLocalMember(methodName); |
46 Expect.equals(type, | 47 Expect.equals(type, |
47 typesInferrer.getReturnTypeOfElement(element).simplify(compiler)); | 48 simplify(typesInferrer.getReturnTypeOfElement(element), compiler)); |
48 } | 49 } |
49 | 50 |
50 checkReturn('bar', typesTask.uint31Type); | 51 checkReturn('bar', typesTask.uint31Type); |
51 checkReturn('baz', typesTask.functionType); | 52 checkReturn('baz', typesTask.functionType); |
52 | 53 |
53 checkReturnInClass('A', 'foo', typesTask.uint31Type); | 54 checkReturnInClass('A', 'foo', typesTask.uint31Type); |
54 checkReturnInClass('B', 'foo', typesTask.functionType); | 55 checkReturnInClass('B', 'foo', typesTask.functionType); |
55 })); | 56 })); |
56 } | 57 } |
OLD | NEW |