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) {
|
for (ReceiverParameterDescriptor receiverDescriptor : result) {
|
||||||
JetType receiverType = receiverDescriptor.getType();
|
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());
|
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;
|
package org.jetbrains.jet.completion;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
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.JetTestUtils;
|
||||||
import org.jetbrains.jet.test.InnerTestClasses;
|
import org.jetbrains.jet.test.InnerTestClasses;
|
||||||
import org.jetbrains.jet.test.TestMetadata;
|
import org.jetbrains.jet.test.TestMetadata;
|
||||||
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
@@ -614,6 +611,12 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes
|
|||||||
doTest(fileName);
|
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")
|
@TestMetadata("idea/testData/completion/basic/common/namedParameters")
|
||||||
|
|||||||
@@ -17,13 +17,10 @@
|
|||||||
package org.jetbrains.jet.completion;
|
package org.jetbrains.jet.completion;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
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.JetTestUtils;
|
||||||
import org.jetbrains.jet.test.InnerTestClasses;
|
import org.jetbrains.jet.test.InnerTestClasses;
|
||||||
import org.jetbrains.jet.test.TestMetadata;
|
import org.jetbrains.jet.test.TestMetadata;
|
||||||
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
@@ -614,6 +611,12 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT
|
|||||||
doTest(fileName);
|
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")
|
@TestMetadata("idea/testData/completion/basic/common/namedParameters")
|
||||||
|
|||||||
Reference in New Issue
Block a user