// WITH_STDLIB import kotlin.contracts.ExperimentalContracts import kotlin.contracts.contract class Controller { fun yield(t: T): Boolean = true } @OptIn(ExperimentalContracts::class) fun Controller.ensureNotNull(value: B?, shift: () -> R): B { contract { returns() implies (value != null) } return value!! } fun generate(g: suspend Controller.() -> Unit): S = TODO() fun bar(x: Int) {} fun foo(x: Int?) { generate { ensureNotNull(x) { "" } bar(x) } }