// !LANGUAGE: +AllowContractsForCustomFunctions +UseReturnsEffect // !OPT_IN: kotlin.contracts.ExperimentalContracts // !DIAGNOSTICS: -INVISIBLE_REFERENCE -INVISIBLE_MEMBER import kotlin.contracts.* // ===== Definitions ==== fun isString(x: Any?): Boolean { contract { returns(true) implies (x is String) } return x is String } // ==== Actual tests ======= fun implicitAlwaysFalse(x: Any?) { if (isString(x) && !isString(x)) { x.length } else { x.length } } fun implicitAlwaysFalseSpilling(x: Any?) { if (isString(x) && !isString(x)) { x.length } x.length }