From 91cb701956a234d8c415289bfbe59f2d36801b50 Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Tue, 22 Nov 2011 16:55:07 +0400 Subject: [PATCH] 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 } } === --- .../jetbrains/jet/lang/resolve/TypeResolver.java | 7 +++++-- .../kt526UnresolvedReferenceInnerStatic.jet | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 compiler/testData/checkerWithErrorTypes/quick/regressions/kt526UnresolvedReferenceInnerStatic.jet diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java index 5fd39256dfe..654135be994 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java @@ -286,8 +286,11 @@ public class TypeResolver { private JetScope resolveClassLookupScope(JetScope scope, JetUserType userType) { ClassifierDescriptor classifierDescriptor = resolveClassWithoutErrorReporting(scope, userType); if (classifierDescriptor instanceof ClassDescriptor) { - List 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); diff --git a/compiler/testData/checkerWithErrorTypes/quick/regressions/kt526UnresolvedReferenceInnerStatic.jet b/compiler/testData/checkerWithErrorTypes/quick/regressions/kt526UnresolvedReferenceInnerStatic.jet new file mode 100644 index 00000000000..b918b0d4c17 --- /dev/null +++ b/compiler/testData/checkerWithErrorTypes/quick/regressions/kt526UnresolvedReferenceInnerStatic.jet @@ -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() + } +} +