diff --git a/idea/idea-completion/testData/basic/common/primitiveCompletion/classExtensionFunctionExplicitReceiver.kt b/idea/idea-completion/testData/basic/common/primitiveCompletion/classExtensionFunctionExplicitReceiver.kt new file mode 100644 index 00000000000..d9baf7bc1aa --- /dev/null +++ b/idea/idea-completion/testData/basic/common/primitiveCompletion/classExtensionFunctionExplicitReceiver.kt @@ -0,0 +1,11 @@ +class A { + fun Int.intExtFun() {} + val Int.intExtVal: Int get() = 0 +} + +fun usage() { + A(). +} + +// ABSENT: intExtFun +// ABSENT: intExtVal diff --git a/idea/idea-completion/testData/basic/common/primitiveCompletion/classFieldsAndFunctions.kt b/idea/idea-completion/testData/basic/common/primitiveCompletion/classFieldsAndFunctions.kt index 43449239e25..213ff68262d 100644 --- a/idea/idea-completion/testData/basic/common/primitiveCompletion/classFieldsAndFunctions.kt +++ b/idea/idea-completion/testData/basic/common/primitiveCompletion/classFieldsAndFunctions.kt @@ -2,6 +2,9 @@ class A { fun aa() {} val aaa = 10 + fun Int.extFun() {} + fun Int.extVal() {} + fun test() { } @@ -9,3 +12,6 @@ class A { // EXIST: aa // EXIST: aaa +// ESIST: test +// ABSENT: extFun +// ABSENT: extVal \ No newline at end of file diff --git a/idea/idea-completion/testData/basic/common/primitiveCompletion/implicitReceiverCompletion.kt b/idea/idea-completion/testData/basic/common/primitiveCompletion/implicitReceiverCompletion.kt index 608839f78ad..1c732122102 100644 --- a/idea/idea-completion/testData/basic/common/primitiveCompletion/implicitReceiverCompletion.kt +++ b/idea/idea-completion/testData/basic/common/primitiveCompletion/implicitReceiverCompletion.kt @@ -5,13 +5,10 @@ class A { fun A.run(action: A.() -> Unit) {} -fun test(a: A) { +fun test() { + val a = A() a.run { - - - // remove this - Unit } } 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 3ee07da46af..09e6920a107 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 @@ -2227,6 +2227,11 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-completion/testData/basic/common/primitiveCompletion"), Pattern.compile("^(.+)\\.kt$"), null, true); } + @TestMetadata("classExtensionFunctionExplicitReceiver.kt") + public void testClassExtensionFunctionExplicitReceiver() throws Exception { + runTest("idea/idea-completion/testData/basic/common/primitiveCompletion/classExtensionFunctionExplicitReceiver.kt"); + } + @TestMetadata("classFieldsAndFunctions.kt") public void testClassFieldsAndFunctions() throws Exception { runTest("idea/idea-completion/testData/basic/common/primitiveCompletion/classFieldsAndFunctions.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 926853c3abd..9864f663159 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 @@ -2227,6 +2227,11 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-completion/testData/basic/common/primitiveCompletion"), Pattern.compile("^(.+)\\.kt$"), null, true); } + @TestMetadata("classExtensionFunctionExplicitReceiver.kt") + public void testClassExtensionFunctionExplicitReceiver() throws Exception { + runTest("idea/idea-completion/testData/basic/common/primitiveCompletion/classExtensionFunctionExplicitReceiver.kt"); + } + @TestMetadata("classFieldsAndFunctions.kt") public void testClassFieldsAndFunctions() throws Exception { runTest("idea/idea-completion/testData/basic/common/primitiveCompletion/classFieldsAndFunctions.kt"); diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/completion/KotlinFirCompletionContributor.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/completion/KotlinFirCompletionContributor.kt index 73b7f13da6f..f176c5cb74e 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/completion/KotlinFirCompletionContributor.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/completion/KotlinFirCompletionContributor.kt @@ -79,7 +79,8 @@ private object KotlinFirCompletionProvider : CompletionProvider