swiftlang / swift

The Swift Programming Language
https://swift.org
Apache License 2.0
67.57k stars 10.36k forks source link

[SR-15234] Labeled do statements allow `continue` which lead to loop #57556

Closed swift-ci closed 3 years ago

swift-ci commented 3 years ago
Previous ID SR-15234
Radar None
Original Reporter ensan (JIRA User)
Type Bug
Status Resolved
Resolution Duplicate
Environment swift-driver version: 1.26.9 Apple Swift version 5.5 (swiftlang-1300.0.31.1 clang-1300.0.29.1) Target: x86_64-apple-macosx11.0
Additional Detail from JIRA | | | |------------------|-----------------| |Votes | 0 | |Component/s | | |Labels | Bug | |Assignee | None | |Priority | Medium | md5: 02cdee0cfdd19bb2c07b56eb9a257c59

duplicates:

Issue Description:

In Swift5.5, this code just works, and prints 0 to 9.

var count = 0
loop: do {
    print(count)
    count += 1
    if count >= 10 {
        break loop
    }
    continue loop
}

Since unlabeled `do` doesn't allow `continue`, I suspect this is remnant of era when `do-while` was used. It seems incorrect behavior today.

swift-ci commented 3 years ago

Comment by ensan (JIRA)

It turned out to be the same problem as SR-7708