Lazy resolve: Package-level objects are handled properly

This commit is contained in:
Andrey Breslav
2012-07-10 20:51:27 +04:00
parent 853dc31510
commit 33dfd5bb6b
4 changed files with 20 additions and 1 deletions
@@ -145,7 +145,10 @@ public abstract class AbstractLazyMemberScope<D extends DeclarationDescriptor, D
JetClassOrObject classOrObjectDeclaration = declarationProvider.getClassOrObjectDeclaration(name);
if (classOrObjectDeclaration instanceof JetObjectDeclaration) {
JetObjectDeclaration objectDeclaration = (JetObjectDeclaration) classOrObjectDeclaration;
ClassDescriptor classifier = (ClassDescriptor) getClassifier(name);
ClassDescriptor classifier = getObjectDescriptor(name);
if (classifier == null) {
throw new IllegalStateException("Object declaration " + name + " found in the DeclarationProvider " + declarationProvider + " but not in the scope " + this);
}
VariableDescriptor propertyDescriptor = resolveSession.getInjector().getDescriptorResolver()
.resolveObjectDeclaration(thisDescriptor, objectDeclaration, classifier, resolveSession.getTrace());
result.add(propertyDescriptor);