Prohibit using suspend functions as SAM in fun interfaces

#KT-40978 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2020-08-10 18:49:55 +03:00
parent 607f99ed3c
commit e49cdf0ca2
12 changed files with 60 additions and 10 deletions
@@ -0,0 +1,21 @@
// !LANGUAGE: +SuspendConversion
// !DIAGNOSTICS: -UNUSED_PARAMETER
fun interface SuspendRunnable {
suspend fun invoke()
}
fun foo1(s: SuspendRunnable) {}
fun bar1() {}
fun bar2(s: String = ""): Int = 0
fun bar3() {}
suspend fun bar3(s: String = ""): Int = 0
fun test() {
foo1(::bar1)
foo1(::bar2)
foo1(::bar3) // Should be ambiguity
}