diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/JavaMemberByKotlinReferenceInplaceRenameHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/JavaMemberByKotlinReferenceInplaceRenameHandler.kt index 254bae191f8..2ad768603ec 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/JavaMemberByKotlinReferenceInplaceRenameHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/JavaMemberByKotlinReferenceInplaceRenameHandler.kt @@ -26,6 +26,7 @@ import com.intellij.refactoring.rename.inplace.MemberInplaceRenameHandler import com.intellij.refactoring.rename.inplace.MemberInplaceRenamer import org.jetbrains.kotlin.asJava.unwrapped import org.jetbrains.kotlin.idea.references.SyntheticPropertyAccessorReference +import org.jetbrains.kotlin.idea.references.mainReference import org.jetbrains.kotlin.psi.KtPsiUtil import org.jetbrains.kotlin.psi.KtSimpleNameExpression import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType @@ -46,6 +47,7 @@ class JavaMemberByKotlinReferenceInplaceRenameHandler : MemberInplaceRenameHandl if (element?.unwrapped !is PsiMember) return false val refExpr = file.findElementAt(editor.caretModel.offset)?.getNonStrictParentOfType() ?: return false if (refExpr.references.any { (it as? SyntheticPropertyAccessorReference)?.resolve() != null }) return false + if (refExpr.mainReference.getImportAlias() != null) return false return true } diff --git a/idea/testData/refactoring/rename/javaClassImportAliasByRef/after/Foo.java b/idea/testData/refactoring/rename/javaClassImportAliasByRef/after/Foo.java new file mode 100644 index 00000000000..576000ea446 --- /dev/null +++ b/idea/testData/refactoring/rename/javaClassImportAliasByRef/after/Foo.java @@ -0,0 +1,3 @@ +class Foo { + +} \ No newline at end of file diff --git a/idea/testData/refactoring/rename/javaClassImportAliasByRef/after/test.kt b/idea/testData/refactoring/rename/javaClassImportAliasByRef/after/test.kt new file mode 100644 index 00000000000..ee28ea0d074 --- /dev/null +++ b/idea/testData/refactoring/rename/javaClassImportAliasByRef/after/test.kt @@ -0,0 +1,5 @@ +import Foo as Baz + +fun test() { + val bar: Baz = Baz() +} \ No newline at end of file diff --git a/idea/testData/refactoring/rename/javaClassImportAliasByRef/before/Foo.java b/idea/testData/refactoring/rename/javaClassImportAliasByRef/before/Foo.java new file mode 100644 index 00000000000..576000ea446 --- /dev/null +++ b/idea/testData/refactoring/rename/javaClassImportAliasByRef/before/Foo.java @@ -0,0 +1,3 @@ +class Foo { + +} \ No newline at end of file diff --git a/idea/testData/refactoring/rename/javaClassImportAliasByRef/before/test.kt b/idea/testData/refactoring/rename/javaClassImportAliasByRef/before/test.kt new file mode 100644 index 00000000000..b14cc5abcfc --- /dev/null +++ b/idea/testData/refactoring/rename/javaClassImportAliasByRef/before/test.kt @@ -0,0 +1,5 @@ +import Foo as Bar + +fun test() { + val bar: /*rename*/Bar = Bar() +} \ No newline at end of file diff --git a/idea/testData/refactoring/rename/javaClassImportAliasByRef/javaClassImportAliasByRef.test b/idea/testData/refactoring/rename/javaClassImportAliasByRef/javaClassImportAliasByRef.test new file mode 100644 index 00000000000..11866799bf6 --- /dev/null +++ b/idea/testData/refactoring/rename/javaClassImportAliasByRef/javaClassImportAliasByRef.test @@ -0,0 +1,5 @@ +{ + "type": "AUTO_DETECT", + "mainFile": "test.kt", + "newName": "Baz" +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java index 8c25c97482f..74556332789 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java @@ -216,6 +216,12 @@ public class RenameTestGenerated extends AbstractRenameTest { doTest(fileName); } + @TestMetadata("javaClassImportAliasByRef/javaClassImportAliasByRef.test") + public void testJavaClassImportAliasByRef_JavaClassImportAliasByRef() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/rename/javaClassImportAliasByRef/javaClassImportAliasByRef.test"); + doTest(fileName); + } + @TestMetadata("labeledAnonymousFunByLabel/labeledLambdaByLabel.test") public void testLabeledAnonymousFunByLabel_LabeledLambdaByLabel() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/rename/labeledAnonymousFunByLabel/labeledLambdaByLabel.test");