diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/MoveToSealedMatchingPackageFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/MoveToSealedMatchingPackageFix.kt index 34ec7134416..c865548b65f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/MoveToSealedMatchingPackageFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/MoveToSealedMatchingPackageFix.kt @@ -10,22 +10,21 @@ import com.intellij.openapi.actionSystem.impl.SimpleDataContext import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.editor.Editor import com.intellij.openapi.project.Project -import com.intellij.openapi.roots.ProjectFileIndex import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.PsiDirectory import com.intellij.psi.PsiElement import com.intellij.psi.PsiFileSystemItem -import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.util.parentOfType import com.intellij.refactoring.PackageWrapper import com.intellij.refactoring.move.MoveCallback import com.intellij.refactoring.move.MoveHandler import org.jetbrains.kotlin.descriptors.ClassDescriptor -import org.jetbrains.kotlin.descriptors.containingPackage import org.jetbrains.kotlin.descriptors.isSealed import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.idea.KotlinBundle -import org.jetbrains.kotlin.idea.actions.internal.refactoringTesting.cases.* +import org.jetbrains.kotlin.idea.actions.internal.refactoringTesting.cases.FailedToRunCaseException +import org.jetbrains.kotlin.idea.actions.internal.refactoringTesting.cases.randomBoolean +import org.jetbrains.kotlin.idea.actions.internal.refactoringTesting.cases.randomDirectoryPathMutator import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny import org.jetbrains.kotlin.idea.refactoring.move.getTargetPackageFqName import org.jetbrains.kotlin.idea.refactoring.move.guessNewFileName @@ -36,13 +35,11 @@ import org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.ui.MoveKotlin import org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.ui.MoveKotlinTopLevelDeclarationsModel import org.jetbrains.kotlin.idea.references.resolveMainReferenceToDescriptors import org.jetbrains.kotlin.idea.util.application.executeCommand -import org.jetbrains.kotlin.idea.util.projectStructure.module +import org.jetbrains.kotlin.js.resolve.diagnostics.findPsi import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject -import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassNotAny import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperInterfaces -import org.jetbrains.kotlin.resolve.jvm.KotlinJavaPsiFacade import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor class MoveToSealedMatchingPackageFix(element: KtTypeReference) : KotlinQuickFixAction(element) { @@ -71,16 +68,7 @@ class MoveToSealedMatchingPackageFix(element: KtTypeReference) : KotlinQuickFixA val ktUserType = typeElement as? KtUserType ?: return null val ktNameReferenceExpression = ktUserType.referenceExpression as? KtNameReferenceExpression ?: return null val declDescriptor = ktNameReferenceExpression.resolveMainReferenceToDescriptors().singleOrNull() ?: return null - - val packageName = declDescriptor.containingPackage()?.asString() ?: return null - - val projectFileIndex = ProjectFileIndex.getInstance(project) - val ktClassInQuestion = DescriptorToSourceUtils.getSourceFromDescriptor(declDescriptor) as? KtClass ?: return null - val module = projectFileIndex.getModuleForFile(ktClassInQuestion.containingFile.virtualFile) ?: return null - val psiPackage = - KotlinJavaPsiFacade.getInstance(project).findPackage(packageName, GlobalSearchScope.moduleScope(module)) ?: return null - - return psiPackage.directories.find { it.module == module } + return declDescriptor.containingDeclaration?.findPsi()?.containingFile?.containingDirectory } override fun startInWriteAction(): Boolean {