Package kotlin.contracts

Experimental DSL for declaring custom function contracts.

Types

Common
JVM
JS
Native
1.3

CallsInPlace

An effect of calling a functional parameter in place.

interface CallsInPlace : Effect
Common
JVM
JS
Native
1.3

ConditionalEffect

An effect of some condition being true after observing another effect of a function.

interface ConditionalEffect : Effect
Common
JVM
JS
Native
1.3

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
Common
JVM
JS
Native
1.3

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
Common
JVM
JS
Native
1.3

InvocationKind

Specifies how many times a function invokes its function parameter in place.

enum class InvocationKind
Common
JVM
JS
Native
1.3

Returns

Describes a situation when a function returns normally with a given return value.

interface Returns : SimpleEffect
Common
JVM
JS
Native
1.3

ReturnsNotNull

Describes a situation when a function returns normally with any non-null return value.

interface ReturnsNotNull : SimpleEffect
Common
JVM
JS
Native
1.3

SimpleEffect

An effect that can be observed after a function invocation.

interface SimpleEffect : Effect

Annotations

Common
JVM
JS
Native
1.3

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

Common
JVM
JS
Native
1.3

contract

Specifies the contract of a function.

fun contract(builder: ContractBuilder.() -> Unit)