From 5ba0910bee1e6a7c5e42d1eda6f43cde7692b02b Mon Sep 17 00:00:00 2001 From: Bart van Helvert Date: Fri, 22 Mar 2024 16:26:33 +0100 Subject: [PATCH] [kotlin] Fix package quotations in move refactoring GitOrigin-RevId: f886c7212f4ef4a631375703b9e490dcd3e25e83 --- .../idea/k2/refactoring/K2ReferenceMutateService.kt | 8 +++----- .../kotlin/idea/k2/refactoring/move/processor/moveUtil.kt | 3 ++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/K2ReferenceMutateService.kt b/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/K2ReferenceMutateService.kt index 8e31f2168b96..d6ba0376f5f4 100644 --- a/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/K2ReferenceMutateService.kt +++ b/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/K2ReferenceMutateService.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.idea.base.codeInsight.KotlinNameSuggester import org.jetbrains.kotlin.idea.base.psi.imports.addImport import org.jetbrains.kotlin.idea.base.psi.kotlinFqName import org.jetbrains.kotlin.idea.base.psi.replaced +import org.jetbrains.kotlin.idea.base.util.quoteIfNeeded import org.jetbrains.kotlin.idea.kdoc.KDocElementFactory import org.jetbrains.kotlin.idea.refactoring.rename.KtReferenceMutateServiceBase import org.jetbrains.kotlin.idea.references.KDocReference @@ -28,10 +29,7 @@ import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.SpecialNames import org.jetbrains.kotlin.psi.* -import org.jetbrains.kotlin.psi.psiUtil.getPossiblyQualifiedCallExpression -import org.jetbrains.kotlin.psi.psiUtil.getQualifiedElementOrCallableRef -import org.jetbrains.kotlin.psi.psiUtil.isExtensionDeclaration -import org.jetbrains.kotlin.psi.psiUtil.isTopLevelKtOrJavaMember +import org.jetbrains.kotlin.psi.psiUtil.* /** * At the moment, this implementation of [org.jetbrains.kotlin.idea.references.KtReferenceMutateService] is not able to do some of the @@ -168,7 +166,7 @@ internal class K2ReferenceMutateService : KtReferenceMutateServiceBase() { private fun KtExpression.replaceWithQualified(fqName: FqName, selectorExpression: KtExpression): KtExpression { val parentFqName = fqName.parent() if (parentFqName.isRoot) return replaced(selectorExpression) - val packageName = fqName.parent().asString() + val packageName = fqName.parent().quoteIfNeeded().asString() val newQualifiedExpression = KtPsiFactory(project).createExpression("$packageName.${selectorExpression.text}") return replaced(newQualifiedExpression) } diff --git a/plugins/kotlin/refactorings/kotlin.refactorings.move.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/move/processor/moveUtil.kt b/plugins/kotlin/refactorings/kotlin.refactorings.move.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/move/processor/moveUtil.kt index ed722362ac6f..7e29cdce79b5 100644 --- a/plugins/kotlin/refactorings/kotlin.refactorings.move.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/move/processor/moveUtil.kt +++ b/plugins/kotlin/refactorings/kotlin.refactorings.move.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/move/processor/moveUtil.kt @@ -6,6 +6,7 @@ import com.intellij.psi.JavaDirectoryService import com.intellij.psi.PsiDirectory import com.intellij.refactoring.move.MoveMultipleElementsViewDescriptor import org.jetbrains.kotlin.idea.base.psi.kotlinFqName +import org.jetbrains.kotlin.idea.base.util.quoteIfNeeded import org.jetbrains.kotlin.idea.k2.refactoring.move.descriptor.K2ChangePackageDescriptor import org.jetbrains.kotlin.idea.k2.refactoring.move.descriptor.K2MoveDescriptor import org.jetbrains.kotlin.name.FqName @@ -33,7 +34,7 @@ internal fun KtFile.updatePackageDirective(pkgName: FqName) { if (pkgName.isRoot) { packageDirective?.delete() } else { - val newPackageDirective = KtPsiFactory(project).createPackageDirective(pkgName) + val newPackageDirective = KtPsiFactory(project).createPackageDirective(pkgName.quoteIfNeeded()) packageDirective?.replace(newPackageDirective) } }