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

Unified Diff: pkg/kernel/test/class_hierarchy_test.dart

Issue 2924713002: Replace ClassHierarchy.classes with getOrderedClasses(). (Closed)
Patch Set: Tweak the comment. Created 3 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 side-by-side diff with in-line comments
Download patch
Index: pkg/kernel/test/class_hierarchy_test.dart
diff --git a/pkg/kernel/test/class_hierarchy_test.dart b/pkg/kernel/test/class_hierarchy_test.dart
index 8cb8fa97d937a8484950d8c3207e0e64968e7a52..edaeb32a050c7e7dc67df1d0b979f013e93b9e05 100644
--- a/pkg/kernel/test/class_hierarchy_test.dart
+++ b/pkg/kernel/test/class_hierarchy_test.dart
@@ -796,6 +796,29 @@ class C implements self::B {}
expect(hierarchy.getInterfaceMember(c, bSetterName, setter: true), bSetter);
}
+ void test_getOrderedClasses() {
+ var a = addClass(new Class(name: 'A', supertype: objectSuper));
+ var b = addClass(new Class(name: 'B', supertype: a.asThisSupertype));
+ var c = addClass(new Class(name: 'C', supertype: b.asThisSupertype));
+
+ void assertOrderOfClasses(List<Class> unordered, List<Class> expected) {
+ var ordered = hierarchy.getOrderedClasses(unordered).toList();
+ var lastIndex = -1;
+ for (var node in expected) {
+ var index = ordered.indexOf(node);
+ expect(index, greaterThan(lastIndex));
+ lastIndex = index;
+ }
+ }
+
+ assertOrderOfClasses([a, b, c], [a, b, c]);
+ assertOrderOfClasses([b, a, c], [a, b, c]);
+ assertOrderOfClasses([a, c, b], [a, b, c]);
+ assertOrderOfClasses([b, c, a], [a, b, c]);
+ assertOrderOfClasses([c, a, b], [a, b, c]);
+ assertOrderOfClasses([c, b, a], [a, b, c]);
+ }
+
void test_getRankedSuperclasses() {
var a = addImplementsClass('A', []);
var b = addImplementsClass('B', [a]);

Powered by Google App Engine
This is Rietveld 408576698