Fix for KT-9022: Wrong result when use break in if condition
#KT-9022 Fixed
This commit is contained in:
+9
@@ -0,0 +1,9 @@
|
||||
fun box(): String {
|
||||
var cycle = true;
|
||||
while (true) {
|
||||
if (true && break) {
|
||||
return "fail"
|
||||
}
|
||||
}
|
||||
return "OK"
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
fun box(): String {
|
||||
var cycle = true;
|
||||
while (true) {
|
||||
if (true || break) {
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
return "fail"
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
fun testOr(b: Boolean): Boolean {
|
||||
return b || return !b;
|
||||
}
|
||||
|
||||
fun testOr(): Boolean {
|
||||
return true || return false;
|
||||
}
|
||||
|
||||
|
||||
fun testAnd(b: Boolean): Boolean {
|
||||
return b && return !b;
|
||||
}
|
||||
|
||||
fun testAnd(): Boolean {
|
||||
return true && return false;
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (testOr(false) != true) return "fail 1"
|
||||
if (testOr(true) != true) return "fail 2"
|
||||
if (testAnd(false) != false) return "fail 3"
|
||||
if (testAnd(true) != false) return "fail 4"
|
||||
if (testOr() != true) return "fail 5"
|
||||
if (testAnd() != false) return "fail 6"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fun box(): String {
|
||||
var cycle = true;
|
||||
while (true) {
|
||||
if (true || throw java.lang.RuntimeException()) {
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
return "fail"
|
||||
}
|
||||
Reference in New Issue
Block a user