Fixed KT-5795 Do not suggest member extension functions with wrong implicit reciever
#KT-5795 Fixed
This commit is contained in:
committed by
valentin
parent
6ed57f5e7a
commit
34aada75eb
@@ -101,7 +101,12 @@ public final class TipsManager {
|
||||
|
||||
for (ReceiverParameterDescriptor receiverDescriptor : result) {
|
||||
JetType receiverType = receiverDescriptor.getType();
|
||||
descriptorsSet.addAll(receiverType.getMemberScope().getAllDescriptors());
|
||||
for (DeclarationDescriptor member : receiverType.getMemberScope().getAllDescriptors()) {
|
||||
// skip member extension functions&properties
|
||||
if (member instanceof CallableDescriptor && ((CallableDescriptor) member).getReceiverParameter() != null) continue;
|
||||
|
||||
descriptorsSet.add(member);
|
||||
}
|
||||
}
|
||||
|
||||
descriptorsSet.addAll(resolutionScope.getAllDescriptors());
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
class X {
|
||||
fun String.f() {}
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
with (X()) {
|
||||
<caret>
|
||||
}
|
||||
}
|
||||
|
||||
// ABSENT: f
|
||||
@@ -17,13 +17,10 @@
|
||||
package org.jetbrains.jet.completion;
|
||||
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestSuite;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.jetbrains.jet.JetTestUtils;
|
||||
import org.jetbrains.jet.test.InnerTestClasses;
|
||||
import org.jetbrains.jet.test.TestMetadata;
|
||||
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.regex.Pattern;
|
||||
@@ -614,6 +611,12 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("WrongImplicitReceiver.kt")
|
||||
public void testWrongImplicitReceiver() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/extensions/WrongImplicitReceiver.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@TestMetadata("idea/testData/completion/basic/common/namedParameters")
|
||||
|
||||
@@ -17,13 +17,10 @@
|
||||
package org.jetbrains.jet.completion;
|
||||
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestSuite;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.jetbrains.jet.JetTestUtils;
|
||||
import org.jetbrains.jet.test.InnerTestClasses;
|
||||
import org.jetbrains.jet.test.TestMetadata;
|
||||
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.regex.Pattern;
|
||||
@@ -614,6 +611,12 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("WrongImplicitReceiver.kt")
|
||||
public void testWrongImplicitReceiver() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/extensions/WrongImplicitReceiver.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@TestMetadata("idea/testData/completion/basic/common/namedParameters")
|
||||
|
||||
Reference in New Issue
Block a user