Fix data flow info after inner loops with continue-outer
ControlStructureTypingVisitor.containsBreak() is refined and now also takes into account continue to outer loops
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
fun whileLoop(x: Int?) {
|
||||
@outer while (x != 0) {
|
||||
while (x != 1) {
|
||||
if (x == 2) continue @outer
|
||||
}
|
||||
<!TYPE_MISMATCH!>x<!> : Int
|
||||
}
|
||||
x : Int
|
||||
}
|
||||
|
||||
fun doWhileLoop(x: Int?) {
|
||||
@outer while (x != 0) {
|
||||
do {
|
||||
if (x == 2) continue @outer
|
||||
} while (x == null)
|
||||
<!TYPE_MISMATCH!>x<!> : Int
|
||||
}
|
||||
x : Int
|
||||
}
|
||||
|
||||
fun whileLoopContinueInnerOuter(x: Int?) {
|
||||
@outer while (x != 0) {
|
||||
@inner while (x != 1) {
|
||||
while (x != 2) {
|
||||
if (x == 3) continue @inner
|
||||
}
|
||||
<!TYPE_MISMATCH!>x<!> : Int
|
||||
}
|
||||
x : Int
|
||||
}
|
||||
x : Int
|
||||
}
|
||||
Reference in New Issue
Block a user