Create from Usage: Show receiver type in the text of "Create extension" quick fix

(cherry picked from commit c0d5df1)
This commit is contained in:
Alexey Sedunov
2016-06-29 19:22:53 +03:00
parent 79f73d3cc2
commit 1a13c21377
97 changed files with 116 additions and 99 deletions
@@ -1,5 +1,5 @@
// "Create class 'Foo'" "false"
// ACTION: Create extension function 'Foo'
// ACTION: Create extension function 'Int.Foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: Foo
// WITH_RUNTIME
@@ -1,5 +1,5 @@
// "Create class 'Foo'" "false"
// ACTION: Create extension function 'Foo'
// ACTION: Create extension function 'List<T>.Foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: Foo
// WITH_RUNTIME
@@ -1,5 +1,5 @@
// "Create class 'A'" "false"
// ACTION: Create extension property 'A'
// ACTION: Create extension property 'X.A'
// ACTION: Create member property 'A'
// ACTION: Create property 'A' as constructor parameter
// ACTION: Rename reference
@@ -1,5 +1,5 @@
// "Create enum constant 'A'" "false"
// ACTION: Create extension property 'A'
// ACTION: Create extension property 'X.A'
// ACTION: Create member property 'A'
// ACTION: Create property 'A' as constructor parameter
// ACTION: Rename reference
@@ -1,5 +1,5 @@
// "Create object 'A'" "false"
// ACTION: Create extension property 'A'
// ACTION: Create extension property 'X.A'
// ACTION: Create member property 'A'
// ACTION: Create property 'A' as constructor parameter
// ACTION: Rename reference
@@ -1,4 +1,4 @@
// "Create extension function 'plus'" "true"
// "Create extension function 'Int.plus'" "true"
// WITH_RUNTIME
class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create extension function 'plus'" "true"
// "Create extension function 'Int.plus'" "true"
// WITH_RUNTIME
class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create extension function '!u00A0'" "true"
// "Create extension function 'Int.!u00A0'" "true"
// WITH_RUNTIME
fun test() {
@@ -1,4 +1,4 @@
// "Create extension function '!u00A0'" "true"
// "Create extension function 'Int.!u00A0'" "true"
// WITH_RUNTIME
fun test() {
@@ -1,6 +1,6 @@
// "Create abstract function 'foo'" "false"
// ACTION: Convert to expression body
// ACTION: Create extension function 'foo'
// ACTION: Create extension function 'B.foo'
// ACTION: Create member function 'foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'A.foo'" "true"
fun bar(b: Boolean) {
}
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'A.foo'" "true"
fun bar(b: Boolean) {
}
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'A.foo'" "true"
// WITH_RUNTIME
fun bar(b: Boolean) {
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'A.foo'" "true"
// WITH_RUNTIME
fun bar(b: Boolean) {
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'A.foo'" "true"
// ERROR: Property must be initialized
class A(val n: Int)
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'A.foo'" "true"
// ERROR: Property must be initialized
class A(val n: Int)
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'A.foo'" "true"
// ERROR: Property must be initialized
class A(val n: Int)
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'A.foo'" "true"
// ERROR: Property must be initialized
class A(val n: Int)
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'A.foo'" "true"
// ERROR: Unresolved reference: foo
fun test(): Int {
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'A.foo'" "true"
// ERROR: Unresolved reference: foo
fun test(): Int {
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'A.foo'" "true"
// ERROR: Unresolved reference: foo
fun test(): Int? {
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'A.foo'" "true"
// ERROR: Unresolved reference: foo
fun test(): Int? {
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'T.foo'" "true"
interface T
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'T.foo'" "true"
interface T
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'A.foo'" "true"
// ERROR: Unresolved reference: foo
import package1.A
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'A.foo'" "true"
// ERROR: Unresolved reference: foo
import package1.A
@@ -1,6 +1,6 @@
// "Create member function 'foo'" "false"
// ACTION: Convert to expression body
// ACTION: Create extension function 'foo'
// ACTION: Create extension function 'A.foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'Unit.foo'" "true"
// WITH_RUNTIME
fun test() {
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'Unit.foo'" "true"
// WITH_RUNTIME
fun test() {
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'Int.foo'" "true"
// WITH_RUNTIME
class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'Int.foo'" "true"
// WITH_RUNTIME
class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create extension function 'bar'" "true"
// "Create extension function '((Int) -> String).bar'" "true"
fun foo(block: (Int) -> String) {
block.b<caret>ar()
@@ -1,4 +1,4 @@
// "Create extension function 'bar'" "true"
// "Create extension function '((Int) -> String).bar'" "true"
fun foo(block: (Int) -> String) {
block.bar()
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'List<T>.foo'" "true"
// WITH_RUNTIME
class A<T>(val items: List<T>) {
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'List<T>.foo'" "true"
// WITH_RUNTIME
class A<T>(val items: List<T>) {
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'List<T>.foo'" "true"
// WITH_RUNTIME
class A<T>(val items: List<T>) {
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'List<T>.foo'" "true"
// WITH_RUNTIME
class A<T>(val items: List<T>) {
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'List<T>.foo'" "true"
// WITH_RUNTIME
class A<T>(val items: List<T>) {
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'List<T>.foo'" "true"
// WITH_RUNTIME
class A<T>(val items: List<T>) {
@@ -1,4 +1,4 @@
// "Create extension function 'bar'" "true"
// "Create extension function 'T.bar'" "true"
fun <T> foo(t: T) {
t.<caret>bar()
}
@@ -1,4 +1,4 @@
// "Create extension function 'bar'" "true"
// "Create extension function 'T.bar'" "true"
fun <T> foo(t: T) {
t.bar()
}
@@ -1,5 +1,5 @@
// "Create member function 'bar'" "false"
// ACTION: Create extension function 'bar'
// ACTION: Create extension function 'T.bar'
// ACTION: Rename reference
// ERROR: Unresolved reference: bar
fun <T> foo(t: T) {
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'Int.foo'" "true"
// WITH_RUNTIME
fun <T, U> T.map(f: T.() -> U) = f()
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'Int.foo'" "true"
// WITH_RUNTIME
fun <T, U> T.map(f: T.() -> U) = f()
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'Int.foo'" "true"
// WITH_RUNTIME
fun <T, U> T.map(f: (T) -> U) = f(this)
@@ -1,4 +1,4 @@
// "Create extension function 'foo'" "true"
// "Create extension function 'Int.foo'" "true"
// WITH_RUNTIME
fun <T, U> T.map(f: (T) -> U) = f(this)
@@ -1,4 +1,4 @@
// "Create extension function 'component2'" "true"
// "Create extension function 'Any.component2'" "true"
// WITH_RUNTIME
class FooIterator<T> {
operator fun hasNext(): Boolean { return false }
@@ -1,4 +1,4 @@
// "Create extension function 'component2'" "true"
// "Create extension function 'Any.component2'" "true"
// WITH_RUNTIME
class FooIterator<T> {
operator fun hasNext(): Boolean { return false }
@@ -1,4 +1,4 @@
// "Create extension function 'get'" "true"
// "Create extension function 'Any.get'" "true"
// WITH_RUNTIME
fun x (y: Any) {
@@ -1,4 +1,4 @@
// "Create extension function 'get'" "true"
// "Create extension function 'Any.get'" "true"
// WITH_RUNTIME
fun x (y: Any) {
@@ -1,4 +1,4 @@
// "Create extension function 'invoke'" "true"
// "Create extension function 'Int.invoke'" "true"
// WITH_RUNTIME
class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create extension function 'invoke'" "true"
// "Create extension function 'Int.invoke'" "true"
// WITH_RUNTIME
class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create extension function 'set'" "true"
// "Create extension function 'Any.set'" "true"
// WITH_RUNTIME
class Foo<T> {
@@ -1,6 +1,6 @@
import java.util.ArrayList
// "Create extension function 'set'" "true"
// "Create extension function 'Any.set'" "true"
// WITH_RUNTIME
class Foo<T> {
@@ -1,4 +1,4 @@
// "Create extension function 'unaryMinus'" "true"
// "Create extension function 'Boolean.unaryMinus'" "true"
// WITH_RUNTIME
fun test() {
@@ -1,4 +1,4 @@
// "Create extension function 'unaryMinus'" "true"
// "Create extension function 'Boolean.unaryMinus'" "true"
// WITH_RUNTIME
fun test() {
@@ -1,6 +1,6 @@
// "Create local variable 'foo'" "false"
// ERROR: Unresolved reference: foo
// ACTION: Create extension function 'foo'
// ACTION: Create extension function 'Int.foo'
// ACTION: Replace infix call with ordinary call
// WITH_RUNTIME
fun refer() {
@@ -1,5 +1,5 @@
// "Create local variable '-'" "false"
// ACTION: Create extension function 'minus'
// ACTION: Create extension function 'A.minus'
// ACTION: Create member function 'minus'
// ACTION: Replace overloaded operator with function call
// ERROR: Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: <br>@InlineOnly public operator inline fun BigDecimal.minus(other: BigDecimal): BigDecimal defined in kotlin<br>@InlineOnly public operator inline fun BigInteger.minus(other: BigInteger): BigInteger defined in kotlin<br>public operator fun <T> Iterable<???>.minus(elements: Array<out ???>): List<???> defined in kotlin.collections<br>public operator fun <T> Iterable<???>.minus(elements: Iterable<???>): List<???> defined in kotlin.collections<br>public operator fun <T> Iterable<???>.minus(elements: Sequence<???>): List<???> defined in kotlin.collections<br>public operator fun <T> Iterable<A>.minus(element: A): List<A> defined in kotlin.collections<br>public operator fun <T> Set<???>.minus(elements: Array<out ???>): Set<???> defined in kotlin.collections<br>public operator fun <T> Set<???>.minus(elements: Iterable<???>): Set<???> defined in kotlin.collections<br>public operator fun <T> Set<???>.minus(elements: Sequence<???>): Set<???> defined in kotlin.collections<br>public operator fun <T> Set<A>.minus(element: A): Set<A> defined in kotlin.collections<br>public operator fun <T> Sequence<???>.minus(elements: Array<out ???>): Sequence<???> defined in kotlin.sequences<br>public operator fun <T> Sequence<???>.minus(elements: Iterable<???>): Sequence<???> defined in kotlin.sequences<br>public operator fun <T> Sequence<???>.minus(elements: Sequence<???>): Sequence<???> defined in kotlin.sequences<br>public operator fun <T> Sequence<A>.minus(element: A): Sequence<A> defined in kotlin.sequences
@@ -1,5 +1,5 @@
// "Create local variable 'foo'" "false"
// ACTION: Create extension property 'foo'
// ACTION: Create extension property 'A.foo'
// ACTION: Create member property 'foo'
// ACTION: Create property 'foo' as constructor parameter
// ACTION: Rename reference
@@ -1,6 +1,6 @@
// "Create parameter 'foo'" "false"
// ERROR: Unresolved reference: foo
// ACTION: Create extension function 'foo'
// ACTION: Create extension function 'Int.foo'
// ACTION: Replace infix call with ordinary call
// WITH_RUNTIME
fun refer() {
@@ -2,7 +2,7 @@
// ACTION: Convert to expression body
// ACTION: Create local variable 'foo'
// ACTION: Create property 'foo'
// ACTION: Create extension property 'foo'
// ACTION: Create extension property 'T.foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
@@ -2,7 +2,7 @@
// ACTION: Convert to expression body
// ACTION: Create local variable 'foo'
// ACTION: Create property 'foo'
// ACTION: Create extension property 'foo'
// ACTION: Create extension property 'T.foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
@@ -1,5 +1,5 @@
// "Create parameter '-'" "false"
// ACTION: Create extension function 'minus'
// ACTION: Create extension function 'A.minus'
// ACTION: Create member function 'minus'
// ACTION: Replace overloaded operator with function call
// ERROR: Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: <br>@InlineOnly public operator inline fun BigDecimal.minus(other: BigDecimal): BigDecimal defined in kotlin<br>@InlineOnly public operator inline fun BigInteger.minus(other: BigInteger): BigInteger defined in kotlin<br>public operator fun <T> Iterable<???>.minus(elements: Array<out ???>): List<???> defined in kotlin.collections<br>public operator fun <T> Iterable<???>.minus(elements: Iterable<???>): List<???> defined in kotlin.collections<br>public operator fun <T> Iterable<???>.minus(elements: Sequence<???>): List<???> defined in kotlin.collections<br>public operator fun <T> Iterable<A>.minus(element: A): List<A> defined in kotlin.collections<br>public operator fun <T> Set<???>.minus(elements: Array<out ???>): Set<???> defined in kotlin.collections<br>public operator fun <T> Set<???>.minus(elements: Iterable<???>): Set<???> defined in kotlin.collections<br>public operator fun <T> Set<???>.minus(elements: Sequence<???>): Set<???> defined in kotlin.collections<br>public operator fun <T> Set<A>.minus(element: A): Set<A> defined in kotlin.collections<br>public operator fun <T> Sequence<???>.minus(elements: Array<out ???>): Sequence<???> defined in kotlin.sequences<br>public operator fun <T> Sequence<???>.minus(elements: Iterable<???>): Sequence<???> defined in kotlin.sequences<br>public operator fun <T> Sequence<???>.minus(elements: Sequence<???>): Sequence<???> defined in kotlin.sequences<br>public operator fun <T> Sequence<A>.minus(element: A): Sequence<A> defined in kotlin.sequences
@@ -1,5 +1,5 @@
// "Create parameter 'foo'" "false"
// ACTION: Create extension property 'foo'
// ACTION: Create extension property 'A.foo'
// ACTION: Create member property 'foo'
// ACTION: Create property 'foo' as constructor parameter
// ACTION: Rename reference
@@ -1,6 +1,6 @@
// "Create member property 'foo' as constructor parameter" "false"
// ACTION: Create member property 'foo'
// ACTION: Create extension property 'foo'
// ACTION: Create extension property 'A.Companion.foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
@@ -1,7 +1,7 @@
// "Create property 'foo' as constructor parameter" "false"
// ACTION: Create member property 'foo'
// ACTION: Convert to expression body
// ACTION: Create extension property 'foo'
// ACTION: Create extension property 'A.foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
@@ -1,5 +1,5 @@
// "Create property 'foo' as constructor parameter" "false"
// ACTION: Create extension property 'foo'
// ACTION: Create extension property 'Int.foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
// WITH_RUNTIME
@@ -1,6 +1,6 @@
// "Create abstract property 'foo'" "false"
// ACTION: Convert to expression body
// ACTION: Create extension property 'foo'
// ACTION: Create extension property 'B.foo'
// ACTION: Create member property 'foo'
// ACTION: Create property 'foo' as constructor parameter
// ACTION: Rename reference
@@ -1,5 +1,5 @@
// "Create property 'foo'" "false"
// ACTION: Create extension function 'bar'
// ACTION: Create extension function 'A<Int>.bar'
// ACTION: Create member function 'bar'
// ACTION: Rename reference
// ERROR: Unresolved reference: bar
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'A.foo'" "true"
// ERROR: Unresolved reference: foo
import package1.A
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'A.foo'" "true"
// ERROR: Unresolved reference: foo
import package1.A
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'A.foo'" "true"
// ERROR: Unresolved reference: foo
val A.foo: String?
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'A.foo'" "true"
// ERROR: Unresolved reference: foo
fun test(): String? {
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'A.foo'" "true"
// ERROR: Unresolved reference: foo
val A.foo: String?
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'A.foo'" "true"
// ERROR: Unresolved reference: foo
fun test(): String? {
@@ -1,4 +1,4 @@
// "Create extension property 'bar'" "true"
// "Create extension property 'T.bar'" "true"
// ERROR: Property must be initialized
fun consume(n: Int) {}
@@ -1,4 +1,4 @@
// "Create extension property 'bar'" "true"
// "Create extension property 'T.bar'" "true"
// ERROR: Property must be initialized
fun consume(n: Int) {}
@@ -1,6 +1,6 @@
// "Create property 'foo'" "false"
// ERROR: Unresolved reference: foo
// ACTION: Create extension function 'foo'
// ACTION: Create extension function 'Int.foo'
// ACTION: Replace infix call with ordinary call
// WITH_RUNTIME
fun refer() {
@@ -1,5 +1,5 @@
// "Create member property 'bar'" "false"
// ACTION: Create extension property 'bar'
// ACTION: Create extension property 'T.bar'
// ACTION: Rename reference
// ACTION: Convert to expression body
// ERROR: Unresolved reference: bar
@@ -1,6 +1,6 @@
// "Create property 'foo'" "false"
// ACTION: Convert to expression body
// ACTION: Create extension property 'foo'
// ACTION: Create extension property 'A.foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
@@ -1,6 +1,6 @@
// "Create property 'foo'" "false"
// ACTION: Convert to expression body
// ACTION: Create extension property 'foo'
// ACTION: Create extension property 'A.foo'
// ACTION: Rename reference
// ERROR: Unresolved reference: foo
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'Unit.foo'" "true"
// ERROR: Property must be initialized
// WITH_RUNTIME
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'Unit.foo'" "true"
// ERROR: Property must be initialized
// WITH_RUNTIME
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'Int.foo'" "true"
// ERROR: Property must be initialized
// WITH_RUNTIME
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'Int.foo'" "true"
// ERROR: Property must be initialized
// WITH_RUNTIME
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'Int.foo'" "true"
// ERROR: Property must be initialized
// WITH_RUNTIME
@@ -1,4 +1,4 @@
// "Create extension property 'foo'" "true"
// "Create extension property 'Int.foo'" "true"
// ERROR: Property must be initialized
// WITH_RUNTIME