Extract Function: Fix callee replacement in operation expressions

#KT-8294 Fixed
This commit is contained in:
Alexey Sedunov
2015-08-17 15:18:46 +03:00
parent 1ca3c5e3b8
commit 1db7195e94
12 changed files with 103 additions and 18 deletions
@@ -0,0 +1,3 @@
fun foo(minus : String.(String) -> Unit) {
"A" <selection>-</selection> "B"
}
@@ -0,0 +1 @@
Cannot perform refactoring without an expression
@@ -0,0 +1,6 @@
// PARAM_DESCRIPTOR: value-parameter val x: kotlin.String.(kotlin.String) -> kotlin.Unit defined in foo
// PARAM_TYPES: kotlin.String.(kotlin.String) -> kotlin.Unit
fun foo(x : String.(String) -> Unit) {
"A" <selection>x</selection> "B"
}
@@ -0,0 +1,8 @@
// PARAM_DESCRIPTOR: value-parameter val x: kotlin.String.(kotlin.String) -> kotlin.Unit defined in foo
// PARAM_TYPES: kotlin.String.(kotlin.String) -> kotlin.Unit
fun foo(x : String.(String) -> Unit) {
"A".(function(x))("B")
}
private fun function(x: String.(String) -> Unit) = x
@@ -0,0 +1,6 @@
// PARAM_DESCRIPTOR: value-parameter val plus: kotlin.String.() -> kotlin.Unit defined in foo
// PARAM_TYPES: kotlin.String.() -> kotlin.Unit
fun foo(plus: String.() -> Unit) {
<selection>+</selection> "A"
}
@@ -0,0 +1,8 @@
// PARAM_DESCRIPTOR: value-parameter val plus: kotlin.String.() -> kotlin.Unit defined in foo
// PARAM_TYPES: kotlin.String.() -> kotlin.Unit
fun foo(plus: String.() -> Unit) {
"A".(function(plus))()
}
private fun function(plus: String.() -> Unit) = plus