diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/Visibilities.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/Visibilities.java index 39c70c286dc..f9b8e02190e 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/Visibilities.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/Visibilities.java @@ -214,7 +214,7 @@ public class Visibilities { @NotNull DeclarationDescriptorWithVisibility what, @NotNull DeclarationDescriptor from ) { - DeclarationDescriptorWithVisibility parent = what; + DeclarationDescriptorWithVisibility parent = (DeclarationDescriptorWithVisibility) what.getOriginal(); while (parent != null && parent.getVisibility() != LOCAL) { if (!parent.getVisibility().isVisible(receiver, parent, from)) { return parent; diff --git a/idea/idea-completion/testData/basic/common/visibility/KT9970.kt b/idea/idea-completion/testData/basic/common/visibility/KT9970.kt new file mode 100644 index 00000000000..dec05fcc00f --- /dev/null +++ b/idea/idea-completion/testData/basic/common/visibility/KT9970.kt @@ -0,0 +1,7 @@ +class Z { + fun f(): Z = ext +} + +private fun Z.extFun() = Z() + +// EXIST: "extFun" diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java index e9dd1c08340..40443634b98 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java @@ -2352,6 +2352,12 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/idea-completion/testData/basic/common/visibility"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("KT9970.kt") + public void testKT9970() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/visibility/KT9970.kt"); + doTest(fileName); + } + @TestMetadata("VisibilityClassMembersFromExternal.kt") public void testVisibilityClassMembersFromExternal() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/visibility/VisibilityClassMembersFromExternal.kt"); diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java index c83920ad9a9..3834172832a 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java @@ -2352,6 +2352,12 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/idea-completion/testData/basic/common/visibility"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("KT9970.kt") + public void testKT9970() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/visibility/KT9970.kt"); + doTest(fileName); + } + @TestMetadata("VisibilityClassMembersFromExternal.kt") public void testVisibilityClassMembersFromExternal() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/visibility/VisibilityClassMembersFromExternal.kt");