K2: apply SAM if argument has postponed lambdas #KT-53966 Fixed
This commit is contained in:
committed by
Space Team
parent
5a9e8b3c0a
commit
898a9a0f2c
+34
-2
@@ -1,10 +1,42 @@
|
||||
fun main() {
|
||||
fun main(arg: Nothing?) {
|
||||
val flag = true
|
||||
consumeTicker(
|
||||
if (flag) null else <!ARGUMENT_TYPE_MISMATCH!>{ num -> num.<!UNRESOLVED_REFERENCE!>dec<!>() }<!>
|
||||
if (flag) null else { num -> num.dec() }
|
||||
)
|
||||
consumeTicker(
|
||||
select({ num -> num.dec() }, null)
|
||||
)
|
||||
consumeTicker(
|
||||
try { { num -> num.dec() } } catch (e: Exception) { null }
|
||||
)
|
||||
consumeTicker(
|
||||
arg ?: { num -> num.dec() }
|
||||
)
|
||||
consumeTicker(
|
||||
if (!flag) ::tick else null
|
||||
)
|
||||
consumeTicker(
|
||||
select(::tick, null)
|
||||
)
|
||||
consumeTicker(
|
||||
select(if (flag) null else ::tick, null)
|
||||
)
|
||||
consumeTicker(
|
||||
// In fact ::tick is not used here
|
||||
try { null } finally { ::tick }
|
||||
)
|
||||
consumeTicker(
|
||||
try { null } catch (e: Exception) { null } catch (e: Throwable) { ::tick }
|
||||
)
|
||||
consumeTicker(
|
||||
arg ?: ::tick
|
||||
)
|
||||
}
|
||||
|
||||
fun tick(num: Int) {}
|
||||
|
||||
fun <T> select(a: T, b: T): T = a
|
||||
|
||||
fun consumeTicker(ticker: Ticker?) {
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user