| Index: sdk/lib/_internal/compiler/implementation/enqueue.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/enqueue.dart b/sdk/lib/_internal/compiler/implementation/enqueue.dart
|
| index f12d760f68034e9fd357ff8590e7812dd2510502..65d134cbb548a1cf8b83a2aac0faba17c2714a23 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/enqueue.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/enqueue.dart
|
| @@ -228,10 +228,9 @@ class Enqueuer {
|
| // supertypes.
|
| cls.ensureResolved(compiler);
|
|
|
| - for (Link<DartType> supertypes = cls.allSupertypesAndSelf;
|
| - !supertypes.isEmpty; supertypes = supertypes.tail) {
|
| - cls = supertypes.head.element;
|
| - if (seenClasses.contains(cls)) continue;
|
| + void processClass(ClassElement cls) {
|
| + if (seenClasses.contains(cls)) return;
|
| +
|
| seenClasses.add(cls);
|
| cls.ensureResolved(compiler);
|
| cls.implementation.forEachMember(processInstantiatedClassMember);
|
| @@ -255,6 +254,11 @@ class Enqueuer {
|
| });
|
| }
|
| }
|
| + processClass(cls);
|
| + for (Link<DartType> supertypes = cls.allSupertypes;
|
| + !supertypes.isEmpty; supertypes = supertypes.tail) {
|
| + processClass(supertypes.head.element);
|
| + }
|
| });
|
| }
|
|
|
|
|