Skip to content

Commit dc27c21

Browse files
committed
A return followed by default has no expression associated with it.
1 parent 2220d2d commit dc27c21

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

Sources/SwiftParser/Statements.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -865,7 +865,7 @@ extension Parser {
865865
let expr: RawExprSyntax?
866866
if
867867
!self.at(any: [
868-
.rightBrace, .caseKeyword, .semicolon, .eof,
868+
.rightBrace, .caseKeyword, .defaultKeyword, .semicolon, .eof,
869869
.poundIfKeyword, .poundErrorKeyword, .poundWarningKeyword,
870870
.poundEndifKeyword, .poundElseKeyword, .poundElseifKeyword
871871
])

Tests/SwiftParserTest/Statements.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,21 @@ final class StatementTests: XCTestCase {
110110
)
111111

112112
AssertParse("return true ? nil : nil")
113+
114+
AssertParse(
115+
"""
116+
switch command {
117+
case .start:
118+
break
119+
120+
case .stop:
121+
return
122+
123+
default:
124+
break
125+
}
126+
"""
127+
)
113128
}
114129

115130
func testSwitch() {

0 commit comments

Comments
 (0)