// !LANGUAGE: +AllowContractsForCustomFunctions +ReadDeserializedContracts +AllowContractsForNonOverridableMembers +AllowReifiedGenericsInContracts // !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts @file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") package test import kotlin.contracts.* inline fun requireIsInstance(value: Any?) { contract { returns() implies (value is T) } if (value !is T) { throw IllegalArgumentException() } } inline fun cast(value: Any?, z: U): T { contract { returns() implies (value is T) } return value as T }