Files
kotlin-fork/compiler/testData/diagnostics/testsWithStdLib/contracts/newSyntax/complexContractDescription.fir.kt
T

24 lines
566 B
Kotlin
Vendored

// !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlin.contracts.*
fun foo(arg: Any?, num: Int?, block: () -> Unit) contract [
returns() implies (arg is String),
returns() implies (num != null),
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
] {
require(arg is String)
require(num != null)
block()
}
fun bar(arg: Any?, block: () -> Int): Boolean contract [
returns(true) implies (arg != null),
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
] {
val num = block()
if (arg != null) {
return true
}
return false
}