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