Move Refactoring: Do not replace references to local declaration with qualified names. Update and fix test data
#KT-4851 Fixed
This commit is contained in:
@@ -32,6 +32,7 @@ import org.jetbrains.jet.asJava.KotlinLightClass
|
|||||||
import org.jetbrains.jet.plugin.JetFileType
|
import org.jetbrains.jet.plugin.JetFileType
|
||||||
import org.jetbrains.jet.lang.psi.JetClassOrObject
|
import org.jetbrains.jet.lang.psi.JetClassOrObject
|
||||||
import org.jetbrains.jet.lang.psi.JetNamedDeclaration
|
import org.jetbrains.jet.lang.psi.JetNamedDeclaration
|
||||||
|
import org.jetbrains.jet.plugin.imports.canBeReferencedViaImport
|
||||||
|
|
||||||
public class PackageNameInfo(val oldPackageName: FqName, val newPackageName: FqName)
|
public class PackageNameInfo(val oldPackageName: FqName, val newPackageName: FqName)
|
||||||
|
|
||||||
@@ -49,7 +50,7 @@ public fun JetElement.updateInternalReferencesOnPackageNameChange(
|
|||||||
val descriptor = bindingContext[BindingContext.REFERENCE_TARGET, refExpr]?.let { descriptor ->
|
val descriptor = bindingContext[BindingContext.REFERENCE_TARGET, refExpr]?.let { descriptor ->
|
||||||
if (descriptor is ConstructorDescriptor) descriptor.getContainingDeclaration() else descriptor
|
if (descriptor is ConstructorDescriptor) descriptor.getContainingDeclaration() else descriptor
|
||||||
}
|
}
|
||||||
if (descriptor == null) continue
|
if (descriptor == null || !descriptor.canBeReferencedViaImport()) continue
|
||||||
|
|
||||||
val packageName = DescriptorUtils.getParentOfType(
|
val packageName = DescriptorUtils.getParentOfType(
|
||||||
descriptor, javaClass<PackageFragmentDescriptor>(), false
|
descriptor, javaClass<PackageFragmentDescriptor>(), false
|
||||||
|
|||||||
+10
@@ -7,6 +7,16 @@ open class Foo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class Test {
|
class Test {
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
val aFoo: a.Foo = a.Foo()
|
val aFoo: a.Foo = a.Foo()
|
||||||
val bFoo: Foo = Foo()
|
val bFoo: Foo = Foo()
|
||||||
val cFoo: c.Foo = c.Foo()
|
val cFoo: c.Foo = c.Foo()
|
||||||
|
|||||||
+10
@@ -1,6 +1,16 @@
|
|||||||
package a
|
package a
|
||||||
|
|
||||||
class <caret>Test {
|
class <caret>Test {
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
val aFoo: Foo = Foo()
|
val aFoo: Foo = Foo()
|
||||||
val bFoo: b.Foo = b.Foo()
|
val bFoo: b.Foo = b.Foo()
|
||||||
val cFoo: c.Foo = c.Foo()
|
val cFoo: c.Foo = c.Foo()
|
||||||
|
|||||||
+10
@@ -1,6 +1,16 @@
|
|||||||
package b
|
package b
|
||||||
|
|
||||||
class Test {
|
class Test {
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
val aFoo: a.Foo = a.Foo()
|
val aFoo: a.Foo = a.Foo()
|
||||||
val bFoo: Foo = Foo()
|
val bFoo: Foo = Foo()
|
||||||
val cFoo: c.Foo = c.Foo()
|
val cFoo: c.Foo = c.Foo()
|
||||||
|
|||||||
+10
@@ -1,6 +1,16 @@
|
|||||||
package a
|
package a
|
||||||
|
|
||||||
class <caret>Test {
|
class <caret>Test {
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
val aFoo: Foo = Foo()
|
val aFoo: Foo = Foo()
|
||||||
val bFoo: b.Foo = b.Foo()
|
val bFoo: b.Foo = b.Foo()
|
||||||
val cFoo: c.Foo = c.Foo()
|
val cFoo: c.Foo = c.Foo()
|
||||||
|
|||||||
+13
-1
@@ -6,11 +6,23 @@ open class Foo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun test {
|
fun test() {
|
||||||
val aFoo: a.Foo = a.Foo()
|
val aFoo: a.Foo = a.Foo()
|
||||||
val bFoo: Foo = Foo()
|
val bFoo: Foo = Foo()
|
||||||
val cFoo: c.Foo = c.Foo()
|
val cFoo: c.Foo = c.Foo()
|
||||||
val aBar: a.Foo.Bar = a.Foo.Bar()
|
val aBar: a.Foo.Bar = a.Foo.Bar()
|
||||||
val bBar: Foo.Bar = Foo.Bar()
|
val bBar: Foo.Bar = Foo.Bar()
|
||||||
val cBar: c.Foo.Bar = c.Foo.Bar()
|
val cBar: c.Foo.Bar = c.Foo.Bar()
|
||||||
|
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
foo(1)
|
||||||
}
|
}
|
||||||
+13
-1
@@ -1,12 +1,24 @@
|
|||||||
package a
|
package a
|
||||||
|
|
||||||
fun <caret>test {
|
fun <caret>test() {
|
||||||
val aFoo: Foo = Foo()
|
val aFoo: Foo = Foo()
|
||||||
val bFoo: b.Foo = b.Foo()
|
val bFoo: b.Foo = b.Foo()
|
||||||
val cFoo: c.Foo = c.Foo()
|
val cFoo: c.Foo = c.Foo()
|
||||||
val aBar: Foo.Bar = Foo.Bar()
|
val aBar: Foo.Bar = Foo.Bar()
|
||||||
val bBar: b.Foo.Bar = b.Foo.Bar()
|
val bBar: b.Foo.Bar = b.Foo.Bar()
|
||||||
val cBar: c.Foo.Bar = c.Foo.Bar()
|
val cBar: c.Foo.Bar = c.Foo.Bar()
|
||||||
|
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
foo(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
class Test {
|
class Test {
|
||||||
|
|||||||
+13
-1
@@ -1,10 +1,22 @@
|
|||||||
package b
|
package b
|
||||||
|
|
||||||
fun test {
|
fun test() {
|
||||||
val aFoo: a.Foo = a.Foo()
|
val aFoo: a.Foo = a.Foo()
|
||||||
val bFoo: Foo = Foo()
|
val bFoo: Foo = Foo()
|
||||||
val cFoo: c.Foo = c.Foo()
|
val cFoo: c.Foo = c.Foo()
|
||||||
val aBar: a.Foo.Bar = a.Foo.Bar()
|
val aBar: a.Foo.Bar = a.Foo.Bar()
|
||||||
val bBar: Foo.Bar = Foo.Bar()
|
val bBar: Foo.Bar = Foo.Bar()
|
||||||
val cBar: c.Foo.Bar = c.Foo.Bar()
|
val cBar: c.Foo.Bar = c.Foo.Bar()
|
||||||
|
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
foo(1)
|
||||||
}
|
}
|
||||||
+13
-1
@@ -1,12 +1,24 @@
|
|||||||
package a
|
package a
|
||||||
|
|
||||||
fun <caret>test {
|
fun <caret>test() {
|
||||||
val aFoo: Foo = Foo()
|
val aFoo: Foo = Foo()
|
||||||
val bFoo: b.Foo = b.Foo()
|
val bFoo: b.Foo = b.Foo()
|
||||||
val cFoo: c.Foo = c.Foo()
|
val cFoo: c.Foo = c.Foo()
|
||||||
val aBar: Foo.Bar = Foo.Bar()
|
val aBar: Foo.Bar = Foo.Bar()
|
||||||
val bBar: b.Foo.Bar = b.Foo.Bar()
|
val bBar: b.Foo.Bar = b.Foo.Bar()
|
||||||
val cBar: c.Foo.Bar = c.Foo.Bar()
|
val cBar: c.Foo.Bar = c.Foo.Bar()
|
||||||
|
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
foo(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
class Test {
|
class Test {
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
package a
|
package a
|
||||||
|
|
||||||
private fun test {
|
private fun test() {
|
||||||
foo(Foo())
|
foo(Foo())
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
package a
|
package a
|
||||||
|
|
||||||
private fun <caret>test {
|
private fun <caret>test() {
|
||||||
foo(Foo())
|
foo(Foo())
|
||||||
}
|
}
|
||||||
|
|||||||
+10
@@ -7,6 +7,16 @@ open class Foo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
object Test {
|
object Test {
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
val aFoo: a.Foo = a.Foo()
|
val aFoo: a.Foo = a.Foo()
|
||||||
val bFoo: Foo = Foo()
|
val bFoo: Foo = Foo()
|
||||||
val cFoo: c.Foo = c.Foo()
|
val cFoo: c.Foo = c.Foo()
|
||||||
|
|||||||
+10
@@ -1,6 +1,16 @@
|
|||||||
package a
|
package a
|
||||||
|
|
||||||
object <caret>Test {
|
object <caret>Test {
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
val aFoo: Foo = Foo()
|
val aFoo: Foo = Foo()
|
||||||
val bFoo: b.Foo = b.Foo()
|
val bFoo: b.Foo = b.Foo()
|
||||||
val cFoo: c.Foo = c.Foo()
|
val cFoo: c.Foo = c.Foo()
|
||||||
|
|||||||
+10
@@ -1,6 +1,16 @@
|
|||||||
package b
|
package b
|
||||||
|
|
||||||
object Test {
|
object Test {
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
val aFoo: a.Foo = a.Foo()
|
val aFoo: a.Foo = a.Foo()
|
||||||
val bFoo: Foo = Foo()
|
val bFoo: Foo = Foo()
|
||||||
val cFoo: c.Foo = c.Foo()
|
val cFoo: c.Foo = c.Foo()
|
||||||
|
|||||||
+10
@@ -1,6 +1,16 @@
|
|||||||
package a
|
package a
|
||||||
|
|
||||||
object <caret>Test {
|
object <caret>Test {
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
val aFoo: Foo = Foo()
|
val aFoo: Foo = Foo()
|
||||||
val bFoo: b.Foo = b.Foo()
|
val bFoo: b.Foo = b.Foo()
|
||||||
val cFoo: c.Foo = c.Foo()
|
val cFoo: c.Foo = c.Foo()
|
||||||
|
|||||||
+12
@@ -15,4 +15,16 @@ var test: String
|
|||||||
val aBar: a.Foo.Bar = a.Foo.Bar()
|
val aBar: a.Foo.Bar = a.Foo.Bar()
|
||||||
val bBar: Foo.Bar = Foo.Bar()
|
val bBar: Foo.Bar = Foo.Bar()
|
||||||
val cBar: c.Foo.Bar = c.Foo.Bar()
|
val cBar: c.Foo.Bar = c.Foo.Bar()
|
||||||
|
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
foo(1)
|
||||||
}
|
}
|
||||||
+12
@@ -9,6 +9,18 @@ var <caret>test: String
|
|||||||
val aBar: Foo.Bar = Foo.Bar()
|
val aBar: Foo.Bar = Foo.Bar()
|
||||||
val bBar: b.Foo.Bar = b.Foo.Bar()
|
val bBar: b.Foo.Bar = b.Foo.Bar()
|
||||||
val cBar: c.Foo.Bar = c.Foo.Bar()
|
val cBar: c.Foo.Bar = c.Foo.Bar()
|
||||||
|
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
foo(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
class Test {
|
class Test {
|
||||||
|
|||||||
+12
@@ -9,4 +9,16 @@ var test: String
|
|||||||
val aBar: a.Foo.Bar = a.Foo.Bar()
|
val aBar: a.Foo.Bar = a.Foo.Bar()
|
||||||
val bBar: Foo.Bar = Foo.Bar()
|
val bBar: Foo.Bar = Foo.Bar()
|
||||||
val cBar: c.Foo.Bar = c.Foo.Bar()
|
val cBar: c.Foo.Bar = c.Foo.Bar()
|
||||||
|
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
foo(1)
|
||||||
}
|
}
|
||||||
+12
@@ -9,6 +9,18 @@ var <caret>test: String
|
|||||||
val aBar: Foo.Bar = Foo.Bar()
|
val aBar: Foo.Bar = Foo.Bar()
|
||||||
val bBar: b.Foo.Bar = b.Foo.Bar()
|
val bBar: b.Foo.Bar = b.Foo.Bar()
|
||||||
val cBar: c.Foo.Bar = c.Foo.Bar()
|
val cBar: c.Foo.Bar = c.Foo.Bar()
|
||||||
|
|
||||||
|
fun foo(u: Int) {
|
||||||
|
class T(val t: Int)
|
||||||
|
object O {
|
||||||
|
val t: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val v = T(u).t + O.t
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
foo(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
class Test {
|
class Test {
|
||||||
|
|||||||
Reference in New Issue
Block a user