Limit "always null" scope: only for !!, is and dot; senseless comparison rolled back; "smart constant" information for nulls #KT-10029 Fixed
This commit is contained in:
Vendored
+2
-2
@@ -1,8 +1,8 @@
|
||||
fun test() {
|
||||
val out : Int? = null
|
||||
val x : Nothing? = null
|
||||
if (out != <!ALWAYS_NULL!>x<!>)
|
||||
if (out != <!DEBUG_INFO_CONSTANT!>x<!>)
|
||||
<!DEBUG_INFO_SMARTCAST!>out<!>.plus(1)
|
||||
if (out == <!ALWAYS_NULL!>x<!>) return
|
||||
if (out == <!DEBUG_INFO_CONSTANT!>x<!>) return
|
||||
<!DEBUG_INFO_SMARTCAST!>out<!>.plus(1)
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ fun f3(s: Int?): Int {
|
||||
fun f4(s: Int?): Int {
|
||||
return when {
|
||||
s == 4 -> <!DEBUG_INFO_SMARTCAST!>s<!>
|
||||
s == null -> <!ALWAYS_NULL, TYPE_MISMATCH!>s<!>
|
||||
s == null -> <!TYPE_MISMATCH, DEBUG_INFO_CONSTANT!>s<!>
|
||||
else -> <!DEBUG_INFO_SMARTCAST!>s<!>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ fun main(args : Array<String>) {
|
||||
foo(x<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)
|
||||
foo(<!DEBUG_INFO_SMARTCAST!>x<!>)
|
||||
} else {
|
||||
foo(<!ALWAYS_NULL, TYPE_MISMATCH!>x<!>)
|
||||
foo(<!TYPE_MISMATCH, DEBUG_INFO_CONSTANT!>x<!>)
|
||||
<!UNREACHABLE_CODE!>foo(<!><!ALWAYS_NULL!>x<!>!!<!UNREACHABLE_CODE!>)<!>
|
||||
<!UNREACHABLE_CODE!>foo(<!DEBUG_INFO_SMARTCAST!>x<!>)<!>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user