Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(186)

Side by Side Diff: tests/compiler/dart2js/simple_inferrer_postfix_prefix_test.dart

Issue 2577423002: Further reduce use of Compiler.closedWorld. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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:async_helper/async_helper.dart'; 5 import 'package:async_helper/async_helper.dart';
6 import 'package:expect/expect.dart'; 6 import 'package:expect/expect.dart';
7 7
8 import 'compiler_helper.dart'; 8 import 'compiler_helper.dart';
9 import 'type_mask_test_helper.dart'; 9 import 'type_mask_test_helper.dart';
10 10
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 ..returnDynamic2() 59 ..returnDynamic2()
60 ..returnDynamic3() 60 ..returnDynamic3()
61 ..returnDynamic4(); 61 ..returnDynamic4();
62 } 62 }
63 """; 63 """;
64 64
65 void main() { 65 void main() {
66 Uri uri = new Uri(scheme: 'source'); 66 Uri uri = new Uri(scheme: 'source');
67 var compiler = compilerFor(TEST, uri); 67 var compiler = compilerFor(TEST, uri);
68 asyncTest(() => compiler.run(uri).then((_) { 68 asyncTest(() => compiler.run(uri).then((_) {
69 var commonMasks = compiler.closedWorld.commonMasks;
70 var typesInferrer = compiler.globalInference.typesInferrerInternal; 69 var typesInferrer = compiler.globalInference.typesInferrerInternal;
70 var closedWorld = typesInferrer.closedWorld;
71 var commonMasks = closedWorld.commonMasks;
71 72
72 checkReturnInClass(String className, String methodName, type) { 73 checkReturnInClass(String className, String methodName, type) {
73 var cls = findElement(compiler, className); 74 var cls = findElement(compiler, className);
74 var element = cls.lookupLocalMember(methodName); 75 var element = cls.lookupLocalMember(methodName);
75 Expect.equals( 76 Expect.equals(
76 type, 77 type,
77 simplify(typesInferrer.getReturnTypeOfElement(element), compiler), 78 simplify(
79 typesInferrer.getReturnTypeOfElement(element), closedWorld),
78 methodName); 80 methodName);
79 } 81 }
80 82
81 var subclassOfInterceptor = 83 var subclassOfInterceptor = commonMasks.interceptorType;
82 findTypeMask(compiler, 'Interceptor', 'nonNullSubclass');
83 84
84 checkReturnInClass('A', 'returnNum1', commonMasks.numType); 85 checkReturnInClass('A', 'returnNum1', commonMasks.numType);
85 checkReturnInClass('A', 'returnNum2', commonMasks.numType); 86 checkReturnInClass('A', 'returnNum2', commonMasks.numType);
86 checkReturnInClass('A', 'returnNum3', commonMasks.numType); 87 checkReturnInClass('A', 'returnNum3', commonMasks.numType);
87 checkReturnInClass('A', 'returnNum4', commonMasks.numType); 88 checkReturnInClass('A', 'returnNum4', commonMasks.numType);
88 checkReturnInClass('A', 'returnEmpty1', const TypeMask.nonNullEmpty()); 89 checkReturnInClass('A', 'returnEmpty1', const TypeMask.nonNullEmpty());
89 checkReturnInClass('A', 'returnEmpty2', const TypeMask.nonNullEmpty()); 90 checkReturnInClass('A', 'returnEmpty2', const TypeMask.nonNullEmpty());
90 checkReturnInClass('A', 'returnDynamic1', subclassOfInterceptor); 91 checkReturnInClass('A', 'returnDynamic1', subclassOfInterceptor);
91 checkReturnInClass('A', 'returnDynamic2', subclassOfInterceptor); 92 checkReturnInClass('A', 'returnDynamic2', subclassOfInterceptor);
92 checkReturnInClass('A', 'returnEmpty3', const TypeMask.nonNullEmpty()); 93 checkReturnInClass('A', 'returnEmpty3', const TypeMask.nonNullEmpty());
93 94
94 checkReturnInClass('B', 'returnString1', commonMasks.stringType); 95 checkReturnInClass('B', 'returnString1', commonMasks.stringType);
95 checkReturnInClass('B', 'returnString2', commonMasks.stringType); 96 checkReturnInClass('B', 'returnString2', commonMasks.stringType);
96 checkReturnInClass( 97 checkReturnInClass(
97 'B', 'returnDynamic1', const TypeMask.nonNullEmpty()); 98 'B', 'returnDynamic1', const TypeMask.nonNullEmpty());
98 checkReturnInClass( 99 checkReturnInClass(
99 'B', 'returnDynamic2', const TypeMask.nonNullEmpty()); 100 'B', 'returnDynamic2', const TypeMask.nonNullEmpty());
100 checkReturnInClass( 101 checkReturnInClass(
101 'B', 'returnDynamic3', const TypeMask.nonNullEmpty()); 102 'B', 'returnDynamic3', const TypeMask.nonNullEmpty());
102 checkReturnInClass( 103 checkReturnInClass(
103 'B', 'returnDynamic4', const TypeMask.nonNullEmpty()); 104 'B', 'returnDynamic4', const TypeMask.nonNullEmpty());
104 })); 105 }));
105 } 106 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/simple_inferrer_no_such_method_test.dart ('k') | tests/compiler/dart2js/simple_inferrer_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698