Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 } |
| OLD | NEW |