Convert lambda to reference: handle named arguments more precisely

For trailing lambda intention inserts parameter names for all arguments
if at least one argument used default value.
Otherwise it just keeps existing named arguments.

So #KT-20349 Fixed
This commit is contained in:
Toshiaki Kameyama
2017-10-10 12:38:56 +03:00
committed by Mikhail Glukhikh
parent 4c4427c280
commit fa03632197
11 changed files with 88 additions and 8 deletions
@@ -0,0 +1,7 @@
class Transformer {
fun transform(x: Int = 0, y: Int = 1, f: (Int) -> Int) = f(x + y)
}
fun bar(x: Int) = x * x
val y = Transformer().transform(2, y = 3) { <caret>bar(it) }
@@ -0,0 +1,7 @@
class Transformer {
fun transform(x: Int = 0, y: Int = 1, f: (Int) -> Int) = f(x + y)
}
fun bar(x: Int) = x * x
val y = Transformer().transform(2, y = 3, f = ::bar)
@@ -0,0 +1,7 @@
class Transformer {
fun transform(x: Int = 0, y: Int = 1, f: (Int) -> Int) = f(x + y)
}
fun bar(x: Int) = x * x
val y = Transformer().transform(x = 2, y = 3) { <caret>bar(it) }
@@ -0,0 +1,7 @@
class Transformer {
fun transform(x: Int = 0, y: Int = 1, f: (Int) -> Int) = f(x + y)
}
fun bar(x: Int) = x * x
val y = Transformer().transform(x = 2, y = 3, f = ::bar)
@@ -4,4 +4,4 @@ class Transformer {
fun bar(x: Int) = x * x
val y = Transformer().transform(x = 2, f = ::bar)
val y = Transformer().transform(2, f = ::bar)
@@ -0,0 +1,7 @@
class Transformer {
fun transform(x: Int = 0, y: Int = 1, f: (Int) -> Int) = f(x + y)
}
fun bar(x: Int) = x * x
val y = Transformer().transform { <caret>bar(it) }
@@ -0,0 +1,7 @@
class Transformer {
fun transform(x: Int = 0, y: Int = 1, f: (Int) -> Int) = f(x + y)
}
fun bar(x: Int) = x * x
val y = Transformer().transform(f = ::bar)
@@ -0,0 +1,7 @@
class Transformer {
fun transform(x: Int = 0, y: Int = 1, f: (Int) -> Int) = f(x + y)
}
fun bar(x: Int) = x * x
val y = Transformer().transform(2, 3) { <caret>bar(it) }
@@ -0,0 +1,7 @@
class Transformer {
fun transform(x: Int = 0, y: Int = 1, f: (Int) -> Int) = f(x + y)
}
fun bar(x: Int) = x * x
val y = Transformer().transform(2, 3, ::bar)