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 4e9c452d5ca..a8437b57bfd 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 @@ -39,8 +39,8 @@ fun PsiFile.getFqNameByDirectory(): FqName { return qualifiedNameByDirectory?.let(::FqName) ?: FqName.ROOT } -fun PsiDirectory.getFqNameWithImplicitPrefix(): FqName { - val packageFqName = getPackage()?.qualifiedName?.let(::FqName) ?: FqName.ROOT +fun PsiDirectory.getFqNameWithImplicitPrefix(): FqName? { + val packageFqName = getPackage()?.qualifiedName?.let(::FqName) ?: 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() }) @@ -48,6 +48,8 @@ fun PsiDirectory.getFqNameWithImplicitPrefix(): FqName { return packageFqName } +fun PsiDirectory.getFqNameWithImplicitPrefixOrRoot(): FqName = getFqNameWithImplicitPrefix() ?: FqName.ROOT + private fun VirtualFile.hasExplicitPackagePrefix(project: Project): Boolean = toPsiDirectory(project)?.getPackage()?.qualifiedName?.isNotEmpty() == true diff --git a/idea/src/org/jetbrains/kotlin/idea/actions/KotlinDefaultTemplatePropertiesProvider.kt b/idea/src/org/jetbrains/kotlin/idea/actions/KotlinDefaultTemplatePropertiesProvider.kt index 8871c7bece6..8fe82109840 100644 --- a/idea/src/org/jetbrains/kotlin/idea/actions/KotlinDefaultTemplatePropertiesProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/actions/KotlinDefaultTemplatePropertiesProvider.kt @@ -8,14 +8,14 @@ package org.jetbrains.kotlin.idea.actions import com.intellij.ide.fileTemplates.DefaultTemplatePropertiesProvider import com.intellij.ide.fileTemplates.FileTemplate import com.intellij.psi.PsiDirectory -import org.jetbrains.kotlin.idea.core.getFqNameWithImplicitPrefix +import org.jetbrains.kotlin.idea.core.getFqNameWithImplicitPrefixOrRoot import java.util.* class KotlinDefaultTemplatePropertiesProvider : DefaultTemplatePropertiesProvider { override fun fillProperties(directory: PsiDirectory, props: Properties) { props.setProperty( FileTemplate.ATTRIBUTE_PACKAGE_NAME, - directory.getFqNameWithImplicitPrefix().asString() + directory.getFqNameWithImplicitPrefixOrRoot().asString() ) } } 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 583d7e23430..c43147b40d6 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 @@ -26,7 +26,7 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.ui.DialogWrapper import com.intellij.psi.* import org.jetbrains.kotlin.idea.KotlinFileType -import org.jetbrains.kotlin.idea.core.getPackage +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 @@ -44,7 +44,6 @@ import org.jetbrains.kotlin.idea.util.application.executeCommand import org.jetbrains.kotlin.idea.util.application.executeWriteCommand import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.idea.util.projectStructure.module -import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.allChildren @@ -201,7 +200,7 @@ open class CreateClassFromUsageFix protected constructor( val targetDirectory = dialog.targetDirectory ?: return val fileName = "$className.${KotlinFileType.EXTENSION}" - val packageFqName = targetDirectory.getPackage()?.qualifiedName?.let { FqName(it).quoteIfNeeded() } + val packageFqName = targetDirectory.getFqNameWithImplicitPrefix()?.quoteIfNeeded() file.project.executeWriteCommand(text) { val targetFile = getOrCreateKotlinFile(fileName, targetDirectory, (packageFqName ?: defaultPackageFqName).asString()) diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/ExpectActualUtils.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/ExpectActualUtils.kt index b4e7a540d5d..6303d55de33 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/ExpectActualUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/ExpectActualUtils.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.idea.caches.project.implementedDescriptors import org.jetbrains.kotlin.idea.caches.resolve.analyzeWithContent import org.jetbrains.kotlin.idea.core.KotlinNameSuggester import org.jetbrains.kotlin.idea.core.findOrCreateDirectoryForPackage -import org.jetbrains.kotlin.idea.core.getPackage +import org.jetbrains.kotlin.idea.core.getFqNameWithImplicitPrefix import org.jetbrains.kotlin.idea.core.overrideImplement.MemberGenerateMode import org.jetbrains.kotlin.idea.core.overrideImplement.OverrideMemberChooserObject.BodyType.EMPTY_OR_TEMPLATE import org.jetbrains.kotlin.idea.core.overrideImplement.OverrideMemberChooserObject.BodyType.NO_BODY @@ -31,7 +31,7 @@ import org.jetbrains.kotlin.idea.util.module import org.jetbrains.kotlin.js.descriptorUtils.getJetTypeFqName import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.platform.impl.isCommon +import org.jetbrains.kotlin.platform.isCommon import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.hasActualModifier import org.jetbrains.kotlin.resolve.BindingContext @@ -40,7 +40,6 @@ import org.jetbrains.kotlin.resolve.checkers.ExpectedActualDeclarationChecker import org.jetbrains.kotlin.resolve.checkers.ExperimentalUsageChecker import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.descriptorUtil.module -import org.jetbrains.kotlin.platform.isCommon import org.jetbrains.kotlin.types.AbbreviatedType import org.jetbrains.kotlin.types.KotlinType @@ -57,7 +56,7 @@ fun createFileForDeclaration(module: Module, declaration: KtNamedDeclaration): K val fileNameWithExtension = "$fileName.kt" val existingFile = directory.findFile(fileNameWithExtension) val packageName = - if (packageDirective?.packageNameExpression == null) directory.getPackage()?.qualifiedName + if (packageDirective?.packageNameExpression == null) directory.getFqNameWithImplicitPrefix()?.asString() else packageDirective.fqName.asString() if (existingFile is KtFile) { val existingPackageDirective = existingFile.packageDirective diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/copy/CopyKotlinDeclarationsHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/copy/CopyKotlinDeclarationsHandler.kt index 425713b36f7..7437ec5950e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/copy/CopyKotlinDeclarationsHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/copy/CopyKotlinDeclarationsHandler.kt @@ -28,8 +28,8 @@ import com.intellij.util.IncorrectOperationException import com.intellij.util.containers.MultiMap import org.jetbrains.annotations.TestOnly import org.jetbrains.kotlin.idea.codeInsight.shorten.performDelayedRefactoringRequests -import org.jetbrains.kotlin.idea.core.getPackage -import org.jetbrains.kotlin.idea.core.packageMatchesDirectory +import org.jetbrains.kotlin.idea.core.getFqNameWithImplicitPrefix +import org.jetbrains.kotlin.idea.core.packageMatchesDirectoryOrImplicit import org.jetbrains.kotlin.idea.core.util.toPsiDirectory import org.jetbrains.kotlin.idea.refactoring.checkConflictsInteractively import org.jetbrains.kotlin.idea.refactoring.createKotlinFile @@ -244,9 +244,11 @@ class CopyKotlinDeclarationsHandler : CopyHandlerDelegateBase() { val copiedDeclaration: KtNamedDeclaration? if (fileToCopy != null) { targetFile = runWriteAction { + // implicit package prefix may change after copy + val targetDirectoryFqName = targetDirectory.getFqNameWithImplicitPrefix() val copiedFile = targetDirectory.copyFileFrom(targetFileName, fileToCopy) - if (copiedFile is KtFile && fileToCopy.packageMatchesDirectory()) { - targetDirectory.getPackage()?.qualifiedName?.let { copiedFile.packageFqName = FqName(it) } + if (copiedFile is KtFile && fileToCopy.packageMatchesDirectoryOrImplicit()) { + targetDirectoryFqName?.let { copiedFile.packageFqName = it } } performDelayedRefactoringRequests(project) copiedFile diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractClass/ExtractSuperRefactoring.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractClass/ExtractSuperRefactoring.kt index 1415661f961..d638f98b80d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractClass/ExtractSuperRefactoring.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractClass/ExtractSuperRefactoring.kt @@ -38,10 +38,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade import org.jetbrains.kotlin.idea.caches.resolve.unsafeResolveToDescriptor import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde import org.jetbrains.kotlin.idea.codeInsight.shorten.performDelayedRefactoringRequests -import org.jetbrains.kotlin.idea.core.ShortenReferences -import org.jetbrains.kotlin.idea.core.copied -import org.jetbrains.kotlin.idea.core.getPackage -import org.jetbrains.kotlin.idea.core.replaced +import org.jetbrains.kotlin.idea.core.* import org.jetbrains.kotlin.idea.core.util.runSynchronouslyWithProgress import org.jetbrains.kotlin.idea.refactoring.introduce.insertDeclaration import org.jetbrains.kotlin.idea.refactoring.memberInfo.KotlinMemberInfo @@ -242,7 +239,7 @@ class ExtractSuperRefactoring( newClass.addAfter(psiFactory.createTypeParameterList(typeParameterListText), newClass.nameIdentifier) } - val targetPackageFqName = (targetParent as? PsiDirectory)?.getPackage()?.qualifiedName + val targetPackageFqName = (targetParent as? PsiDirectory)?.getFqNameWithImplicitPrefix()?.asString() val superTypeText = buildString { if (!targetPackageFqName.isNullOrEmpty()) { diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt index 45f40a84989..60a1b5024a3 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt @@ -32,7 +32,6 @@ import com.intellij.openapi.ui.popup.* import com.intellij.openapi.util.Pass import com.intellij.openapi.util.TextRange import com.intellij.openapi.util.text.StringUtil -import com.intellij.openapi.vfs.LocalFileSystem import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.* import com.intellij.psi.impl.file.PsiPackageBase @@ -71,8 +70,6 @@ import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaMemberDescriptor import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde import org.jetbrains.kotlin.idea.core.* import org.jetbrains.kotlin.idea.core.util.showYesNoCancelDialog -import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices -import org.jetbrains.kotlin.idea.j2k.JavaToKotlinConverterFactory import org.jetbrains.kotlin.idea.project.languageVersionSettings import org.jetbrains.kotlin.idea.refactoring.changeSignature.KotlinValVar import org.jetbrains.kotlin.idea.refactoring.changeSignature.toValVar @@ -83,7 +80,6 @@ import org.jetbrains.kotlin.idea.util.ProjectRootsUtil import org.jetbrains.kotlin.idea.util.actualsForExpected import org.jetbrains.kotlin.idea.util.liftToExpected import org.jetbrains.kotlin.idea.util.string.collapseSpaces -import org.jetbrains.kotlin.j2k.ConverterSettings import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqNameUnsafe @@ -95,7 +91,6 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getCallWithAssert import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.resolve.source.getPsi -import java.io.File import java.lang.annotation.Retention import java.util.* import javax.swing.Icon @@ -111,14 +106,14 @@ const val CHECK_SUPER_METHODS_YES_NO_DIALOG = "CHECK_SUPER_METHODS_YES_NO_DIALOG fun getOrCreateKotlinFile( fileName: String, targetDir: PsiDirectory, - packageName: String? = targetDir.getPackage()?.qualifiedName + packageName: String? = targetDir.getFqNameWithImplicitPrefix()?.asString() ): KtFile? = (targetDir.findFile(fileName) ?: createKotlinFile(fileName, targetDir, packageName)) as? KtFile fun createKotlinFile( fileName: String, targetDir: PsiDirectory, - packageName: String? = targetDir.getPackage()?.qualifiedName + packageName: String? = targetDir.getFqNameWithImplicitPrefix()?.asString() ): KtFile { targetDir.checkCreateFile(fileName) val packageFqName = packageName?.let(::FqName) ?: FqName.ROOT diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/ui/KotlinAwareMoveFilesOrDirectoriesDialog.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/ui/KotlinAwareMoveFilesOrDirectoriesDialog.kt index 0843734aa6d..fd40e82dadd 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/ui/KotlinAwareMoveFilesOrDirectoriesDialog.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/ui/KotlinAwareMoveFilesOrDirectoriesDialog.kt @@ -31,7 +31,7 @@ import com.intellij.ui.components.JBLabelDecorator import com.intellij.util.IncorrectOperationException import com.intellij.util.ui.FormBuilder import com.intellij.util.ui.UIUtil -import org.jetbrains.kotlin.idea.core.packageMatchesDirectory +import org.jetbrains.kotlin.idea.core.packageMatchesDirectoryOrImplicit import org.jetbrains.kotlin.idea.core.util.onTextChange import org.jetbrains.kotlin.idea.refactoring.isInJavaSourceRoot import org.jetbrains.kotlin.idea.util.application.executeCommand @@ -138,7 +138,7 @@ class KotlinAwareMoveFilesOrDirectoriesDialog( } val singleFile = jetFiles.singleOrNull() - isSelected = singleFile == null || singleFile.packageMatchesDirectory() + isSelected = singleFile == null || singleFile.packageMatchesDirectoryOrImplicit() text = "Update package directive (Kotlin files)" } } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/ui/MoveKotlinTopLevelDeclarationsDialog.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/ui/MoveKotlinTopLevelDeclarationsDialog.java index 25f00633348..5e5cc400876 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/ui/MoveKotlinTopLevelDeclarationsDialog.java +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/ui/MoveKotlinTopLevelDeclarationsDialog.java @@ -158,7 +158,7 @@ public class MoveKotlinTopLevelDeclarationsDialog extends RefactoringDialog { private static boolean arePackagesAndDirectoryMatched(List sourceFiles) { for (KtFile sourceFile : sourceFiles) { - if (!PackageUtilsKt.packageMatchesDirectory(sourceFile)) return false; + if (!PackageUtilsKt.packageMatchesDirectoryOrImplicit(sourceFile)) return false; } return true; } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveFilesOrDirectories/KotlinMoveDirectoryWithClassesHelper.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveFilesOrDirectories/KotlinMoveDirectoryWithClassesHelper.kt index 71b53659470..b9a18d04502 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveFilesOrDirectories/KotlinMoveDirectoryWithClassesHelper.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveFilesOrDirectories/KotlinMoveDirectoryWithClassesHelper.kt @@ -16,6 +16,7 @@ import com.intellij.refactoring.move.moveFilesOrDirectories.MoveFilesOrDirectori import com.intellij.usageView.UsageInfo import com.intellij.util.Function import com.intellij.util.containers.MultiMap +import org.jetbrains.kotlin.idea.core.getFqNameWithImplicitPrefix import org.jetbrains.kotlin.idea.core.getPackage import org.jetbrains.kotlin.idea.core.quoteIfNeeded import org.jetbrains.kotlin.idea.refactoring.invokeOnceOnCommandFinish @@ -103,8 +104,8 @@ class KotlinMoveDirectoryWithClassesHelper : MoveDirectoryWithClassesHelper() { val moveContextMap = getOrCreateMoveContextMap() moveContextMap[file] = MoveContext(moveDestination, moveDeclarationsProcessor) if (moveDeclarationsProcessor != null) { - moveDestination.getPackage()?.let { newPackage -> - file.packageDirective?.fqName = FqName(newPackage.qualifiedName).quoteIfNeeded() + moveDestination.getFqNameWithImplicitPrefix()?.quoteIfNeeded()?.let { + file.packageDirective?.fqName = it } } return true diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveFilesOrDirectories/MoveKotlinFileHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveFilesOrDirectories/MoveKotlinFileHandler.kt index e3cb4567deb..3cbbcf72b5c 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveFilesOrDirectories/MoveKotlinFileHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveFilesOrDirectories/MoveKotlinFileHandler.kt @@ -17,15 +17,14 @@ import com.intellij.refactoring.move.moveFilesOrDirectories.MoveFileHandler import com.intellij.refactoring.move.moveFilesOrDirectories.MoveFilesOrDirectoriesUtil import com.intellij.usageView.UsageInfo import org.jetbrains.kotlin.idea.KotlinLanguage -import org.jetbrains.kotlin.idea.core.getPackage -import org.jetbrains.kotlin.idea.core.packageMatchesDirectory +import org.jetbrains.kotlin.idea.core.getFqNameWithImplicitPrefix +import org.jetbrains.kotlin.idea.core.packageMatchesDirectoryOrImplicit import org.jetbrains.kotlin.idea.core.quoteIfNeeded import org.jetbrains.kotlin.idea.refactoring.hasIdentifiersOnly import org.jetbrains.kotlin.idea.refactoring.move.ContainerChangeInfo import org.jetbrains.kotlin.idea.refactoring.move.ContainerInfo import org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.* import org.jetbrains.kotlin.idea.refactoring.move.updatePackageDirective -import org.jetbrains.kotlin.name.FqNameUnsafe import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.UserDataProperty @@ -44,24 +43,23 @@ class MoveKotlinFileHandler : MoveFileHandler() { } private fun KtFile.getPackageNameInfo(newParent: PsiDirectory?, clearUserData: Boolean): ContainerChangeInfo? { - val shouldUpdatePackageDirective = updatePackageDirective ?: packageMatchesDirectory() + val shouldUpdatePackageDirective = updatePackageDirective ?: packageMatchesDirectoryOrImplicit() updatePackageDirective = if (clearUserData) null else shouldUpdatePackageDirective if (!shouldUpdatePackageDirective) return null val oldPackageName = packageFqName - val newPackage = newParent?.getPackage() ?: return ContainerChangeInfo( + val newPackageName = newParent?.getFqNameWithImplicitPrefix() ?: return ContainerChangeInfo( ContainerInfo.Package(oldPackageName), ContainerInfo.UnknownPackage ) - val newPackageName = FqNameUnsafe(newPackage.qualifiedName) if (oldPackageName.asString() == newPackageName.asString() && ModuleUtilCore.findModuleForPsiElement(this) == ModuleUtilCore.findModuleForPsiElement(newParent) ) return null if (!newPackageName.hasIdentifiersOnly()) return null - return ContainerChangeInfo(ContainerInfo.Package(oldPackageName), ContainerInfo.Package(newPackageName.toSafe())) + return ContainerChangeInfo(ContainerInfo.Package(oldPackageName), ContainerInfo.Package(newPackageName)) } fun initMoveProcessor(psiFile: PsiFile, newParent: PsiDirectory?, withConflicts: Boolean): MoveKotlinDeclarationsProcessor? { diff --git a/idea/testData/refactoring/copy/copyFileFromDefaultPackageWithImpicitPrefix/after/bar/test.kt b/idea/testData/refactoring/copy/copyFileFromDefaultPackageWithImpicitPrefix/after/bar/test.kt new file mode 100644 index 00000000000..3d7c22e2ff4 --- /dev/null +++ b/idea/testData/refactoring/copy/copyFileFromDefaultPackageWithImpicitPrefix/after/bar/test.kt @@ -0,0 +1,8 @@ +package implicit.prefix.bar + +val a = 42 + +// comment + +// some other comment +val s = "" \ No newline at end of file diff --git a/idea/testData/refactoring/copy/copyFileFromDefaultPackageWithImpicitPrefix/after/test.kt b/idea/testData/refactoring/copy/copyFileFromDefaultPackageWithImpicitPrefix/after/test.kt new file mode 100644 index 00000000000..e0a0811846f --- /dev/null +++ b/idea/testData/refactoring/copy/copyFileFromDefaultPackageWithImpicitPrefix/after/test.kt @@ -0,0 +1,8 @@ +package implicit.prefix + +val a = 42 + +// comment + +// some other comment +val s = "" \ No newline at end of file diff --git a/idea/testData/refactoring/copy/copyFileFromDefaultPackageWithImpicitPrefix/before/test.kt b/idea/testData/refactoring/copy/copyFileFromDefaultPackageWithImpicitPrefix/before/test.kt new file mode 100644 index 00000000000..e0a0811846f --- /dev/null +++ b/idea/testData/refactoring/copy/copyFileFromDefaultPackageWithImpicitPrefix/before/test.kt @@ -0,0 +1,8 @@ +package implicit.prefix + +val a = 42 + +// comment + +// some other comment +val s = "" \ No newline at end of file diff --git a/idea/testData/refactoring/copy/copyFileFromDefaultPackageWithImpicitPrefix/copyFileFromDefaultPackageWithImplicitPrefix.test b/idea/testData/refactoring/copy/copyFileFromDefaultPackageWithImpicitPrefix/copyFileFromDefaultPackageWithImplicitPrefix.test new file mode 100644 index 00000000000..a72ed185f0b --- /dev/null +++ b/idea/testData/refactoring/copy/copyFileFromDefaultPackageWithImpicitPrefix/copyFileFromDefaultPackageWithImplicitPrefix.test @@ -0,0 +1,4 @@ +{ + "mainFile": "test.kt", + "targetPackage": "bar" +} diff --git a/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/after/Root.kt b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/after/Root.kt new file mode 100644 index 00000000000..4ab95e8f444 --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/after/Root.kt @@ -0,0 +1 @@ +package implicit.prefix \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/after/source/dummy.txt b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/after/source/dummy.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/after/target/bar.kt b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/after/target/bar.kt new file mode 100644 index 00000000000..8d351abf9e0 --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/after/target/bar.kt @@ -0,0 +1,5 @@ +package implicit.prefix.target + +interface NamedFaceO + +class NamedClassO : NamedFaceO \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/after/target/dummy.txt b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/after/target/dummy.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/after/target/foo.kt b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/after/target/foo.kt new file mode 100644 index 00000000000..0fff2c4f581 --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/after/target/foo.kt @@ -0,0 +1,5 @@ +package implicit.prefix.target + +interface NamedFaceN + +class NamedClassN : NamedFaceN \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/before/Root.kt b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/before/Root.kt new file mode 100644 index 00000000000..4ab95e8f444 --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/before/Root.kt @@ -0,0 +1 @@ +package implicit.prefix \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/before/source/bar.kt b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/before/source/bar.kt new file mode 100644 index 00000000000..e491b23b631 --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/before/source/bar.kt @@ -0,0 +1,5 @@ +package implicit.prefix.source + +interface NamedFaceO + +class NamedClassO : NamedFaceO \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/before/source/dummy.txt b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/before/source/dummy.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/before/source/foo.kt b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/before/source/foo.kt new file mode 100644 index 00000000000..6f62e85848b --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/before/source/foo.kt @@ -0,0 +1,5 @@ +package implicit.prefix.source + +interface NamedFaceN + +class NamedClassN : NamedFaceN \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/before/target/dummy.txt b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/before/target/dummy.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/moveMultipleFilesWithImplicitPrefix.test b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/moveMultipleFilesWithImplicitPrefix.test new file mode 100644 index 00000000000..a5e8bac6110 --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/moveMultipleFilesWithImplicitPrefix.test @@ -0,0 +1,5 @@ +{ + "filesToMove": ["source/foo.kt", "source/bar.kt"], + "type": "MOVE_FILES_WITH_DECLARATIONS", + "targetDirectory": "target" +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/nonCodeUsagesWithQuotedName/after/code/`in`/comments2/MyTest.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/nonCodeUsagesWithQuotedName/after/code/`in`/comments2/MyTest.kt index a9776a8c1f1..1b095306a23 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/nonCodeUsagesWithQuotedName/after/code/`in`/comments2/MyTest.kt +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/nonCodeUsagesWithQuotedName/after/code/`in`/comments2/MyTest.kt @@ -1,3 +1,3 @@ -package code.`in`.comments2 +package code.`in`.comments.code.`in`.comments2 class MyTest \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/copy/CopyTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/copy/CopyTestGenerated.java index 9c6d149e2c9..b92a4119525 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/copy/CopyTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/copy/CopyTestGenerated.java @@ -69,6 +69,11 @@ public class CopyTestGenerated extends AbstractCopyTest { runTest("idea/testData/refactoring/copy/copyFileFromDefaultPackageToDefaultPackage/copyFIleToDefaultPackage.test"); } + @TestMetadata("copyFileFromDefaultPackageWithImpicitPrefix/copyFileFromDefaultPackageWithImplicitPrefix.test") + public void testCopyFileFromDefaultPackageWithImpicitPrefix_CopyFileFromDefaultPackageWithImplicitPrefix() throws Exception { + runTest("idea/testData/refactoring/copy/copyFileFromDefaultPackageWithImpicitPrefix/copyFileFromDefaultPackageWithImplicitPrefix.test"); + } + @TestMetadata("copyFIleRetainContent/copyFIleRetainContent.test") public void testCopyFIleRetainContent_CopyFIleRetainContent() throws Exception { runTest("idea/testData/refactoring/copy/copyFIleRetainContent/copyFIleRetainContent.test"); diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java index 0f14e30f6b1..965c1357784 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java @@ -289,6 +289,11 @@ public class MoveTestGenerated extends AbstractMoveTest { runTest("idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIles/moveMultipleFiles.test"); } + @TestMetadata("kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/moveMultipleFilesWithImplicitPrefix.test") + public void testKotlin_moveFile_moveMultipleFIlesWithImplicitPrefix_MoveMultipleFilesWithImplicitPrefix() throws Exception { + runTest("idea/testData/refactoring/move/kotlin/moveFile/moveMultipleFIlesWithImplicitPrefix/moveMultipleFilesWithImplicitPrefix.test"); + } + @TestMetadata("kotlin/moveFile/packageWithQuotation/moveFileToPackageWithQuotation.test") public void testKotlin_moveFile_packageWithQuotation_MoveFileToPackageWithQuotation() throws Exception { runTest("idea/testData/refactoring/move/kotlin/moveFile/packageWithQuotation/moveFileToPackageWithQuotation.test");