blob: 1add1ce82d2e89281ef769ab0e15941730f151a8 [file]
// ISSUE: KT-74673
// TARGET_BACKEND: JVM
// ^On JS, IMPLEMENTING_FUNCTION_INTERFACE is reported
fun interface Foo<P> : suspend (P) -> Unit
fun interface Foo2<P> : (P) -> Unit
class Bar<P>(foo: Foo<P>)
fun <P> create(foo: Foo2<P>): Bar<P> = Bar(foo)
// ##########
fun interface Foo3<T> {
fun foo(): T
}
class Foo3Impl : Foo3<Any>, () -> String {
override fun foo(): Any = Any()
override fun invoke(): String = "foo"
}
class Bar3<P>(foo: Foo3<P>)
fun create3(foo3: Foo3Impl): Bar3<String> = Bar3<String>(foo3)
// ##########
fun box(): String {
create<Int> {}
create3(Foo3Impl())
return "OK"
}