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

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

Issue 2443953002: Introduce isAbstractlyInstantiated to avoid exact masks of abstract classes. (Closed)
Patch Set: Updated cf. comments. Created 4 years, 1 month 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
« no previous file with comments | « pkg/compiler/lib/src/world.dart ('k') | tests/compiler/dart2js/jsinterop/world_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 // Test for iterators on for [SubclassNode]. 5 // Test for iterators on for [SubclassNode].
6 6
7 library class_set_test; 7 library class_set_test;
8 8
9 import 'package:expect/expect.dart'; 9 import 'package:expect/expect.dart';
10 import 'package:async_helper/async_helper.dart'; 10 import 'package:async_helper/async_helper.dart';
(...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 522
523 checkForEach(X, [X, A, B, D, C, G, F, I, H, E], forEachSubtype: true); 523 checkForEach(X, [X, A, B, D, C, G, F, I, H, E], forEachSubtype: true);
524 checkForEach(X, [X, A, B, D], stop: D, forEachSubtype: true); 524 checkForEach(X, [X, A, B, D], stop: D, forEachSubtype: true);
525 checkForEach(X, [X, A, B, D, C, G, F, E], 525 checkForEach(X, [X, A, B, D, C, G, F, E],
526 skipSubclasses: [F], forEachSubtype: true); 526 skipSubclasses: [F], forEachSubtype: true);
527 checkForEach(X, [X, A, B, D, C, G, F, I, H, E], 527 checkForEach(X, [X, A, B, D, C, G, F, I, H, E],
528 skipSubclasses: [X], forEachSubtype: true); 528 skipSubclasses: [X], forEachSubtype: true);
529 checkForEach(X, [X, A, B, D, C, G, F, I, H, E], 529 checkForEach(X, [X, A, B, D, C, G, F, I, H, E],
530 skipSubclasses: [D], forEachSubtype: true); 530 skipSubclasses: [D], forEachSubtype: true);
531 checkForEach(X, [A, D, C, G, F, I, H, E], 531 checkForEach(X, [A, D, C, G, F, I, H, E],
532 forEachSubtype: true, mask: ClassHierarchyNode.DIRECTLY_INSTANTIATED); 532 forEachSubtype: true, mask: ClassHierarchyNode.EXPLICITLY_INSTANTIATED);
533 checkForEach(X, [A, B, D, C, G, F, I, H, E], 533 checkForEach(X, [A, B, D, C, G, F, I, H, E],
534 forEachSubtype: true, mask: ClassHierarchyNode.INSTANTIATED); 534 forEachSubtype: true, mask: ClassHierarchyNode.INSTANTIATED);
535 535
536 void checkAny(ClassElement cls, List<ClassElement> expected, 536 void checkAny(ClassElement cls, List<ClassElement> expected,
537 {ClassElement find, bool expectedResult, bool anySubtype: false}) { 537 {ClassElement find, bool expectedResult, bool anySubtype: false}) {
538 ClassSet classSet = world.getClassSet(cls); 538 ClassSet classSet = world.getClassSet(cls);
539 List<ClassElement> visited = <ClassElement>[]; 539 List<ClassElement> visited = <ClassElement>[];
540 540
541 bool visit(ClassElement cls) { 541 bool visit(ClassElement cls) {
542 visited.add(cls); 542 visited.add(cls);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 checkAny(B, [B, D], find: D, anySubtype: true, expectedResult: true); 576 checkAny(B, [B, D], find: D, anySubtype: true, expectedResult: true);
577 checkAny(B, [B, D, F, I], find: I, anySubtype: true, expectedResult: true); 577 checkAny(B, [B, D, F, I], find: I, anySubtype: true, expectedResult: true);
578 578
579 checkAny(X, [X, A, B, D, C, G, F, I, H, E], 579 checkAny(X, [X, A, B, D, C, G, F, I, H, E],
580 anySubtype: true, expectedResult: false); 580 anySubtype: true, expectedResult: false);
581 checkAny(X, [X, A], find: A, anySubtype: true, expectedResult: true); 581 checkAny(X, [X, A], find: A, anySubtype: true, expectedResult: true);
582 checkAny(X, [X, A, B, D], find: D, anySubtype: true, expectedResult: true); 582 checkAny(X, [X, A, B, D], find: D, anySubtype: true, expectedResult: true);
583 checkAny(X, [X, A, B, D, C, G, F, I], 583 checkAny(X, [X, A, B, D, C, G, F, I],
584 find: I, anySubtype: true, expectedResult: true); 584 find: I, anySubtype: true, expectedResult: true);
585 } 585 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/world.dart ('k') | tests/compiler/dart2js/jsinterop/world_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698