Move top-level declarations to separate file: Refactoring processor and tests
This commit is contained in:
+58
@@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2014 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.jet.plugin.refactoring.move.moveTopLevelDeclarations
|
||||||
|
|
||||||
|
import com.intellij.refactoring.PackageWrapper
|
||||||
|
import com.intellij.refactoring.MoveDestination
|
||||||
|
import org.jetbrains.jet.lang.psi.JetFile
|
||||||
|
import com.intellij.psi.PsiElement
|
||||||
|
import com.intellij.psi.PsiFile
|
||||||
|
import com.intellij.psi.PsiManager
|
||||||
|
|
||||||
|
public trait KotlinMoveTarget {
|
||||||
|
val packageWrapper: PackageWrapper?
|
||||||
|
fun getOrCreateTargetPsi(originalPsi: PsiElement): PsiElement?
|
||||||
|
fun getTargetPsiIfExists(originalPsi: PsiElement): PsiElement?
|
||||||
|
|
||||||
|
// Check possible errors and return corresponding message, or null if no errors are detected
|
||||||
|
fun verify(file: PsiFile): String?
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MoveDestinationKotlinMoveTarget(val moveDestination: MoveDestination): KotlinMoveTarget {
|
||||||
|
override val packageWrapper: PackageWrapper? = moveDestination.getTargetPackage()
|
||||||
|
|
||||||
|
override fun getOrCreateTargetPsi(originalPsi: PsiElement): PsiElement? =
|
||||||
|
moveDestination.getTargetDirectory(originalPsi.getContainingFile())
|
||||||
|
|
||||||
|
override fun getTargetPsiIfExists(originalPsi: PsiElement): PsiElement? =
|
||||||
|
moveDestination.getTargetIfExists(originalPsi.getContainingFile())
|
||||||
|
|
||||||
|
override fun verify(file: PsiFile): String? = moveDestination.verify(file)
|
||||||
|
}
|
||||||
|
|
||||||
|
public class JetFileKotlinMoveTarget(val targetFile: JetFile): KotlinMoveTarget {
|
||||||
|
override val packageWrapper: PackageWrapper? = targetFile.getPackageName()?.let { packageName ->
|
||||||
|
PackageWrapper(PsiManager.getInstance(targetFile.getProject()), packageName)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getOrCreateTargetPsi(originalPsi: PsiElement): PsiElement? = targetFile
|
||||||
|
|
||||||
|
override fun getTargetPsiIfExists(originalPsi: PsiElement): PsiElement? = targetFile
|
||||||
|
|
||||||
|
// No additional verification is needed
|
||||||
|
override fun verify(file: PsiFile): String? = null
|
||||||
|
}
|
||||||
+38
-36
@@ -20,7 +20,6 @@ import com.intellij.refactoring.BaseRefactoringProcessor
|
|||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.usageView.UsageInfo
|
import com.intellij.usageView.UsageInfo
|
||||||
import com.intellij.usageView.UsageViewDescriptor
|
import com.intellij.usageView.UsageViewDescriptor
|
||||||
import com.intellij.refactoring.MoveDestination
|
|
||||||
import com.intellij.refactoring.move.MoveCallback
|
import com.intellij.refactoring.move.MoveCallback
|
||||||
import com.intellij.refactoring.move.MoveMultipleElementsViewDescriptor
|
import com.intellij.refactoring.move.MoveMultipleElementsViewDescriptor
|
||||||
import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesUtil
|
import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesUtil
|
||||||
@@ -33,7 +32,6 @@ import com.intellij.util.IncorrectOperationException
|
|||||||
import com.intellij.refactoring.util.RefactoringUIUtil
|
import com.intellij.refactoring.util.RefactoringUIUtil
|
||||||
import org.jetbrains.jet.utils.keysToMap
|
import org.jetbrains.jet.utils.keysToMap
|
||||||
import com.intellij.refactoring.rename.RenameUtil
|
import com.intellij.refactoring.rename.RenameUtil
|
||||||
import com.intellij.refactoring.move.MoveClassesOrPackagesCallback
|
|
||||||
import org.jetbrains.jet.plugin.refactoring.JetRefactoringBundle
|
import org.jetbrains.jet.plugin.refactoring.JetRefactoringBundle
|
||||||
import com.intellij.openapi.util.text.StringUtil
|
import com.intellij.openapi.util.text.StringUtil
|
||||||
import com.intellij.psi.PsiDirectory
|
import com.intellij.psi.PsiDirectory
|
||||||
@@ -56,14 +54,12 @@ import com.intellij.psi.PsiReference
|
|||||||
import com.intellij.psi.search.searches.ReferencesSearch
|
import com.intellij.psi.search.searches.ReferencesSearch
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import com.intellij.refactoring.util.MoveRenameUsageInfo
|
import com.intellij.refactoring.util.MoveRenameUsageInfo
|
||||||
import com.intellij.psi.PsiClass
|
|
||||||
import com.intellij.refactoring.util.TextOccurrencesUtil
|
import com.intellij.refactoring.util.TextOccurrencesUtil
|
||||||
import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassHandler
|
import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassHandler
|
||||||
import com.intellij.util.containers.MultiMap
|
import com.intellij.util.containers.MultiMap
|
||||||
import org.jetbrains.jet.asJava.namedUnwrappedElement
|
import org.jetbrains.jet.asJava.namedUnwrappedElement
|
||||||
import org.jetbrains.jet.lang.psi.psiUtil.isPrivate
|
import org.jetbrains.jet.lang.psi.psiUtil.isPrivate
|
||||||
import org.jetbrains.jet.plugin.refactoring.getUsageContext
|
import org.jetbrains.jet.plugin.refactoring.getUsageContext
|
||||||
import com.intellij.refactoring.util.CommonRefactoringUtil
|
|
||||||
import org.jetbrains.jet.lang.psi.psiUtil.isInsideOf
|
import org.jetbrains.jet.lang.psi.psiUtil.isInsideOf
|
||||||
import org.jetbrains.jet.plugin.codeInsight.JetFileReferencesResolver
|
import org.jetbrains.jet.plugin.codeInsight.JetFileReferencesResolver
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext
|
import org.jetbrains.jet.lang.resolve.BindingContext
|
||||||
@@ -78,7 +74,7 @@ import org.jetbrains.jet.plugin.references.JetSimpleNameReference.ShorteningMode
|
|||||||
|
|
||||||
public class MoveKotlinTopLevelDeclarationsOptions(
|
public class MoveKotlinTopLevelDeclarationsOptions(
|
||||||
val elementsToMove: Collection<JetNamedDeclaration>,
|
val elementsToMove: Collection<JetNamedDeclaration>,
|
||||||
val moveDestination: MoveDestination,
|
val moveTarget: KotlinMoveTarget,
|
||||||
val searchInCommentsAndStrings: Boolean = true,
|
val searchInCommentsAndStrings: Boolean = true,
|
||||||
val searchInNonCode: Boolean = true,
|
val searchInNonCode: Boolean = true,
|
||||||
val moveCallback: MoveCallback? = null
|
val moveCallback: MoveCallback? = null
|
||||||
@@ -92,18 +88,19 @@ public class MoveKotlinTopLevelDeclarationsProcessor(project: Project, val optio
|
|||||||
}
|
}
|
||||||
|
|
||||||
private var nonCodeUsages: Array<NonCodeUsageInfo>? = null
|
private var nonCodeUsages: Array<NonCodeUsageInfo>? = null
|
||||||
private val kotlinToLightElements = options.elementsToMove.keysToMap { it.toLightElements() }
|
private val elementsToMove = options.elementsToMove.filter { e -> e.getContainingFile() != options.moveTarget.getTargetPsiIfExists(e) }
|
||||||
|
private val kotlinToLightElements = elementsToMove.keysToMap { it.toLightElements() }
|
||||||
private val conflicts = MultiMap<PsiElement, String>()
|
private val conflicts = MultiMap<PsiElement, String>()
|
||||||
|
|
||||||
override fun createUsageViewDescriptor(usages: Array<out UsageInfo>?): UsageViewDescriptor {
|
override fun createUsageViewDescriptor(usages: Array<out UsageInfo>?): UsageViewDescriptor {
|
||||||
return MoveMultipleElementsViewDescriptor(
|
return MoveMultipleElementsViewDescriptor(
|
||||||
options.elementsToMove.copyToArray(),
|
elementsToMove.copyToArray(),
|
||||||
MoveClassesOrPackagesUtil.getPackageName(options.moveDestination.getTargetPackage())
|
MoveClassesOrPackagesUtil.getPackageName(options.moveTarget.packageWrapper)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun findUsages(): Array<UsageInfo> {
|
override fun findUsages(): Array<UsageInfo> {
|
||||||
val newPackageName = options.moveDestination.getTargetPackage()?.getQualifiedName() ?: ""
|
val newPackageName = options.moveTarget.packageWrapper?.getQualifiedName() ?: ""
|
||||||
|
|
||||||
fun collectUsages(): List<UsageInfo> {
|
fun collectUsages(): List<UsageInfo> {
|
||||||
return kotlinToLightElements.values().flatten().flatMap { lightElement ->
|
return kotlinToLightElements.values().flatten().flatMap { lightElement ->
|
||||||
@@ -156,7 +153,7 @@ public class MoveKotlinTopLevelDeclarationsProcessor(project: Project, val optio
|
|||||||
val declaration = usage.getReferencedElement()?.namedUnwrappedElement as? JetNamedDeclaration
|
val declaration = usage.getReferencedElement()?.namedUnwrappedElement as? JetNamedDeclaration
|
||||||
if (declaration == null || !declaration.isPrivate()) continue
|
if (declaration == null || !declaration.isPrivate()) continue
|
||||||
|
|
||||||
if (element.isInsideOf(options.elementsToMove)) continue
|
if (element.isInsideOf(elementsToMove)) continue
|
||||||
|
|
||||||
val container = element.getUsageContext()
|
val container = element.getUsageContext()
|
||||||
if (!declarationToContainers.getOrPut(declaration) { HashSet<PsiElement>() }.add(container)) continue
|
if (!declarationToContainers.getOrPut(declaration) { HashSet<PsiElement>() }.add(container)) continue
|
||||||
@@ -177,13 +174,13 @@ public class MoveKotlinTopLevelDeclarationsProcessor(project: Project, val optio
|
|||||||
|
|
||||||
fun collectConflictsInDeclarations() {
|
fun collectConflictsInDeclarations() {
|
||||||
val declarationToReferenceTargets = HashMap<JetNamedDeclaration, MutableSet<PsiElement>>()
|
val declarationToReferenceTargets = HashMap<JetNamedDeclaration, MutableSet<PsiElement>>()
|
||||||
for (declaration in options.elementsToMove) {
|
for (declaration in elementsToMove) {
|
||||||
val referenceToContext = JetFileReferencesResolver.resolve(element = declaration, visitReceivers = false)
|
val referenceToContext = JetFileReferencesResolver.resolve(element = declaration, visitReceivers = false)
|
||||||
for ((refExpr, bindingContext) in referenceToContext) {
|
for ((refExpr, bindingContext) in referenceToContext) {
|
||||||
val refTarget = bindingContext[BindingContext.REFERENCE_TARGET, refExpr]?.let { descriptor ->
|
val refTarget = bindingContext[BindingContext.REFERENCE_TARGET, refExpr]?.let { descriptor ->
|
||||||
DescriptorToDeclarationUtil.getDeclaration(declaration.getProject(), descriptor, bindingContext)
|
DescriptorToDeclarationUtil.getDeclaration(declaration.getProject(), descriptor, bindingContext)
|
||||||
}
|
}
|
||||||
if (refTarget == null || refTarget.isInsideOf(options.elementsToMove)) continue
|
if (refTarget == null || refTarget.isInsideOf(elementsToMove)) continue
|
||||||
|
|
||||||
val packagePrivate = when(refTarget) {
|
val packagePrivate = when(refTarget) {
|
||||||
is JetModifierListOwner ->
|
is JetModifierListOwner ->
|
||||||
@@ -223,23 +220,32 @@ public class MoveKotlinTopLevelDeclarationsProcessor(project: Project, val optio
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun performRefactoring(usages: Array<out UsageInfo>?) {
|
override fun performRefactoring(usages: Array<out UsageInfo>?) {
|
||||||
fun moveDeclaration(declaration: JetNamedDeclaration, moveDestination: PsiDirectory): JetNamedDeclaration? {
|
fun moveDeclaration(declaration: JetNamedDeclaration, moveTarget: KotlinMoveTarget): JetNamedDeclaration? {
|
||||||
val newPackage = moveDestination.getPackage()
|
|
||||||
if (newPackage == null) return null
|
|
||||||
|
|
||||||
val file = declaration.getContainingFile() as? JetFile
|
val file = declaration.getContainingFile() as? JetFile
|
||||||
if (file == null) return null
|
assert (file != null, "${declaration.getClass()}: ${declaration.getText()}")
|
||||||
|
|
||||||
val packageNameInfo = PackageNameInfo(JetPsiUtil.getFQName(file), FqName(newPackage.getQualifiedName()))
|
val targetPsi = moveTarget.getOrCreateTargetPsi(declaration)
|
||||||
|
val targetFile =
|
||||||
|
if (targetPsi is PsiDirectory) {
|
||||||
|
val existingFile = if (targetPsi != file!!.getContainingDirectory()) targetPsi.findFile(file.getName()) else null
|
||||||
|
val newFile = existingFile ?: declaration.getFileNameAfterMove()?.let {
|
||||||
|
fileName ->
|
||||||
|
createKotlinFile(fileName, targetPsi)
|
||||||
|
}
|
||||||
|
|
||||||
val existingFile = if (moveDestination != file.getContainingDirectory()) moveDestination.findFile(file.getName()) else null
|
newFile
|
||||||
val newFile = existingFile ?: declaration.getFileNameAfterMove()?.let {
|
}
|
||||||
fileName -> createKotlinFile(fileName, moveDestination)
|
else targetPsi
|
||||||
}
|
|
||||||
assert(newFile != null, "Couldn't create Koltin file for: ${declaration.getClass()}: ${declaration.getText()}")
|
|
||||||
|
|
||||||
|
assert(targetFile is JetFile, "Couldn't create Koltin file for: ${declaration.getClass()}: ${declaration.getText()}")
|
||||||
|
|
||||||
|
val newPackage = (targetFile as JetFile).getPackageName()
|
||||||
|
assert (newPackage != null, "${targetFile.getClass()}: ${targetFile.getText()}")
|
||||||
|
|
||||||
|
val packageNameInfo = PackageNameInfo(JetPsiUtil.getFQName(file!!), FqName(newPackage!!))
|
||||||
declaration.updateInternalReferencesOnPackageNameChange(packageNameInfo, ShorteningMode.NO_SHORTENING)
|
declaration.updateInternalReferencesOnPackageNameChange(packageNameInfo, ShorteningMode.NO_SHORTENING)
|
||||||
val newElement = newFile!!.add(declaration) as JetNamedDeclaration
|
|
||||||
|
val newElement = targetFile.add(declaration) as JetNamedDeclaration
|
||||||
declaration.delete()
|
declaration.delete()
|
||||||
|
|
||||||
newElement.addToShorteningWaitSet()
|
newElement.addToShorteningWaitSet()
|
||||||
@@ -250,11 +256,13 @@ public class MoveKotlinTopLevelDeclarationsProcessor(project: Project, val optio
|
|||||||
try {
|
try {
|
||||||
val oldToNewElementsMapping = HashMap<PsiElement, PsiElement>()
|
val oldToNewElementsMapping = HashMap<PsiElement, PsiElement>()
|
||||||
for ((oldDeclaration, oldLightElements) in kotlinToLightElements) {
|
for ((oldDeclaration, oldLightElements) in kotlinToLightElements) {
|
||||||
val targetDirectory = options.moveDestination.getTargetDirectory(oldDeclaration.getContainingFile())
|
val newDeclaration = moveDeclaration(oldDeclaration, options.moveTarget)
|
||||||
if (targetDirectory == null) continue
|
if (newDeclaration == null) {
|
||||||
|
for (oldElement in oldLightElements) {
|
||||||
val newDeclaration = moveDeclaration(oldDeclaration, targetDirectory)
|
oldToNewElementsMapping[oldElement] = oldElement
|
||||||
if (newDeclaration == null) continue
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
getTransaction()!!.getElementListener(oldDeclaration).elementMoved(newDeclaration)
|
getTransaction()!!.getElementListener(oldDeclaration).elementMoved(newDeclaration)
|
||||||
for ((oldElement, newElement) in oldLightElements.iterator() zip newDeclaration.toLightElements().iterator()) {
|
for ((oldElement, newElement) in oldLightElements.iterator() zip newDeclaration.toLightElements().iterator()) {
|
||||||
@@ -272,13 +280,7 @@ public class MoveKotlinTopLevelDeclarationsProcessor(project: Project, val optio
|
|||||||
|
|
||||||
override fun performPsiSpoilingRefactoring() {
|
override fun performPsiSpoilingRefactoring() {
|
||||||
nonCodeUsages?.let { nonCodeUsages -> RenameUtil.renameNonCodeUsages(myProject, nonCodeUsages) }
|
nonCodeUsages?.let { nonCodeUsages -> RenameUtil.renameNonCodeUsages(myProject, nonCodeUsages) }
|
||||||
|
options.moveCallback?.refactoringCompleted()
|
||||||
options.moveCallback?.let { moveCallback ->
|
|
||||||
if (moveCallback is MoveClassesOrPackagesCallback) {
|
|
||||||
moveCallback.classesOrPackagesMoved(options.moveDestination)
|
|
||||||
}
|
|
||||||
moveCallback.refactoringCompleted()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getCommandName(): String = REFACTORING_NAME
|
override fun getCommandName(): String = REFACTORING_NAME
|
||||||
|
|||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
import b.Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: Test = Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
import b.Test as _Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: _Test = _Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
open class Foo {
|
||||||
|
open class Bar {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
import b.Test
|
||||||
|
|
||||||
|
fun test(): Test {
|
||||||
|
return Test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package a;
|
||||||
|
|
||||||
|
import b.Test;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
Test t = new Test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
import b.Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: Test = Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
import b.Test as _Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: _Test = _Test()
|
||||||
|
}
|
||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
open class Foo {
|
||||||
|
open class Bar {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Test {
|
||||||
|
val aFoo: a.Foo = a.Foo()
|
||||||
|
val bFoo: Foo = Foo()
|
||||||
|
val cFoo: c.Foo = c.Foo()
|
||||||
|
val aBar: a.Foo.Bar = a.Foo.Bar()
|
||||||
|
val bBar: Foo.Bar = Foo.Bar()
|
||||||
|
val cBar: c.Foo.Bar = c.Foo.Bar()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
Test t = new Test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: Test = Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
Test t = new Test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
import a.*
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: Test = Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
Test t = new Test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
import b.Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: Test = Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
import b.Test as _Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: _Test = _Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
open class Foo {
|
||||||
|
open class Bar {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package c;
|
||||||
|
|
||||||
|
import b.Test;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
Test t = new Test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
import b.Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: Test = Test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package c;
|
||||||
|
|
||||||
|
import b.Test;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
Test t = new Test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
import a.*
|
||||||
|
import b.Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: Test = Test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package c;
|
||||||
|
|
||||||
|
import b.Test;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
Test t = new Test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
import b.Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: Test = Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
import b.Test as _Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: _Test = _Test()
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: Test = Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
import a.Test as _Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: _Test = _Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
open class Foo {
|
||||||
|
open class Bar {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
class <caret>Test {
|
||||||
|
val aFoo: Foo = Foo()
|
||||||
|
val bFoo: b.Foo = b.Foo()
|
||||||
|
val cFoo: c.Foo = c.Foo()
|
||||||
|
val aBar: Foo.Bar = Foo.Bar()
|
||||||
|
val bBar: b.Foo.Bar = b.Foo.Bar()
|
||||||
|
val cBar: c.Foo.Bar = c.Foo.Bar()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun test(): Test {
|
||||||
|
return Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
Test t = new Test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: Test = Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
import a.Test as _Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: _Test = _Test()
|
||||||
|
}
|
||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
open class Foo {
|
||||||
|
open class Bar {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
a.Test t = new a.Test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: a.Test = a.Test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
import a.*;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
Test t = new Test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
import a.*
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: Test = Test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
import a.Test;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
Test t = new Test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
import a.Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: Test = Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
import a.Test as _Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: _Test = _Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
open class Foo {
|
||||||
|
open class Bar {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
a.Test t = new a.Test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: a.Test = a.Test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package c;
|
||||||
|
|
||||||
|
import a.*;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
Test t = new Test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
import a.*
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: Test = Test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package c;
|
||||||
|
|
||||||
|
import a.Test;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
Test t = new Test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
import a.Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: Test = Test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
import a.Test as _Test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val t: _Test = _Test()
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"mainFile": "a/main.kt",
|
||||||
|
"type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS",
|
||||||
|
"targetFile": "b/dependency.kt"
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
b.test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
import b.test as _test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
_test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
open class Foo {
|
||||||
|
open class Bar {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
class Test {
|
||||||
|
fun foo() {
|
||||||
|
b.test()
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
b.BPackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
b.test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
b.BPackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
import b.test as _test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
_test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package a;
|
||||||
|
|
||||||
|
import static b.BPackage.test;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
open class Foo {
|
||||||
|
open class Bar {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun test {
|
||||||
|
val aFoo: a.Foo = a.Foo()
|
||||||
|
val bFoo: Foo = Foo()
|
||||||
|
val cFoo: c.Foo = c.Foo()
|
||||||
|
val aBar: a.Foo.Bar = a.Foo.Bar()
|
||||||
|
val bBar: Foo.Bar = Foo.Bar()
|
||||||
|
val cBar: c.Foo.Bar = c.Foo.Bar()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
b.BPackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
b.BPackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
import a.*
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
b.BPackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
b.BPackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
import b.test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
import b.test as _test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
_test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
import static b.BPackage.test;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
open class Foo {
|
||||||
|
open class Bar {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
b.BPackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
b.test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
b.BPackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
import a.*
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
b.test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
b.BPackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
b.BPackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
import b.test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
import b.test as _test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
_test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package c;
|
||||||
|
|
||||||
|
import static b.BPackage.test;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
import a.test as _test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
_test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
open class Foo {
|
||||||
|
open class Bar {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
fun <caret>test {
|
||||||
|
val aFoo: Foo = Foo()
|
||||||
|
val bFoo: b.Foo = b.Foo()
|
||||||
|
val cFoo: c.Foo = c.Foo()
|
||||||
|
val aBar: Foo.Bar = Foo.Bar()
|
||||||
|
val bBar: b.Foo.Bar = b.Foo.Bar()
|
||||||
|
val cBar: c.Foo.Bar = c.Foo.Bar()
|
||||||
|
}
|
||||||
|
|
||||||
|
class Test {
|
||||||
|
fun foo() {
|
||||||
|
test()
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
APackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package a;
|
||||||
|
|
||||||
|
import static a.APackage.*;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package a
|
||||||
|
|
||||||
|
import a.test as _test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
_test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package a;
|
||||||
|
|
||||||
|
import static a.APackage.test;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
open class Foo {
|
||||||
|
open class Bar {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
a.APackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
a.test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
import a.*;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
APackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
import a.*
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
import static a.APackage.*;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
import a.APackage;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
APackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
import a.test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
test()
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package b
|
||||||
|
|
||||||
|
import a.test as _test
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
_test()
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package b;
|
||||||
|
|
||||||
|
import static a.APackage.test;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
open class Foo {
|
||||||
|
open class Bar {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package c;
|
||||||
|
|
||||||
|
class J {
|
||||||
|
void bar() {
|
||||||
|
a.APackage.test();
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package c
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
a.test()
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user