Extract Function: Fix extraction of explicit/implicit invoke()

#KT-8116 Fixed
This commit is contained in:
Alexey Sedunov
2015-06-23 16:19:51 +03:00
parent f6965b5004
commit c6f6637b25
12 changed files with 142 additions and 7 deletions
@@ -0,0 +1,8 @@
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.String defined in foo
// PARAM_DESCRIPTOR: value-parameter val invoke: kotlin.String.() -> kotlin.Unit defined in foo
// PARAM_TYPES: kotlin.String
// PARAM_TYPES: kotlin.String.() -> kotlin.Unit
fun foo(a: String, invoke: String.() -> Unit) {
<selection>a.invoke()</selection>
}
@@ -0,0 +1,12 @@
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.String defined in foo
// PARAM_DESCRIPTOR: value-parameter val invoke: kotlin.String.() -> kotlin.Unit defined in foo
// PARAM_TYPES: kotlin.String
// PARAM_TYPES: kotlin.String.() -> kotlin.Unit
fun foo(a: String, invoke: String.() -> Unit) {
__dummyTestFun__(a, invoke)
}
private fun __dummyTestFun__(a: String, invoke: String.() -> Unit) {
a.invoke()
}
@@ -0,0 +1,10 @@
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.String defined in foo
// PARAM_TYPES: kotlin.String
fun String.invoke() {
}
fun foo(a: String) {
<selection>a()</selection>
}
@@ -0,0 +1,14 @@
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.String defined in foo
// PARAM_TYPES: kotlin.String
fun String.invoke() {
}
fun foo(a: String) {
__dummyTestFun__(a)
}
private fun __dummyTestFun__(a: String) {
a()
}
@@ -0,0 +1,8 @@
// PARAM_DESCRIPTOR: internal fun (kotlin.String.() -> kotlin.Unit).foo(a: kotlin.String): kotlin.Unit defined in root package
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.String defined in foo
// PARAM_TYPES: kotlin.String.() -> kotlin.Unit
// PARAM_TYPES: kotlin.String
fun (String.() -> Unit).foo(a: String) {
<selection>a.invoke()</selection>
}
@@ -0,0 +1,12 @@
// PARAM_DESCRIPTOR: internal fun (kotlin.String.() -> kotlin.Unit).foo(a: kotlin.String): kotlin.Unit defined in root package
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.String defined in foo
// PARAM_TYPES: kotlin.String.() -> kotlin.Unit
// PARAM_TYPES: kotlin.String
fun (String.() -> Unit).foo(a: String) {
__dummyTestFun__(a)
}
private fun (String.() -> Unit).__dummyTestFun__(a: String) {
a.invoke()
}
@@ -0,0 +1,8 @@
// PARAM_DESCRIPTOR: internal fun (kotlin.String.() -> kotlin.Unit).foo(a: kotlin.String): kotlin.Unit defined in root package
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.String defined in foo
// PARAM_TYPES: kotlin.String.() -> kotlin.Unit
// PARAM_TYPES: kotlin.String
fun (String.() -> Unit).foo(a: String) {
<selection>a()</selection>
}
@@ -0,0 +1,12 @@
// PARAM_DESCRIPTOR: internal fun (kotlin.String.() -> kotlin.Unit).foo(a: kotlin.String): kotlin.Unit defined in root package
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.String defined in foo
// PARAM_TYPES: kotlin.String.() -> kotlin.Unit
// PARAM_TYPES: kotlin.String
fun (String.() -> Unit).foo(a: String) {
__dummyTestFun__(a)
}
private fun (String.() -> Unit).__dummyTestFun__(a: String) {
a()
}