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

Side by Side Diff: pkg/analyzer/test/src/summary/resynthesize_test.dart

Issue 1683813005: Fix summarization of generic redirecting constructors (again). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 10 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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 test.src.serialization.elements_test; 5 library test.src.serialization.elements_test;
6 6
7 import 'dart:convert'; 7 import 'dart:convert';
8 8
9 import 'package:analyzer/dart/ast/ast.dart'; 9 import 'package:analyzer/dart/ast/ast.dart';
10 import 'package:analyzer/dart/element/element.dart'; 10 import 'package:analyzer/dart/element/element.dart';
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 compareElements(r.element, expectedElement, desc); 418 compareElements(r.element, expectedElement, desc);
419 // elementAnnotation should be null; it is only used in the full AST. 419 // elementAnnotation should be null; it is only used in the full AST.
420 expect(o.elementAnnotation, isNull); 420 expect(o.elementAnnotation, isNull);
421 expect(r.elementAnnotation, isNull); 421 expect(r.elementAnnotation, isNull);
422 } else { 422 } else {
423 fail('Not implemented for ${r.runtimeType} vs. ${o.runtimeType}'); 423 fail('Not implemented for ${r.runtimeType} vs. ${o.runtimeType}');
424 } 424 }
425 } 425 }
426 } 426 }
427 427
428 void compareConstructorElements(ConstructorElementImpl resynthesized, 428 void compareConstructorElements(ConstructorElement resynthesized,
429 ConstructorElementImpl original, String desc) { 429 ConstructorElement original, String desc) {
430 compareExecutableElements(resynthesized, original, desc); 430 compareExecutableElements(resynthesized, original, desc);
431 if (original.isConst) { 431 if (original.isConst) {
432 compareConstAstLists(resynthesized.constantInitializers, 432 ConstructorElementImpl resynthesizedImpl =
433 original.constantInitializers, desc); 433 getActualElement(resynthesized, desc);
434 ConstructorElementImpl originalImpl = getActualElement(original, desc);
435 compareConstAstLists(resynthesizedImpl.constantInitializers,
436 originalImpl.constantInitializers, desc);
434 } 437 }
435 if (original.redirectedConstructor == null) { 438 if (original.redirectedConstructor == null) {
436 expect(resynthesized.redirectedConstructor, isNull, reason: desc); 439 expect(resynthesized.redirectedConstructor, isNull, reason: desc);
437 } else { 440 } else {
438 compareElements(resynthesized.redirectedConstructor, 441 compareConstructorElements(resynthesized.redirectedConstructor,
439 original.redirectedConstructor, desc); 442 original.redirectedConstructor, '$desc redirectedConstructor');
443 }
444 ConstructorElement resynthesizedNonHandle =
445 resynthesized is ConstructorElementHandle
446 ? resynthesized.actualElement
447 : resynthesized;
448 if (original is ConstructorMember) {
449 expect(resynthesizedNonHandle, new isInstanceOf<ConstructorMember>(),
450 reason: desc);
451 if (resynthesizedNonHandle is ConstructorMember) {
452 List<DartType> resynthesizedTypeArguments =
453 resynthesizedNonHandle.definingType.typeArguments;
454 List<DartType> originalTypeArguments =
455 original.definingType.typeArguments;
456 expect(
457 resynthesizedTypeArguments, hasLength(originalTypeArguments.length),
458 reason: desc);
459 for (int i = 0; i < originalTypeArguments.length; i++) {
460 compareTypeImpls(resynthesizedTypeArguments[i],
461 originalTypeArguments[i], '$desc type argument $i');
462 }
463 }
464 } else {
465 expect(
466 resynthesizedNonHandle, isNot(new isInstanceOf<ConstructorMember>()),
467 reason: desc);
440 } 468 }
441 } 469 }
442 470
443 void compareElementAnnotations(ElementAnnotationImpl resynthesized, 471 void compareElementAnnotations(ElementAnnotationImpl resynthesized,
444 ElementAnnotationImpl original, String desc) { 472 ElementAnnotationImpl original, String desc) {
445 expect(resynthesized.element, isNotNull, reason: desc); 473 expect(resynthesized.element, isNotNull, reason: desc);
446 expect(resynthesized.element.kind, original.element.kind, reason: desc); 474 expect(resynthesized.element.kind, original.element.kind, reason: desc);
447 expect(resynthesized.element.location, original.element.location, 475 expect(resynthesized.element.location, original.element.location,
448 reason: desc); 476 reason: desc);
449 expect(resynthesized.compilationUnit, isNotNull, reason: desc); 477 expect(resynthesized.compilationUnit, isNotNull, reason: desc);
(...skipping 2786 matching lines...) Expand 10 before | Expand all | Expand 10 after
3236 fail('Unexpectedly tried to get unlinked summary for $uri'); 3264 fail('Unexpectedly tried to get unlinked summary for $uri');
3237 } 3265 }
3238 return serializedUnit; 3266 return serializedUnit;
3239 } 3267 }
3240 3268
3241 @override 3269 @override
3242 bool hasLibrarySummary(String uri) { 3270 bool hasLibrarySummary(String uri) {
3243 return true; 3271 return true;
3244 } 3272 }
3245 } 3273 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698