Ignore data flow info from assert calls
if assertions mode is not LEGACY. This is done since assertions can be disabled (in both compile time and runtime) and thus, the data flow info is not reliable anymore. #KT-24529: Fixed
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
// !IGNORE_DATA_FLOW_IN_ASSERT
|
||||
// SKIP_TXT
|
||||
// WITH_RUNTIME
|
||||
|
||||
interface A {}
|
||||
|
||||
class B: A {
|
||||
fun bool() = true
|
||||
}
|
||||
|
||||
fun test1(a: A) {
|
||||
assert((a as B).bool())
|
||||
a.<!UNRESOLVED_REFERENCE!>bool<!>()
|
||||
}
|
||||
|
||||
fun test2() {
|
||||
val a: A? = null;
|
||||
assert((a as B).bool())
|
||||
a?.<!UNRESOLVED_REFERENCE!>bool<!>()
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
// !IGNORE_DATA_FLOW_IN_ASSERT
|
||||
// SKIP_TXT
|
||||
// WITH_RUNTIME
|
||||
|
||||
fun test1(s: String?) {
|
||||
assert(s!!.isEmpty())
|
||||
s?.length
|
||||
}
|
||||
|
||||
fun test2(s: String?) {
|
||||
assert(s!!.isEmpty())
|
||||
s!!.length
|
||||
}
|
||||
|
||||
fun test3(s: String?) {
|
||||
assert(s!!.isEmpty())
|
||||
s<!UNSAFE_CALL!>.<!>length
|
||||
}
|
||||
|
||||
fun test4() {
|
||||
val s: String? = null;
|
||||
assert(s!!.isEmpty())
|
||||
s?.length
|
||||
}
|
||||
|
||||
fun test5() {
|
||||
val s: String? = null;
|
||||
assert(s!!.isEmpty())
|
||||
s!!.length
|
||||
}
|
||||
|
||||
fun test6() {
|
||||
val s: String? = null;
|
||||
assert(s!!.isEmpty())
|
||||
s<!UNSAFE_CALL!>.<!>length
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user