Kotlin Contract

@ExperimentalContracts
fun ensureNotDraft(deal: Deal): Boolean {
    contract {
        returns(true) implies (deal.amount != null)
    }
    return deal.dealStatus != DealStatus.Draft
}

Kotlin Contract, プロパティに対するcontract書けないのか