diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyMemberScope.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyMemberScope.java index 23367be19d2..8afe5218f09 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyMemberScope.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyMemberScope.java @@ -16,6 +16,7 @@ package org.jetbrains.jet.lang.resolve.lazy; +import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import org.jetbrains.annotations.NotNull; @@ -43,6 +44,8 @@ public abstract class AbstractLazyMemberScope> functionDescriptors = Maps.newHashMap(); private final Map> propertyDescriptors = Maps.newHashMap(); + private final List allDescriptors = Lists.newArrayList(); + protected AbstractLazyMemberScope( @NotNull ResolveSession resolveSession, @NotNull DP declarationProvider, @@ -70,6 +73,7 @@ public abstract class AbstractLazyMemberScope getAllDescriptors() { + for (JetDeclaration declaration : declarationProvider.getAllDeclarations()) { + if (declaration instanceof JetClassOrObject) { + JetClassOrObject classOrObject = (JetClassOrObject) declaration; + getClassifier(classOrObject.getNameAsName()); + } + else if (declaration instanceof JetFunction) { + JetFunction function = (JetFunction) declaration; + getFunctions(function.getNameAsSafeName()); + } + else if (declaration instanceof JetProperty) { + JetProperty property = (JetProperty) declaration; + getProperties(property.getNameAsSafeName()); + } + else { + throw new IllegalArgumentException("Unsupported declaration kind: " + declaration); + } + } allDescriptorsComputed = true; - throw new UnsupportedOperationException(); // TODO + return allDescriptors; } @Override