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

Side by Side Diff: pkg/analyzer/test/generated/inheritance_manager_test.dart

Issue 1893313004: Remove references to and uses of MemberMap (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 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
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 library analyzer.test.generated.inheritance_manager_test; 5 library analyzer.test.generated.inheritance_manager_test;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analyzer/dart/element/element.dart'; 9 import 'package:analyzer/dart/element/element.dart';
10 import 'package:analyzer/dart/element/type.dart'; 10 import 'package:analyzer/dart/element/type.dart';
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 62
63 void test_getMapOfMembersInheritedFromClasses_accessor_extends() { 63 void test_getMapOfMembersInheritedFromClasses_accessor_extends() {
64 // class A { int get g; } 64 // class A { int get g; }
65 // class B extends A {} 65 // class B extends A {}
66 ClassElementImpl classA = ElementFactory.classElement2("A"); 66 ClassElementImpl classA = ElementFactory.classElement2("A");
67 String getterName = "g"; 67 String getterName = "g";
68 PropertyAccessorElement getterG = 68 PropertyAccessorElement getterG =
69 ElementFactory.getterElement(getterName, false, _typeProvider.intType); 69 ElementFactory.getterElement(getterName, false, _typeProvider.intType);
70 classA.accessors = <PropertyAccessorElement>[getterG]; 70 classA.accessors = <PropertyAccessorElement>[getterG];
71 ClassElementImpl classB = ElementFactory.classElement("B", classA.type); 71 ClassElementImpl classB = ElementFactory.classElement("B", classA.type);
72 MemberMap mapB = 72 Map<String, ExecutableElement> mapB =
73 _inheritanceManager.getMapOfMembersInheritedFromClasses(classB); 73 _inheritanceManager.getMembersInheritedFromClasses(classB);
74 MemberMap mapA = 74 Map<String, ExecutableElement> mapA =
75 _inheritanceManager.getMapOfMembersInheritedFromClasses(classA); 75 _inheritanceManager.getMembersInheritedFromClasses(classA);
76 expect(mapA.size, _numOfMembersInObject); 76 expect(mapA.length, _numOfMembersInObject);
77 expect(mapB.size, _numOfMembersInObject + 1); 77 expect(mapB.length, _numOfMembersInObject + 1);
78 expect(mapB.get(getterName), same(getterG)); 78 expect(mapB[getterName], same(getterG));
79 _assertNoErrors(classA); 79 _assertNoErrors(classA);
80 _assertNoErrors(classB); 80 _assertNoErrors(classB);
81 } 81 }
82 82
83 void test_getMapOfMembersInheritedFromClasses_accessor_implements() { 83 void test_getMapOfMembersInheritedFromClasses_accessor_implements() {
84 // class A { int get g; } 84 // class A { int get g; }
85 // class B implements A {} 85 // class B implements A {}
86 ClassElementImpl classA = ElementFactory.classElement2("A"); 86 ClassElementImpl classA = ElementFactory.classElement2("A");
87 String getterName = "g"; 87 String getterName = "g";
88 PropertyAccessorElement getterG = 88 PropertyAccessorElement getterG =
89 ElementFactory.getterElement(getterName, false, _typeProvider.intType); 89 ElementFactory.getterElement(getterName, false, _typeProvider.intType);
90 classA.accessors = <PropertyAccessorElement>[getterG]; 90 classA.accessors = <PropertyAccessorElement>[getterG];
91 ClassElementImpl classB = ElementFactory.classElement2("B"); 91 ClassElementImpl classB = ElementFactory.classElement2("B");
92 classB.interfaces = <InterfaceType>[classA.type]; 92 classB.interfaces = <InterfaceType>[classA.type];
93 MemberMap mapB = 93 Map<String, ExecutableElement> mapB =
94 _inheritanceManager.getMapOfMembersInheritedFromClasses(classB); 94 _inheritanceManager.getMembersInheritedFromClasses(classB);
95 MemberMap mapA = 95 Map<String, ExecutableElement> mapA =
96 _inheritanceManager.getMapOfMembersInheritedFromClasses(classA); 96 _inheritanceManager.getMembersInheritedFromClasses(classA);
97 expect(mapA.size, _numOfMembersInObject); 97 expect(mapA.length, _numOfMembersInObject);
98 expect(mapB.size, _numOfMembersInObject); 98 expect(mapB.length, _numOfMembersInObject);
99 expect(mapB.get(getterName), isNull); 99 expect(mapB[getterName], isNull);
100 _assertNoErrors(classA); 100 _assertNoErrors(classA);
101 _assertNoErrors(classB); 101 _assertNoErrors(classB);
102 } 102 }
103 103
104 void test_getMapOfMembersInheritedFromClasses_accessor_with() { 104 void test_getMapOfMembersInheritedFromClasses_accessor_with() {
105 // class A { int get g; } 105 // class A { int get g; }
106 // class B extends Object with A {} 106 // class B extends Object with A {}
107 ClassElementImpl classA = ElementFactory.classElement2("A"); 107 ClassElementImpl classA = ElementFactory.classElement2("A");
108 String getterName = "g"; 108 String getterName = "g";
109 PropertyAccessorElement getterG = 109 PropertyAccessorElement getterG =
110 ElementFactory.getterElement(getterName, false, _typeProvider.intType); 110 ElementFactory.getterElement(getterName, false, _typeProvider.intType);
111 classA.accessors = <PropertyAccessorElement>[getterG]; 111 classA.accessors = <PropertyAccessorElement>[getterG];
112 ClassElementImpl classB = ElementFactory.classElement2("B"); 112 ClassElementImpl classB = ElementFactory.classElement2("B");
113 classB.mixins = <InterfaceType>[classA.type]; 113 classB.mixins = <InterfaceType>[classA.type];
114 MemberMap mapB = 114 Map<String, ExecutableElement> mapB =
115 _inheritanceManager.getMapOfMembersInheritedFromClasses(classB); 115 _inheritanceManager.getMembersInheritedFromClasses(classB);
116 MemberMap mapA = 116 Map<String, ExecutableElement> mapA =
117 _inheritanceManager.getMapOfMembersInheritedFromClasses(classA); 117 _inheritanceManager.getMembersInheritedFromClasses(classA);
118 expect(mapA.size, _numOfMembersInObject); 118 expect(mapA.length, _numOfMembersInObject);
119 expect(mapB.size, _numOfMembersInObject + 1); 119 expect(mapB.length, _numOfMembersInObject + 1);
120 expect(mapB.get(getterName), same(getterG)); 120 expect(mapB[getterName], same(getterG));
121 _assertNoErrors(classA); 121 _assertNoErrors(classA);
122 _assertNoErrors(classB); 122 _assertNoErrors(classB);
123 } 123 }
124 124
125 void test_getMapOfMembersInheritedFromClasses_implicitExtends() { 125 void test_getMapOfMembersInheritedFromClasses_implicitExtends() {
126 // class A {} 126 // class A {}
127 ClassElementImpl classA = ElementFactory.classElement2("A"); 127 ClassElementImpl classA = ElementFactory.classElement2("A");
128 MemberMap mapA = 128 Map<String, ExecutableElement> mapA =
129 _inheritanceManager.getMapOfMembersInheritedFromClasses(classA); 129 _inheritanceManager.getMembersInheritedFromClasses(classA);
130 expect(mapA.size, _numOfMembersInObject); 130 expect(mapA.length, _numOfMembersInObject);
131 _assertNoErrors(classA); 131 _assertNoErrors(classA);
132 } 132 }
133 133
134 void test_getMapOfMembersInheritedFromClasses_method_extends() { 134 void test_getMapOfMembersInheritedFromClasses_method_extends() {
135 // class A { int g(); } 135 // class A { int g(); }
136 // class B extends A {} 136 // class B extends A {}
137 ClassElementImpl classA = ElementFactory.classElement2("A"); 137 ClassElementImpl classA = ElementFactory.classElement2("A");
138 String methodName = "m"; 138 String methodName = "m";
139 MethodElement methodM = 139 MethodElement methodM =
140 ElementFactory.methodElement(methodName, _typeProvider.intType); 140 ElementFactory.methodElement(methodName, _typeProvider.intType);
141 classA.methods = <MethodElement>[methodM]; 141 classA.methods = <MethodElement>[methodM];
142 ClassElementImpl classB = ElementFactory.classElement2("B"); 142 ClassElementImpl classB = ElementFactory.classElement2("B");
143 classB.supertype = classA.type; 143 classB.supertype = classA.type;
144 MemberMap mapB = 144 Map<String, ExecutableElement> mapB =
145 _inheritanceManager.getMapOfMembersInheritedFromClasses(classB); 145 _inheritanceManager.getMembersInheritedFromClasses(classB);
146 MemberMap mapA = 146 Map<String, ExecutableElement> mapA =
147 _inheritanceManager.getMapOfMembersInheritedFromClasses(classA); 147 _inheritanceManager.getMembersInheritedFromClasses(classA);
148 expect(mapA.size, _numOfMembersInObject); 148 expect(mapA.length, _numOfMembersInObject);
149 expect(mapB.size, _numOfMembersInObject + 1); 149 expect(mapB.length, _numOfMembersInObject + 1);
150 expect(mapB.get(methodName), same(methodM)); 150 expect(mapB[methodName], same(methodM));
151 _assertNoErrors(classA); 151 _assertNoErrors(classA);
152 _assertNoErrors(classB); 152 _assertNoErrors(classB);
153 } 153 }
154 154
155 void test_getMapOfMembersInheritedFromClasses_method_implements() { 155 void test_getMapOfMembersInheritedFromClasses_method_implements() {
156 // class A { int g(); } 156 // class A { int g(); }
157 // class B implements A {} 157 // class B implements A {}
158 ClassElementImpl classA = ElementFactory.classElement2("A"); 158 ClassElementImpl classA = ElementFactory.classElement2("A");
159 String methodName = "m"; 159 String methodName = "m";
160 MethodElement methodM = 160 MethodElement methodM =
161 ElementFactory.methodElement(methodName, _typeProvider.intType); 161 ElementFactory.methodElement(methodName, _typeProvider.intType);
162 classA.methods = <MethodElement>[methodM]; 162 classA.methods = <MethodElement>[methodM];
163 ClassElementImpl classB = ElementFactory.classElement2("B"); 163 ClassElementImpl classB = ElementFactory.classElement2("B");
164 classB.interfaces = <InterfaceType>[classA.type]; 164 classB.interfaces = <InterfaceType>[classA.type];
165 MemberMap mapB = 165 Map<String, ExecutableElement> mapB =
166 _inheritanceManager.getMapOfMembersInheritedFromClasses(classB); 166 _inheritanceManager.getMembersInheritedFromClasses(classB);
167 MemberMap mapA = 167 Map<String, ExecutableElement> mapA =
168 _inheritanceManager.getMapOfMembersInheritedFromClasses(classA); 168 _inheritanceManager.getMembersInheritedFromClasses(classA);
169 expect(mapA.size, _numOfMembersInObject); 169 expect(mapA.length, _numOfMembersInObject);
170 expect(mapB.size, _numOfMembersInObject); 170 expect(mapB.length, _numOfMembersInObject);
171 expect(mapB.get(methodName), isNull); 171 expect(mapB[methodName], isNull);
172 _assertNoErrors(classA); 172 _assertNoErrors(classA);
173 _assertNoErrors(classB); 173 _assertNoErrors(classB);
174 } 174 }
175 175
176 void test_getMapOfMembersInheritedFromClasses_method_with() { 176 void test_getMapOfMembersInheritedFromClasses_method_with() {
177 // class A { int g(); } 177 // class A { int g(); }
178 // class B extends Object with A {} 178 // class B extends Object with A {}
179 ClassElementImpl classA = ElementFactory.classElement2("A"); 179 ClassElementImpl classA = ElementFactory.classElement2("A");
180 String methodName = "m"; 180 String methodName = "m";
181 MethodElement methodM = 181 MethodElement methodM =
182 ElementFactory.methodElement(methodName, _typeProvider.intType); 182 ElementFactory.methodElement(methodName, _typeProvider.intType);
183 classA.methods = <MethodElement>[methodM]; 183 classA.methods = <MethodElement>[methodM];
184 ClassElementImpl classB = ElementFactory.classElement2("B"); 184 ClassElementImpl classB = ElementFactory.classElement2("B");
185 classB.mixins = <InterfaceType>[classA.type]; 185 classB.mixins = <InterfaceType>[classA.type];
186 MemberMap mapB = 186 Map<String, ExecutableElement> mapB =
187 _inheritanceManager.getMapOfMembersInheritedFromClasses(classB); 187 _inheritanceManager.getMembersInheritedFromClasses(classB);
188 MemberMap mapA = 188 Map<String, ExecutableElement> mapA =
189 _inheritanceManager.getMapOfMembersInheritedFromClasses(classA); 189 _inheritanceManager.getMembersInheritedFromClasses(classA);
190 expect(mapA.size, _numOfMembersInObject); 190 expect(mapA.length, _numOfMembersInObject);
191 expect(mapB.size, _numOfMembersInObject + 1); 191 expect(mapB.length, _numOfMembersInObject + 1);
192 expect(mapB.get(methodName), same(methodM)); 192 expect(mapB[methodName], same(methodM));
193 _assertNoErrors(classA); 193 _assertNoErrors(classA);
194 _assertNoErrors(classB); 194 _assertNoErrors(classB);
195 } 195 }
196 196
197 void test_getMapOfMembersInheritedFromClasses_method_with_two_mixins() { 197 void test_getMapOfMembersInheritedFromClasses_method_with_two_mixins() {
198 // class A1 { int m(); } 198 // class A1 { int m(); }
199 // class A2 { int m(); } 199 // class A2 { int m(); }
200 // class B extends Object with A1, A2 {} 200 // class B extends Object with A1, A2 {}
201 ClassElementImpl classA1 = ElementFactory.classElement2("A1"); 201 ClassElementImpl classA1 = ElementFactory.classElement2("A1");
202 String methodName = "m"; 202 String methodName = "m";
203 MethodElement methodA1M = 203 MethodElement methodA1M =
204 ElementFactory.methodElement(methodName, _typeProvider.intType); 204 ElementFactory.methodElement(methodName, _typeProvider.intType);
205 classA1.methods = <MethodElement>[methodA1M]; 205 classA1.methods = <MethodElement>[methodA1M];
206 ClassElementImpl classA2 = ElementFactory.classElement2("A2"); 206 ClassElementImpl classA2 = ElementFactory.classElement2("A2");
207 MethodElement methodA2M = 207 MethodElement methodA2M =
208 ElementFactory.methodElement(methodName, _typeProvider.intType); 208 ElementFactory.methodElement(methodName, _typeProvider.intType);
209 classA2.methods = <MethodElement>[methodA2M]; 209 classA2.methods = <MethodElement>[methodA2M];
210 ClassElementImpl classB = ElementFactory.classElement2("B"); 210 ClassElementImpl classB = ElementFactory.classElement2("B");
211 classB.mixins = <InterfaceType>[classA1.type, classA2.type]; 211 classB.mixins = <InterfaceType>[classA1.type, classA2.type];
212 MemberMap mapB = 212 Map<String, ExecutableElement> mapB =
213 _inheritanceManager.getMapOfMembersInheritedFromClasses(classB); 213 _inheritanceManager.getMembersInheritedFromClasses(classB);
214 expect(mapB.get(methodName), same(methodA2M)); 214 expect(mapB[methodName], same(methodA2M));
215 _assertNoErrors(classA1); 215 _assertNoErrors(classA1);
216 _assertNoErrors(classA2); 216 _assertNoErrors(classA2);
217 _assertNoErrors(classB); 217 _assertNoErrors(classB);
218 } 218 }
219 219
220 void test_getMapOfMembersInheritedFromInterfaces_accessor_extends() { 220 void test_getMapOfMembersInheritedFromInterfaces_accessor_extends() {
221 // class A { int get g; } 221 // class A { int get g; }
222 // class B extends A {} 222 // class B extends A {}
223 ClassElementImpl classA = ElementFactory.classElement2("A"); 223 ClassElementImpl classA = ElementFactory.classElement2("A");
224 String getterName = "g"; 224 String getterName = "g";
225 PropertyAccessorElement getterG = 225 PropertyAccessorElement getterG =
226 ElementFactory.getterElement(getterName, false, _typeProvider.intType); 226 ElementFactory.getterElement(getterName, false, _typeProvider.intType);
227 classA.accessors = <PropertyAccessorElement>[getterG]; 227 classA.accessors = <PropertyAccessorElement>[getterG];
228 ClassElementImpl classB = ElementFactory.classElement("B", classA.type); 228 ClassElementImpl classB = ElementFactory.classElement("B", classA.type);
229 MemberMap mapB = 229 Map<String, ExecutableElement> mapB =
230 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classB); 230 _inheritanceManager.getMembersInheritedFromInterfaces(classB);
231 MemberMap mapA = 231 Map<String, ExecutableElement> mapA =
232 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 232 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
233 expect(mapA.size, _numOfMembersInObject); 233 expect(mapA.length, _numOfMembersInObject);
234 expect(mapB.size, _numOfMembersInObject + 1); 234 expect(mapB.length, _numOfMembersInObject + 1);
235 expect(mapB.get(getterName), same(getterG)); 235 expect(mapB[getterName], same(getterG));
236 _assertNoErrors(classA); 236 _assertNoErrors(classA);
237 _assertNoErrors(classB); 237 _assertNoErrors(classB);
238 } 238 }
239 239
240 void test_getMapOfMembersInheritedFromInterfaces_accessor_implements() { 240 void test_getMapOfMembersInheritedFromInterfaces_accessor_implements() {
241 // class A { int get g; } 241 // class A { int get g; }
242 // class B implements A {} 242 // class B implements A {}
243 ClassElementImpl classA = ElementFactory.classElement2("A"); 243 ClassElementImpl classA = ElementFactory.classElement2("A");
244 String getterName = "g"; 244 String getterName = "g";
245 PropertyAccessorElement getterG = 245 PropertyAccessorElement getterG =
246 ElementFactory.getterElement(getterName, false, _typeProvider.intType); 246 ElementFactory.getterElement(getterName, false, _typeProvider.intType);
247 classA.accessors = <PropertyAccessorElement>[getterG]; 247 classA.accessors = <PropertyAccessorElement>[getterG];
248 ClassElementImpl classB = ElementFactory.classElement2("B"); 248 ClassElementImpl classB = ElementFactory.classElement2("B");
249 classB.interfaces = <InterfaceType>[classA.type]; 249 classB.interfaces = <InterfaceType>[classA.type];
250 MemberMap mapB = 250 Map<String, ExecutableElement> mapB =
251 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classB); 251 _inheritanceManager.getMembersInheritedFromInterfaces(classB);
252 MemberMap mapA = 252 Map<String, ExecutableElement> mapA =
253 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 253 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
254 expect(mapA.size, _numOfMembersInObject); 254 expect(mapA.length, _numOfMembersInObject);
255 expect(mapB.size, _numOfMembersInObject + 1); 255 expect(mapB.length, _numOfMembersInObject + 1);
256 expect(mapB.get(getterName), same(getterG)); 256 expect(mapB[getterName], same(getterG));
257 _assertNoErrors(classA); 257 _assertNoErrors(classA);
258 _assertNoErrors(classB); 258 _assertNoErrors(classB);
259 } 259 }
260 260
261 void test_getMapOfMembersInheritedFromInterfaces_accessor_with() { 261 void test_getMapOfMembersInheritedFromInterfaces_accessor_with() {
262 // class A { int get g; } 262 // class A { int get g; }
263 // class B extends Object with A {} 263 // class B extends Object with A {}
264 ClassElementImpl classA = ElementFactory.classElement2("A"); 264 ClassElementImpl classA = ElementFactory.classElement2("A");
265 String getterName = "g"; 265 String getterName = "g";
266 PropertyAccessorElement getterG = 266 PropertyAccessorElement getterG =
267 ElementFactory.getterElement(getterName, false, _typeProvider.intType); 267 ElementFactory.getterElement(getterName, false, _typeProvider.intType);
268 classA.accessors = <PropertyAccessorElement>[getterG]; 268 classA.accessors = <PropertyAccessorElement>[getterG];
269 ClassElementImpl classB = ElementFactory.classElement2("B"); 269 ClassElementImpl classB = ElementFactory.classElement2("B");
270 classB.mixins = <InterfaceType>[classA.type]; 270 classB.mixins = <InterfaceType>[classA.type];
271 MemberMap mapB = 271 Map<String, ExecutableElement> mapB =
272 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classB); 272 _inheritanceManager.getMembersInheritedFromInterfaces(classB);
273 MemberMap mapA = 273 Map<String, ExecutableElement> mapA =
274 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 274 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
275 expect(mapA.size, _numOfMembersInObject); 275 expect(mapA.length, _numOfMembersInObject);
276 expect(mapB.size, _numOfMembersInObject + 1); 276 expect(mapB.length, _numOfMembersInObject + 1);
277 expect(mapB.get(getterName), same(getterG)); 277 expect(mapB[getterName], same(getterG));
278 _assertNoErrors(classA); 278 _assertNoErrors(classA);
279 _assertNoErrors(classB); 279 _assertNoErrors(classB);
280 } 280 }
281 281
282 void test_getMapOfMembersInheritedFromInterfaces_implicitExtends() { 282 void test_getMapOfMembersInheritedFromInterfaces_implicitExtends() {
283 // class A {} 283 // class A {}
284 ClassElementImpl classA = ElementFactory.classElement2("A"); 284 ClassElementImpl classA = ElementFactory.classElement2("A");
285 MemberMap mapA = 285 Map<String, ExecutableElement> mapA =
286 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 286 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
287 expect(mapA.size, _numOfMembersInObject); 287 expect(mapA.length, _numOfMembersInObject);
288 _assertNoErrors(classA); 288 _assertNoErrors(classA);
289 } 289 }
290 290
291 void 291 void
292 test_getMapOfMembersInheritedFromInterfaces_inconsistentMethodInheritance_ getter_method() { 292 test_getMapOfMembersInheritedFromInterfaces_inconsistentMethodInheritance_ getter_method() {
293 // class I1 { int m(); } 293 // class I1 { int m(); }
294 // class I2 { int get m; } 294 // class I2 { int get m; }
295 // class A implements I2, I1 {} 295 // class A implements I2, I1 {}
296 ClassElementImpl classI1 = ElementFactory.classElement2("I1"); 296 ClassElementImpl classI1 = ElementFactory.classElement2("I1");
297 String methodName = "m"; 297 String methodName = "m";
298 MethodElement methodM = 298 MethodElement methodM =
299 ElementFactory.methodElement(methodName, _typeProvider.intType); 299 ElementFactory.methodElement(methodName, _typeProvider.intType);
300 classI1.methods = <MethodElement>[methodM]; 300 classI1.methods = <MethodElement>[methodM];
301 ClassElementImpl classI2 = ElementFactory.classElement2("I2"); 301 ClassElementImpl classI2 = ElementFactory.classElement2("I2");
302 PropertyAccessorElement getter = 302 PropertyAccessorElement getter =
303 ElementFactory.getterElement(methodName, false, _typeProvider.intType); 303 ElementFactory.getterElement(methodName, false, _typeProvider.intType);
304 classI2.accessors = <PropertyAccessorElement>[getter]; 304 classI2.accessors = <PropertyAccessorElement>[getter];
305 ClassElementImpl classA = ElementFactory.classElement2("A"); 305 ClassElementImpl classA = ElementFactory.classElement2("A");
306 classA.interfaces = <InterfaceType>[classI2.type, classI1.type]; 306 classA.interfaces = <InterfaceType>[classI2.type, classI1.type];
307 MemberMap mapA = 307 Map<String, ExecutableElement> mapA =
308 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 308 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
309 expect(mapA.size, _numOfMembersInObject); 309 expect(mapA.length, _numOfMembersInObject);
310 expect(mapA.get(methodName), isNull); 310 expect(mapA[methodName], isNull);
311 _assertErrors(classA, 311 _assertErrors(classA,
312 [StaticWarningCode.INCONSISTENT_METHOD_INHERITANCE_GETTER_AND_METHOD]); 312 [StaticWarningCode.INCONSISTENT_METHOD_INHERITANCE_GETTER_AND_METHOD]);
313 } 313 }
314 314
315 void 315 void
316 test_getMapOfMembersInheritedFromInterfaces_inconsistentMethodInheritance_ int_str() { 316 test_getMapOfMembersInheritedFromInterfaces_inconsistentMethodInheritance_ int_str() {
317 // class I1 { int m(); } 317 // class I1 { int m(); }
318 // class I2 { String m(); } 318 // class I2 { String m(); }
319 // class A implements I1, I2 {} 319 // class A implements I1, I2 {}
320 ClassElementImpl classI1 = ElementFactory.classElement2("I1"); 320 ClassElementImpl classI1 = ElementFactory.classElement2("I1");
321 String methodName = "m"; 321 String methodName = "m";
322 MethodElement methodM1 = 322 MethodElement methodM1 =
323 ElementFactory.methodElement(methodName, null, [_typeProvider.intType]); 323 ElementFactory.methodElement(methodName, null, [_typeProvider.intType]);
324 classI1.methods = <MethodElement>[methodM1]; 324 classI1.methods = <MethodElement>[methodM1];
325 ClassElementImpl classI2 = ElementFactory.classElement2("I2"); 325 ClassElementImpl classI2 = ElementFactory.classElement2("I2");
326 MethodElement methodM2 = ElementFactory 326 MethodElement methodM2 = ElementFactory
327 .methodElement(methodName, null, [_typeProvider.stringType]); 327 .methodElement(methodName, null, [_typeProvider.stringType]);
328 classI2.methods = <MethodElement>[methodM2]; 328 classI2.methods = <MethodElement>[methodM2];
329 ClassElementImpl classA = ElementFactory.classElement2("A"); 329 ClassElementImpl classA = ElementFactory.classElement2("A");
330 classA.interfaces = <InterfaceType>[classI1.type, classI2.type]; 330 classA.interfaces = <InterfaceType>[classI1.type, classI2.type];
331 MemberMap mapA = 331 Map<String, ExecutableElement> mapA =
332 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 332 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
333 expect(mapA.size, _numOfMembersInObject); 333 expect(mapA.length, _numOfMembersInObject);
334 expect(mapA.get(methodName), isNull); 334 expect(mapA[methodName], isNull);
335 _assertErrors( 335 _assertErrors(
336 classA, [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]); 336 classA, [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]);
337 } 337 }
338 338
339 void 339 void
340 test_getMapOfMembersInheritedFromInterfaces_inconsistentMethodInheritance_ method_getter() { 340 test_getMapOfMembersInheritedFromInterfaces_inconsistentMethodInheritance_ method_getter() {
341 // class I1 { int m(); } 341 // class I1 { int m(); }
342 // class I2 { int get m; } 342 // class I2 { int get m; }
343 // class A implements I1, I2 {} 343 // class A implements I1, I2 {}
344 ClassElementImpl classI1 = ElementFactory.classElement2("I1"); 344 ClassElementImpl classI1 = ElementFactory.classElement2("I1");
345 String methodName = "m"; 345 String methodName = "m";
346 MethodElement methodM = 346 MethodElement methodM =
347 ElementFactory.methodElement(methodName, _typeProvider.intType); 347 ElementFactory.methodElement(methodName, _typeProvider.intType);
348 classI1.methods = <MethodElement>[methodM]; 348 classI1.methods = <MethodElement>[methodM];
349 ClassElementImpl classI2 = ElementFactory.classElement2("I2"); 349 ClassElementImpl classI2 = ElementFactory.classElement2("I2");
350 PropertyAccessorElement getter = 350 PropertyAccessorElement getter =
351 ElementFactory.getterElement(methodName, false, _typeProvider.intType); 351 ElementFactory.getterElement(methodName, false, _typeProvider.intType);
352 classI2.accessors = <PropertyAccessorElement>[getter]; 352 classI2.accessors = <PropertyAccessorElement>[getter];
353 ClassElementImpl classA = ElementFactory.classElement2("A"); 353 ClassElementImpl classA = ElementFactory.classElement2("A");
354 classA.interfaces = <InterfaceType>[classI1.type, classI2.type]; 354 classA.interfaces = <InterfaceType>[classI1.type, classI2.type];
355 MemberMap mapA = 355 Map<String, ExecutableElement> mapA =
356 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 356 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
357 expect(mapA.size, _numOfMembersInObject); 357 expect(mapA.length, _numOfMembersInObject);
358 expect(mapA.get(methodName), isNull); 358 expect(mapA[methodName], isNull);
359 _assertErrors(classA, 359 _assertErrors(classA,
360 [StaticWarningCode.INCONSISTENT_METHOD_INHERITANCE_GETTER_AND_METHOD]); 360 [StaticWarningCode.INCONSISTENT_METHOD_INHERITANCE_GETTER_AND_METHOD]);
361 } 361 }
362 362
363 void 363 void
364 test_getMapOfMembersInheritedFromInterfaces_inconsistentMethodInheritance_ numOfRequiredParams() { 364 test_getMapOfMembersInheritedFromInterfaces_inconsistentMethodInheritance_ numOfRequiredParams() {
365 // class I1 { dynamic m(int, [int]); } 365 // class I1 { dynamic m(int, [int]); }
366 // class I2 { dynamic m(int, int, int); } 366 // class I2 { dynamic m(int, int, int); }
367 // class A implements I1, I2 {} 367 // class A implements I1, I2 {}
368 ClassElementImpl classI1 = ElementFactory.classElement2("I1"); 368 ClassElementImpl classI1 = ElementFactory.classElement2("I1");
(...skipping 26 matching lines...) Expand all
395 parameter5.type = _typeProvider.intType; 395 parameter5.type = _typeProvider.intType;
396 parameter5.parameterKind = ParameterKind.REQUIRED; 396 parameter5.parameterKind = ParameterKind.REQUIRED;
397 methodM2.parameters = <ParameterElement>[ 397 methodM2.parameters = <ParameterElement>[
398 parameter3, 398 parameter3,
399 parameter4, 399 parameter4,
400 parameter5 400 parameter5
401 ]; 401 ];
402 classI2.methods = <MethodElement>[methodM2]; 402 classI2.methods = <MethodElement>[methodM2];
403 ClassElementImpl classA = ElementFactory.classElement2("A"); 403 ClassElementImpl classA = ElementFactory.classElement2("A");
404 classA.interfaces = <InterfaceType>[classI1.type, classI2.type]; 404 classA.interfaces = <InterfaceType>[classI1.type, classI2.type];
405 MemberMap mapA = 405 Map<String, ExecutableElement> mapA =
406 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 406 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
407 expect(mapA.size, _numOfMembersInObject); 407 expect(mapA.length, _numOfMembersInObject);
408 expect(mapA.get(methodName), isNull); 408 expect(mapA[methodName], isNull);
409 _assertErrors( 409 _assertErrors(
410 classA, [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]); 410 classA, [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]);
411 } 411 }
412 412
413 void 413 void
414 test_getMapOfMembersInheritedFromInterfaces_inconsistentMethodInheritance_ str_int() { 414 test_getMapOfMembersInheritedFromInterfaces_inconsistentMethodInheritance_ str_int() {
415 // class I1 { int m(); } 415 // class I1 { int m(); }
416 // class I2 { String m(); } 416 // class I2 { String m(); }
417 // class A implements I2, I1 {} 417 // class A implements I2, I1 {}
418 ClassElementImpl classI1 = ElementFactory.classElement2("I1"); 418 ClassElementImpl classI1 = ElementFactory.classElement2("I1");
419 String methodName = "m"; 419 String methodName = "m";
420 MethodElement methodM1 = ElementFactory 420 MethodElement methodM1 = ElementFactory
421 .methodElement(methodName, null, [_typeProvider.stringType]); 421 .methodElement(methodName, null, [_typeProvider.stringType]);
422 classI1.methods = <MethodElement>[methodM1]; 422 classI1.methods = <MethodElement>[methodM1];
423 ClassElementImpl classI2 = ElementFactory.classElement2("I2"); 423 ClassElementImpl classI2 = ElementFactory.classElement2("I2");
424 MethodElement methodM2 = 424 MethodElement methodM2 =
425 ElementFactory.methodElement(methodName, null, [_typeProvider.intType]); 425 ElementFactory.methodElement(methodName, null, [_typeProvider.intType]);
426 classI2.methods = <MethodElement>[methodM2]; 426 classI2.methods = <MethodElement>[methodM2];
427 ClassElementImpl classA = ElementFactory.classElement2("A"); 427 ClassElementImpl classA = ElementFactory.classElement2("A");
428 classA.interfaces = <InterfaceType>[classI2.type, classI1.type]; 428 classA.interfaces = <InterfaceType>[classI2.type, classI1.type];
429 MemberMap mapA = 429 Map<String, ExecutableElement> mapA =
430 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 430 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
431 expect(mapA.size, _numOfMembersInObject); 431 expect(mapA.length, _numOfMembersInObject);
432 expect(mapA.get(methodName), isNull); 432 expect(mapA[methodName], isNull);
433 _assertErrors( 433 _assertErrors(
434 classA, [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]); 434 classA, [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]);
435 } 435 }
436 436
437 void test_getMapOfMembersInheritedFromInterfaces_method_extends() { 437 void test_getMapOfMembersInheritedFromInterfaces_method_extends() {
438 // class A { int g(); } 438 // class A { int g(); }
439 // class B extends A {} 439 // class B extends A {}
440 ClassElementImpl classA = ElementFactory.classElement2("A"); 440 ClassElementImpl classA = ElementFactory.classElement2("A");
441 String methodName = "m"; 441 String methodName = "m";
442 MethodElement methodM = 442 MethodElement methodM =
443 ElementFactory.methodElement(methodName, _typeProvider.intType); 443 ElementFactory.methodElement(methodName, _typeProvider.intType);
444 classA.methods = <MethodElement>[methodM]; 444 classA.methods = <MethodElement>[methodM];
445 ClassElementImpl classB = ElementFactory.classElement("B", classA.type); 445 ClassElementImpl classB = ElementFactory.classElement("B", classA.type);
446 MemberMap mapB = 446 Map<String, ExecutableElement> mapB =
447 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classB); 447 _inheritanceManager.getMembersInheritedFromInterfaces(classB);
448 MemberMap mapA = 448 Map<String, ExecutableElement> mapA =
449 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 449 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
450 expect(mapA.size, _numOfMembersInObject); 450 expect(mapA.length, _numOfMembersInObject);
451 expect(mapB.size, _numOfMembersInObject + 1); 451 expect(mapB.length, _numOfMembersInObject + 1);
452 expect(mapB.get(methodName), same(methodM)); 452 expect(mapB[methodName], same(methodM));
453 _assertNoErrors(classA); 453 _assertNoErrors(classA);
454 _assertNoErrors(classB); 454 _assertNoErrors(classB);
455 } 455 }
456 456
457 void test_getMapOfMembersInheritedFromInterfaces_method_implements() { 457 void test_getMapOfMembersInheritedFromInterfaces_method_implements() {
458 // class A { int g(); } 458 // class A { int g(); }
459 // class B implements A {} 459 // class B implements A {}
460 ClassElementImpl classA = ElementFactory.classElement2("A"); 460 ClassElementImpl classA = ElementFactory.classElement2("A");
461 String methodName = "m"; 461 String methodName = "m";
462 MethodElement methodM = 462 MethodElement methodM =
463 ElementFactory.methodElement(methodName, _typeProvider.intType); 463 ElementFactory.methodElement(methodName, _typeProvider.intType);
464 classA.methods = <MethodElement>[methodM]; 464 classA.methods = <MethodElement>[methodM];
465 ClassElementImpl classB = ElementFactory.classElement2("B"); 465 ClassElementImpl classB = ElementFactory.classElement2("B");
466 classB.interfaces = <InterfaceType>[classA.type]; 466 classB.interfaces = <InterfaceType>[classA.type];
467 MemberMap mapB = 467 Map<String, ExecutableElement> mapB =
468 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classB); 468 _inheritanceManager.getMembersInheritedFromInterfaces(classB);
469 MemberMap mapA = 469 Map<String, ExecutableElement> mapA =
470 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 470 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
471 expect(mapA.size, _numOfMembersInObject); 471 expect(mapA.length, _numOfMembersInObject);
472 expect(mapB.size, _numOfMembersInObject + 1); 472 expect(mapB.length, _numOfMembersInObject + 1);
473 expect(mapB.get(methodName), same(methodM)); 473 expect(mapB[methodName], same(methodM));
474 _assertNoErrors(classA); 474 _assertNoErrors(classA);
475 _assertNoErrors(classB); 475 _assertNoErrors(classB);
476 } 476 }
477 477
478 void test_getMapOfMembersInheritedFromInterfaces_method_with() { 478 void test_getMapOfMembersInheritedFromInterfaces_method_with() {
479 // class A { int g(); } 479 // class A { int g(); }
480 // class B extends Object with A {} 480 // class B extends Object with A {}
481 ClassElementImpl classA = ElementFactory.classElement2("A"); 481 ClassElementImpl classA = ElementFactory.classElement2("A");
482 String methodName = "m"; 482 String methodName = "m";
483 MethodElement methodM = 483 MethodElement methodM =
484 ElementFactory.methodElement(methodName, _typeProvider.intType); 484 ElementFactory.methodElement(methodName, _typeProvider.intType);
485 classA.methods = <MethodElement>[methodM]; 485 classA.methods = <MethodElement>[methodM];
486 ClassElementImpl classB = ElementFactory.classElement2("B"); 486 ClassElementImpl classB = ElementFactory.classElement2("B");
487 classB.mixins = <InterfaceType>[classA.type]; 487 classB.mixins = <InterfaceType>[classA.type];
488 MemberMap mapB = 488 Map<String, ExecutableElement> mapB =
489 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classB); 489 _inheritanceManager.getMembersInheritedFromInterfaces(classB);
490 MemberMap mapA = 490 Map<String, ExecutableElement> mapA =
491 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 491 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
492 expect(mapA.size, _numOfMembersInObject); 492 expect(mapA.length, _numOfMembersInObject);
493 expect(mapB.size, _numOfMembersInObject + 1); 493 expect(mapB.length, _numOfMembersInObject + 1);
494 expect(mapB.get(methodName), same(methodM)); 494 expect(mapB[methodName], same(methodM));
495 _assertNoErrors(classA); 495 _assertNoErrors(classA);
496 _assertNoErrors(classB); 496 _assertNoErrors(classB);
497 } 497 }
498 498
499 void test_getMapOfMembersInheritedFromInterfaces_union_differentNames() { 499 void test_getMapOfMembersInheritedFromInterfaces_union_differentNames() {
500 // class I1 { int m1(); } 500 // class I1 { int m1(); }
501 // class I2 { int m2(); } 501 // class I2 { int m2(); }
502 // class A implements I1, I2 {} 502 // class A implements I1, I2 {}
503 ClassElementImpl classI1 = ElementFactory.classElement2("I1"); 503 ClassElementImpl classI1 = ElementFactory.classElement2("I1");
504 String methodName1 = "m1"; 504 String methodName1 = "m1";
505 MethodElement methodM1 = 505 MethodElement methodM1 =
506 ElementFactory.methodElement(methodName1, _typeProvider.intType); 506 ElementFactory.methodElement(methodName1, _typeProvider.intType);
507 classI1.methods = <MethodElement>[methodM1]; 507 classI1.methods = <MethodElement>[methodM1];
508 ClassElementImpl classI2 = ElementFactory.classElement2("I2"); 508 ClassElementImpl classI2 = ElementFactory.classElement2("I2");
509 String methodName2 = "m2"; 509 String methodName2 = "m2";
510 MethodElement methodM2 = 510 MethodElement methodM2 =
511 ElementFactory.methodElement(methodName2, _typeProvider.intType); 511 ElementFactory.methodElement(methodName2, _typeProvider.intType);
512 classI2.methods = <MethodElement>[methodM2]; 512 classI2.methods = <MethodElement>[methodM2];
513 ClassElementImpl classA = ElementFactory.classElement2("A"); 513 ClassElementImpl classA = ElementFactory.classElement2("A");
514 classA.interfaces = <InterfaceType>[classI1.type, classI2.type]; 514 classA.interfaces = <InterfaceType>[classI1.type, classI2.type];
515 MemberMap mapA = 515 Map<String, ExecutableElement> mapA =
516 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 516 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
517 expect(mapA.size, _numOfMembersInObject + 2); 517 expect(mapA.length, _numOfMembersInObject + 2);
518 expect(mapA.get(methodName1), same(methodM1)); 518 expect(mapA[methodName1], same(methodM1));
519 expect(mapA.get(methodName2), same(methodM2)); 519 expect(mapA[methodName2], same(methodM2));
520 _assertNoErrors(classA); 520 _assertNoErrors(classA);
521 } 521 }
522 522
523 void 523 void
524 test_getMapOfMembersInheritedFromInterfaces_union_multipleSubtypes_2_gette rs() { 524 test_getMapOfMembersInheritedFromInterfaces_union_multipleSubtypes_2_gette rs() {
525 // class I1 { int get g; } 525 // class I1 { int get g; }
526 // class I2 { num get g; } 526 // class I2 { num get g; }
527 // class A implements I1, I2 {} 527 // class A implements I1, I2 {}
528 ClassElementImpl classI1 = ElementFactory.classElement2("I1"); 528 ClassElementImpl classI1 = ElementFactory.classElement2("I1");
529 String accessorName = "g"; 529 String accessorName = "g";
530 PropertyAccessorElement getter1 = ElementFactory.getterElement( 530 PropertyAccessorElement getter1 = ElementFactory.getterElement(
531 accessorName, false, _typeProvider.intType); 531 accessorName, false, _typeProvider.intType);
532 classI1.accessors = <PropertyAccessorElement>[getter1]; 532 classI1.accessors = <PropertyAccessorElement>[getter1];
533 ClassElementImpl classI2 = ElementFactory.classElement2("I2"); 533 ClassElementImpl classI2 = ElementFactory.classElement2("I2");
534 PropertyAccessorElement getter2 = ElementFactory.getterElement( 534 PropertyAccessorElement getter2 = ElementFactory.getterElement(
535 accessorName, false, _typeProvider.numType); 535 accessorName, false, _typeProvider.numType);
536 classI2.accessors = <PropertyAccessorElement>[getter2]; 536 classI2.accessors = <PropertyAccessorElement>[getter2];
537 ClassElementImpl classA = ElementFactory.classElement2("A"); 537 ClassElementImpl classA = ElementFactory.classElement2("A");
538 classA.interfaces = <InterfaceType>[classI1.type, classI2.type]; 538 classA.interfaces = <InterfaceType>[classI1.type, classI2.type];
539 MemberMap mapA = 539 Map<String, ExecutableElement> mapA =
540 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 540 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
541 expect(mapA.size, _numOfMembersInObject + 1); 541 expect(mapA.length, _numOfMembersInObject + 1);
542 PropertyAccessorElement syntheticAccessor = ElementFactory.getterElement( 542 PropertyAccessorElement syntheticAccessor = ElementFactory.getterElement(
543 accessorName, false, _typeProvider.dynamicType); 543 accessorName, false, _typeProvider.dynamicType);
544 expect(mapA.get(accessorName).type, syntheticAccessor.type); 544 expect(mapA[accessorName].type, syntheticAccessor.type);
545 _assertNoErrors(classA); 545 _assertNoErrors(classA);
546 } 546 }
547 547
548 void 548 void
549 test_getMapOfMembersInheritedFromInterfaces_union_multipleSubtypes_2_metho ds() { 549 test_getMapOfMembersInheritedFromInterfaces_union_multipleSubtypes_2_metho ds() {
550 // class I1 { dynamic m(int); } 550 // class I1 { dynamic m(int); }
551 // class I2 { dynamic m(num); } 551 // class I2 { dynamic m(num); }
552 // class A implements I1, I2 {} 552 // class A implements I1, I2 {}
553 ClassElementImpl classI1 = ElementFactory.classElement2("I1"); 553 ClassElementImpl classI1 = ElementFactory.classElement2("I1");
554 String methodName = "m"; 554 String methodName = "m";
555 MethodElementImpl methodM1 = 555 MethodElementImpl methodM1 =
556 ElementFactory.methodElement(methodName, _typeProvider.dynamicType); 556 ElementFactory.methodElement(methodName, _typeProvider.dynamicType);
557 ParameterElementImpl parameter1 = 557 ParameterElementImpl parameter1 =
558 new ParameterElementImpl.forNode(AstFactory.identifier3("a0")); 558 new ParameterElementImpl.forNode(AstFactory.identifier3("a0"));
559 parameter1.type = _typeProvider.intType; 559 parameter1.type = _typeProvider.intType;
560 parameter1.parameterKind = ParameterKind.REQUIRED; 560 parameter1.parameterKind = ParameterKind.REQUIRED;
561 methodM1.parameters = <ParameterElement>[parameter1]; 561 methodM1.parameters = <ParameterElement>[parameter1];
562 classI1.methods = <MethodElement>[methodM1]; 562 classI1.methods = <MethodElement>[methodM1];
563 ClassElementImpl classI2 = ElementFactory.classElement2("I2"); 563 ClassElementImpl classI2 = ElementFactory.classElement2("I2");
564 MethodElementImpl methodM2 = 564 MethodElementImpl methodM2 =
565 ElementFactory.methodElement(methodName, _typeProvider.dynamicType); 565 ElementFactory.methodElement(methodName, _typeProvider.dynamicType);
566 ParameterElementImpl parameter2 = 566 ParameterElementImpl parameter2 =
567 new ParameterElementImpl.forNode(AstFactory.identifier3("a0")); 567 new ParameterElementImpl.forNode(AstFactory.identifier3("a0"));
568 parameter2.type = _typeProvider.numType; 568 parameter2.type = _typeProvider.numType;
569 parameter2.parameterKind = ParameterKind.REQUIRED; 569 parameter2.parameterKind = ParameterKind.REQUIRED;
570 methodM2.parameters = <ParameterElement>[parameter2]; 570 methodM2.parameters = <ParameterElement>[parameter2];
571 classI2.methods = <MethodElement>[methodM2]; 571 classI2.methods = <MethodElement>[methodM2];
572 ClassElementImpl classA = ElementFactory.classElement2("A"); 572 ClassElementImpl classA = ElementFactory.classElement2("A");
573 classA.interfaces = <InterfaceType>[classI1.type, classI2.type]; 573 classA.interfaces = <InterfaceType>[classI1.type, classI2.type];
574 MemberMap mapA = 574 Map<String, ExecutableElement> mapA =
575 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 575 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
576 expect(mapA.size, _numOfMembersInObject + 1); 576 expect(mapA.length, _numOfMembersInObject + 1);
577 MethodElement syntheticMethod = ElementFactory.methodElement( 577 MethodElement syntheticMethod = ElementFactory.methodElement(
578 methodName, _typeProvider.dynamicType, [_typeProvider.dynamicType]); 578 methodName, _typeProvider.dynamicType, [_typeProvider.dynamicType]);
579 expect(mapA.get(methodName).type, syntheticMethod.type); 579 expect(mapA[methodName].type, syntheticMethod.type);
580 _assertNoErrors(classA); 580 _assertNoErrors(classA);
581 } 581 }
582 582
583 void 583 void
584 test_getMapOfMembersInheritedFromInterfaces_union_multipleSubtypes_2_sette rs() { 584 test_getMapOfMembersInheritedFromInterfaces_union_multipleSubtypes_2_sette rs() {
585 // class I1 { set s(int); } 585 // class I1 { set s(int); }
586 // class I2 { set s(num); } 586 // class I2 { set s(num); }
587 // class A implements I1, I2 {} 587 // class A implements I1, I2 {}
588 ClassElementImpl classI1 = ElementFactory.classElement2("I1"); 588 ClassElementImpl classI1 = ElementFactory.classElement2("I1");
589 String accessorName = "s"; 589 String accessorName = "s";
590 PropertyAccessorElement setter1 = ElementFactory.setterElement( 590 PropertyAccessorElement setter1 = ElementFactory.setterElement(
591 accessorName, false, _typeProvider.intType); 591 accessorName, false, _typeProvider.intType);
592 classI1.accessors = <PropertyAccessorElement>[setter1]; 592 classI1.accessors = <PropertyAccessorElement>[setter1];
593 ClassElementImpl classI2 = ElementFactory.classElement2("I2"); 593 ClassElementImpl classI2 = ElementFactory.classElement2("I2");
594 PropertyAccessorElement setter2 = ElementFactory.setterElement( 594 PropertyAccessorElement setter2 = ElementFactory.setterElement(
595 accessorName, false, _typeProvider.numType); 595 accessorName, false, _typeProvider.numType);
596 classI2.accessors = <PropertyAccessorElement>[setter2]; 596 classI2.accessors = <PropertyAccessorElement>[setter2];
597 ClassElementImpl classA = ElementFactory.classElement2("A"); 597 ClassElementImpl classA = ElementFactory.classElement2("A");
598 classA.interfaces = <InterfaceType>[classI1.type, classI2.type]; 598 classA.interfaces = <InterfaceType>[classI1.type, classI2.type];
599 MemberMap mapA = 599 Map<String, ExecutableElement> mapA =
600 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 600 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
601 expect(mapA.size, _numOfMembersInObject + 1); 601 expect(mapA.length, _numOfMembersInObject + 1);
602 PropertyAccessorElementImpl syntheticAccessor = ElementFactory 602 PropertyAccessorElementImpl syntheticAccessor = ElementFactory
603 .setterElement(accessorName, false, _typeProvider.dynamicType); 603 .setterElement(accessorName, false, _typeProvider.dynamicType);
604 syntheticAccessor.returnType = _typeProvider.dynamicType; 604 syntheticAccessor.returnType = _typeProvider.dynamicType;
605 expect(mapA.get("$accessorName=").type, syntheticAccessor.type); 605 expect(mapA["$accessorName="].type, syntheticAccessor.type);
606 _assertNoErrors(classA); 606 _assertNoErrors(classA);
607 } 607 }
608 608
609 void 609 void
610 test_getMapOfMembersInheritedFromInterfaces_union_multipleSubtypes_3_gette rs() { 610 test_getMapOfMembersInheritedFromInterfaces_union_multipleSubtypes_3_gette rs() {
611 // class A {} 611 // class A {}
612 // class B extends A {} 612 // class B extends A {}
613 // class C extends B {} 613 // class C extends B {}
614 // class I1 { A get g; } 614 // class I1 { A get g; }
615 // class I2 { B get g; } 615 // class I2 { B get g; }
(...skipping 14 matching lines...) Expand all
630 ClassElementImpl classI3 = ElementFactory.classElement2("I3"); 630 ClassElementImpl classI3 = ElementFactory.classElement2("I3");
631 PropertyAccessorElement getter3 = 631 PropertyAccessorElement getter3 =
632 ElementFactory.getterElement(accessorName, false, classC.type); 632 ElementFactory.getterElement(accessorName, false, classC.type);
633 classI3.accessors = <PropertyAccessorElement>[getter3]; 633 classI3.accessors = <PropertyAccessorElement>[getter3];
634 ClassElementImpl classD = ElementFactory.classElement2("D"); 634 ClassElementImpl classD = ElementFactory.classElement2("D");
635 classD.interfaces = <InterfaceType>[ 635 classD.interfaces = <InterfaceType>[
636 classI1.type, 636 classI1.type,
637 classI2.type, 637 classI2.type,
638 classI3.type 638 classI3.type
639 ]; 639 ];
640 MemberMap mapD = 640 Map<String, ExecutableElement> mapD =
641 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classD); 641 _inheritanceManager.getMembersInheritedFromInterfaces(classD);
642 expect(mapD.size, _numOfMembersInObject + 1); 642 expect(mapD.length, _numOfMembersInObject + 1);
643 PropertyAccessorElement syntheticAccessor = ElementFactory.getterElement( 643 PropertyAccessorElement syntheticAccessor = ElementFactory.getterElement(
644 accessorName, false, _typeProvider.dynamicType); 644 accessorName, false, _typeProvider.dynamicType);
645 expect(mapD.get(accessorName).type, syntheticAccessor.type); 645 expect(mapD[accessorName].type, syntheticAccessor.type);
646 _assertNoErrors(classD); 646 _assertNoErrors(classD);
647 } 647 }
648 648
649 void 649 void
650 test_getMapOfMembersInheritedFromInterfaces_union_multipleSubtypes_3_metho ds() { 650 test_getMapOfMembersInheritedFromInterfaces_union_multipleSubtypes_3_metho ds() {
651 // class A {} 651 // class A {}
652 // class B extends A {} 652 // class B extends A {}
653 // class C extends B {} 653 // class C extends B {}
654 // class I1 { dynamic m(A a); } 654 // class I1 { dynamic m(A a); }
655 // class I2 { dynamic m(B b); } 655 // class I2 { dynamic m(B b); }
(...skipping 29 matching lines...) Expand all
685 parameter3.type = classC.type; 685 parameter3.type = classC.type;
686 parameter3.parameterKind = ParameterKind.REQUIRED; 686 parameter3.parameterKind = ParameterKind.REQUIRED;
687 methodM3.parameters = <ParameterElement>[parameter3]; 687 methodM3.parameters = <ParameterElement>[parameter3];
688 classI3.methods = <MethodElement>[methodM3]; 688 classI3.methods = <MethodElement>[methodM3];
689 ClassElementImpl classD = ElementFactory.classElement2("D"); 689 ClassElementImpl classD = ElementFactory.classElement2("D");
690 classD.interfaces = <InterfaceType>[ 690 classD.interfaces = <InterfaceType>[
691 classI1.type, 691 classI1.type,
692 classI2.type, 692 classI2.type,
693 classI3.type 693 classI3.type
694 ]; 694 ];
695 MemberMap mapD = 695 Map<String, ExecutableElement> mapD =
696 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classD); 696 _inheritanceManager.getMembersInheritedFromInterfaces(classD);
697 expect(mapD.size, _numOfMembersInObject + 1); 697 expect(mapD.length, _numOfMembersInObject + 1);
698 MethodElement syntheticMethod = ElementFactory.methodElement( 698 MethodElement syntheticMethod = ElementFactory.methodElement(
699 methodName, _typeProvider.dynamicType, [_typeProvider.dynamicType]); 699 methodName, _typeProvider.dynamicType, [_typeProvider.dynamicType]);
700 expect(mapD.get(methodName).type, syntheticMethod.type); 700 expect(mapD[methodName].type, syntheticMethod.type);
701 _assertNoErrors(classD); 701 _assertNoErrors(classD);
702 } 702 }
703 703
704 void 704 void
705 test_getMapOfMembersInheritedFromInterfaces_union_multipleSubtypes_3_sette rs() { 705 test_getMapOfMembersInheritedFromInterfaces_union_multipleSubtypes_3_sette rs() {
706 // class A {} 706 // class A {}
707 // class B extends A {} 707 // class B extends A {}
708 // class C extends B {} 708 // class C extends B {}
709 // class I1 { set s(A); } 709 // class I1 { set s(A); }
710 // class I2 { set s(B); } 710 // class I2 { set s(B); }
(...skipping 14 matching lines...) Expand all
725 ClassElementImpl classI3 = ElementFactory.classElement2("I3"); 725 ClassElementImpl classI3 = ElementFactory.classElement2("I3");
726 PropertyAccessorElement setter3 = 726 PropertyAccessorElement setter3 =
727 ElementFactory.setterElement(accessorName, false, classC.type); 727 ElementFactory.setterElement(accessorName, false, classC.type);
728 classI3.accessors = <PropertyAccessorElement>[setter3]; 728 classI3.accessors = <PropertyAccessorElement>[setter3];
729 ClassElementImpl classD = ElementFactory.classElement2("D"); 729 ClassElementImpl classD = ElementFactory.classElement2("D");
730 classD.interfaces = <InterfaceType>[ 730 classD.interfaces = <InterfaceType>[
731 classI1.type, 731 classI1.type,
732 classI2.type, 732 classI2.type,
733 classI3.type 733 classI3.type
734 ]; 734 ];
735 MemberMap mapD = 735 Map<String, ExecutableElement> mapD =
736 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classD); 736 _inheritanceManager.getMembersInheritedFromInterfaces(classD);
737 expect(mapD.size, _numOfMembersInObject + 1); 737 expect(mapD.length, _numOfMembersInObject + 1);
738 PropertyAccessorElementImpl syntheticAccessor = ElementFactory 738 PropertyAccessorElementImpl syntheticAccessor = ElementFactory
739 .setterElement(accessorName, false, _typeProvider.dynamicType); 739 .setterElement(accessorName, false, _typeProvider.dynamicType);
740 syntheticAccessor.returnType = _typeProvider.dynamicType; 740 syntheticAccessor.returnType = _typeProvider.dynamicType;
741 expect(mapD.get("$accessorName=").type, syntheticAccessor.type); 741 expect(mapD["$accessorName="].type, syntheticAccessor.type);
742 _assertNoErrors(classD); 742 _assertNoErrors(classD);
743 } 743 }
744 744
745 void 745 void
746 test_getMapOfMembersInheritedFromInterfaces_union_oneSubtype_2_methods() { 746 test_getMapOfMembersInheritedFromInterfaces_union_oneSubtype_2_methods() {
747 // class I1 { int m(); } 747 // class I1 { int m(); }
748 // class I2 { int m([int]); } 748 // class I2 { int m([int]); }
749 // class A implements I1, I2 {} 749 // class A implements I1, I2 {}
750 ClassElementImpl classI1 = ElementFactory.classElement2("I1"); 750 ClassElementImpl classI1 = ElementFactory.classElement2("I1");
751 String methodName = "m"; 751 String methodName = "m";
752 MethodElement methodM1 = 752 MethodElement methodM1 =
753 ElementFactory.methodElement(methodName, _typeProvider.intType); 753 ElementFactory.methodElement(methodName, _typeProvider.intType);
754 classI1.methods = <MethodElement>[methodM1]; 754 classI1.methods = <MethodElement>[methodM1];
755 ClassElementImpl classI2 = ElementFactory.classElement2("I2"); 755 ClassElementImpl classI2 = ElementFactory.classElement2("I2");
756 MethodElementImpl methodM2 = 756 MethodElementImpl methodM2 =
757 ElementFactory.methodElement(methodName, _typeProvider.intType); 757 ElementFactory.methodElement(methodName, _typeProvider.intType);
758 ParameterElementImpl parameter1 = 758 ParameterElementImpl parameter1 =
759 new ParameterElementImpl.forNode(AstFactory.identifier3("a1")); 759 new ParameterElementImpl.forNode(AstFactory.identifier3("a1"));
760 parameter1.type = _typeProvider.intType; 760 parameter1.type = _typeProvider.intType;
761 parameter1.parameterKind = ParameterKind.POSITIONAL; 761 parameter1.parameterKind = ParameterKind.POSITIONAL;
762 methodM2.parameters = <ParameterElement>[parameter1]; 762 methodM2.parameters = <ParameterElement>[parameter1];
763 classI2.methods = <MethodElement>[methodM2]; 763 classI2.methods = <MethodElement>[methodM2];
764 ClassElementImpl classA = ElementFactory.classElement2("A"); 764 ClassElementImpl classA = ElementFactory.classElement2("A");
765 classA.interfaces = <InterfaceType>[classI1.type, classI2.type]; 765 classA.interfaces = <InterfaceType>[classI1.type, classI2.type];
766 MemberMap mapA = 766 Map<String, ExecutableElement> mapA =
767 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 767 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
768 expect(mapA.size, _numOfMembersInObject + 1); 768 expect(mapA.length, _numOfMembersInObject + 1);
769 expect(mapA.get(methodName), same(methodM2)); 769 expect(mapA[methodName], same(methodM2));
770 _assertNoErrors(classA); 770 _assertNoErrors(classA);
771 } 771 }
772 772
773 void 773 void
774 test_getMapOfMembersInheritedFromInterfaces_union_oneSubtype_3_methods() { 774 test_getMapOfMembersInheritedFromInterfaces_union_oneSubtype_3_methods() {
775 // class I1 { int m(); } 775 // class I1 { int m(); }
776 // class I2 { int m([int]); } 776 // class I2 { int m([int]); }
777 // class I3 { int m([int, int]); } 777 // class I3 { int m([int, int]); }
778 // class A implements I1, I2, I3 {} 778 // class A implements I1, I2, I3 {}
779 ClassElementImpl classI1 = ElementFactory.classElement2("I1"); 779 ClassElementImpl classI1 = ElementFactory.classElement2("I1");
(...skipping 22 matching lines...) Expand all
802 parameter3.type = _typeProvider.intType; 802 parameter3.type = _typeProvider.intType;
803 parameter3.parameterKind = ParameterKind.POSITIONAL; 803 parameter3.parameterKind = ParameterKind.POSITIONAL;
804 methodM3.parameters = <ParameterElement>[parameter2, parameter3]; 804 methodM3.parameters = <ParameterElement>[parameter2, parameter3];
805 classI3.methods = <MethodElement>[methodM3]; 805 classI3.methods = <MethodElement>[methodM3];
806 ClassElementImpl classA = ElementFactory.classElement2("A"); 806 ClassElementImpl classA = ElementFactory.classElement2("A");
807 classA.interfaces = <InterfaceType>[ 807 classA.interfaces = <InterfaceType>[
808 classI1.type, 808 classI1.type,
809 classI2.type, 809 classI2.type,
810 classI3.type 810 classI3.type
811 ]; 811 ];
812 MemberMap mapA = 812 Map<String, ExecutableElement> mapA =
813 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 813 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
814 expect(mapA.size, _numOfMembersInObject + 1); 814 expect(mapA.length, _numOfMembersInObject + 1);
815 expect(mapA.get(methodName), same(methodM3)); 815 expect(mapA[methodName], same(methodM3));
816 _assertNoErrors(classA); 816 _assertNoErrors(classA);
817 } 817 }
818 818
819 void 819 void
820 test_getMapOfMembersInheritedFromInterfaces_union_oneSubtype_4_methods() { 820 test_getMapOfMembersInheritedFromInterfaces_union_oneSubtype_4_methods() {
821 // class I1 { int m(); } 821 // class I1 { int m(); }
822 // class I2 { int m(); } 822 // class I2 { int m(); }
823 // class I3 { int m([int]); } 823 // class I3 { int m([int]); }
824 // class I4 { int m([int, int]); } 824 // class I4 { int m([int, int]); }
825 // class A implements I1, I2, I3, I4 {} 825 // class A implements I1, I2, I3, I4 {}
(...skipping 28 matching lines...) Expand all
854 parameter3.parameterKind = ParameterKind.POSITIONAL; 854 parameter3.parameterKind = ParameterKind.POSITIONAL;
855 methodM4.parameters = <ParameterElement>[parameter2, parameter3]; 855 methodM4.parameters = <ParameterElement>[parameter2, parameter3];
856 classI4.methods = <MethodElement>[methodM4]; 856 classI4.methods = <MethodElement>[methodM4];
857 ClassElementImpl classA = ElementFactory.classElement2("A"); 857 ClassElementImpl classA = ElementFactory.classElement2("A");
858 classA.interfaces = <InterfaceType>[ 858 classA.interfaces = <InterfaceType>[
859 classI1.type, 859 classI1.type,
860 classI2.type, 860 classI2.type,
861 classI3.type, 861 classI3.type,
862 classI4.type 862 classI4.type
863 ]; 863 ];
864 MemberMap mapA = 864 Map<String, ExecutableElement> mapA =
865 _inheritanceManager.getMapOfMembersInheritedFromInterfaces(classA); 865 _inheritanceManager.getMembersInheritedFromInterfaces(classA);
866 expect(mapA.size, _numOfMembersInObject + 1); 866 expect(mapA.length, _numOfMembersInObject + 1);
867 expect(mapA.get(methodName), same(methodM4)); 867 expect(mapA[methodName], same(methodM4));
868 _assertNoErrors(classA); 868 _assertNoErrors(classA);
869 } 869 }
870 870
871 void test_lookupInheritance_interface_getter() { 871 void test_lookupInheritance_interface_getter() {
872 ClassElementImpl classA = ElementFactory.classElement2("A"); 872 ClassElementImpl classA = ElementFactory.classElement2("A");
873 String getterName = "g"; 873 String getterName = "g";
874 PropertyAccessorElement getterG = 874 PropertyAccessorElement getterG =
875 ElementFactory.getterElement(getterName, false, _typeProvider.intType); 875 ElementFactory.getterElement(getterName, false, _typeProvider.intType);
876 classA.accessors = <PropertyAccessorElement>[getterG]; 876 classA.accessors = <PropertyAccessorElement>[getterG];
877 ClassElementImpl classB = ElementFactory.classElement2("B"); 877 ClassElementImpl classB = ElementFactory.classElement2("B");
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
1260 new FileBasedSource(FileUtilities2.createFile("/test.dart")); 1260 new FileBasedSource(FileUtilities2.createFile("/test.dart"));
1261 CompilationUnitElementImpl definingCompilationUnit = 1261 CompilationUnitElementImpl definingCompilationUnit =
1262 new CompilationUnitElementImpl("test.dart"); 1262 new CompilationUnitElementImpl("test.dart");
1263 definingCompilationUnit.librarySource = 1263 definingCompilationUnit.librarySource =
1264 definingCompilationUnit.source = source; 1264 definingCompilationUnit.source = source;
1265 _definingLibrary = ElementFactory.library(context, "test"); 1265 _definingLibrary = ElementFactory.library(context, "test");
1266 _definingLibrary.definingCompilationUnit = definingCompilationUnit; 1266 _definingLibrary.definingCompilationUnit = definingCompilationUnit;
1267 return new InheritanceManager(_definingLibrary); 1267 return new InheritanceManager(_definingLibrary);
1268 } 1268 }
1269 } 1269 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/resolver.dart ('k') | pkg/analyzer/test/generated/resolver_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698