FIR: initial support of suspend conversion on arguments

This commit is contained in:
Jinseong Jeon
2020-09-08 14:59:28 -07:00
committed by Mikhail Glukhikh
parent 49679f3145
commit 6de8ba40c1
19 changed files with 393 additions and 119 deletions
@@ -21,7 +21,7 @@ fun foo() {
builder { 1 }
val x = { 1 }
<!INAPPLICABLE_CANDIDATE!>builder<!>(x)
builder(x)
builder({1} as (suspend () -> Int))
var i: Int = 1
@@ -32,7 +32,7 @@ fun foo() {
genericBuilder<Int> { "" }
val y = { 1 }
<!INAPPLICABLE_CANDIDATE!>genericBuilder<!>(y)
genericBuilder(y)
unitBuilder {}
unitBuilder { 1 }
@@ -8,12 +8,12 @@ fun ambiguous(sfn: suspend () -> Unit) = sfn
fun ambiguous(fn: () -> Unit) = fn
fun test1(sfn: suspend () -> Unit) = <!INAPPLICABLE_CANDIDATE!>useFn<!>(sfn)
fun test2(fn: () -> Unit) = <!INAPPLICABLE_CANDIDATE!>useSuspendFn<!>(fn)
fun test2(fn: () -> Unit) = useSuspendFn(fn)
fun test3(sfn: suspend () -> Unit) = useSuspendFn(sfn)
fun test4(): suspend () -> Unit = useSuspendFn {}
fun test5() = useSuspendFn {}
fun test5(sfn: suspend () -> Unit) = ambiguous(sfn)
fun test6(fn: () -> Unit) = ambiguous(fn)
fun test6(fn: () -> Unit) = <!AMBIGUITY!>ambiguous<!>(fn)
fun test7(): () -> Unit = <!AMBIGUITY!>ambiguous<!> {}