diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteReferenceProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteReferenceProcessor.kt index 776115c3657..56ef519fcb8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteReferenceProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteReferenceProcessor.kt @@ -56,6 +56,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.isExtension import org.jetbrains.kotlin.resolve.scopes.JetScope import org.jetbrains.kotlin.types.ErrorUtils import org.jetbrains.kotlin.utils.addIfNotNull +import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull import java.awt.datatransfer.Transferable import java.awt.datatransfer.UnsupportedFlavorException import java.io.IOException @@ -194,7 +195,7 @@ public class KotlinCopyPasteReferenceProcessor() : CopyPastePostProcessor() - return descriptors.singleOrNull() //TODO: not correct + .firstIsInstanceOrNull() } private fun showRestoreReferencesDialog(project: Project, referencesToRestore: List): Collection { diff --git a/idea/testData/copyPaste/imports/OverloadedExtensionFunction.dependency.kt b/idea/testData/copyPaste/imports/OverloadedExtensionFunction.dependency.kt new file mode 100644 index 00000000000..26d1b5d0153 --- /dev/null +++ b/idea/testData/copyPaste/imports/OverloadedExtensionFunction.dependency.kt @@ -0,0 +1,4 @@ +package dependency + +fun String.extensionFun(){} +fun Char.extensionFun(){} diff --git a/idea/testData/copyPaste/imports/OverloadedExtensionFunction.expected.kt b/idea/testData/copyPaste/imports/OverloadedExtensionFunction.expected.kt new file mode 100644 index 00000000000..fb90b37e7d8 --- /dev/null +++ b/idea/testData/copyPaste/imports/OverloadedExtensionFunction.expected.kt @@ -0,0 +1,3 @@ +import dependency.extensionFun + +val v = "".extensionFun() \ No newline at end of file diff --git a/idea/testData/copyPaste/imports/OverloadedExtensionFunction.expected.names b/idea/testData/copyPaste/imports/OverloadedExtensionFunction.expected.names new file mode 100644 index 00000000000..e733e9a304a --- /dev/null +++ b/idea/testData/copyPaste/imports/OverloadedExtensionFunction.expected.names @@ -0,0 +1 @@ +dependency.extensionFun diff --git a/idea/testData/copyPaste/imports/OverloadedExtensionFunction.kt b/idea/testData/copyPaste/imports/OverloadedExtensionFunction.kt new file mode 100644 index 00000000000..ee11cf1b4d2 --- /dev/null +++ b/idea/testData/copyPaste/imports/OverloadedExtensionFunction.kt @@ -0,0 +1,6 @@ +// RUNTIME +import dependency.* + +fun foo() { + "".extensionFun() +} \ No newline at end of file diff --git a/idea/testData/copyPaste/imports/OverloadedExtensionFunction.to.kt b/idea/testData/copyPaste/imports/OverloadedExtensionFunction.to.kt new file mode 100644 index 00000000000..afac2c5f89b --- /dev/null +++ b/idea/testData/copyPaste/imports/OverloadedExtensionFunction.to.kt @@ -0,0 +1 @@ +val v = \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InsertImportOnPasteTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InsertImportOnPasteTestGenerated.java index e60ddf01c53..e6af1ee18a8 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InsertImportOnPasteTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InsertImportOnPasteTestGenerated.java @@ -306,6 +306,12 @@ public class InsertImportOnPasteTestGenerated extends AbstractInsertImportOnPast doTestCopy(fileName); } + @TestMetadata("OverloadedExtensionFunction.kt") + public void testOverloadedExtensionFunction() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/copyPaste/imports/OverloadedExtensionFunction.kt"); + doTestCopy(fileName); + } + @TestMetadata("PackageView.kt") public void testPackageView() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/copyPaste/imports/PackageView.kt"); @@ -633,6 +639,12 @@ public class InsertImportOnPasteTestGenerated extends AbstractInsertImportOnPast doTestCut(fileName); } + @TestMetadata("OverloadedExtensionFunction.kt") + public void testOverloadedExtensionFunction() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/copyPaste/imports/OverloadedExtensionFunction.kt"); + doTestCut(fileName); + } + @TestMetadata("PackageView.kt") public void testPackageView() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/copyPaste/imports/PackageView.kt");