diff --git a/idea/resources-en/messages/KotlinBundle.properties b/idea/resources-en/messages/KotlinBundle.properties index 7b7958279b9..533ae28b198 100644 --- a/idea/resources-en/messages/KotlinBundle.properties +++ b/idea/resources-en/messages/KotlinBundle.properties @@ -804,7 +804,6 @@ selected.code.fragment.has.multiple.exit.points=Selected code fragment has multi selected.code.fragment.has.multiple.output.values=Selected code fragment has more than 3 output values: selected.code.fragment.has.output.values.and.exit.points=Selected code fragment has output values as well as alternative exit points setter.of.0.will.become.invisible.after.extraction=Setter of {0} will become invisible after extraction -text.0.1.must.be.moved.with.sealed.parent.class.and.all.its.subclasses={0} ''{1}'' must be moved with sealed parent class and all its subclasses text.0.already.contains.1={0} already contains {1} text.0.already.contains.nested.class.1={0} already contains nested class named {1} text.0.already.declared.in.1={0} is already declared in {1} @@ -946,7 +945,10 @@ text.rename.overloads.to=Rename overloads to: text.rename.parameters.in.hierarchy.to=Rename parameter in hierarchy to: text.rename.parameters.title=Rename Parameters text.rename.warning=Rename warning -text.sealed.class.0.must.be.moved.with.all.its.subclasses=Sealed class ''{0}'' must be moved with all its subclasses + +text.sealed.broken.hierarchy.none.in.target=Sealed hierarchy of ''{0}'' would be split. None of its members reside in the package ''{1}'' of module ''{2}'': {3}. +text.sealed.broken.hierarchy.still.in.source=Sealed hierarchy of ''{0}'' would be split. Package ''{1}'' of module ''{2}'' would still contain its members: {3}. + text.select.target.code.block.file=Select target code block / file text.select.target.code.block=Select target code block text.select.target.file=Select target file diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/moveConflictUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/moveConflictUtils.kt index f1d2678a8fe..fdcf2b8ca05 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/moveConflictUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/moveConflictUtils.kt @@ -15,6 +15,8 @@ import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.* import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.SearchScope +import com.intellij.psi.search.searches.ClassInheritorsSearch +import com.intellij.psi.search.searches.ClassInheritorsSearch.SearchParameters import com.intellij.psi.search.searches.ReferencesSearch import com.intellij.psi.util.PsiTreeUtil import com.intellij.refactoring.RefactoringBundle @@ -23,10 +25,11 @@ import com.intellij.refactoring.util.MoveRenameUsageInfo import com.intellij.refactoring.util.NonCodeUsageInfo import com.intellij.refactoring.util.RefactoringUIUtil import com.intellij.usageView.UsageInfo -import com.intellij.usageView.UsageViewTypeLocation import com.intellij.util.containers.MultiMap import org.jetbrains.kotlin.asJava.namedUnwrappedElement +import org.jetbrains.kotlin.asJava.toLightClass import org.jetbrains.kotlin.asJava.toLightMethods +import org.jetbrains.kotlin.backend.common.serialization.findPackage import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.impl.MutablePackageFragmentDescriptor @@ -37,8 +40,13 @@ import org.jetbrains.kotlin.idea.caches.project.implementedModules import org.jetbrains.kotlin.idea.caches.resolve.* import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaMemberDescriptor import org.jetbrains.kotlin.idea.caches.resolve.util.hasJavaResolutionFacade +import org.jetbrains.kotlin.idea.caches.resolve.util.javaResolutionFacade +import org.jetbrains.kotlin.idea.caches.resolve.util.resolveToDescriptor import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde +import org.jetbrains.kotlin.idea.core.getPackage import org.jetbrains.kotlin.idea.core.isInTestSourceContentKotlinAware +import org.jetbrains.kotlin.idea.core.util.toPsiDirectory +import org.jetbrains.kotlin.idea.core.util.toPsiFile import org.jetbrains.kotlin.idea.imports.importableFqName import org.jetbrains.kotlin.idea.project.TargetPlatformDetector import org.jetbrains.kotlin.idea.project.forcedTargetPlatform @@ -46,9 +54,12 @@ import org.jetbrains.kotlin.idea.refactoring.getUsageContext import org.jetbrains.kotlin.idea.refactoring.move.KotlinMoveUsage import org.jetbrains.kotlin.idea.refactoring.pullUp.renderForConflicts import org.jetbrains.kotlin.idea.search.and +import org.jetbrains.kotlin.idea.search.getKotlinFqName import org.jetbrains.kotlin.idea.search.not +import org.jetbrains.kotlin.idea.search.usagesSearch.descriptor import org.jetbrains.kotlin.idea.util.projectStructure.getModule import org.jetbrains.kotlin.idea.util.projectStructure.module +import org.jetbrains.kotlin.js.resolve.diagnostics.findPsi import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities import org.jetbrains.kotlin.name.FqName @@ -61,10 +72,8 @@ import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.renderer.ParameterNameRenderingPolicy import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorUtils -import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameOrNull -import org.jetbrains.kotlin.resolve.descriptorUtil.getImportableDescriptor -import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassNotAny -import org.jetbrains.kotlin.resolve.descriptorUtil.isSubclassOf +import org.jetbrains.kotlin.resolve.descriptorUtil.* +import org.jetbrains.kotlin.resolve.jvm.KotlinJavaPsiFacade import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.resolve.lazy.descriptors.findPackageFragmentForFile import org.jetbrains.kotlin.resolve.source.KotlinSourceElement @@ -522,43 +531,11 @@ class MoveConflictChecker( } private fun checkSealedClassMove(conflicts: MultiMap) { - val visited = HashSet() + val hierarchyChecker = SealedHierarchyChecker() + for (elementToMove in elementsToMove) { - if (!visited.add(elementToMove)) continue if (elementToMove !is KtClassOrObject) continue - - val rootClass: KtClass - val rootClassDescriptor: ClassDescriptor - if (elementToMove is KtClass && elementToMove.isSealed()) { - rootClass = elementToMove - rootClassDescriptor = rootClass.resolveToDescriptorIfAny() ?: return - } else { - val classDescriptor = elementToMove.resolveToDescriptorIfAny() ?: return - val superClassDescriptor = classDescriptor.getSuperClassNotAny() ?: return - if (superClassDescriptor.modality != Modality.SEALED) return - rootClassDescriptor = superClassDescriptor - rootClass = rootClassDescriptor.source.getPsi() as? KtClass ?: return - } - - val subclasses = rootClassDescriptor.sealedSubclasses.mapNotNull { it.source.getPsi() } - if (subclasses.isEmpty()) continue - - visited.add(rootClass) - visited.addAll(subclasses) - - if (isToBeMoved(rootClass) && subclasses.all { isToBeMoved(it) }) continue - - val message = if (elementToMove == rootClass) { - KotlinBundle.message("text.sealed.class.0.must.be.moved.with.all.its.subclasses", rootClass.name.toString()) - } else { - val type = ElementDescriptionUtil.getElementDescription(elementToMove, UsageViewTypeLocation.INSTANCE).capitalize() - KotlinBundle.message( - "text.0.1.must.be.moved.with.sealed.parent.class.and.all.its.subclasses", - type, - rootClass.name.toString() - ) - } - conflicts.putValue(elementToMove, message) + hierarchyChecker.reportIfMoveIsDestructive(elementToMove)?.let { conflicts.putValue(elementToMove, it) } } } @@ -666,6 +643,149 @@ class MoveConflictChecker( checkSealedClassMove(conflicts) checkNameClashes(conflicts) } + + + private inner class SealedHierarchyChecker { + + private val visited: MutableSet = mutableSetOf() + + @OptIn(ExperimentalStdlibApi::class) + fun reportIfMoveIsDestructive(classToMove: KtClassOrObject): String? { + val classToMoveDesc = classToMove.resolveToDescriptorIfAny() ?: return null + if (classToMoveDesc in visited) return null + + val directSealedParents = classToMoveDesc.listDirectSealedParents() + + // Not a part of sealed hierarchy? + if (!classToMoveDesc.isSealed() && directSealedParents.isEmpty()) + return null + + // Standalone sealed class: no sealed parents, no subclasses? + if (classToMoveDesc.isSealed() && directSealedParents.isEmpty() && classToMoveDesc.listAllSubclasses().isEmpty()) + return null + + // Ok, we're dealing with sealed hierarchy member + val otherHierarchyMembers = classToMoveDesc.listSealedHierarchyMembers().apply { remove(classToMove) } + assert(otherHierarchyMembers.isNotEmpty()) + + // Entire hierarchy is to be moved at once? + if (otherHierarchyMembers.all { isToBeMoved(it) }) + return null + + // Hierarchy might be split (broken) (members reside in different packages) and we shouldn't prevent intention to fix it. + // That is why it's ok to move the class to a package where at least one member of hierarchy resides. In case the hierarchy is + // fully correct all its members share the same package. + + val targetModule = moveTarget.getTargetModule(project) ?: return null + val targetPackage = moveTarget.getTargetPackage() ?: return null + + val className = classToMove.nameAsSafeName.asString() + + if (otherHierarchyMembers.none { it.residesIn(targetModule, targetPackage) }) { + val hierarchyMembers = buildList { add(classToMove); addAll(otherHierarchyMembers) }.toNamesList() + return KotlinBundle.message( + "text.sealed.broken.hierarchy.none.in.target", + className, moveTarget.getPackageName(), targetModule.name, hierarchyMembers + ) + } + + // Ok, class joins at least one member of the hierarchy. But probably it leaves the package where other members still exist. + // It doesn't mean we should prevent such move but it might be good for the user to be aware of the situation. + + val moduleToMoveFrom = classToMove.module ?: return null + val packageToMoveFrom = classToMoveDesc.findPsiPackage(moduleToMoveFrom) ?: return null + + val membersRemainingInOriginalPackage = + otherHierarchyMembers.filter { it.residesIn(moduleToMoveFrom, packageToMoveFrom) && !isToBeMoved(it) }.toList() + + if ((targetPackage != packageToMoveFrom || targetModule != moduleToMoveFrom) && + membersRemainingInOriginalPackage.any { !isToBeMoved(it) } + ) { + return KotlinBundle.message( + "text.sealed.broken.hierarchy.still.in.source", + className, packageToMoveFrom.getNameOrDefault(), moduleToMoveFrom.name, membersRemainingInOriginalPackage.toNamesList() + ) + } + + return null + } + + private fun KtClassOrObject.residesIn(targetModule: Module, targetPackage: PsiPackage): Boolean { + val myModule = module ?: return false + val myPackage = descriptor?.findPsiPackage(myModule) + return myPackage == targetPackage && myModule == targetModule + } + + private fun DeclarationDescriptor.findPsiPackage(module: Module): PsiPackage? { + val fqName = findPackage().fqName + return KotlinJavaPsiFacade.getInstance(project).findPackage(fqName.asString(), GlobalSearchScope.moduleScope(module)) + } + + private fun KotlinMoveTarget.getTargetPackage(): PsiPackage? { + + fun tryGetPackageFromTargetContainer(): PsiPackage? { + val fqName = targetContainerFqName ?: return null + val module = getTargetModule(project) ?: return null + return KotlinJavaPsiFacade.getInstance(project).findPackage(fqName.asString(), GlobalSearchScope.moduleScope(module)) + } + + return (this as? KotlinDirectoryBasedMoveTarget)?.directory?.getPackage() + ?: targetFile?.toPsiDirectory(project)?.getPackage() + ?: targetFile?.toPsiFile(project)?.containingDirectory?.getPackage() + ?: tryGetPackageFromTargetContainer() + } + + private fun KotlinMoveTarget.getPackageName(): String = + targetContainerFqName?.asString()?.takeIf { it.isNotEmpty() } ?: "default" // PsiPackage might not exist by this moment + + private fun PsiPackage?.getNameOrDefault(): String = this?.qualifiedName?.takeIf { it.isNotEmpty() } ?: "default" + + @OptIn(ExperimentalStdlibApi::class) + private fun ClassDescriptor.listDirectSealedParents(): List = buildList { + getSuperClassNotAny()?.takeIf { it.isSealed() }?.let { this.add(it) } + getSuperInterfaces().filter { it.isSealed() }.let { this.addAll(it) } + } + + private fun ClassDescriptor.listAllSubclasses(): List { + val sealedKtClass = findPsi() as? KtClassOrObject ?: return emptyList() + val lightClass = sealedKtClass.toLightClass() ?: return emptyList() + val searchScope = GlobalSearchScope.projectScope(sealedKtClass.project) + val searchParameters = SearchParameters(lightClass, searchScope, false, true, false) + + return ClassInheritorsSearch.search(searchParameters) + .map mapper@{ + val resolutionFacade = it.javaResolutionFacade() ?: return@mapper null + it.resolveToDescriptor(resolutionFacade) + }.filterNotNull() + .sortedBy(ClassDescriptor::getName) + } + + private fun ClassDescriptor.listSealedHierarchyMembers(): MutableList { + + fun ClassDescriptor.listMembersInternal(members: MutableList) { + val alreadyVisited = !visited.add(this) + if (alreadyVisited) return + + if (isSealed()) { + members.add(this) + listDirectSealedParents().forEach { it.listMembersInternal(members) } + listAllSubclasses().forEach { it.listMembersInternal(members) } + } else { + val directSuperSealed = listDirectSealedParents() + if (directSuperSealed.isNotEmpty()) { + members.add(this) + directSuperSealed.forEach { it.listMembersInternal(members) } + } + } + } + + val members = mutableListOf() + listMembersInternal(members) + return members.mapNotNull { it.findPsi() as? KtClassOrObject }.toMutableList() + } + + private fun List.toNamesList(): List = mapNotNull { el -> el.getKotlinFqName()?.asString() }.toList() + } } fun analyzeConflictsInFile( diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/after/source/Foo.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/after/source/Foo.kt deleted file mode 100644 index 2158e3ba303..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/after/source/Foo.kt +++ /dev/null @@ -1,7 +0,0 @@ -package source - -import target.Expr - -data class Const(val number: Double) : Expr() -data class Sum(val e1: Expr, val e2: Expr) : Expr() -object NotANumber : Expr() \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/after/source/dummy.txt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/after/source/dummy.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/after/target/Expr.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/after/target/Expr.kt deleted file mode 100644 index 2e47c77daa5..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/after/target/Expr.kt +++ /dev/null @@ -1,3 +0,0 @@ -package target - -sealed class Expr \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/before/source/Foo.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/before/source/Foo.kt deleted file mode 100644 index 5cb14c9b97f..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/before/source/Foo.kt +++ /dev/null @@ -1,6 +0,0 @@ -package source - -sealed class Expr -data class Const(val number: Double) : Expr() -data class Sum(val e1: Expr, val e2: Expr) : Expr() -object NotANumber : Expr() \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/before/source/dummy.txt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/before/source/dummy.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/conflicts.txt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/conflicts.txt deleted file mode 100644 index 756eb0a8202..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/conflicts.txt +++ /dev/null @@ -1 +0,0 @@ -Sealed class 'Expr' must be moved with all its subclasses diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/sealedClassWithSkippedSubclasses.test b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/sealedClassWithSkippedSubclasses.test deleted file mode 100644 index 1a649bb5efc..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/sealedClassWithSkippedSubclasses.test +++ /dev/null @@ -1,5 +0,0 @@ -{ - "mainFile": "source/Foo.kt", - "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", - "targetPackage": "target" -} diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/after/source/Foo.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/after/source/Foo.kt deleted file mode 100644 index bf5d08ed03c..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/after/source/Foo.kt +++ /dev/null @@ -1,5 +0,0 @@ -package source - -sealed class Expr -data class Sum(val e1: Expr, val e2: Expr) : Expr() -object NotANumber : Expr() \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/after/source/dummy.txt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/after/source/dummy.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/after/target/Const.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/after/target/Const.kt deleted file mode 100644 index b129fc50628..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/after/target/Const.kt +++ /dev/null @@ -1,5 +0,0 @@ -package target - -import source.Expr - -data class Const(val number: Double) : Expr() \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/before/source/Foo.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/before/source/Foo.kt deleted file mode 100644 index 737027eefe1..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/before/source/Foo.kt +++ /dev/null @@ -1,6 +0,0 @@ -package source - -sealed class Expr -data class Const(val number: Double) : Expr() -data class Sum(val e1: Expr, val e2: Expr) : Expr() -object NotANumber : Expr() \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/before/source/dummy.txt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/before/source/dummy.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/conflicts.txt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/conflicts.txt deleted file mode 100644 index 08ad262dd99..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/conflicts.txt +++ /dev/null @@ -1 +0,0 @@ -Class 'Expr' must be moved with sealed parent class and all its subclasses diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/sealedSubclassWithSkippedRoot.test b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/sealedSubclassWithSkippedRoot.test deleted file mode 100644 index 1a649bb5efc..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/sealedSubclassWithSkippedRoot.test +++ /dev/null @@ -1,5 +0,0 @@ -{ - "mainFile": "source/Foo.kt", - "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", - "targetPackage": "target" -} diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/after/bar/SealedClass.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/after/bar/SealedClass.kt deleted file mode 100644 index 2994bf4dd8f..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/after/bar/SealedClass.kt +++ /dev/null @@ -1,5 +0,0 @@ -package bar - -public sealed class SealedClass { - public class Impl1 : SealedClass() {} -} \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/after/foo/KotlinReferences.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/after/foo/KotlinReferences.kt deleted file mode 100644 index a5105b77f32..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/after/foo/KotlinReferences.kt +++ /dev/null @@ -1,5 +0,0 @@ -package foo - -import bar.SealedClass - -val v = SealedClass::Impl1 \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/after/foo/SealedClass.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/after/foo/SealedClass.kt deleted file mode 100644 index 18534fbbc34..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/after/foo/SealedClass.kt +++ /dev/null @@ -1,5 +0,0 @@ -package foo - -import bar.SealedClass - -public class Impl2 : SealedClass() {} \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/before/foo/KotlinReferences.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/before/foo/KotlinReferences.kt deleted file mode 100644 index 84b14682a40..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/before/foo/KotlinReferences.kt +++ /dev/null @@ -1,3 +0,0 @@ -package foo - -val v = SealedClass::Impl1 \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/before/foo/SealedClass.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/before/foo/SealedClass.kt deleted file mode 100644 index f7e9572c67b..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/before/foo/SealedClass.kt +++ /dev/null @@ -1,7 +0,0 @@ -package foo - -public sealed class SealedClass { - public class Impl1 : SealedClass() {} -} - -public class Impl2 : SealedClass() {} \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/conflicts.txt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/conflicts.txt deleted file mode 100644 index 4e6bd3f2df2..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/conflicts.txt +++ /dev/null @@ -1 +0,0 @@ -Sealed class 'SealedClass' must be moved with all its subclasses diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/moveSealedClassWithNestedImplsToAnotherPackage.test b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/moveSealedClassWithNestedImplsToAnotherPackage.test deleted file mode 100644 index 75e06c3b8e6..00000000000 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/moveSealedClassWithNestedImplsToAnotherPackage.test +++ /dev/null @@ -1,5 +0,0 @@ -{ - "mainFile": "foo/SealedClass.kt", - "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", - "targetPackage": "bar" -} \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/after/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/after/A/A.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/after/A/A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/after/A/src/other/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/after/A/src/other/SealedHierarchy.kt new file mode 100644 index 00000000000..73b5111042c --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/after/A/src/other/SealedHierarchy.kt @@ -0,0 +1,6 @@ +package other + +sealed interface SealedInterfaceA +sealed interface SealedInterfaceB +sealed class HierarchyClassA: SealedInterfaceA, SealedInterfaceB +class NonSealedButMember: HierarchyClassA() \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/after/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/after/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..9ecbe99d9e5 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/after/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,2 @@ +package sealed + diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/before/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/before/A/A.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/before/A/A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/before/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/before/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..452c384ab76 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/before/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,7 @@ +package sealed + +sealed interface SealedInterfaceA +sealed interface SealedInterfaceB + +sealed class HierarchyClassA: SealedInterfaceA, SealedInterfaceB +class NonSealedButMember: HierarchyClassA() \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/moveSealedCheckEntireHierarchy.test b/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/moveSealedCheckEntireHierarchy.test new file mode 100644 index 00000000000..fe8f7b0209a --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/moveSealedCheckEntireHierarchy.test @@ -0,0 +1,7 @@ +{ + "mainFile": "A/src/sealed/SealedHierarchy.kt", + "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", + "targetPackage": "other", + "targetSourceRoot": "A/src", + "withRuntime": "false" +} diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/after/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/after/A/A.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/after/A/A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/after/A/src/other/NotSealedHierarchyMember.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/after/A/src/other/NotSealedHierarchyMember.kt new file mode 100644 index 00000000000..c2aef401748 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/after/A/src/other/NotSealedHierarchyMember.kt @@ -0,0 +1,5 @@ +package other + +import sealed.DerivedFromSealed + +class NotSealedHierarchyMember: DerivedFromSealed() \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/after/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/after/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..50c4d7e8309 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/after/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,7 @@ +package sealed + +sealed interface SealedInterfaceA +sealed interface SealedInterfaceB + +sealed class HierarchySealedClass: SealedInterfaceA, SealedInterfaceB +class DerivedFromSealed: HierarchySealedClass() diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/before/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/before/A/A.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/before/A/A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/before/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/before/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..04224b0a90d --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/before/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,8 @@ +package sealed + +sealed interface SealedInterfaceA +sealed interface SealedInterfaceB + +sealed class HierarchySealedClass: SealedInterfaceA, SealedInterfaceB +class DerivedFromSealed: HierarchySealedClass() +class NotSealedHierarchyMember: DerivedFromSealed() \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/moveSealedCheckNotMember.test b/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/moveSealedCheckNotMember.test new file mode 100644 index 00000000000..fe8f7b0209a --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/moveSealedCheckNotMember.test @@ -0,0 +1,7 @@ +{ + "mainFile": "A/src/sealed/SealedHierarchy.kt", + "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", + "targetPackage": "other", + "targetSourceRoot": "A/src", + "withRuntime": "false" +} diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/after/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/after/A/A.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/after/A/A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/after/A/src/sealedFirst/SealedHierarchyPartA.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/after/A/src/sealedFirst/SealedHierarchyPartA.kt new file mode 100644 index 00000000000..a0de0d63bc7 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/after/A/src/sealedFirst/SealedHierarchyPartA.kt @@ -0,0 +1,3 @@ +package sealedFirst + +sealed interface SealedInterfaceA diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/after/A/src/sealedSecond/HierarchyClassA.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/after/A/src/sealedSecond/HierarchyClassA.kt new file mode 100644 index 00000000000..325f24cf791 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/after/A/src/sealedSecond/HierarchyClassA.kt @@ -0,0 +1,5 @@ +package sealedSecond + +import sealedFirst.SealedInterfaceA + +sealed class HierarchyClassA: SealedInterfaceA, SealedInterfaceB \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/after/A/src/sealedSecond/SealedHierarchyPartB.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/after/A/src/sealedSecond/SealedHierarchyPartB.kt new file mode 100644 index 00000000000..f610757add9 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/after/A/src/sealedSecond/SealedHierarchyPartB.kt @@ -0,0 +1,3 @@ +package sealedSecond + +sealed interface SealedInterfaceB diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/before/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/before/A/A.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/before/A/A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/before/A/src/sealedFirst/SealedHierarchyPartA.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/before/A/src/sealedFirst/SealedHierarchyPartA.kt new file mode 100644 index 00000000000..1d10daf57b0 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/before/A/src/sealedFirst/SealedHierarchyPartA.kt @@ -0,0 +1,6 @@ +package sealedFirst + +import sealedSecond.SealedInterfaceB + +sealed interface SealedInterfaceA +sealed class HierarchyClassA: SealedInterfaceA, SealedInterfaceB diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/before/A/src/sealedSecond/SealedHierarchyPartB.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/before/A/src/sealedSecond/SealedHierarchyPartB.kt new file mode 100644 index 00000000000..f610757add9 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/before/A/src/sealedSecond/SealedHierarchyPartB.kt @@ -0,0 +1,3 @@ +package sealedSecond + +sealed interface SealedInterfaceB diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/conflicts.txt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/conflicts.txt new file mode 100644 index 00000000000..ab1702877e1 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/conflicts.txt @@ -0,0 +1 @@ +Sealed hierarchy of 'HierarchyClassA' would be split. Package 'sealedFirst' of module 'A' would still contain its members: [sealedFirst.SealedInterfaceA]. \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/moveSealedCheckOriginalPackageHasMember.test b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/moveSealedCheckOriginalPackageHasMember.test new file mode 100644 index 00000000000..17bdcad937f --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/moveSealedCheckOriginalPackageHasMember.test @@ -0,0 +1,7 @@ +{ + "mainFile": "A/src/sealedFirst/SealedHierarchyPartA.kt", + "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", + "targetPackage": "sealedSecond", + "targetSourceRoot": "A/src", + "withRuntime": "false" +} diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/A/A.iml new file mode 100644 index 00000000000..0f75d4273fc --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/A/A.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..54e5f2cde16 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,3 @@ +package sealed + +sealed class HierarchyClassA: SealedInterfaceA, SealedInterfaceB diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/B/B.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/B/B.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/B/B.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/B/src/sealed/SealedInterfaceA.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/B/src/sealed/SealedInterfaceA.kt new file mode 100644 index 00000000000..25d98326be8 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/B/src/sealed/SealedInterfaceA.kt @@ -0,0 +1,3 @@ +package sealed + +sealed interface SealedInterfaceA \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/B/src/sealed/SealedInterfaceB.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/B/src/sealed/SealedInterfaceB.kt new file mode 100644 index 00000000000..458be202c44 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/after/B/src/sealed/SealedInterfaceB.kt @@ -0,0 +1,3 @@ +package sealed + +sealed interface SealedInterfaceB \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/before/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/before/A/A.iml new file mode 100644 index 00000000000..0f75d4273fc --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/before/A/A.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/before/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/before/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..e4c13d4d341 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/before/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,4 @@ +package sealed + +sealed interface SealedInterfaceA +sealed class HierarchyClassA: SealedInterfaceA, SealedInterfaceB diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/before/B/B.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/before/B/B.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/before/B/B.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/before/B/src/sealed/SealedInterfaceB.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/before/B/src/sealed/SealedInterfaceB.kt new file mode 100644 index 00000000000..458be202c44 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/before/B/src/sealed/SealedInterfaceB.kt @@ -0,0 +1,3 @@ +package sealed + +sealed interface SealedInterfaceB \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/conflicts.txt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/conflicts.txt new file mode 100644 index 00000000000..bce916d7fc2 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/conflicts.txt @@ -0,0 +1 @@ +Sealed hierarchy of 'SealedInterfaceA' would be split. Package 'sealed' of module 'A' would still contain its members: [sealed.HierarchyClassA]. \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/moveSealedCheckOriginalPackageHasMemberCrossModule.test b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/moveSealedCheckOriginalPackageHasMemberCrossModule.test new file mode 100644 index 00000000000..515ff868809 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/moveSealedCheckOriginalPackageHasMemberCrossModule.test @@ -0,0 +1,7 @@ +{ + "mainFile": "A/src/sealed/SealedHierarchy.kt", + "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", + "targetPackage": "sealed", + "targetSourceRoot": "B/src", + "withRuntime": "false" +} diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/after/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/after/A/A.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/after/A/A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/after/A/src/other/SealedInterfaceA.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/after/A/src/other/SealedInterfaceA.kt new file mode 100644 index 00000000000..afed23756e8 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/after/A/src/other/SealedInterfaceA.kt @@ -0,0 +1,3 @@ +package other + +sealed interface SealedInterfaceA \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/after/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/after/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..9ecbe99d9e5 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/after/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,2 @@ +package sealed + diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/before/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/before/A/A.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/before/A/A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/before/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/before/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..89ef43d2f66 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/before/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,3 @@ +package sealed + +sealed interface SealedInterfaceA \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/moveSealedCheckSingleSealed.test b/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/moveSealedCheckSingleSealed.test new file mode 100644 index 00000000000..fe8f7b0209a --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/moveSealedCheckSingleSealed.test @@ -0,0 +1,7 @@ +{ + "mainFile": "A/src/sealed/SealedHierarchy.kt", + "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", + "targetPackage": "other", + "targetSourceRoot": "A/src", + "withRuntime": "false" +} diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/after/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/after/A/A.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/after/A/A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/after/A/src/sealedFirst/SealedHierarchyPartA.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/after/A/src/sealedFirst/SealedHierarchyPartA.kt new file mode 100644 index 00000000000..b58d23470d7 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/after/A/src/sealedFirst/SealedHierarchyPartA.kt @@ -0,0 +1,2 @@ +package sealedFirst + diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/after/A/src/sealedSecond/SealedHierarchyPartA.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/after/A/src/sealedSecond/SealedHierarchyPartA.kt new file mode 100644 index 00000000000..5aeb11b5b39 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/after/A/src/sealedSecond/SealedHierarchyPartA.kt @@ -0,0 +1,4 @@ +package sealedSecond + +sealed interface SealedInterfaceA +sealed class HierarchyClassA: SealedInterfaceA, SealedInterfaceB \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/after/A/src/sealedSecond/SealedHierarchyPartB.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/after/A/src/sealedSecond/SealedHierarchyPartB.kt new file mode 100644 index 00000000000..f610757add9 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/after/A/src/sealedSecond/SealedHierarchyPartB.kt @@ -0,0 +1,3 @@ +package sealedSecond + +sealed interface SealedInterfaceB diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/before/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/before/A/A.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/before/A/A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/before/A/src/sealedFirst/SealedHierarchyPartA.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/before/A/src/sealedFirst/SealedHierarchyPartA.kt new file mode 100644 index 00000000000..af5250c4732 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/before/A/src/sealedFirst/SealedHierarchyPartA.kt @@ -0,0 +1,6 @@ +package sealedFirst + +import sealedSecond.SealedInterfaceB + +sealed interface SealedInterfaceA +sealed class HierarchyClassA: SealedInterfaceA, SealedInterfaceB diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/before/A/src/sealedSecond/SealedHierarchyPartB.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/before/A/src/sealedSecond/SealedHierarchyPartB.kt new file mode 100644 index 00000000000..f610757add9 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/before/A/src/sealedSecond/SealedHierarchyPartB.kt @@ -0,0 +1,3 @@ +package sealedSecond + +sealed interface SealedInterfaceB diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/moveSealedCheckTargetPackageHasMember.test b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/moveSealedCheckTargetPackageHasMember.test new file mode 100644 index 00000000000..17bdcad937f --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/moveSealedCheckTargetPackageHasMember.test @@ -0,0 +1,7 @@ +{ + "mainFile": "A/src/sealedFirst/SealedHierarchyPartA.kt", + "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", + "targetPackage": "sealedSecond", + "targetSourceRoot": "A/src", + "withRuntime": "false" +} diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/A/A.iml new file mode 100644 index 00000000000..0f75d4273fc --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/A/A.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..9ecbe99d9e5 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,2 @@ +package sealed + diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/B/B.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/B/B.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/B/B.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/B/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/B/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..37f43d3d211 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/B/src/sealed/SealedHierarchy.kt @@ -0,0 +1,4 @@ +package sealed + +sealed interface SealedInterfaceA +sealed class HierarchyClassA: SealedInterfaceA, SealedInterfaceB \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/B/src/sealed/SealedInterfaceB.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/B/src/sealed/SealedInterfaceB.kt new file mode 100644 index 00000000000..458be202c44 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/after/B/src/sealed/SealedInterfaceB.kt @@ -0,0 +1,3 @@ +package sealed + +sealed interface SealedInterfaceB \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/before/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/before/A/A.iml new file mode 100644 index 00000000000..0f75d4273fc --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/before/A/A.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/before/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/before/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..d544504d39b --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/before/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,4 @@ +package sealed + +sealed interface SealedInterfaceA +sealed class HierarchyClassA: SealedInterfaceA, SealedInterfaceB \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/before/B/B.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/before/B/B.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/before/B/B.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/before/B/src/sealed/SealedInterfaceB.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/before/B/src/sealed/SealedInterfaceB.kt new file mode 100644 index 00000000000..458be202c44 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/before/B/src/sealed/SealedInterfaceB.kt @@ -0,0 +1,3 @@ +package sealed + +sealed interface SealedInterfaceB \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/moveSealedCheckTargetPackageHasMemberCrossModule.test b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/moveSealedCheckTargetPackageHasMemberCrossModule.test new file mode 100644 index 00000000000..515ff868809 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/moveSealedCheckTargetPackageHasMemberCrossModule.test @@ -0,0 +1,7 @@ +{ + "mainFile": "A/src/sealed/SealedHierarchy.kt", + "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", + "targetPackage": "sealed", + "targetSourceRoot": "B/src", + "withRuntime": "false" +} diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/after/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/after/A/A.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/after/A/A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/after/A/src/another/HierarchyClassA.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/after/A/src/another/HierarchyClassA.kt new file mode 100644 index 00000000000..f152b317ae7 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/after/A/src/another/HierarchyClassA.kt @@ -0,0 +1,6 @@ +package another + +import sealed.SealedInterfaceA +import sealed.SealedInterfaceB + +class HierarchyClassA: SealedInterfaceA, SealedInterfaceB \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/after/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/after/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..fa0ed5cda51 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/after/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,5 @@ +package sealed + +sealed interface SealedInterfaceA +sealed interface SealedInterfaceB + diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/before/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/before/A/A.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/before/A/A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/before/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/before/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..798239246e1 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/before/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,6 @@ +package sealed + +sealed interface SealedInterfaceA +sealed interface SealedInterfaceB + +class HierarchyClassA: SealedInterfaceA, SealedInterfaceB \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/conflicts.txt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/conflicts.txt new file mode 100644 index 00000000000..89613a4e1ab --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/conflicts.txt @@ -0,0 +1 @@ +Sealed hierarchy of 'HierarchyClassA' would be split. None of its members reside in the package 'another' of module 'A': [sealed.HierarchyClassA, sealed.SealedInterfaceA, sealed.SealedInterfaceB]. \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/moveSealedCheckTargetPackageHasNoMembers.test b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/moveSealedCheckTargetPackageHasNoMembers.test new file mode 100644 index 00000000000..2f5a59e2ead --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/moveSealedCheckTargetPackageHasNoMembers.test @@ -0,0 +1,7 @@ +{ + "mainFile": "A/src/sealed/SealedHierarchy.kt", + "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", + "targetPackage": "another", + "targetSourceRoot": "A/src", + "withRuntime": "false" +} diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/A/A.iml new file mode 100644 index 00000000000..0f75d4273fc --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/A/A.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..bca8b5431e7 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,5 @@ +package sealed + +sealed interface SealedInterfaceB + +class HierarchyClassA: SealedInterfaceA, SealedInterfaceB \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/B/B.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/B/B.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/B/B.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/B/src/sealed/HelloGitEmptyDir.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/B/src/sealed/HelloGitEmptyDir.kt new file mode 100644 index 00000000000..6c223bfa79a --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/B/src/sealed/HelloGitEmptyDir.kt @@ -0,0 +1,3 @@ +package sealed + +interface HelloGitEmptyDir \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/B/src/sealed/SealedInterfaceA.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/B/src/sealed/SealedInterfaceA.kt new file mode 100644 index 00000000000..25d98326be8 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/after/B/src/sealed/SealedInterfaceA.kt @@ -0,0 +1,3 @@ +package sealed + +sealed interface SealedInterfaceA \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/before/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/before/A/A.iml new file mode 100644 index 00000000000..0f75d4273fc --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/before/A/A.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/before/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/before/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..3687f3e32c4 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/before/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,6 @@ +package sealed + +sealed interface SealedInterfaceA +sealed interface SealedInterfaceB + +class HierarchyClassA: SealedInterfaceA, SealedInterfaceB \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/before/B/B.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/before/B/B.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/before/B/B.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/before/B/src/sealed/HelloGitEmptyDir.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/before/B/src/sealed/HelloGitEmptyDir.kt new file mode 100644 index 00000000000..6c223bfa79a --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/before/B/src/sealed/HelloGitEmptyDir.kt @@ -0,0 +1,3 @@ +package sealed + +interface HelloGitEmptyDir \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/conflicts.txt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/conflicts.txt new file mode 100644 index 00000000000..9660cc2b94c --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/conflicts.txt @@ -0,0 +1 @@ +Sealed hierarchy of 'SealedInterfaceA' would be split. None of its members reside in the package 'sealed' of module 'B': [sealed.SealedInterfaceA, sealed.HierarchyClassA, sealed.SealedInterfaceB]. \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/moveSealedCheckTargetPackageHasNoMembersCrossModule.test b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/moveSealedCheckTargetPackageHasNoMembersCrossModule.test new file mode 100644 index 00000000000..515ff868809 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/moveSealedCheckTargetPackageHasNoMembersCrossModule.test @@ -0,0 +1,7 @@ +{ + "mainFile": "A/src/sealed/SealedHierarchy.kt", + "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", + "targetPackage": "sealed", + "targetSourceRoot": "B/src", + "withRuntime": "false" +} diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/A/A.iml new file mode 100644 index 00000000000..0f75d4273fc --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/A/A.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..16a1c95a13f --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,17 @@ +package sealed + +sealed interface SealedInterfaceB +sealed interface SealedInterfaceC +sealed interface SealedInterfaceD: InterfaceI, SealedInterfaceA, SealedInterfaceB, SealedInterfaceC +interface InterfaceE: SealedInterfaceD +sealed interface SealedInterfaceF: InterfaceE +sealed interface SealedInterfaceG +interface InterfaceH: InterfaceE +interface InterfaceI + +class ClassA: InterfaceE +class ClassC +sealed class SealedClassB: SealedInterfaceB, SealedInterfaceC, ClassC() +class ClassD: SealedClassB() +sealed class SealedClassE: SealedClassB(), SealedInterfaceG +class ClassF: ClassD() diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/B/B.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/B/B.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/B/B.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/B/src/sealed/HelloGitEmptyDir.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/B/src/sealed/HelloGitEmptyDir.kt new file mode 100644 index 00000000000..6c223bfa79a --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/B/src/sealed/HelloGitEmptyDir.kt @@ -0,0 +1,3 @@ +package sealed + +interface HelloGitEmptyDir \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/B/src/sealed/SealedInterfaceA.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/B/src/sealed/SealedInterfaceA.kt new file mode 100644 index 00000000000..25d98326be8 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/after/B/src/sealed/SealedInterfaceA.kt @@ -0,0 +1,3 @@ +package sealed + +sealed interface SealedInterfaceA \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/before/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/before/A/A.iml new file mode 100644 index 00000000000..0f75d4273fc --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/before/A/A.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/before/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/before/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..4f49ff52dcb --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/before/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,18 @@ +package sealed + +sealed interface SealedInterfaceA +sealed interface SealedInterfaceB +sealed interface SealedInterfaceC +sealed interface SealedInterfaceD: InterfaceI, SealedInterfaceA, SealedInterfaceB, SealedInterfaceC +interface InterfaceE: SealedInterfaceD +sealed interface SealedInterfaceF: InterfaceE +sealed interface SealedInterfaceG +interface InterfaceH: InterfaceE +interface InterfaceI + +class ClassA: InterfaceE +class ClassC +sealed class SealedClassB: SealedInterfaceB, SealedInterfaceC, ClassC() +class ClassD: SealedClassB() +sealed class SealedClassE: SealedClassB(), SealedInterfaceG +class ClassF: ClassD() diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/before/B/B.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/before/B/B.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/before/B/B.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/before/B/src/sealed/HelloGitEmptyDir.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/before/B/src/sealed/HelloGitEmptyDir.kt new file mode 100644 index 00000000000..6c223bfa79a --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/before/B/src/sealed/HelloGitEmptyDir.kt @@ -0,0 +1,3 @@ +package sealed + +interface HelloGitEmptyDir \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/conflicts.txt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/conflicts.txt new file mode 100644 index 00000000000..b99198f703b --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/conflicts.txt @@ -0,0 +1 @@ +Sealed hierarchy of 'SealedInterfaceA' would be split. None of its members reside in the package 'sealed' of module 'B': [sealed.SealedInterfaceA, sealed.SealedInterfaceD, sealed.SealedInterfaceB, sealed.SealedClassB, sealed.SealedInterfaceC, sealed.ClassD, sealed.SealedClassE, sealed.SealedInterfaceG, sealed.InterfaceE]. \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig.test b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig.test new file mode 100644 index 00000000000..515ff868809 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig.test @@ -0,0 +1,7 @@ +{ + "mainFile": "A/src/sealed/SealedHierarchy.kt", + "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", + "targetPackage": "sealed", + "targetSourceRoot": "B/src", + "withRuntime": "false" +} diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/after/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/after/A/A.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/after/A/A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/after/A/src/sealed/HierarchyClassA.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/after/A/src/sealed/HierarchyClassA.kt new file mode 100644 index 00000000000..e5f691f0282 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/after/A/src/sealed/HierarchyClassA.kt @@ -0,0 +1,3 @@ +package sealed + +class HierarchyClassA: SealedInterfaceA, SealedInterfaceB \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/after/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/after/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..fa0ed5cda51 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/after/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,5 @@ +package sealed + +sealed interface SealedInterfaceA +sealed interface SealedInterfaceB + diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/before/A/A.iml b/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/before/A/A.iml new file mode 100644 index 00000000000..c90834f2d60 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/before/A/A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/before/A/src/sealed/SealedHierarchy.kt b/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/before/A/src/sealed/SealedHierarchy.kt new file mode 100644 index 00000000000..798239246e1 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/before/A/src/sealed/SealedHierarchy.kt @@ -0,0 +1,6 @@ +package sealed + +sealed interface SealedInterfaceA +sealed interface SealedInterfaceB + +class HierarchyClassA: SealedInterfaceA, SealedInterfaceB \ No newline at end of file diff --git a/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/moveSealedCheckWithinPackage.test b/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/moveSealedCheckWithinPackage.test new file mode 100644 index 00000000000..7dbe39f65a2 --- /dev/null +++ b/idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/moveSealedCheckWithinPackage.test @@ -0,0 +1,7 @@ +{ + "mainFile": "A/src/sealed/SealedHierarchy.kt", + "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", + "targetPackage": "sealed", + "targetSourceRoot": "A/src/sealed", + "withRuntime": "false" +} 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 65839a8e016..c340d3b81af 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java @@ -644,16 +644,6 @@ public class MoveTestGenerated extends AbstractMoveTest { runTest("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithAllSubclasses/sealedClassWithAllSubclasses.test"); } - @TestMetadata("kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/sealedClassWithSkippedSubclasses.test") - public void testKotlin_moveTopLevelDeclarations_misc_sealedClassWithSkippedSubclasses_SealedClassWithSkippedSubclasses() throws Exception { - runTest("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedClassWithSkippedSubclasses/sealedClassWithSkippedSubclasses.test"); - } - - @TestMetadata("kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/sealedSubclassWithSkippedRoot.test") - public void testKotlin_moveTopLevelDeclarations_misc_sealedSubclassWithSkippedRoot_SealedSubclassWithSkippedRoot() throws Exception { - runTest("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/sealedSubclassWithSkippedRoot/sealedSubclassWithSkippedRoot.test"); - } - @TestMetadata("kotlin/moveTopLevelDeclarations/misc/selfReferences/selfReferences.test") public void testKotlin_moveTopLevelDeclarations_misc_selfReferences_SelfReferences() throws Exception { runTest("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/selfReferences/selfReferences.test"); @@ -779,11 +769,6 @@ public class MoveTestGenerated extends AbstractMoveTest { runTest("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/movePropertyToPackage.test"); } - @TestMetadata("kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/moveSealedClassWithNestedImplsToAnotherPackage.test") - public void testKotlin_moveTopLevelDeclarations_moveSealedClassWithImplsToAnotherPackage_MoveSealedClassWithNestedImplsToAnotherPackage() throws Exception { - runTest("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithImplsToAnotherPackage/moveSealedClassWithNestedImplsToAnotherPackage.test"); - } - @TestMetadata("kotlin/moveTopLevelDeclarations/moveSealedClassWithNestedImplsToAnotherPackage/moveSealedClassWithNestedImplsToAnotherPackage.test") public void testKotlin_moveTopLevelDeclarations_moveSealedClassWithNestedImplsToAnotherPackage_MoveSealedClassWithNestedImplsToAnotherPackage() throws Exception { runTest("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveSealedClassWithNestedImplsToAnotherPackage/moveSealedClassWithNestedImplsToAnotherPackage.test"); diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MultiModuleMoveTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MultiModuleMoveTestGenerated.java index d640378a8a8..416498e3778 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MultiModuleMoveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MultiModuleMoveTestGenerated.java @@ -89,6 +89,61 @@ public class MultiModuleMoveTestGenerated extends AbstractMultiModuleMoveTest { runTest("idea/testData/refactoring/moveMultiModule/moveRefToLibTypeAliasImplementingLibExpectClass/moveRefToLibTypeAliasImplementingLibExpectClass.test"); } + @TestMetadata("moveSealedCheckEntireHierarchy/moveSealedCheckEntireHierarchy.test") + public void testMoveSealedCheckEntireHierarchy_MoveSealedCheckEntireHierarchy() throws Exception { + runTest("idea/testData/refactoring/moveMultiModule/moveSealedCheckEntireHierarchy/moveSealedCheckEntireHierarchy.test"); + } + + @TestMetadata("moveSealedCheckNotMember/moveSealedCheckNotMember.test") + public void testMoveSealedCheckNotMember_MoveSealedCheckNotMember() throws Exception { + runTest("idea/testData/refactoring/moveMultiModule/moveSealedCheckNotMember/moveSealedCheckNotMember.test"); + } + + @TestMetadata("moveSealedCheckOriginalPackageHasMember/moveSealedCheckOriginalPackageHasMember.test") + public void testMoveSealedCheckOriginalPackageHasMember_MoveSealedCheckOriginalPackageHasMember() throws Exception { + runTest("idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMember/moveSealedCheckOriginalPackageHasMember.test"); + } + + @TestMetadata("moveSealedCheckOriginalPackageHasMemberCrossModule/moveSealedCheckOriginalPackageHasMemberCrossModule.test") + public void testMoveSealedCheckOriginalPackageHasMemberCrossModule_MoveSealedCheckOriginalPackageHasMemberCrossModule() throws Exception { + runTest("idea/testData/refactoring/moveMultiModule/moveSealedCheckOriginalPackageHasMemberCrossModule/moveSealedCheckOriginalPackageHasMemberCrossModule.test"); + } + + @TestMetadata("moveSealedCheckSingleSealed/moveSealedCheckSingleSealed.test") + public void testMoveSealedCheckSingleSealed_MoveSealedCheckSingleSealed() throws Exception { + runTest("idea/testData/refactoring/moveMultiModule/moveSealedCheckSingleSealed/moveSealedCheckSingleSealed.test"); + } + + @TestMetadata("moveSealedCheckTargetPackageHasMember/moveSealedCheckTargetPackageHasMember.test") + public void testMoveSealedCheckTargetPackageHasMember_MoveSealedCheckTargetPackageHasMember() throws Exception { + runTest("idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMember/moveSealedCheckTargetPackageHasMember.test"); + } + + @TestMetadata("moveSealedCheckTargetPackageHasMemberCrossModule/moveSealedCheckTargetPackageHasMemberCrossModule.test") + public void testMoveSealedCheckTargetPackageHasMemberCrossModule_MoveSealedCheckTargetPackageHasMemberCrossModule() throws Exception { + runTest("idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasMemberCrossModule/moveSealedCheckTargetPackageHasMemberCrossModule.test"); + } + + @TestMetadata("moveSealedCheckTargetPackageHasNoMembers/moveSealedCheckTargetPackageHasNoMembers.test") + public void testMoveSealedCheckTargetPackageHasNoMembers_MoveSealedCheckTargetPackageHasNoMembers() throws Exception { + runTest("idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembers/moveSealedCheckTargetPackageHasNoMembers.test"); + } + + @TestMetadata("moveSealedCheckTargetPackageHasNoMembersCrossModule/moveSealedCheckTargetPackageHasNoMembersCrossModule.test") + public void testMoveSealedCheckTargetPackageHasNoMembersCrossModule_MoveSealedCheckTargetPackageHasNoMembersCrossModule() throws Exception { + runTest("idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModule/moveSealedCheckTargetPackageHasNoMembersCrossModule.test"); + } + + @TestMetadata("moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig.test") + public void testMoveSealedCheckTargetPackageHasNoMembersCrossModuleBig_MoveSealedCheckTargetPackageHasNoMembersCrossModuleBig() throws Exception { + runTest("idea/testData/refactoring/moveMultiModule/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig/moveSealedCheckTargetPackageHasNoMembersCrossModuleBig.test"); + } + + @TestMetadata("moveSealedCheckWithinPackage/moveSealedCheckWithinPackage.test") + public void testMoveSealedCheckWithinPackage_MoveSealedCheckWithinPackage() throws Exception { + runTest("idea/testData/refactoring/moveMultiModule/moveSealedCheckWithinPackage/moveSealedCheckWithinPackage.test"); + } + @TestMetadata("moveToModuleWithoutLibConflict/moveToModuleWithoutLibConflict.test") public void testMoveToModuleWithoutLibConflict_MoveToModuleWithoutLibConflict() throws Exception { runTest("idea/testData/refactoring/moveMultiModule/moveToModuleWithoutLibConflict/moveToModuleWithoutLibConflict.test");