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,18 @@
fun baz(s: String?): String {
if (s == null) return ""
// if explicit type String is given for t, problem disappears
val t = when(<!DEBUG_INFO_SMARTCAST!>s<!>) {
// !! is detected as unnecessary here
"abc" -> s
else -> "xyz"
}
return <!DEBUG_INFO_SMARTCAST!>t<!>
}
fun foo(s: String?): String {
val t = when {
s != null -> s
else -> ""
}
return <!DEBUG_INFO_SMARTCAST!>t<!>
}