orangy
interface Test<out T> {
fun test2(provider: () -> @UnsafeVariance T): T
}
fun main(args: Array<String>) {
x(object : Test<String> {
override fun test2(provider: () -> String): String = provider()
})
}
fun x(x : Test<Any>) {
x.test2 { 1 }
}
EDIT: more complete runnable example