Files
kotlin-fork/compiler/testData/diagnostics/testsWithStdLib/contracts/newSyntax/onelineFunctionsContractDescription.kt
T
Dmitriy Novozhilov 4c96495eef [FIR] Put new contract syntax under feauture flag
^KT-55171 Fixed
2023-01-31 07:53:09 +00:00

12 lines
400 B
Kotlin
Vendored

// LANGUAGE: +ContractSyntaxV2
import kotlin.contracts.*
fun calculateNumber(block: () -> Int): Int contract <!UNSUPPORTED!>[
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
]<!> = block()
fun <R> calculateResult(num: Int?, calculate: (Int?) -> R): R contract <!UNSUPPORTED!>[
callsInPlace(calculate, InvocationKind.EXACTLY_ONCE),
returns() implies (num != null)
]<!> = calculate(num)