diff --git a/idea/src/org/jetbrains/jet/lang/resolve/WriteThroughScope.java b/idea/src/org/jetbrains/jet/lang/resolve/WriteThroughScope.java index 1de7f92f734..f154255f6ad 100644 --- a/idea/src/org/jetbrains/jet/lang/resolve/WriteThroughScope.java +++ b/idea/src/org/jetbrains/jet/lang/resolve/WriteThroughScope.java @@ -1,5 +1,6 @@ package org.jetbrains.jet.lang.resolve; +import com.google.common.collect.Lists; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.ErrorHandler; @@ -13,6 +14,7 @@ import java.util.Collection; */ public class WriteThroughScope extends WritableScopeWithImports { private final WritableScope writableWorker; + private Collection allDescriptors; public WriteThroughScope(@NotNull JetScope outerScope, @NotNull WritableScope scope, @NotNull ErrorHandler errorHandler) { super(outerScope, errorHandler); @@ -149,6 +151,11 @@ public class WriteThroughScope extends WritableScopeWithImports { @Override public Collection getAllDescriptors() { - return writableWorker.getAllDescriptors(); + if (allDescriptors == null) { + allDescriptors = Lists.newArrayList(); + allDescriptors.addAll(writableWorker.getAllDescriptors()); + allDescriptors.addAll(getWorkerScope().getAllDescriptors()); + } + return allDescriptors; } }