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

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

Issue 1809533004: Support serialization of WorldImpact (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: 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 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698