[FIR] Put new contract syntax under feauture flag

^KT-55171 Fixed
This commit is contained in:
Dmitriy Novozhilov
2023-01-23 18:05:13 +02:00
committed by Space Team
parent 2783aa13f5
commit 4c96495eef
22 changed files with 147 additions and 10 deletions
@@ -1,3 +1,4 @@
// LANGUAGE: +ContractSyntaxV2
// !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlin.contracts.*
@@ -21,4 +22,4 @@ fun bar(arg: Any?, block: () -> Int): Boolean contract [
return true
}
return false
}
}
@@ -1,3 +1,4 @@
// LANGUAGE: +ContractSyntaxV2
// !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlin.contracts.*
@@ -21,4 +22,4 @@ fun bar(arg: Any?, block: () -> Int): Boolean contract <!UNSUPPORTED!>[
return true
}
return false
}
}
@@ -1,10 +1,11 @@
// LANGUAGE: +ContractSyntaxV2
import kotlin.contracts.*
fun calculateNumber(block: () -> Int): Int contract [
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
] = block()
fun <R> calculateResult(num: Int?, calculate: (Int?) -> R): R contract [
fun <R> calculateResult(num: Int?, calculate: (Int?) -> R): R contract <!WRONG_IMPLIES_CONDITION!>[
callsInPlace(calculate, InvocationKind.EXACTLY_ONCE),
returns() implies (num != null)
] = calculate(num)
]<!> = calculate(num)
@@ -1,3 +1,4 @@
// LANGUAGE: +ContractSyntaxV2
import kotlin.contracts.*
fun calculateNumber(block: () -> Int): Int contract <!UNSUPPORTED!>[
@@ -7,4 +8,4 @@ fun calculateNumber(block: () -> Int): Int contract <!UNSUPPORTED!>[
fun <R> calculateResult(num: Int?, calculate: (Int?) -> R): R contract <!UNSUPPORTED!>[
callsInPlace(calculate, InvocationKind.EXACTLY_ONCE),
returns() implies (num != null)
]<!> = calculate(num)
]<!> = calculate(num)
@@ -1,3 +1,4 @@
// LANGUAGE: +ContractSyntaxV2
import kotlin.contracts.*
class A {
@@ -15,4 +16,4 @@ class A {
fun f(arg: Int) = arg * arg
fun g(arg: Double) = arg / 2
}
}
@@ -1,3 +1,4 @@
// LANGUAGE: +ContractSyntaxV2
import kotlin.contracts.*
class A {
@@ -15,4 +16,4 @@ class A {
fun f(arg: Int) = arg * arg
fun g(arg: Double) = arg / 2
}
}
@@ -1,3 +1,4 @@
// LANGUAGE: +ContractSyntaxV2
import kotlin.contracts.*
fun printStr(str: String?) contract [
@@ -19,4 +20,4 @@ fun calculateNumber(block: () -> Int): Int contract [
] {
val num = block()
return num
}
}
@@ -1,3 +1,4 @@
// LANGUAGE: +ContractSyntaxV2
import kotlin.contracts.*
fun printStr(str: String?) contract <!UNSUPPORTED!>[
@@ -19,4 +20,4 @@ fun calculateNumber(block: () -> Int): Int contract <!UNSUPPORTED!>[
]<!> {
val num = block()
return num
}
}