fun interface MyRunnable { abstract fun run() } fun foo(vararg rs: MyRunnable) { } fun test(a: Any, r: MyRunnable) { when { a is MyRunnable -> { // BLOCK foo(rs = [local fun () { return Unit } /*-> MyRunnable */, r, a /*as MyRunnable */]) } } }