| 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);
 | 
| 
 |