From 48d5ff6111be076fade4f163762a28a47c4e54a7 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Wed, 27 Mar 2024 21:27:17 +0100 Subject: [PATCH] [kotlin] k2 rename: don't try to qualify local properties to resolve conflicts ^KTIJ-28584 fixed GitOrigin-RevId: bf6e78f41797427bd740cd978dd750d3ea76007b --- .../refactoring/rename/InplaceRenameTestGenerated.java | 5 +++++ .../refactoring/rename/inplace/HidingPropertyByLocal.kt | 9 +++++++++ .../rename/inplace/HidingPropertyByLocal.kt.after | 9 +++++++++ .../idea/k2/refactoring/rename/renameConflictUtils.kt | 4 ++-- .../refactoring/rename/K2InplaceRenameTestGenerated.java | 5 +++++ 5 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 plugins/kotlin/idea/tests/testData/refactoring/rename/inplace/HidingPropertyByLocal.kt create mode 100644 plugins/kotlin/idea/tests/testData/refactoring/rename/inplace/HidingPropertyByLocal.kt.after diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/refactoring/rename/InplaceRenameTestGenerated.java b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/refactoring/rename/InplaceRenameTestGenerated.java index 309578ac0aae..50c52106cf56 100644 --- a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/refactoring/rename/InplaceRenameTestGenerated.java +++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/refactoring/rename/InplaceRenameTestGenerated.java @@ -388,6 +388,11 @@ public class InplaceRenameTestGenerated extends AbstractInplaceRenameTest { runTest("testData/refactoring/rename/inplace/HidingParameterByLocal.kt"); } + @TestMetadata("HidingPropertyByLocal.kt") + public void testHidingPropertyByLocal() throws Exception { + runTest("testData/refactoring/rename/inplace/HidingPropertyByLocal.kt"); + } + @TestMetadata("HidingPropertyBySetterParameter.kt") public void testHidingPropertyBySetterParameter() throws Exception { runTest("testData/refactoring/rename/inplace/HidingPropertyBySetterParameter.kt"); diff --git a/plugins/kotlin/idea/tests/testData/refactoring/rename/inplace/HidingPropertyByLocal.kt b/plugins/kotlin/idea/tests/testData/refactoring/rename/inplace/HidingPropertyByLocal.kt new file mode 100644 index 000000000000..b41fad3e3ed9 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/refactoring/rename/inplace/HidingPropertyByLocal.kt @@ -0,0 +1,9 @@ +// NEW_NAME: b +// RENAME: member +package rename + +val a = "" +fun m() { + val b = "" + val c = a + b +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/refactoring/rename/inplace/HidingPropertyByLocal.kt.after b/plugins/kotlin/idea/tests/testData/refactoring/rename/inplace/HidingPropertyByLocal.kt.after new file mode 100644 index 000000000000..c35485d13846 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/refactoring/rename/inplace/HidingPropertyByLocal.kt.after @@ -0,0 +1,9 @@ +// NEW_NAME: b +// RENAME: member +package rename + +val b = "" +fun m() { + val b = "" + val c = rename.b + b +} \ No newline at end of file diff --git a/plugins/kotlin/refactorings/rename.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/rename/renameConflictUtils.kt b/plugins/kotlin/refactorings/rename.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/rename/renameConflictUtils.kt index 081679be00b2..63dbfcbd7d55 100644 --- a/plugins/kotlin/refactorings/rename.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/rename/renameConflictUtils.kt +++ b/plugins/kotlin/refactorings/rename.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/rename/renameConflictUtils.kt @@ -309,9 +309,9 @@ private fun createQualifiedExpression(callExpression: KtExpression, newName: Str val containerFQN = if (containingSymbol is KtClassOrObjectSymbol) { containingSymbol.classIdIfNonLocal?.asSingleFqName()?.parent() - } else { + } else if (containingSymbol == null) { (symbol?.psi as? KtElement)?.containingKtFile?.packageFqName - } + } else null containerFQN?.asString()?.takeIf { it.isNotEmpty() } } } ?: return null diff --git a/plugins/kotlin/refactorings/rename.k2/test/org/jetbrains/kotlin/idea/k2/refactoring/rename/K2InplaceRenameTestGenerated.java b/plugins/kotlin/refactorings/rename.k2/test/org/jetbrains/kotlin/idea/k2/refactoring/rename/K2InplaceRenameTestGenerated.java index 55380508e9e9..3866a50a790a 100644 --- a/plugins/kotlin/refactorings/rename.k2/test/org/jetbrains/kotlin/idea/k2/refactoring/rename/K2InplaceRenameTestGenerated.java +++ b/plugins/kotlin/refactorings/rename.k2/test/org/jetbrains/kotlin/idea/k2/refactoring/rename/K2InplaceRenameTestGenerated.java @@ -388,6 +388,11 @@ public class K2InplaceRenameTestGenerated extends AbstractK2InplaceRenameTest { runTest("../../idea/tests/testData/refactoring/rename/inplace/HidingParameterByLocal.kt"); } + @TestMetadata("HidingPropertyByLocal.kt") + public void testHidingPropertyByLocal() throws Exception { + runTest("../../idea/tests/testData/refactoring/rename/inplace/HidingPropertyByLocal.kt"); + } + @TestMetadata("HidingPropertyBySetterParameter.kt") public void testHidingPropertyBySetterParameter() throws Exception { runTest("../../idea/tests/testData/refactoring/rename/inplace/HidingPropertyBySetterParameter.kt");