From b058dc12df624ad4c0f5e791c617289eca57272a Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Fri, 24 Apr 2020 14:18:53 +0700 Subject: [PATCH] packageUtils: cleanup code --- .../src/org/jetbrains/kotlin/idea/core/packageUtils.kt | 10 +++++----- .../createClass/CreateClassFromUsageFix.kt | 3 +-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/packageUtils.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/packageUtils.kt index 965a31756d2..7d51bbb24f5 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/packageUtils.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/packageUtils.kt @@ -38,17 +38,17 @@ import java.nio.file.Paths fun PsiDirectory.getPackage(): PsiPackage? = JavaDirectoryService.getInstance()!!.getPackage(this) -fun PsiFile.getFqNameByDirectory(): FqName { - val qualifiedNameByDirectory = parent?.getPackage()?.qualifiedName - return qualifiedNameByDirectory?.let(::FqName) ?: FqName.ROOT -} +private fun PsiDirectory.getNonRootFqNameOrNull(): FqName? = getPackage()?.qualifiedName?.let(::FqName) + +fun PsiFile.getFqNameByDirectory(): FqName = parent?.getNonRootFqNameOrNull() ?: FqName.ROOT fun PsiDirectory.getFqNameWithImplicitPrefix(): FqName? { - val packageFqName = getPackage()?.qualifiedName?.let(::FqName) ?: return null + val packageFqName = getNonRootFqNameOrNull() ?: return null sourceRoot?.takeIf { !it.hasExplicitPackagePrefix(project) }?.let { sourceRoot -> val implicitPrefix = PerModulePackageCacheService.getInstance(project).getImplicitPackagePrefix(sourceRoot) return FqName.fromSegments((implicitPrefix.pathSegments() + packageFqName.pathSegments()).map { it.asString() }) } + return packageFqName } diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/CreateClassFromUsageFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/CreateClassFromUsageFix.kt index 3537e7f5325..4abb8335f03 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/CreateClassFromUsageFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/CreateClassFromUsageFix.kt @@ -19,7 +19,6 @@ import org.jetbrains.annotations.NonNls import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.idea.core.getFqNameWithImplicitPrefix -import org.jetbrains.kotlin.idea.core.quoteIfNeeded import org.jetbrains.kotlin.idea.core.util.CodeInsightUtils import org.jetbrains.kotlin.idea.quickfix.IntentionActionPriority import org.jetbrains.kotlin.idea.quickfix.createFromUsage.CreateFromUsageFixBase @@ -198,7 +197,7 @@ open class CreateClassFromUsageFix protected constructor( val targetDirectory = dialog.targetDirectory ?: return val fileName = "$className.${KotlinFileType.EXTENSION}" - val packageFqName = targetDirectory.getFqNameWithImplicitPrefix()?.quoteIfNeeded() + val packageFqName = targetDirectory.getFqNameWithImplicitPrefix() file.project.executeWriteCommand(text) { val targetFile = getOrCreateKotlinFile(fileName, targetDirectory, (packageFqName ?: defaultPackageFqName).asString())