From e88f1467eb4ecbd0c21b545852782e2e4fc7d82d Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Tue, 6 Feb 2018 19:22:46 +0300 Subject: [PATCH] Rename: Add quotes to declaration name if necessary #KT-22708 Fixed --- .../src/org/jetbrains/kotlin/psi/KtNamedDeclarationStub.java | 3 ++- idea/testData/refactoring/rename/inplace/AddQuotes.kt | 5 +++++ idea/testData/refactoring/rename/inplace/AddQuotes.kt.after | 5 +++++ .../jetbrains/kotlin/idea/refactoring/InplaceRenameTest.kt | 4 ++++ 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 idea/testData/refactoring/rename/inplace/AddQuotes.kt create mode 100644 idea/testData/refactoring/rename/inplace/AddQuotes.kt.after diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtNamedDeclarationStub.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtNamedDeclarationStub.java index 81d48c9e434..b2ca362a2ba 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtNamedDeclarationStub.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtNamedDeclarationStub.java @@ -104,7 +104,8 @@ abstract class KtNamedDeclarationStub> extends } } - PsiElement newIdentifier = KtPsiFactory(this).createNameIdentifierIfPossible(name); + PsiElement newIdentifier = + KtPsiFactory(this).createNameIdentifierIfPossible(KtPsiUtilKt.quoteIfNeeded(name)); if (newIdentifier != null) { KtPsiUtilKt.astReplace(identifier, newIdentifier); } diff --git a/idea/testData/refactoring/rename/inplace/AddQuotes.kt b/idea/testData/refactoring/rename/inplace/AddQuotes.kt new file mode 100644 index 00000000000..5553423ee6a --- /dev/null +++ b/idea/testData/refactoring/rename/inplace/AddQuotes.kt @@ -0,0 +1,5 @@ +fun foo() {} + +fun main(args: Array) { + foo() +} \ No newline at end of file diff --git a/idea/testData/refactoring/rename/inplace/AddQuotes.kt.after b/idea/testData/refactoring/rename/inplace/AddQuotes.kt.after new file mode 100644 index 00000000000..c2b3a9ef65d --- /dev/null +++ b/idea/testData/refactoring/rename/inplace/AddQuotes.kt.after @@ -0,0 +1,5 @@ +fun `is`() {} + +fun main(args: Array) { + `is`() +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/InplaceRenameTest.kt b/idea/tests/org/jetbrains/kotlin/idea/refactoring/InplaceRenameTest.kt index 4a4c4f06820..dbfede78f5d 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/InplaceRenameTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/InplaceRenameTest.kt @@ -110,6 +110,10 @@ class InplaceRenameTest : LightPlatformCodeInsightTestCase() { doTestMemberInplaceRename("plus") } + fun testAddQuotes() { + doTestMemberInplaceRename("is") + } + private fun doTestImplicitLambdaParameter(newName: String) { configureByFile(getTestName(false) + ".kt")