DFA: take into account if / else and when expression assignments #KT-10002 Fixed

Also #KT-7479 Fixed
This commit is contained in:
Mikhail Glukhikh
2015-11-17 13:50:22 +03:00
parent e7fc6bcc6e
commit 7cd867b936
10 changed files with 102 additions and 4 deletions
@@ -0,0 +1,19 @@
fun baz(s: String?): String {
// If String type is given explicitly, problem disappears
val t = if (s == null) {
""
}
else {
val u: String? = null
if (u == null) return ""
// !! is detected as unnecessary here
u
}
return <!DEBUG_INFO_SMARTCAST!>t<!>
}
fun foo(s: String?): String {
if (s == null) return ""
val t = if (s == "abc") <!DEBUG_INFO_SMARTCAST!>s<!> else "xyz"
return t
}