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
)