Quick Fixes: Implement "Rename unresolved reference" fix

#KT-8795 Fixed
This commit is contained in:
Alexey Sedunov
2015-12-03 12:45:59 +03:00
parent d850d7bbad
commit e517cbcf78
96 changed files with 580 additions and 0 deletions
@@ -1,4 +1,5 @@
// "class org.jetbrains.kotlin.idea.quickfix.AutoImportFix" "false"
// ACTION: Rename reference
// ERROR: Unresolved reference: externalFun
package testing
@@ -3,6 +3,7 @@
// ACTION: Create object 'Nested'
// ACTION: Create parameter 'Nested'
// ACTION: Create property 'Nested'
// ACTION: Rename reference
// ERROR: Unresolved reference: Nested
fun test() {
@@ -3,6 +3,7 @@
// ACTION: Create object 'PrivateClass'
// ACTION: Create parameter 'PrivateClass'
// ACTION: Create property 'PrivateClass'
// ACTION: Rename reference
// ERROR: Unresolved reference: PrivateClass
fun test() {
@@ -4,6 +4,7 @@
// ACTION: Create interface 'SomeTest'
// ACTION: Create enum 'SomeTest'
// ACTION: Create object 'SomeTest'
// ACTION: Rename reference
// ERROR: Unresolved reference: SomeTest
package testing
@@ -1,5 +1,6 @@
// "class org.jetbrains.kotlin.idea.quickfix.AutoImportFix" "false"
// ACTION: Create class 'SomeTest'
// ACTION: Rename reference
// ERROR: Unresolved reference: SomeTest
package testing
@@ -3,6 +3,7 @@
// ERROR: Expression expected, but a package name found
// ACTION: Create class 'SomeTest'
// ACTION: Replace safe access expression with 'if' expression
// ACTION: Rename reference
package testing
@@ -1,6 +1,7 @@
// "class org.jetbrains.kotlin.idea.quickfix.AutoImportFix" "false"
// ACTION: Create class 'SomeClass'
// ACTION: Create function 'SomeClass'
// ACTION: Rename reference
// ERROR: Unresolved reference: SomeClass
val x = <caret>SomeClass()
@@ -1,6 +1,7 @@
// "class org.jetbrains.kotlin.idea.quickfix.AutoImportFix" "false"
// ACTION: Create class 'ExcludedClass'
// ACTION: Create function 'ExcludedClass'
// ACTION: Rename reference
// ERROR: Unresolved reference: ExcludedClass
val x = <caret>ExcludedClass()
@@ -1,5 +1,6 @@
// "class org.jetbrains.kotlin.idea.quickfix.AutoImportFix" "false"
// ACTION: Create function 'someFunction'
// ACTION: Rename reference
// ERROR: Unresolved reference: someFunction
val x = <caret>someFunction()
@@ -1,6 +1,7 @@
// "class org.jetbrains.kotlin.idea.quickfix.AutoImportFix" "false"
// ACTION: Create function 'FooPackage'
// ACTION: Create class 'FooPackage'
// ACTION: Rename reference
// ERROR: Unresolved reference: FooPackage
package packageClass
@@ -1,5 +1,6 @@
// "Create annotation 'foo'" "false"
// ACTION: Create function 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
fun test() = <caret>foo(1, "2")
@@ -1,6 +1,7 @@
// "Create class 'Foo'" "false"
// ACTION: Create function 'Foo'
// ACTION: Convert to block body
// ACTION: Rename reference
// ERROR: Unresolved reference: Foo
internal fun test(): A = <caret>Foo(2, "2")
@@ -1,6 +1,7 @@
// "Create class 'Foo'" "false"
// ACTION: Create function 'Foo'
// ACTION: Convert to block body
// ACTION: Rename reference
// ERROR: Unresolved reference: Foo
final class A
@@ -1,4 +1,5 @@
// "Create class 'Foo'" "false"
// ACTION: Rename reference
// ERROR: Unresolved reference: Foo
fun test() = J.<caret>Foo(2, "2")
@@ -1,5 +1,6 @@
// "Create class 'Foo'" "false"
// ACTION: Create extension function 'Foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: Foo
fun test() {
@@ -1,5 +1,6 @@
// "Create class 'Foo'" "false"
// ACTION: Create extension function 'Foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: Foo
class A<T>(val items: List<T>) {
@@ -1,4 +1,5 @@
// "Create class 'A'" "false"
// ACTION: Rename reference
// ERROR: Unresolved reference: A
import J.<caret>A
@@ -3,6 +3,7 @@
// ACTION: Create class 'A'
// ACTION: Create enum 'A'
// ACTION: Create interface 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
import E.<caret>A
@@ -4,6 +4,7 @@
// ACTION: Create object 'A'
// ACTION: Create enum 'A'
// ACTION: Create annotation 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
package p
@@ -4,6 +4,7 @@
// ACTION: Create object 'A'
// ACTION: Create enum 'A'
// ACTION: Create annotation 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
package p
@@ -4,6 +4,7 @@
// ACTION: Create class 'A'
// ACTION: Create interface 'A'
// ACTION: Create enum 'A'
// ACTION: Rename reference
import J.<caret>A
class X {
@@ -3,6 +3,7 @@
// ACTION: Create local variable 'A'
// ACTION: Create parameter 'A'
// ACTION: Create property 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
package p
@@ -1,3 +1,4 @@
// "Create class 'A'" "false"
// ACTION: Rename reference
// ERROR: Unresolved reference: A
fun foo() = J.<caret>A.B
@@ -1,5 +1,6 @@
// "Create class 'A'" "false"
// ACTION: Create object 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
package p
@@ -3,6 +3,7 @@
// ACTION: Create local variable 'A'
// ACTION: Create parameter 'A'
// ACTION: Create property 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
package p
@@ -1,5 +1,6 @@
// "Create class 'A'" "false"
// ACTION: Create object 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
package p
@@ -2,6 +2,7 @@
// ACTION: Create extension property 'A'
// ACTION: Create member property 'A'
// ACTION: Create property 'A' as constructor parameter
// ACTION: Rename reference
// ERROR: Unresolved reference: A
package p
@@ -3,6 +3,7 @@
// ACTION: Create local variable 'A'
// ACTION: Create parameter 'A'
// ACTION: Create property 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
package p
@@ -1,4 +1,5 @@
// "Create enum constant 'A'" "false"
// ACTION: Create member property 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
fun foo() = J.<caret>A
@@ -1,5 +1,6 @@
// "Create enum constant 'A'" "false"
// ACTION: Convert to block body
// ACTION: Create member property 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
internal fun foo(): J = J.<caret>A
@@ -1,4 +1,5 @@
// "Create enum constant 'A'" "false"
// ACTION: Create member property 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
fun foo() = J.<caret>A
@@ -1,5 +1,6 @@
// "Create enum constant 'A'" "false"
// ACTION: Convert to block body
// ACTION: Create member property 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
internal fun foo(): X = E.<caret>A
@@ -1,5 +1,6 @@
// "Create enum constant 'A'" "false"
// ACTION: Create object 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
package p
@@ -2,6 +2,7 @@
// ACTION: Create extension property 'A'
// ACTION: Create member property 'A'
// ACTION: Create property 'A' as constructor parameter
// ACTION: Rename reference
// ERROR: Unresolved reference: A
package p
@@ -1,6 +1,7 @@
// "Create enum constant 'A'" "false"
// ACTION: Convert to block body
// ACTION: Create object 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
package p
@@ -3,6 +3,7 @@
// ACTION: Create local variable 'A'
// ACTION: Create parameter 'A'
// ACTION: Create property 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
package p
@@ -1,4 +1,5 @@
// "Create object 'A'" "false"
// ACTION: Create member property 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
fun foo() = J.<caret>A
@@ -2,6 +2,7 @@
// ACTION: Create extension property 'A'
// ACTION: Create member property 'A'
// ACTION: Create property 'A' as constructor parameter
// ACTION: Rename reference
// ERROR: Unresolved reference: A
package p
@@ -3,6 +3,7 @@
// ACTION: Create parameter 'Foo'
// ACTION: Create property 'Foo'
// ACTION: Split property declaration
// ACTION: Rename reference
// ERROR: Unresolved reference: Foo
open class Cyclic<E : Cyclic<E>>
@@ -3,6 +3,7 @@
// ACTION: Create local variable 'A'
// ACTION: Create parameter 'A'
// ACTION: Create property 'A'
// ACTION: Rename reference
// ERROR: Unresolved reference: A
package p
@@ -2,6 +2,7 @@
// ACTION: Create annotation 'bar'
// ACTION: Make internal
// ACTION: Make private
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
// ERROR: Unresolved reference: bar
@@ -1,4 +1,5 @@
// "Create extension function 'foo'" "false"
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
package p
@@ -1,4 +1,5 @@
// "Create member function 'foo'" "false"
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
class A<T>(val n: T)
@@ -1,6 +1,7 @@
// "Create member function 'foo'" "false"
// ACTION: Convert to expression body
// ACTION: Create extension function 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
fun test(): Int {
@@ -1,4 +1,5 @@
// "Create function 'foo'" "false"
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
package p
@@ -1,5 +1,6 @@
// "Create extension function 'foo'" "false"
// ACTION: Create member function 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
fun test() {
@@ -1,5 +1,6 @@
// "Create function 'foo'" "false"
// "Create member function 'foo'" "false"
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
fun test() {
@@ -1,6 +1,7 @@
// "Create local variable 'foo'" "false"
// ACTION: Create parameter 'foo'
// ACTION: Create property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
class A {
@@ -1,5 +1,6 @@
// "Create local variable 'foo'" "false"
// ACTION: Create property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
val t: Int = <caret>foo
@@ -2,6 +2,7 @@
// ACTION: Create extension property 'foo'
// ACTION: Create member property 'foo'
// ACTION: Create property 'foo' as constructor parameter
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
class A
@@ -1,6 +1,7 @@
// "Create parameter 'foo'" "false"
// ACTION: Create local variable 'foo'
// ACTION: Create property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
fun test(n: Int) {
@@ -2,6 +2,7 @@
// ACTION: Convert to expression body
// ACTION: Create local variable 'foo'
// ACTION: Create property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
class A {
@@ -2,6 +2,7 @@
// ACTION: Convert to expression body
// ACTION: Create local variable 'foo'
// ACTION: Create property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
object A {
@@ -2,6 +2,7 @@
// ACTION: Convert to expression body
// ACTION: Create local variable 'foo'
// ACTION: Create property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
interface A {
@@ -2,6 +2,7 @@
// ACTION: Convert to expression body
// ACTION: Create local variable 'foo'
// ACTION: Create property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
val test: Int get() {
@@ -2,6 +2,7 @@
// ACTION: Create local variable 'foo'
// ACTION: Create property 'foo'
// ACTION: Split property declaration
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
class A {
@@ -2,6 +2,7 @@
// ACTION: Convert to expression body
// ACTION: Create local variable 'foo'
// ACTION: Create property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
class A {
@@ -2,6 +2,7 @@
// ACTION: Convert to expression body
// ACTION: Create local variable 'foo'
// ACTION: Create property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
class A<T> {
@@ -1,5 +1,6 @@
// "Create parameter 'foo'" "false"
// ACTION: Create property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
class A {
@@ -1,5 +1,6 @@
// "Create parameter 'foo'" "false"
// ACTION: Create property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
object A {
@@ -1,5 +1,6 @@
// "Create parameter 'foo'" "false"
// ACTION: Create property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
val test: Int = <caret>foo
@@ -1,6 +1,7 @@
// "Create parameter 'x'" "false"
// ERROR: Unresolved reference: x
// ACTION: Create property 'x'
// ACTION: Rename reference
enum class E(n: Int) {
X(<caret>x)
@@ -1,6 +1,7 @@
// "Create parameter 'b'" "false"
// ERROR: Unresolved reference: b
// ACTION: Create property 'b'
// ACTION: Rename reference
open class A(val a: Int) {
@@ -2,6 +2,7 @@
// ACTION: Create extension property 'foo'
// ACTION: Create member property 'foo'
// ACTION: Create property 'foo' as constructor parameter
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
class A
@@ -2,6 +2,7 @@
// ACTION: Convert to expression body
// ACTION: Create parameter 'foo'
// ACTION: Create local variable 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
fun test() {
@@ -3,6 +3,7 @@
// ACTION: Create local variable 'foo'
// ACTION: Create parameter 'foo'
// ACTION: Create property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
class A {
@@ -1,5 +1,6 @@
// "Create member property 'foo' as constructor parameter" "false"
// ACTION: Create member property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
fun test() {
@@ -3,6 +3,7 @@
// ACTION: Convert to expression body
// ACTION: Create local variable 'foo'
// ACTION: Create parameter 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
fun test(): Int {
@@ -1,6 +1,7 @@
// "Create member property 'foo' as constructor parameter" "false"
// ACTION: Create member property 'foo'
// ACTION: Create extension property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
class A<T>(val n: T) {
@@ -2,6 +2,7 @@
// ACTION: Create member property 'foo'
// ACTION: Convert to expression body
// ACTION: Create extension property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
fun test(): String? {
@@ -1,5 +1,6 @@
// "Create property 'foo' as constructor parameter" "false"
// ACTION: Create extension property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
class A<T>(val n: T)
@@ -1,6 +1,7 @@
// "Create property 'foo'" "false"
// ACTION: Create extension function 'bar'
// ACTION: Create member function 'bar'
// ACTION: Rename reference
// ERROR: Unresolved reference: bar
// ERROR: Unresolved reference: foo
@@ -1,4 +1,5 @@
// "Create extension property 'foo'" "false"
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
package p
@@ -2,6 +2,7 @@
// ACTION: Convert to expression body
// ACTION: Create parameter 'foo'
// ACTION: Create local variable 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
fun test() {
@@ -1,4 +1,5 @@
// "Create property 'foo'" "false"
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
package p
@@ -1,5 +1,6 @@
// "Create extension property 'foo'" "false"
// ACTION: Create member property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
fun test() {
@@ -1,4 +1,5 @@
// "Create property 'foo'" "false"
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
fun test() {
@@ -1,4 +1,5 @@
// "Create property 'foo'" "false"
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
class A<T>(val n: T)
@@ -1,6 +1,7 @@
// "Create property 'foo'" "false"
// ACTION: Convert to expression body
// ACTION: Create extension property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
fun test(): String? {
@@ -1,6 +1,7 @@
// "Create property 'foo'" "false"
// ACTION: Convert to expression body
// ACTION: Create extension property 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
internal fun test(a: A): String? {
@@ -0,0 +1,33 @@
// "Rename reference" "true"
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
class A {
fun f() = 1
fun g() = ""
}
class B
fun bar(i: Int) {
}
fun baz(i: Int) {
}
fun foo(a: A, b: B) {
val aa = A()
bar(a.x)
baz(a.x)
bar(a.<caret>x())
baz(a.x())
bar(a.x(1))
baz(a.x(1))
bar(aa.x())
bar(b.x())
}
@@ -0,0 +1,33 @@
// "Rename reference" "true"
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
class A {
fun f() = 1
fun g() = ""
}
class B
fun bar(i: Int) {
}
fun baz(i: Int) {
}
fun foo(a: A, b: B) {
val aa = A()
bar(a.x)
baz(a.x)
bar(a.f<caret>())
baz(a.f())
bar(a.x(1))
baz(a.x(1))
bar(aa.x())
bar(b.x())
}
@@ -0,0 +1,29 @@
// "Rename reference" "true"
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
class A {
val a = 1
val s = ""
}
class B
fun bar(i: Int) {
}
fun baz(i: Int) {
}
fun foo(a: A, b: B) {
val aa = A()
bar(a.x<caret>)
baz(a.x)
bar(a.x())
baz(a.x(1))
bar(aa.x)
bar(b.x)
}
@@ -0,0 +1,29 @@
// "Rename reference" "true"
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
class A {
val a = 1
val s = ""
}
class B
fun bar(i: Int) {
}
fun baz(i: Int) {
}
fun foo(a: A, b: B) {
val aa = A()
bar(a.a<caret>)
baz(a.a)
bar(a.x())
baz(a.x(1))
bar(aa.x)
bar(b.x)
}
@@ -0,0 +1,18 @@
// "Rename reference" "false"
// ACTION: Create annotation 'X'
// ACTION: Create class 'X'
// ACTION: Create enum 'X'
// ACTION: Create interface 'X'
// ERROR: Unresolved reference: X
// ERROR: Unresolved reference: X
class A {
class B
fun foo() {
}
}
fun test(x: A.<caret>X) {
val t: A.X
}
@@ -0,0 +1,26 @@
// "Rename reference" "true"
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
class A {
fun f() = 1
fun g() = ""
fun bar(i: Int) {
}
fun baz(i: Int) {
}
fun foo() {
bar(x)
baz(x)
bar(<caret>x())
baz(x())
bar(x(1))
baz(x(1))
}
}
@@ -0,0 +1,26 @@
// "Rename reference" "true"
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
class A {
fun f() = 1
fun g() = ""
fun bar(i: Int) {
}
fun baz(i: Int) {
}
fun foo() {
bar(x)
baz(x)
bar(f<caret>())
baz(f())
bar(x(1))
baz(x(1))
}
}
@@ -0,0 +1,22 @@
// "Rename reference" "true"
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
class A {
val a = 1
val s = ""
fun bar(i: Int) {
}
fun baz(i: Int) {
}
fun foo() {
bar(<caret>x)
baz(x)
bar(x())
baz(x(1))
}
}
@@ -0,0 +1,22 @@
// "Rename reference" "true"
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
class A {
val a = 1
val s = ""
fun bar(i: Int) {
}
fun baz(i: Int) {
}
fun foo() {
bar(a<caret>)
baz(a)
bar(x())
baz(x(1))
}
}
@@ -0,0 +1,24 @@
// "Rename reference" "true"
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
package x
class A {
val a = 1
val s = ""
fun bar(i: Int) {
}
fun baz(i: Int) {
}
fun foo() {
bar(<caret>x)
baz(x)
bar(x())
baz(x(1))
}
}
@@ -0,0 +1,24 @@
// "Rename reference" "true"
// ERROR: Unresolved reference: x
// ERROR: Unresolved reference: x
package x
class A {
val a = 1
val s = ""
fun bar(i: Int) {
}
fun baz(i: Int) {
}
fun foo() {
bar(a<caret>)
baz(a)
bar(x())
baz(x(1))
}
}