Chromium Code Reviews| 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); |
|
Harry Terkelsen
2016/09/19 17:18:26
I don't see where in this CL we register typedefs
Johnni Winther
2016/09/20 08:29:58
It is a consequence of `typedef.ensureResolved(res
Harry Terkelsen
2016/09/20 17:47:41
Acknowledged.
|
| } 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); |