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:
Alexey Sedunov
2014-04-15 14:06:06 +04:00
parent 58b8eab620
commit db38f420f3
19 changed files with 184 additions and 7 deletions
@@ -32,6 +32,7 @@ import org.jetbrains.jet.asJava.KotlinLightClass
import org.jetbrains.jet.plugin.JetFileType
import org.jetbrains.jet.lang.psi.JetClassOrObject
import org.jetbrains.jet.lang.psi.JetNamedDeclaration
import org.jetbrains.jet.plugin.imports.canBeReferencedViaImport
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 ->
if (descriptor is ConstructorDescriptor) descriptor.getContainingDeclaration() else descriptor
}
if (descriptor == null) continue
if (descriptor == null || !descriptor.canBeReferencedViaImport()) continue
val packageName = DescriptorUtils.getParentOfType(
descriptor, javaClass<PackageFragmentDescriptor>(), false
@@ -7,6 +7,16 @@ open class Foo {
}
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 bFoo: Foo = Foo()
val cFoo: c.Foo = c.Foo()
@@ -1,6 +1,16 @@
package a
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 bFoo: b.Foo = b.Foo()
val cFoo: c.Foo = c.Foo()
@@ -1,6 +1,16 @@
package b
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 bFoo: Foo = Foo()
val cFoo: c.Foo = c.Foo()
@@ -1,6 +1,16 @@
package a
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 bFoo: b.Foo = b.Foo()
val cFoo: c.Foo = c.Foo()
@@ -6,11 +6,23 @@ open class Foo {
}
}
fun test {
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()
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)
}
@@ -1,12 +1,24 @@
package a
fun <caret>test {
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()
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 {
@@ -1,10 +1,22 @@
package b
fun test {
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()
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)
}
@@ -1,12 +1,24 @@
package a
fun <caret>test {
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()
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 {
@@ -1,5 +1,5 @@
package a
private fun test {
private fun test() {
foo(Foo())
}
@@ -1,5 +1,5 @@
package a
private fun <caret>test {
private fun <caret>test() {
foo(Foo())
}
@@ -7,6 +7,16 @@ open class Foo {
}
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 bFoo: Foo = Foo()
val cFoo: c.Foo = c.Foo()
@@ -1,6 +1,16 @@
package a
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 bFoo: b.Foo = b.Foo()
val cFoo: c.Foo = c.Foo()
@@ -1,6 +1,16 @@
package b
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 bFoo: Foo = Foo()
val cFoo: c.Foo = c.Foo()
@@ -1,6 +1,16 @@
package a
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 bFoo: b.Foo = b.Foo()
val cFoo: c.Foo = c.Foo()
@@ -15,4 +15,16 @@ var test: String
val aBar: a.Foo.Bar = a.Foo.Bar()
val bBar: Foo.Bar = 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)
}
@@ -9,6 +9,18 @@ var <caret>test: String
val aBar: Foo.Bar = Foo.Bar()
val bBar: b.Foo.Bar = b.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 {
@@ -9,4 +9,16 @@ var test: String
val aBar: a.Foo.Bar = a.Foo.Bar()
val bBar: Foo.Bar = 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)
}
@@ -9,6 +9,18 @@ var <caret>test: String
val aBar: Foo.Bar = Foo.Bar()
val bBar: b.Foo.Bar = b.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 {