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

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

Issue 12759006: Use inferred type in the SSA builder for super calls, and fix a bug with operator== in the type inf… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 9 months 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 | Annotate | Revision Log
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 5 import
6 '../../../sdk/lib/_internal/compiler/implementation/types/types.dart' 6 '../../../sdk/lib/_internal/compiler/implementation/types/types.dart'
7 show TypeMask; 7 show TypeMask;
8 8
9 import 'compiler_helper.dart'; 9 import 'compiler_helper.dart';
10 import 'parser_helper.dart'; 10 import 'parser_helper.dart';
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 returnInt4() { 63 returnInt4() {
64 return (42); 64 return (42);
65 } 65 }
66 66
67 get topLevelGetter => 42; 67 get topLevelGetter => 42;
68 returnDynamic() => topLevelGetter(42); 68 returnDynamic() => topLevelGetter(42);
69 69
70 class A { 70 class A {
71 factory A() = A.generative; 71 factory A() = A.generative;
72 A.generative(); 72 A.generative();
73 operator==(other) => 42;
73 74
74 get myField => 42; 75 get myField => 42;
75 set myField(a) {} 76 set myField(a) {}
76 returnNum1() => ++myField; 77 returnNum1() => ++myField;
77 returnNum2() => ++this.myField; 78 returnNum2() => ++this.myField;
78 returnNum3() => this.myField += 42; 79 returnNum3() => this.myField += 42;
79 returnNum4() => myField += 42; 80 returnNum4() => myField += 42;
80 operator[](index) => 42; 81 operator[](index) => 42;
81 operator[]= (index, value) {} 82 operator[]= (index, value) {}
82 returnNum5() => ++this[0]; 83 returnNum5() => ++this[0];
(...skipping 18 matching lines...) Expand all
101 returnInt1(true); 102 returnInt1(true);
102 returnInt2(true); 103 returnInt2(true);
103 returnInt3(true); 104 returnInt3(true);
104 returnInt4(); 105 returnInt4();
105 returnDouble(true); 106 returnDouble(true);
106 returnGiveUp(true); 107 returnGiveUp(true);
107 returnNum3(); 108 returnNum3();
108 returnNum4(); 109 returnNum4();
109 returnIntOrNull(true); 110 returnIntOrNull(true);
110 returnDynamic(); 111 returnDynamic();
112 new A() == new B();
111 new A()..returnNum1() 113 new A()..returnNum1()
112 ..returnNum2() 114 ..returnNum2()
113 ..returnNum3() 115 ..returnNum3()
114 ..returnNum4() 116 ..returnNum4()
115 ..returnNum5() 117 ..returnNum5()
116 ..returnNum6(); 118 ..returnNum6();
117 119
118 new B()..returnNum1() 120 new B()..returnNum1()
119 ..returnNum2() 121 ..returnNum2()
120 ..returnNum3() 122 ..returnNum3()
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 var element = cls.lookupLocalMember(buildSourceString(methodName)); 156 var element = cls.lookupLocalMember(buildSourceString(methodName));
155 Expect.equals(type, typesInferrer.returnTypeOf[element]); 157 Expect.equals(type, typesInferrer.returnTypeOf[element]);
156 } 158 }
157 159
158 checkReturnInClass('A', 'returnNum1', typesInferrer.numType); 160 checkReturnInClass('A', 'returnNum1', typesInferrer.numType);
159 checkReturnInClass('A', 'returnNum2', typesInferrer.numType); 161 checkReturnInClass('A', 'returnNum2', typesInferrer.numType);
160 checkReturnInClass('A', 'returnNum3', typesInferrer.numType); 162 checkReturnInClass('A', 'returnNum3', typesInferrer.numType);
161 checkReturnInClass('A', 'returnNum4', typesInferrer.numType); 163 checkReturnInClass('A', 'returnNum4', typesInferrer.numType);
162 checkReturnInClass('A', 'returnNum5', typesInferrer.numType); 164 checkReturnInClass('A', 'returnNum5', typesInferrer.numType);
163 checkReturnInClass('A', 'returnNum6', typesInferrer.numType); 165 checkReturnInClass('A', 'returnNum6', typesInferrer.numType);
166 checkReturnInClass('A', '==', typesInferrer.giveUpType);
164 167
165 checkReturnInClass('B', 'returnNum1', typesInferrer.numType); 168 checkReturnInClass('B', 'returnNum1', typesInferrer.numType);
166 checkReturnInClass('B', 'returnNum2', typesInferrer.numType); 169 checkReturnInClass('B', 'returnNum2', typesInferrer.numType);
167 checkReturnInClass('B', 'returnNum3', typesInferrer.numType); 170 checkReturnInClass('B', 'returnNum3', typesInferrer.numType);
168 checkReturnInClass('B', 'returnNum4', typesInferrer.numType); 171 checkReturnInClass('B', 'returnNum4', typesInferrer.numType);
169 checkReturnInClass('B', 'returnNum5', typesInferrer.numType); 172 checkReturnInClass('B', 'returnNum5', typesInferrer.numType);
170 checkReturnInClass('B', 'returnNum6', typesInferrer.numType); 173 checkReturnInClass('B', 'returnNum6', typesInferrer.numType);
171 checkReturnInClass('B', 'returnNum7', typesInferrer.numType); 174 checkReturnInClass('B', 'returnNum7', typesInferrer.numType);
172 checkReturnInClass('B', 'returnNum8', typesInferrer.numType); 175 checkReturnInClass('B', 'returnNum8', typesInferrer.numType);
173 176
174 checkFactoryConstructor(String className) { 177 checkFactoryConstructor(String className) {
175 var cls = findElement(compiler, className); 178 var cls = findElement(compiler, className);
176 var element = cls.localLookup(buildSourceString(className)); 179 var element = cls.localLookup(buildSourceString(className));
177 Expect.equals(new TypeMask.nonNullExact(cls.rawType), 180 Expect.equals(new TypeMask.nonNullExact(cls.rawType),
178 typesInferrer.returnTypeOf[element]); 181 typesInferrer.returnTypeOf[element]);
179 } 182 }
180 checkFactoryConstructor('A'); 183 checkFactoryConstructor('A');
181 } 184 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698