[FIR] Add test cases to prove resolution of backlog tickets

^KT-41728 Fixed
^KT-46586 Fixed
^KT-49696 Fixed
^KT-51160 Fixed
^KT-53308 Fixed
This commit is contained in:
Brian Norman
2023-11-07 10:12:13 -06:00
committed by Space Team
parent 2b82726f1d
commit 6df97dd199
15 changed files with 484 additions and 0 deletions
@@ -0,0 +1,39 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
// WITH_STDLIB
// ISSUE: KT-53308
import kotlin.contracts.*
fun <E> checkEquality(arg: E?) { contract { returns() implies (arg != null) } }
fun <E> checkIdentity(arg: E?) { contract { returns() implies (arg !== null) } }
fun checkTrue(statement: Boolean) { contract { returns() implies statement } }
fun checkFalse(statement: Boolean) { contract { returns() implies !statement } }
fun consume(arg: String) {}
fun test(a: String?) {
a.let {
checkEquality(it)
consume(<!DEBUG_INFO_SMARTCAST!>it<!>)
}
a.let {
checkIdentity(it)
consume(<!DEBUG_INFO_SMARTCAST!>it<!>)
}
a.let {
checkTrue(it != null)
consume(<!DEBUG_INFO_SMARTCAST!>it<!>)
}
a.let {
checkTrue(it !== null)
consume(<!TYPE_MISMATCH!>it<!>)
}
a.let {
checkFalse(it == null)
consume(<!DEBUG_INFO_SMARTCAST!>it<!>)
}
a.let {
checkFalse(it === null)
consume(<!TYPE_MISMATCH!>it<!>)
}
}