Lazy resolve: Objects don't show up as classifiers

This commit is contained in:
Andrey Breslav
2012-07-19 12:50:36 +04:00
parent ebc87ea34d
commit eb1a279c67
3 changed files with 18 additions and 1 deletions
@@ -73,7 +73,9 @@ public abstract class AbstractLazyMemberScope<D extends DeclarationDescriptor, D
JetClassInfoUtil.createClassLikeInfo(classOrObjectDeclaration));
classDescriptors.put(name, classDescriptor);
allDescriptors.add(classDescriptor);
if (!object) {
allDescriptors.add(classDescriptor);
}
return classDescriptor;
}
@@ -204,6 +206,13 @@ public abstract class AbstractLazyMemberScope<D extends DeclarationDescriptor, D
getProperties(name);
}
}
else if (declaration instanceof JetObjectDeclaration) {
JetClassOrObject classOrObject = (JetClassOrObject) declaration;
Name name = classOrObject.getNameAsName();
if (name != null) {
getProperties(name);
}
}
else if (declaration instanceof JetClassOrObject) {
JetClassOrObject classOrObject = (JetClassOrObject) declaration;
Name name = classOrObject.getNameAsName();
@@ -0,0 +1,3 @@
class B {
object Obj {}
}
@@ -1277,6 +1277,11 @@ public class LazyResolveNamespaceComparingTestGenerated extends AbstractLazyReso
doTest("compiler/testData/lazyResolve/namespaceComparator/genericFunction.kt");
}
@TestMetadata("innerObject.kt")
public void testInnerObject() throws Exception {
doTest("compiler/testData/lazyResolve/namespaceComparator/innerObject.kt");
}
@TestMetadata("packageLevelObject.kt")
public void testPackageLevelObject() throws Exception {
doTest("compiler/testData/lazyResolve/namespaceComparator/packageLevelObject.kt");