diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/WritableScopeImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/WritableScopeImpl.java index fb0d02d18c2..d2f2b18ed81 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/WritableScopeImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/WritableScopeImpl.java @@ -124,49 +124,21 @@ public class WritableScopeImpl extends WritableScopeWithImports { super.clearImports(); } - @NotNull - private Collection getInheritedDescriptors(@NotNull DescriptorPredicate predicate) { - Collection r = Lists.newArrayList(); - r.addAll(getWorkerScope().getAllDescriptors(predicate)); - for (JetScope imported : getImports()) { - r.addAll(imported.getAllDescriptors(predicate)); - } - return r; - } - - @NotNull - private static Collection concat(@NotNull Collection c1, @NotNull Collection c2) { - if (c1.isEmpty()) { - return c2; - } - else if (c2.isEmpty()) { - return c1; - } - else { - Collection r = Lists.newArrayListWithCapacity(c1.size() + c2.size()); - r.addAll(c1); - r.addAll(c2); - return r; - } - } - @NotNull @Override public Collection getAllDescriptors(@NotNull DescriptorPredicate predicate) { checkMayRead(); if (!allDescriptorsDone) { - if (!predicate.includeAll()) { - // super-optimized version - return concat(allDescriptors, getInheritedDescriptors(predicate)); - } - allDescriptorsDone = true; // make sure no descriptors added to allDescriptors collection changeLockLevel(LockLevel.READING); - allDescriptors.addAll(getInheritedDescriptors(DescriptorPredicate.all())); + allDescriptors.addAll(getWorkerScope().getAllDescriptors(DescriptorPredicate.all())); + for (JetScope imported : getImports()) { + allDescriptors.addAll(imported.getAllDescriptors(DescriptorPredicate.all())); + } } return DescriptorPredicateUtils.filter(allDescriptors, predicate); }