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

24 lines
479 B
Kotlin
Vendored

// LANGUAGE: +ContractSyntaxV2
import kotlin.contracts.*
fun printStr(str: String?) contract [
returns() implies (str != null)
] {
require(str != null)
println(str)
}
fun callExactlyOnce(block: () -> Int) contract [
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
] {
val num = block()
println(num)
}
fun calculateNumber(block: () -> Int): Int contract [
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
] {
val num = block()
return num
}