Filtered out incorrect suggestion of extension methods in smart completion

This commit is contained in:
Valentin Kipyatkov
2014-09-17 14:48:57 +04:00
committed by valentin
parent f43a9968ba
commit 427b3c80bc
5 changed files with 31 additions and 8 deletions
@@ -92,7 +92,9 @@ class StaticMembers(val bindingContext: BindingContext, val resolveSession: Reso
val classObject = classDescriptor.getClassObjectDescriptor()
if (classObject != null) {
classObject.getDefaultType().getMemberScope().getAllDescriptors().forEach(::processMember)
classObject.getDefaultType().getMemberScope().getAllDescriptors()
.filter { it !is CallableDescriptor || it.getReceiverParameter() == null }
.forEach(::processMember)
}
var members = classDescriptor.getDefaultType().getMemberScope().getAllDescriptors()
@@ -0,0 +1,13 @@
class X {
class object {
fun String.f(): X = X()
fun g(): X = X()
}
}
fun foo(): X {
return <caret>
}
// ABSENT: X.f
// EXIST: X.g
@@ -17,10 +17,13 @@
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.junit.runner.RunWith;
import org.jetbrains.jet.JUnit3RunnerWithInners;
import java.io.File;
import java.util.regex.Pattern;
@@ -17,10 +17,13 @@
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.junit.runner.RunWith;
import org.jetbrains.jet.JUnit3RunnerWithInners;
import java.io.File;
import java.util.regex.Pattern;
@@ -17,13 +17,9 @@
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;
@@ -446,6 +442,12 @@ public class JvmSmartCompletionTestGenerated extends AbstractJvmSmartCompletionT
doTest(fileName);
}
@TestMetadata("NoExtensionMethodFromClassObject.kt")
public void testNoExtensionMethodFromClassObject() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/smart/NoExtensionMethodFromClassObject.kt");
doTest(fileName);
}
@TestMetadata("NoFunctionReferenceAfterQualifier.kt")
public void testNoFunctionReferenceAfterQualifier() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/smart/NoFunctionReferenceAfterQualifier.kt");