interface Foo class Bar { operator fun invoke(): Foo = throw Exception() } class A { val bar = Bar() } fun fooInt(l: Foo) = l fun test(bar: Bar, a: A) { // no elements with error types fooInt((bar())) fooInt(if (true) bar() else bar()) fooInt(label@ bar()) fooInt(a.bar()) fooInt(((label@ if (true) (a.bar()) else bar()))) }