diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyClassDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyClassDescriptor.java index ca2554292d6..d4444c29a28 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyClassDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyClassDescriptor.java @@ -137,8 +137,8 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes public JetScope getScopeForMemberDeclarationResolution() { if (scopeForMemberDeclarationResolution == null) { WritableScopeImpl scope = new WritableScopeImpl( - getScopeForClassHeaderResolution(), this, RedeclarationHandler.DO_NOTHING, "Member Declaration Resolution"); - scope.importScope(getScopeForMemberLookup()); + getScopeForMemberLookup(), this, RedeclarationHandler.DO_NOTHING, "Member Declaration Resolution"); + scope.importScope(getScopeForClassHeaderResolution()); scope.changeLockLevel(WritableScope.LockLevel.READING); scopeForMemberDeclarationResolution = scope; diff --git a/compiler/testData/lazyResolve/namespaceComparator/InnerClassNameClash.kt b/compiler/testData/lazyResolve/namespaceComparator/InnerClassNameClash.kt new file mode 100644 index 00000000000..fe9f8836786 --- /dev/null +++ b/compiler/testData/lazyResolve/namespaceComparator/InnerClassNameClash.kt @@ -0,0 +1,8 @@ +class B { + class B { + fun foo(b: B.C) { + } + class C { + } + } +} diff --git a/compiler/testData/lazyResolve/namespaceComparator/InnerClassNameClash.txt b/compiler/testData/lazyResolve/namespaceComparator/InnerClassNameClash.txt new file mode 100644 index 00000000000..ccf22fd2d46 --- /dev/null +++ b/compiler/testData/lazyResolve/namespaceComparator/InnerClassNameClash.txt @@ -0,0 +1,12 @@ +namespace + +internal final class B : jet.Any { + public final /*constructor*/ fun (): B + internal final class B.B : jet.Any { + public final /*constructor*/ fun (): B.B + internal final class B.B.C : jet.Any { + public final /*constructor*/ fun (): B.B.C + } + internal final fun foo(/*0*/ b: B.B.C): jet.Tuple0 + } +} diff --git a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveNamespaceComparingTestGenerated.java b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveNamespaceComparingTestGenerated.java index dac10adacfc..85aac6a34a8 100644 --- a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveNamespaceComparingTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveNamespaceComparingTestGenerated.java @@ -1277,6 +1277,11 @@ public class LazyResolveNamespaceComparingTestGenerated extends AbstractLazyReso doTest("compiler/testData/lazyResolve/namespaceComparator/genericFunction.kt"); } + @TestMetadata("InnerClassNameClash.kt") + public void testInnerClassNameClash() throws Exception { + doTest("compiler/testData/lazyResolve/namespaceComparator/InnerClassNameClash.kt"); + } + @TestMetadata("innerObject.kt") public void testInnerObject() throws Exception { doTest("compiler/testData/lazyResolve/namespaceComparator/innerObject.kt");