Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(512)

Unified Diff: pkg/compiler/lib/src/enqueue.dart

Issue 2314703002: Split World usage into open, inference, and closed world. (Closed)
Patch Set: Updated cf. comments Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/compiler/lib/src/elements/elements.dart ('k') | pkg/compiler/lib/src/inferrer/inferrer_visitor.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/enqueue.dart
diff --git a/pkg/compiler/lib/src/enqueue.dart b/pkg/compiler/lib/src/enqueue.dart
index 06b967035143a7b574d677f9ba77e20764c38df8..748a5e2e26c9ef9b3a8f9253cedc3cf34345f6de 100644
--- a/pkg/compiler/lib/src/enqueue.dart
+++ b/pkg/compiler/lib/src/enqueue.dart
@@ -227,13 +227,13 @@ class ResolutionEnqueuer extends Enqueuer {
// Note: this assumes that there are no non-native fields on native
// classes, which may not be the case when a native class is subclassed.
if (compiler.backend.isNative(cls)) {
- compiler.world.registerUsedElement(member);
- if (universe.hasInvokedGetter(member, compiler.world) ||
- universe.hasInvocation(member, compiler.world)) {
+ compiler.openWorld.registerUsedElement(member);
+ if (universe.hasInvokedGetter(member, compiler.openWorld) ||
+ universe.hasInvocation(member, compiler.openWorld)) {
addToWorkList(member);
return;
}
- if (universe.hasInvokedSetter(member, compiler.world)) {
+ if (universe.hasInvokedSetter(member, compiler.openWorld)) {
addToWorkList(member);
return;
}
@@ -257,7 +257,7 @@ class ResolutionEnqueuer extends Enqueuer {
}
// If there is a property access with the same name as a method we
// need to emit the method.
- if (universe.hasInvokedGetter(function, compiler.world)) {
+ if (universe.hasInvokedGetter(function, compiler.openWorld)) {
registerClosurizedMember(function);
addToWorkList(function);
return;
@@ -267,27 +267,27 @@ class ResolutionEnqueuer extends Enqueuer {
instanceFunctionsByName
.putIfAbsent(memberName, () => new Set<Element>())
.add(member);
- if (universe.hasInvocation(function, compiler.world)) {
+ if (universe.hasInvocation(function, compiler.openWorld)) {
addToWorkList(function);
return;
}
} else if (member.isGetter) {
FunctionElement getter = member;
getter.computeType(resolution);
- if (universe.hasInvokedGetter(getter, compiler.world)) {
+ if (universe.hasInvokedGetter(getter, compiler.openWorld)) {
addToWorkList(getter);
return;
}
// We don't know what selectors the returned closure accepts. If
// the set contains any selector we have to assume that it matches.
- if (universe.hasInvocation(getter, compiler.world)) {
+ if (universe.hasInvocation(getter, compiler.openWorld)) {
addToWorkList(getter);
return;
}
} else if (member.isSetter) {
FunctionElement setter = member;
setter.computeType(resolution);
- if (universe.hasInvokedSetter(setter, compiler.world)) {
+ if (universe.hasInvokedSetter(setter, compiler.openWorld)) {
addToWorkList(setter);
return;
}
@@ -309,22 +309,12 @@ class ResolutionEnqueuer extends 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);
superclass.ensureResolved(resolution);
superclass.implementation.forEachMember(processInstantiatedClassMember);
- if (isResolutionQueue &&
- !compiler.serialization.isDeserialized(superclass)) {
+ if (!compiler.serialization.isDeserialized(superclass)) {
compiler.resolver.checkClass(superclass);
}
// We only tell the backend once that [superclass] was instantiated, so
@@ -352,7 +342,7 @@ class ResolutionEnqueuer extends Enqueuer {
void logEnqueueReflectiveAction(action, [msg = ""]) {
if (TRACE_MIRROR_ENQUEUING) {
- print("MIRROR_ENQUEUE (${isResolutionQueue ? "R" : "C"}): $action $msg");
+ print("MIRROR_ENQUEUE (R): $action $msg");
}
}
@@ -384,7 +374,6 @@ class ResolutionEnqueuer extends Enqueuer {
if (element.isTypedef) {
TypedefElement typedef = element;
typedef.ensureResolved(resolution);
- compiler.world.allTypedefs.add(element);
} else if (Elements.isStaticOrTopLevel(element)) {
registerStaticUse(new StaticUse.foreignUse(element.declaration));
} else if (element.isInstanceMember) {
@@ -548,7 +537,7 @@ class ResolutionEnqueuer extends Enqueuer {
Selector selector = dynamicUse.selector;
String methodName = selector.name;
processInstanceMembers(methodName, (Element member) {
- if (dynamicUse.appliesUnnamed(member, compiler.world)) {
+ if (dynamicUse.appliesUnnamed(member, compiler.openWorld)) {
if (member.isFunction && selector.isGetter) {
registerClosurizedMember(member);
}
@@ -559,7 +548,7 @@ class ResolutionEnqueuer extends Enqueuer {
});
if (selector.isGetter) {
processInstanceFunctions(methodName, (Element member) {
- if (dynamicUse.appliesUnnamed(member, compiler.world)) {
+ if (dynamicUse.appliesUnnamed(member, compiler.openWorld)) {
registerClosurizedMember(member);
return true;
}
@@ -733,7 +722,7 @@ class ResolutionEnqueuer extends Enqueuer {
element, "Resolution work list is closed. Trying to add $element.");
}
- compiler.world.registerUsedElement(element);
+ compiler.openWorld.registerUsedElement(element);
ResolutionWorkItem workItem = compiler.resolution.createWorkItem(element);
queue.add(workItem);
« no previous file with comments | « pkg/compiler/lib/src/elements/elements.dart ('k') | pkg/compiler/lib/src/inferrer/inferrer_visitor.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698