fixed: smart cast of boolean variable didn't work in boolean expression

This commit is contained in:
Svetlana Isakova
2013-12-09 18:54:04 +04:00
parent cd6934bee8
commit 4d39dc38da
5 changed files with 30 additions and 11 deletions
@@ -37,5 +37,5 @@ fun f(): Unit {
val y : Boolean? = true
false || <!TYPE_MISMATCH!>y<!>
<!TYPE_MISMATCH!>y<!> && true
<!TYPE_MISMATCH!>y<!> && <!TYPE_MISMATCH!>1<!>
<!TYPE_MISMATCH!>y<!> && <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>
}
@@ -0,0 +1,6 @@
fun foo1(b: Boolean, c: Int) {
if (b && <!TYPE_MISMATCH!>c<!>) {}
if (b || <!TYPE_MISMATCH!>c<!>) {}
if (<!TYPE_MISMATCH!>c<!> && b) {}
if (<!TYPE_MISMATCH!>c<!> || b) {}
}
@@ -0,0 +1,8 @@
fun foo(b: Boolean?, c: Boolean) {
if (b != null && <!DEBUG_INFO_AUTOCAST!>b<!>) {}
if (b == null || <!DEBUG_INFO_AUTOCAST!>b<!>) {}
if (b != null) {
if (<!DEBUG_INFO_AUTOCAST!>b<!> && c) {}
if (<!DEBUG_INFO_AUTOCAST!>b<!> || c) {}
}
}