KT-10903 Lambda to callable reference: use named arguments if needed, lift restriction about parameter default values
(cherry picked from commit 5232af5)
This commit is contained in:
committed by
Mikhail Glukhikh
parent
a979c7e1d7
commit
299097d112
@@ -1,4 +1,3 @@
|
||||
// IS_APPLICABLE: false
|
||||
// WITH_RUNTIME
|
||||
|
||||
fun List<Int>.transform(x: Int = 0, f: (Int) -> Int) = map { f(it + x) }
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
fun List<Int>.transform(x: Int = 0, f: (Int) -> Int) = map { f(it + x) }
|
||||
|
||||
fun bar(x: Int) = x * x
|
||||
|
||||
val y = listOf(1, 2, 3).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(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(y = 3, f = ::bar)
|
||||
@@ -1,5 +1,3 @@
|
||||
// IS_APPLICABLE: false
|
||||
|
||||
interface Transformer {
|
||||
fun transform(x: Int = 0, f: (Int) -> Int) = f(x)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
interface Transformer {
|
||||
fun transform(x: Int = 0, f: (Int) -> Int) = f(x)
|
||||
}
|
||||
|
||||
class TransformerImpl : Transformer
|
||||
|
||||
fun bar(x: Int) = x * x
|
||||
|
||||
val y = TransformerImpl().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) { <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, f = ::bar)
|
||||
Reference in New Issue
Block a user