Index: pkg/compiler/lib/src/enqueue.dart |
diff --git a/pkg/compiler/lib/src/enqueue.dart b/pkg/compiler/lib/src/enqueue.dart |
index e07530a0090b28daafece69f51a0eda28755d463..79d2ffd5d18a73cfec82255c249b685023b461c2 100644 |
--- a/pkg/compiler/lib/src/enqueue.dart |
+++ b/pkg/compiler/lib/src/enqueue.dart |
@@ -122,7 +122,6 @@ abstract class Enqueuer { |
abstract class EnqueuerImpl extends Enqueuer { |
CompilerTask get task; |
EnqueuerStrategy get strategy; |
- void processInstantiatedClassMembers(ClassElement cls); |
void processInstantiatedClassMember(ClassElement cls, Element member); |
void processStaticUse(StaticUse staticUse); |
void processTypeUse(TypeUse typeUse); |
@@ -234,10 +233,6 @@ class ResolutionEnqueuer extends EnqueuerImpl { |
return strategy.checkEnqueuerConsistency(this); |
} |
- void processInstantiatedClassMembers(ClassElement cls) { |
- strategy.processInstantiatedClass(this, cls); |
- } |
- |
void processInstantiatedClassMember(ClassElement cls, Element member) { |
assert(invariant(member, member.isDeclaration)); |
if (isProcessed(member)) return; |
@@ -677,9 +672,6 @@ void removeFromSet(Map<String, Set<Element>> map, Element element) { |
class EnqueuerStrategy { |
const EnqueuerStrategy(); |
- /// Process a class instantiated in live code. |
- void processInstantiatedClass(EnqueuerImpl enqueuer, ClassElement cls) {} |
- |
/// Process a static use of and element in live code. |
void processStaticUse(EnqueuerImpl enqueuer, StaticUse staticUse) {} |
@@ -690,20 +682,7 @@ class EnqueuerStrategy { |
void processDynamicUse(EnqueuerImpl enqueuer, DynamicUse dynamicUse) {} |
/// Check enqueuer consistency after the queue has been closed. |
- bool checkEnqueuerConsistency(EnqueuerImpl enqueuer) { |
- enqueuer.task.measure(() { |
- // Run through the classes and see if we need to enqueue more methods. |
- for (ClassElement classElement |
- in enqueuer.universe.directlyInstantiatedClasses) { |
- for (ClassElement currentClass = classElement; |
- currentClass != null; |
- currentClass = currentClass.superclass) { |
- enqueuer.processInstantiatedClassMembers(currentClass); |
- } |
- } |
- }); |
- return true; |
- } |
+ bool checkEnqueuerConsistency(EnqueuerImpl enqueuer) => true; |
/// Process [work] using [f]. |
void processWorkItem(void f(WorkItem work), WorkItem work) { |
@@ -726,11 +705,6 @@ class TreeShakingEnqueuerStrategy extends EnqueuerStrategy { |
const TreeShakingEnqueuerStrategy(); |
@override |
- void processInstantiatedClass(EnqueuerImpl enqueuer, ClassElement cls) { |
- cls.implementation.forEachMember(enqueuer.processInstantiatedClassMember); |
- } |
- |
- @override |
void processStaticUse(EnqueuerImpl enqueuer, StaticUse staticUse) { |
enqueuer.processStaticUse(staticUse); |
} |
@@ -744,6 +718,23 @@ class TreeShakingEnqueuerStrategy extends EnqueuerStrategy { |
void processDynamicUse(EnqueuerImpl enqueuer, DynamicUse dynamicUse) { |
enqueuer.processDynamicUse(dynamicUse); |
} |
+ |
+ /// Check enqueuer consistency after the queue has been closed. |
+ bool checkEnqueuerConsistency(EnqueuerImpl enqueuer) { |
+ enqueuer.task.measure(() { |
+ // Run through the classes and see if we need to enqueue more methods. |
+ for (ClassElement classElement |
+ in enqueuer.universe.directlyInstantiatedClasses) { |
+ for (ClassElement currentClass = classElement; |
+ currentClass != null; |
+ currentClass = currentClass.superclass) { |
+ currentClass.implementation |
+ .forEachMember(enqueuer.processInstantiatedClassMember); |
+ } |
+ } |
+ }); |
+ return true; |
+ } |
} |
class EnqueuerImplImpactVisitor implements WorldImpactVisitor { |