Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolve/contracts/disabledFeature.kt
T
Kirill Rakhman f946ddeb40 [FIR] Implement checks for contract not allowed
^KT-55423 Fixed
2023-03-09 08:32:02 +00:00

27 lines
652 B
Kotlin
Vendored

// LANGUAGE: -ContractSyntaxV2
// WITH_STDLIB
import kotlin.contracts.*
inline fun <reified T> requreIsInstance(value: Any) contract <!UNSUPPORTED_FEATURE!>[
returns() implies (value is T)
]<!> {
if (value !is T) throw IllegalArgumentException()
}
val Any?.myLength: Int?
get() contract <!CONTRACT_NOT_ALLOWED, UNSUPPORTED_FEATURE!>[
<!ERROR_IN_CONTRACT_DESCRIPTION!>returnsNotNull() implies (this@length is String)<!>
]<!> = (this as? String)?.length
fun test_1(x: Any) {
requreIsInstance<String>(x)
x.length
}
fun test_2(x: Any) {
if (x.myLength != null) {
x.<!UNRESOLVED_REFERENCE!>length<!>
}
}