Package kotlin.contracts
Experimental DSL for declaring custom function contracts.
Types
CallsInPlace
An effect of calling a functional parameter in place.
interface CallsInPlace : Effect
ConditionalEffect
An effect of some condition being true after observing another effect of a function.
interface ConditionalEffect : Effect
ContractBuilder
Provides a scope, where the functions of the contract DSL, such as returns, callsInPlace, etc., can be used to describe the contract of a function.
interface ContractBuilder
Effect
Represents an effect of a function invocation, either directly observable, such as the function returning normally, or a side-effect, such as the function's lambda parameter being called in place.
interface Effect
InvocationKind
Specifies how many times a function invokes its function parameter in place.
enum class InvocationKind
Returns
Describes a situation when a function returns normally with a given return value.
interface Returns : SimpleEffect
ReturnsNotNull
Describes a situation when a function returns normally with any non-null return value.
interface ReturnsNotNull : SimpleEffect
SimpleEffect
An effect that can be observed after a function invocation.
interface SimpleEffect : Effect
Annotations
ExperimentalContracts
This marker distinguishes the experimental contract declaration API and is used to opt-in for that feature when declaring contracts of user functions.
annotation class ExperimentalContracts
Functions
contract
Specifies the contract of a function.
fun contract(builder: ContractBuilder.() -> Unit)