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 a87db0a292a..44c7e30fcf6 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 @@ -141,6 +141,16 @@ public abstract class AbstractLazyMemberScope() { + DeclarationDescriptor result = declaration.accept(new JetVisitor() { @Override public DeclarationDescriptor visitClass(JetClass klass, Void data) { return getClassDescriptor(klass); @@ -238,10 +238,22 @@ public class ResolveSession { return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, property); } + @Override + public DeclarationDescriptor visitObjectDeclarationName(JetObjectDeclarationName declarationName, Void data) { + JetScope scopeForDeclaration = getInjector().getScopeProvider().getResolutionScopeForDeclaration( + (JetDeclaration) declarationName.getParent()); + scopeForDeclaration.getProperties(declarationName.getNameAsName()); + return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, declarationName); + } + @Override public DeclarationDescriptor visitJetElement(JetElement element, Void data) { throw new IllegalArgumentException("Unsupported declaration type: " + element + " " + element.getText()); } }, null); + if (result == null) { + throw new IllegalStateException("No descriptor resolevd for " + declaration + " " + declaration.getText()); + } + return result; } }