KT-526 Unresolved reference for inner static class

===
namespace demo

class Foo {
    class object {
        class Bar { }
    }
}
class User {
    fun main() : Unit {
        var boo : Foo.Bar? /* <-- unresolved reference to Bar */ = null
    }
}
===
This commit is contained in:
Stepan Koltsov
2011-11-22 16:55:07 +04:00
parent 9dd9107362
commit 91cb701956
2 changed files with 21 additions and 2 deletions
@@ -286,8 +286,11 @@ public class TypeResolver {
private JetScope resolveClassLookupScope(JetScope scope, JetUserType userType) {
ClassifierDescriptor classifierDescriptor = resolveClassWithoutErrorReporting(scope, userType);
if (classifierDescriptor instanceof ClassDescriptor) {
List<TypeProjection> typeArguments = resolveTypeProjections(scope, classifierDescriptor.getTypeConstructor(), userType.getTypeArguments());
return ((ClassDescriptor) classifierDescriptor).getMemberScope(typeArguments);
ClassDescriptor classDescriptor = (ClassDescriptor) classifierDescriptor;
JetType classObjectType = classDescriptor.getClassObjectType();
if (classObjectType != null) {
return classObjectType.getMemberScope();
}
}
NamespaceDescriptor namespaceDescriptor = resolveNamespace(scope, userType);
@@ -0,0 +1,16 @@
// http://youtrack.jetbrains.net/issue/KT-526
// KT-526 Unresolved reference for inner static class
namespace demo
class Foo {
class object {
class Bar() { }
}
}
class User {
fun main() : Unit {
var boo : Foo.Bar? /* <-- this reference is red */ = Foo.Bar()
}
}