[FIR] Add CallsInPlace contract analyzer
This commit is contained in:
+25
@@ -0,0 +1,25 @@
|
||||
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
|
||||
// FILE: contracts.kt
|
||||
|
||||
package contracts
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1(x: Double = 1.0, block: () -> Unit): Double {
|
||||
<!WRONG_INVOCATION_KIND!>contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) }<!>
|
||||
return x
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
import contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1() {
|
||||
val value_1: Int
|
||||
contracts.case_1 { value_1 = 10 }
|
||||
value_1.inc()
|
||||
}
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// FIR_IDENTICAL
|
||||
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1(x: Double = 1.0, block: () -> Unit): Double {
|
||||
contract { callsInPlace(block, InvocationKind.AT_LEAST_ONCE) }
|
||||
<!WRONG_INVOCATION_KIND!>contract { callsInPlace(block, InvocationKind.AT_LEAST_ONCE) }<!>
|
||||
return x
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user