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

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

Issue 1815693002: Don't serialize unnamed mixin applications. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Handle cyclic class hierarchies. Created 4 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
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 dart2js.serialization_test; 5 library dart2js.serialization_test;
6 6
7 import 'dart:io'; 7 import 'dart:io';
8 import 'memory_compiler.dart'; 8 import 'memory_compiler.dart';
9 import 'package:async_helper/async_helper.dart'; 9 import 'package:async_helper/async_helper.dart';
10 import 'package:compiler/src/constants/constructors.dart'; 10 import 'package:compiler/src/constants/constructors.dart';
(...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 } 541 }
542 for (Element member in members2) { 542 for (Element member in members2) {
543 names.add(member.name); 543 names.add(member.name);
544 } 544 }
545 element1 = element1.implementation; 545 element1 = element1.implementation;
546 element2 = element2.implementation; 546 element2 = element2.implementation;
547 for (String name in names) { 547 for (String name in names) {
548 Element member1 = element1.localLookup(name); 548 Element member1 = element1.localLookup(name);
549 Element member2 = element2.localLookup(name); 549 Element member2 = element2.localLookup(name);
550 if (member1 == null) { 550 if (member1 == null) {
551 print('Missing member for $member2 in\n ${members1.join('\n ')}'); 551 // TODO(johnniwinther): Ensure abstract fields are handled correctly.
Siggi Cherem (dart-lang) 2016/03/18 20:23:13 move TODO next to the throw?
Johnni Winther 2016/03/29 08:28:53 Moved into the then-branch.
552 continue; 552 String message =
Siggi Cherem (dart-lang) 2016/03/18 20:23:13 move message within the if?
Johnni Winther 2016/03/29 08:28:53 It's used in both branches.
553 'Missing member for $member2 in\n ${members1.join('\n ')}';
554 if (member2.isAbstractField) {
555 print(message);
556 continue;
557 } else {
558 throw message;
559 }
553 } 560 }
554 if (member2 == null) { 561 if (member2 == null) {
555 print('Missing member for $member1 in\n ${members2.join('\n ')}'); 562 // TODO(johnniwinther): Ensure abstract fields are handled correctly.
556 continue; 563 String message =
564 'Missing member for $member1 in\n ${members2.join('\n ')}';
565 if (member1.isAbstractField) {
566 print(message);
567 continue;
568 } else {
569 throw message;
570 }
557 } 571 }
572 //print('Checking member ${member1} against ${member2}');
Siggi Cherem (dart-lang) 2016/03/18 20:23:13 delete
Johnni Winther 2016/03/29 08:28:53 Done.
558 visit(member1, member2); 573 visit(member1, member2);
559 } 574 }
560 } 575 }
561 576
562 @override 577 @override
563 void visitClassElement(ClassElement element1, ClassElement element2) { 578 void visitClassElement(ClassElement element1, ClassElement element2) {
564 checkElementIdentities(null, null, null, element1, element2); 579 checkElementIdentities(null, null, null, element1, element2);
565 check(element1, element2, 'name', 580 check(element1, element2, 'name',
566 element1.name, element2.name); 581 element1.name, element2.name);
567 check(element1, element2, 'sourcePosition', 582 check(element1, element2, 'sourcePosition',
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 checkTypeLists( 629 checkTypeLists(
615 element1, element2, 'types', 630 element1, element2, 'types',
616 typeSet1.types.toList(), 631 typeSet1.types.toList(),
617 typeSet2.types.toList()); 632 typeSet2.types.toList());
618 633
619 checkTypeLists( 634 checkTypeLists(
620 element1, element2, 'interfaces', 635 element1, element2, 'interfaces',
621 element1.interfaces.toList(), 636 element1.interfaces.toList(),
622 element2.interfaces.toList()); 637 element2.interfaces.toList());
623 638
639 List<ConstructorElement> getConstructors(ClassElement cls) {
640 return cls.implementation.constructors.map((c) => c.declaration).toList();
641 }
642
643 checkElementLists(
644 element1, element2, 'constructors',
645 getConstructors(element1),
646 getConstructors(element2));
647
624 visitMembers(element1, element2); 648 visitMembers(element1, element2);
625 } 649 }
626 650
627 @override 651 @override
628 void visitFieldElement(FieldElement element1, FieldElement element2) { 652 void visitFieldElement(FieldElement element1, FieldElement element2) {
629 checkElementIdentities(null, null, null, element1, element2); 653 checkElementIdentities(null, null, null, element1, element2);
630 check(element1, element2, 'name', 654 check(element1, element2, 'name',
631 element1.name, element2.name); 655 element1.name, element2.name);
632 check(element1, element2, 'sourcePosition', 656 check(element1, element2, 'sourcePosition',
633 element1.sourcePosition, element2.sourcePosition); 657 element1.sourcePosition, element2.sourcePosition);
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after
1100 exp1, exp2, 'expression', 1124 exp1, exp2, 'expression',
1101 exp1.expression, exp2.expression); 1125 exp1.expression, exp2.expression);
1102 } 1126 }
1103 1127
1104 @override 1128 @override
1105 visitDeferred(DeferredConstantExpression exp1, 1129 visitDeferred(DeferredConstantExpression exp1,
1106 DeferredConstantExpression exp2) { 1130 DeferredConstantExpression exp2) {
1107 // TODO: implement visitDeferred 1131 // TODO: implement visitDeferred
1108 } 1132 }
1109 } 1133 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698