// ISSUE: KT-65103 interface Consumer public fun buildConsumer( block: (Consumer) -> Unit ): T = "O" as T public fun materialize(): T = "K" as T fun expectConsumerString(x: Consumer) {} fun foo1(x: Boolean) = when { x -> buildConsumer { expectConsumerString(it) } else -> materialize() } fun foo2(x: Boolean) = if (x) buildConsumer { expectConsumerString(it) } else materialize() fun box(): String { return foo1(true) + foo2(false) }