From dcdb39a71683698ba84172071d316d66018810b9 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 15 Jun 2011 20:42:52 +0400 Subject: [PATCH] Parent scopes are shown in completion --- .../jetbrains/jet/lang/resolve/WritableScopeImpl.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/idea/src/org/jetbrains/jet/lang/resolve/WritableScopeImpl.java b/idea/src/org/jetbrains/jet/lang/resolve/WritableScopeImpl.java index 7c813ebe042..637e6d84d19 100644 --- a/idea/src/org/jetbrains/jet/lang/resolve/WritableScopeImpl.java +++ b/idea/src/org/jetbrains/jet/lang/resolve/WritableScopeImpl.java @@ -17,6 +17,7 @@ import java.util.*; public class WritableScopeImpl extends WritableScopeWithImports { private final Collection allDescriptors = Sets.newHashSet(); + private boolean allDescriptorsDone = false; @NotNull private final DeclarationDescriptor ownerDeclarationDescriptor; @@ -38,7 +39,6 @@ public class WritableScopeImpl extends WritableScopeWithImports { public WritableScopeImpl(@NotNull JetScope scope, @NotNull DeclarationDescriptor owner, @NotNull ErrorHandler errorHandler) { super(scope, errorHandler); this.ownerDeclarationDescriptor = owner; - this.allDescriptors.addAll(scope.getAllDescriptors()); } @NotNull @@ -57,7 +57,6 @@ public class WritableScopeImpl extends WritableScopeWithImports { @Override public void importScope(@NotNull JetScope imported) { - allDescriptors.addAll(imported.getAllDescriptors()); super.importScope(imported); } @@ -69,6 +68,13 @@ public class WritableScopeImpl extends WritableScopeWithImports { @Override public Collection getAllDescriptors() { + if (!allDescriptorsDone) { + allDescriptorsDone = true; + allDescriptors.addAll(getWorkerScope().getAllDescriptors()); + for (JetScope imported : getImports()) { + allDescriptors.addAll(imported.getAllDescriptors()); + } + } return allDescriptors; }