[FIR] Add CallsInPlace contract analyzer

This commit is contained in:
Oleg Ivanov
2020-07-30 17:13:11 +03:00
parent cc9c5b9e3c
commit 4367d6631f
39 changed files with 4021 additions and 2064 deletions
@@ -4,7 +4,7 @@ import kotlin.contracts.*
// TESTCASE NUMBER: 1
inline fun case_1(block: () -> Unit) {
contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) }
<!WRONG_INVOCATION_KIND!>contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) }<!>
block()
case_1(block)
}
@@ -27,9 +27,9 @@ var Boolean.case_3: () -> Unit
return {}
}
set(value) {
contract {
<!WRONG_INVOCATION_KIND!>contract {
callsInPlace(value, InvocationKind.EXACTLY_ONCE)
}
}<!>
}
// TESTCASE NUMBER: 4