Retain data flow info after boolean operations

#KT-2825 In Progress
This commit is contained in:
Alexander Udalov
2012-11-12 18:45:01 +04:00
parent 2e6500d848
commit e4cd0e004f
4 changed files with 45 additions and 2 deletions
@@ -0,0 +1,23 @@
fun foo1(x: Number, cond: Boolean): Boolean {
val result = cond && ((x as Int) == 42)
<!TYPE_MISMATCH!>x<!> : Int
return result
}
fun foo2(x: Number, cond: Boolean): Boolean {
val result = ((x as Int) == 42) && cond
x : Int
return result
}
fun foo3(x: Number, cond: Boolean): Boolean {
val result = cond || ((x as Int) == 42)
<!TYPE_MISMATCH!>x<!> : Int
return result
}
fun foo4(x: Number, cond: Boolean): Boolean {
val result = ((x as Int) == 42) || cond
x : Int
return result
}
@@ -0,0 +1,5 @@
fun foo(x: Int?): Boolean {
val result = ((x!! == 0) && ((x : Int) == 0))
x : Int
return result
}