Index: pkg/compiler/lib/src/enqueue.dart |
diff --git a/pkg/compiler/lib/src/enqueue.dart b/pkg/compiler/lib/src/enqueue.dart |
index 212218df4d94697e8b4708ccfcdcd1752f06d0d5..6d71d732d8992e8e5f5da11e092beae0165bd250 100644 |
--- a/pkg/compiler/lib/src/enqueue.dart |
+++ b/pkg/compiler/lib/src/enqueue.dart |
@@ -112,15 +112,9 @@ class WorldImpact { |
// TODO(johnniwinther): Collect checked types for checked mode separately to |
// support serialization. |
- Iterable<DartType> get isChecks => const <DartType>[]; |
- |
- Iterable<DartType> get checkedModeChecks => const <DartType>[]; |
- |
- Iterable<DartType> get asCasts => const <DartType>[]; |
+ Iterable<DartType> get checkedTypes => const <DartType>[]; |
Iterable<MethodElement> get closurizedFunctions => const <MethodElement>[]; |
- |
- Iterable<LocalFunctionElement> get closures => const <LocalFunctionElement>[]; |
} |
abstract class Enqueuer { |
@@ -167,10 +161,6 @@ abstract class Enqueuer { |
/// Returns [:true:] if [member] has been processed by this enqueuer. |
bool isProcessed(Element member); |
- bool isClassProcessed(ClassElement cls) => _processedClasses.contains(cls); |
- |
- Iterable<ClassElement> get processedClasses => _processedClasses; |
- |
/** |
* Documentation wanted -- johnniwinther |
* |
@@ -200,14 +190,10 @@ abstract class Enqueuer { |
worldImpact.dynamicGetters.forEach(registerDynamicGetter); |
worldImpact.dynamicSetters.forEach(registerDynamicSetter); |
worldImpact.staticUses.forEach(registerStaticUse); |
- worldImpact.instantiatedTypes.forEach(registerInstantiatedType); |
- worldImpact.isChecks.forEach(registerIsCheck); |
- worldImpact.asCasts.forEach(registerIsCheck); |
- if (compiler.enableTypeAssertions) { |
- worldImpact.checkedModeChecks.forEach(registerIsCheck); |
- } |
+ // TODO(johnniwinther): Register [worldImpact.instantiatedTypes] when it |
+ // doesn't require a [Registry]. |
+ worldImpact.checkedTypes.forEach(registerIsCheck); |
worldImpact.closurizedFunctions.forEach(registerGetOfStaticFunction); |
- worldImpact.closures.forEach(registerClosure); |
} |
// TODO(johnniwinther): Remove the need for passing the [registry]. |
@@ -348,15 +334,6 @@ abstract class Enqueuer { |
void processClass(ClassElement superclass) { |
if (_processedClasses.contains(superclass)) return; |
- // TODO(johnniwinther): Re-insert this invariant when unittests don't |
- // fail. There is already a similar invariant on the members. |
- /*if (!isResolutionQueue) { |
- assert(invariant(superclass, |
- superclass.isClosure || |
- compiler.enqueuer.resolution.isClassProcessed(superclass), |
- message: "Class $superclass has not been " |
- "processed in resolution.")); |
- }*/ |
_processedClasses.add(superclass); |
recentClasses.add(superclass); |
@@ -790,7 +767,7 @@ class ResolutionEnqueuer extends Enqueuer { |
* |
* Invariant: Key elements are declaration elements. |
*/ |
- final Set<AstElement> processedElements; |
+ final Set<AstElement> resolvedElements; |
final Queue<ResolutionWorkItem> queue; |
@@ -807,22 +784,22 @@ class ResolutionEnqueuer extends Enqueuer { |
compiler, |
itemCompilationContextCreator, |
strategy), |
- processedElements = new Set<AstElement>(), |
+ resolvedElements = new Set<AstElement>(), |
queue = new Queue<ResolutionWorkItem>(), |
deferredTaskQueue = new Queue<DeferredTask>(); |
bool get isResolutionQueue => true; |
- bool isProcessed(Element member) => processedElements.contains(member); |
+ bool isProcessed(Element member) => resolvedElements.contains(member); |
/// Returns `true` if [element] has been processed by the resolution enqueuer. |
- bool hasBeenProcessed(Element element) { |
- return processedElements.contains(element.analyzableElement.declaration); |
+ bool hasBeenResolved(Element element) { |
+ return resolvedElements.contains(element.analyzableElement.declaration); |
} |
- /// Registers [element] as processed by the resolution enqueuer. |
- void registerProcessedElement(AstElement element) { |
- processedElements.add(element); |
+ /// Registers [element] as resolved for the resolution enqueuer. |
+ void registerResolvedElement(AstElement element) { |
+ resolvedElements.add(element); |
} |
/** |
@@ -843,7 +820,7 @@ class ResolutionEnqueuer extends Enqueuer { |
assert(invariant(element, element is AnalyzableElement, |
message: 'Element $element is not analyzable.')); |
- if (hasBeenProcessed(element)) return false; |
+ if (hasBeenResolved(element)) return false; |
if (queueIsClosed) { |
throw new SpannableAssertionFailure(element, |
"Resolution work list is closed. Trying to add $element."); |
@@ -935,12 +912,12 @@ class ResolutionEnqueuer extends Enqueuer { |
} |
void _logSpecificSummary(log(message)) { |
- log('Resolved ${processedElements.length} elements.'); |
+ log('Resolved ${resolvedElements.length} elements.'); |
} |
void forgetElement(Element element) { |
super.forgetElement(element); |
- processedElements.remove(element); |
+ resolvedElements.remove(element); |
} |
} |