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 // Test that computation of callers of an element works when two | 5 // Test that computation of callers of an element works when two |
6 // elements of the same name are being invoked in the same method. | 6 // elements of the same name are being invoked in the same method. |
7 | 7 |
8 import 'package:async_helper/async_helper.dart'; | 8 import 'package:async_helper/async_helper.dart'; |
9 import 'package:expect/expect.dart'; | 9 import 'package:expect/expect.dart'; |
10 import 'package:compiler/src/inferrer/type_graph_inferrer.dart'; | 10 import 'package:compiler/src/inferrer/type_graph_inferrer.dart'; |
(...skipping 22 matching lines...) Expand all Loading... |
33 MyInferrer(compiler, closedWorld, closedWorldRefiner) | 33 MyInferrer(compiler, closedWorld, closedWorldRefiner) |
34 : super(compiler, closedWorld, closedWorldRefiner); | 34 : super(compiler, closedWorld, closedWorldRefiner); |
35 clear() {} | 35 clear() {} |
36 } | 36 } |
37 | 37 |
38 void main() { | 38 void main() { |
39 Uri uri = new Uri(scheme: 'source'); | 39 Uri uri = new Uri(scheme: 'source'); |
40 var compiler = compilerFor(TEST, uri, analyzeOnly: true); | 40 var compiler = compilerFor(TEST, uri, analyzeOnly: true); |
41 asyncTest(() => compiler.run(uri).then((_) { | 41 asyncTest(() => compiler.run(uri).then((_) { |
42 ClosedWorldRefiner closedWorldRefiner = compiler.closeResolution(); | 42 ClosedWorldRefiner closedWorldRefiner = compiler.closeResolution(); |
43 ClosedWorld closedWorld = compiler.closedWorld; | 43 ClosedWorld closedWorld = compiler.resolverWorld.closedWorldForTesting; |
44 var inferrer = | 44 var inferrer = |
45 new MyInferrer(compiler, closedWorld, closedWorldRefiner); | 45 new MyInferrer(compiler, closedWorld, closedWorldRefiner); |
46 compiler.globalInference.typesInferrerInternal = inferrer; | 46 compiler.globalInference.typesInferrerInternal = inferrer; |
47 compiler.globalInference.runGlobalTypeInference( | 47 compiler.globalInference.runGlobalTypeInference( |
48 compiler.mainFunction, closedWorld, closedWorldRefiner); | 48 compiler.mainFunction, closedWorld, closedWorldRefiner); |
49 var mainElement = findElement(compiler, 'main'); | 49 var mainElement = findElement(compiler, 'main'); |
50 var classA = findElement(compiler, 'A'); | 50 var classA = findElement(compiler, 'A'); |
51 var fieldA = classA.lookupLocalMember('field'); | 51 var fieldA = classA.lookupLocalMember('field'); |
52 var classB = findElement(compiler, 'B'); | 52 var classB = findElement(compiler, 'B'); |
53 var fieldB = classB.lookupLocalMember('field'); | 53 var fieldB = classB.lookupLocalMember('field'); |
54 | 54 |
55 Expect.isTrue(inferrer.getCallersOf(fieldA).contains(mainElement)); | 55 Expect.isTrue(inferrer.getCallersOf(fieldA).contains(mainElement)); |
56 Expect.isTrue(inferrer.getCallersOf(fieldB).contains(mainElement)); | 56 Expect.isTrue(inferrer.getCallersOf(fieldB).contains(mainElement)); |
57 })); | 57 })); |
58 } | 58 } |
OLD | NEW |