| 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 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 'name', | 373 'name', |
| 374 element1.name, element2.name); | 374 element1.name, element2.name); |
| 375 visit(element1.library, element2.library); | 375 visit(element1.library, element2.library); |
| 376 } | 376 } |
| 377 | 377 |
| 378 void checkMembers(Element element1, Element element2) { | 378 void checkMembers(Element element1, Element element2) { |
| 379 check(element1, element2, | 379 check(element1, element2, |
| 380 'name', | 380 'name', |
| 381 element1.name, element2.name); | 381 element1.name, element2.name); |
| 382 if (element1.enclosingClass != null || element2.enclosingClass != null) { | 382 if (element1.enclosingClass != null || element2.enclosingClass != null) { |
| 383 visit(element1.enclosingClass, element2.enclosingClass); | 383 visit(element1.enclosingClass.declaration, |
| 384 element2.enclosingClass.declaration); |
| 384 } else { | 385 } else { |
| 385 visit(element1.library, element2.library); | 386 visit(element1.library, element2.library); |
| 386 } | 387 } |
| 387 } | 388 } |
| 388 | 389 |
| 389 @override | 390 @override |
| 390 void visitFieldElement(FieldElement element1, FieldElement element2) { | 391 void visitFieldElement(FieldElement element1, FieldElement element2) { |
| 391 checkMembers(element1, element2); | 392 checkMembers(element1, element2); |
| 392 } | 393 } |
| 393 | 394 |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 516 element2.forEachLocalMember((Element member) { | 517 element2.forEachLocalMember((Element member) { |
| 517 members2.add(member); | 518 members2.add(member); |
| 518 }); | 519 }); |
| 519 checkElementListIdentities( | 520 checkElementListIdentities( |
| 520 element1, element2, 'localMembers', members1, members2); | 521 element1, element2, 'localMembers', members1, members2); |
| 521 } | 522 } |
| 522 | 523 |
| 523 void visitMembers(ScopeContainerElement element1, | 524 void visitMembers(ScopeContainerElement element1, |
| 524 ScopeContainerElement element2) { | 525 ScopeContainerElement element2) { |
| 525 Set<String> names = new Set<String>(); | 526 Set<String> names = new Set<String>(); |
| 526 element1.forEachLocalMember((Element member) { | 527 Iterable<Element> members1 = element1.isLibrary |
| 528 ? LibrarySerializer.getMembers(element1) |
| 529 : ClassSerializer.getMembers(element1); |
| 530 Iterable<Element> members2 = element2.isLibrary |
| 531 ? LibrarySerializer.getMembers(element2) |
| 532 : ClassSerializer.getMembers(element2); |
| 533 for (Element member in members1) { |
| 527 names.add(member.name); | 534 names.add(member.name); |
| 528 }); | 535 } |
| 529 element2.forEachLocalMember((Element member) { | 536 for (Element member in members2) { |
| 530 names.add(member.name); | 537 names.add(member.name); |
| 531 }); | 538 } |
| 539 element1 = element1.implementation; |
| 540 element2 = element2.implementation; |
| 532 for (String name in names) { | 541 for (String name in names) { |
| 533 Element member1 = element1.localLookup(name); | 542 Element member1 = element1.localLookup(name); |
| 534 Element member2 = element2.localLookup(name); | 543 Element member2 = element2.localLookup(name); |
| 535 if (member1 == null) { | 544 if (member1 == null) { |
| 536 print('Missing member for $member2'); | 545 print('Missing member for $member2 in\n ${members1.join('\n ')}'); |
| 537 continue; | 546 continue; |
| 538 } | 547 } |
| 539 if (member2 == null) { | 548 if (member2 == null) { |
| 540 print('Missing member for $member1'); | 549 print('Missing member for $member1 in\n ${members2.join('\n ')}'); |
| 541 continue; | 550 continue; |
| 542 } | 551 } |
| 543 visit(member1, member2); | 552 visit(member1, member2); |
| 544 } | 553 } |
| 545 } | 554 } |
| 546 | 555 |
| 547 @override | 556 @override |
| 548 void visitClassElement(ClassElement element1, ClassElement element2) { | 557 void visitClassElement(ClassElement element1, ClassElement element2) { |
| 549 checkElementIdentities(null, null, null, element1, element2); | 558 checkElementIdentities(null, null, null, element1, element2); |
| 550 check(element1, element2, 'name', | 559 check(element1, element2, 'name', |
| (...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1075 exp1, exp2, 'expression', | 1084 exp1, exp2, 'expression', |
| 1076 exp1.expression, exp2.expression); | 1085 exp1.expression, exp2.expression); |
| 1077 } | 1086 } |
| 1078 | 1087 |
| 1079 @override | 1088 @override |
| 1080 visitDeferred(DeferredConstantExpression exp1, | 1089 visitDeferred(DeferredConstantExpression exp1, |
| 1081 DeferredConstantExpression exp2) { | 1090 DeferredConstantExpression exp2) { |
| 1082 // TODO: implement visitDeferred | 1091 // TODO: implement visitDeferred |
| 1083 } | 1092 } |
| 1084 } | 1093 } |
| OLD | NEW |