Пакет kotlin.contracts
Экспериментальный DSL для объявления пользовательских контрактов функций.
Типы
CallsInPlace
Эффект вызова функционального параметра на месте.
interface CallsInPlace : Effect
ConditionalEffect
Эффект выполнения некоторого условия после наблюдения другого эффекта функции.
interface ConditionalEffect : Effect
ContractBuilder
Предоставляет область видимости, где функции DSL контракта, такие как returns, callsInPlace и т. д., могут использоваться для описания контракта функции.
interface ContractBuilder
Effect
Представляет эффект вызова функции, либо непосредственно наблюдаемый, например, нормальное возвращение функции, либо побочный эффект, например, вызов лямбда-параметра функции на месте.
interface Effect
InvocationKind
Указывает, сколько раз функция вызывает свой функциональный параметр на месте.
enum class InvocationKind
Returns
Описывает ситуацию, когда функция возвращает нормальное значение с заданным возвращаемым значением.
interface Returns : SimpleEffect
ReturnsNotNull
Описывает ситуацию, когда функция возвращает нормальное значение с любым не-null возвращаемым значением.
interface ReturnsNotNull : SimpleEffect
SimpleEffect
Эффект, который может быть прослежен после вызова функции.
interface SimpleEffect : Effect
Аннотации
ExperimentalContracts
Эта метка различает экспериментальный API объявления контракта и используется для включения этой функции при объявлении контрактов пользовательских функций.
annotation class ExperimentalContracts
Функции
contract
Определяет контракт функции.
fun contract(builder: ContractBuilder.() -> Unit)
© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.contracts/index.html