// WITH_RUNTIME // TARGET_BACKEND: JVM class Foo(val x: Int) @JvmSuppressWildcards class Bar { fun run(f: (Foo) -> Foo): Foo { return f(Foo(42)) } fun invokeFun(): Foo { return run { f -> Foo(f.x + 1) } } fun nullableFoo(f: Foo?): Foo = f!! fun listOfFoo(f: List>): Foo = f[0] } fun box(): String { val b = Bar() if(b.invokeFun().x != 43) return "Fail 1" if (b.nullableFoo(Foo(1)).x != 1) return "Fail 2" val f: Foo? = Foo(2) if (b.nullableFoo(f).x != 2) return "Fail 3" val ls = listOf(Foo(3)) if (b.listOfFoo(ls).x != 3) return "Fail 4" return "OK" }