| 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 111358d7507d378474ce2de88ef9a2346c04c798..fd2f73cf00b7801afc6a081bae6d2c8748014dc7 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/enqueue.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/enqueue.dart
|
| @@ -226,10 +226,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);
|
| @@ -253,6 +252,11 @@ class Enqueuer {
|
| });
|
| }
|
| }
|
| + processClass(cls);
|
| + for (Link<DartType> supertypes = cls.allSupertypes;
|
| + !supertypes.isEmpty; supertypes = supertypes.tail) {
|
| + processClass(supertypes.head.element);
|
| + }
|
| });
|
| }
|
|
|
|
|