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

Side by Side Diff: tests/compiler/dart2js/serialization/equivalence_test.dart

Issue 2015903002: Compute and check members for serialization (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fix invariant Created 4 years, 6 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/commandline_options.dart'; 10 import 'package:compiler/src/commandline_options.dart';
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 'member:$name', member1, member2); 377 'member:$name', member1, member2);
378 visit(member1, member2); 378 visit(member1, member2);
379 currentCheck = currentCheck.parent; 379 currentCheck = currentCheck.parent;
380 } 380 }
381 } 381 }
382 382
383 @override 383 @override
384 void visitClassElement(ClassElement element1, ClassElement element2) { 384 void visitClassElement(ClassElement element1, ClassElement element2) {
385 checkElementIdentities(null, null, null, element1, element2); 385 checkElementIdentities(null, null, null, element1, element2);
386 check(element1, element2, 'name', 386 check(element1, element2, 'name',
387 element1.name, element2.name); 387 element1.name, element2.name);
388 if (!element1.isUnnamedMixinApplication) { 388 if (!element1.isUnnamedMixinApplication) {
389 check(element1, element2, 'sourcePosition', 389 check(element1, element2, 'sourcePosition',
390 element1.sourcePosition, element2.sourcePosition); 390 element1.sourcePosition, element2.sourcePosition);
391 } else { 391 } else {
392 check(element1, element2, 'sourcePosition.uri', 392 check(element1, element2, 'sourcePosition.uri',
393 element1.sourcePosition.uri, element2.sourcePosition.uri); 393 element1.sourcePosition.uri, element2.sourcePosition.uri);
394 MixinApplicationElement mixin1 = element1; 394 MixinApplicationElement mixin1 = element1;
395 MixinApplicationElement mixin2 = element2; 395 MixinApplicationElement mixin2 = element2;
396 checkElementIdentities(mixin1, mixin2, 'subclass', 396 checkElementIdentities(mixin1, mixin2, 'subclass',
397 mixin1.subclass, mixin2.subclass); 397 mixin1.subclass, mixin2.subclass);
(...skipping 22 matching lines...) Expand all
420 check(element1, element2, 'isAbstract', 420 check(element1, element2, 'isAbstract',
421 element1.isAbstract, element2.isAbstract); 421 element1.isAbstract, element2.isAbstract);
422 check(element1, element2, 'isUnnamedMixinApplication', 422 check(element1, element2, 'isUnnamedMixinApplication',
423 element1.isUnnamedMixinApplication, element2.isUnnamedMixinApplication); 423 element1.isUnnamedMixinApplication, element2.isUnnamedMixinApplication);
424 check(element1, element2, 'isEnumClass', 424 check(element1, element2, 'isEnumClass',
425 element1.isEnumClass, element2.isEnumClass); 425 element1.isEnumClass, element2.isEnumClass);
426 if (element1.isEnumClass) { 426 if (element1.isEnumClass) {
427 EnumClassElement enum1 = element1; 427 EnumClassElement enum1 = element1;
428 EnumClassElement enum2 = element2; 428 EnumClassElement enum2 = element2;
429 checkElementLists(enum1, enum2, 'enumValues', 429 checkElementLists(enum1, enum2, 'enumValues',
430 enum1.enumValues, enum2.enumValues); 430 enum1.enumValues, enum2.enumValues);
431 } 431 }
432 if (!element1.isObject) { 432 if (!element1.isObject) {
433 checkTypes(element1, element2, 'supertype', 433 checkTypes(element1, element2, 'supertype',
434 element1.supertype, element2.supertype); 434 element1.supertype, element2.supertype);
435 } 435 }
436 check(element1, element2, 'hierarchyDepth', 436 check(element1, element2, 'hierarchyDepth',
437 element1.hierarchyDepth, element2.hierarchyDepth); 437 element1.hierarchyDepth, element2.hierarchyDepth);
438 checkTypeLists( 438 checkTypeLists(
439 element1, element2, 'allSupertypes', 439 element1, element2, 'allSupertypes',
440 element1.allSupertypes.toList(), 440 element1.allSupertypes.toList(),
441 element2.allSupertypes.toList()); 441 element2.allSupertypes.toList());
442 OrderedTypeSet typeSet1 = element1.allSupertypesAndSelf; 442 OrderedTypeSet typeSet1 = element1.allSupertypesAndSelf;
443 OrderedTypeSet typeSet2 = element1.allSupertypesAndSelf; 443 OrderedTypeSet typeSet2 = element2.allSupertypesAndSelf;
444 checkListEquivalence( 444 checkListEquivalence(
445 element1, element2, 'allSupertypes', 445 element1, element2, 'allSupertypes',
446 typeSet1.levelOffsets, 446 typeSet1.levelOffsets,
447 typeSet2.levelOffsets, 447 typeSet2.levelOffsets,
448 check); 448 check);
449 check(element1, element2, 'allSupertypesAndSelf.levels', 449 check(element1, element2, 'allSupertypesAndSelf.levels',
450 typeSet1.levels, typeSet2.levels); 450 typeSet1.levels, typeSet2.levels);
451 checkTypeLists( 451 checkTypeLists(
452 element1, element2, 'supertypes', 452 element1, element2, 'supertypes',
453 typeSet1.supertypes.toList(), 453 typeSet1.supertypes.toList(),
454 typeSet2.supertypes.toList()); 454 typeSet2.supertypes.toList());
455 checkTypeLists( 455 checkTypeLists(
456 element1, element2, 'types', 456 element1, element2, 'types',
457 typeSet1.types.toList(), 457 typeSet1.types.toList(),
458 typeSet2.types.toList()); 458 typeSet2.types.toList());
459 459
460 checkTypeLists( 460 checkTypeLists(
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 void visitPrefixElement(PrefixElement element1, PrefixElement element2) { 751 void visitPrefixElement(PrefixElement element1, PrefixElement element2) {
752 check( 752 check(
753 element1, element2, 'isDeferred', 753 element1, element2, 'isDeferred',
754 element1.isDeferred, element2.isDeferred); 754 element1.isDeferred, element2.isDeferred);
755 checkElementIdentities( 755 checkElementIdentities(
756 element1, element2, 'importedLibrary', 756 element1, element2, 'importedLibrary',
757 element1.deferredImport, element2.deferredImport); 757 element1.deferredImport, element2.deferredImport);
758 // TODO(johnniwinther): Check members. 758 // TODO(johnniwinther): Check members.
759 } 759 }
760 } 760 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698