KT-9970 Regression: completion doesn't see private extension functions with parametrized receiver

#KT-9970 Fixed
This commit is contained in:
Valentin Kipyatkov
2015-11-12 14:05:01 +03:00
parent 6a26e2fd82
commit 5b668cb6a6
4 changed files with 20 additions and 1 deletions
@@ -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;
@@ -0,0 +1,7 @@
class Z<T> {
fun f(): Z<T> = ext<caret>
}
private fun <T> Z<T>.extFun() = Z<T>()
// EXIST: "extFun"
@@ -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");
@@ -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");