Skip to content

Commit 5474478

Browse files
authored
Merge pull request #1729 from kimdv/kimdv/1709-parsing-fails-if-line-break-between-enum-case-element-name-and-parameter-clause
Allow parsing for enum case element parameter on new line
2 parents 07361ba + ca7c8c9 commit 5474478

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

Sources/SwiftParser/Declarations.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -918,7 +918,7 @@ extension Parser {
918918
let (unexpectedBeforeName, name) = self.expectIdentifier(keywordRecovery: true)
919919

920920
let associatedValue: RawEnumCaseParameterClauseSyntax?
921-
if self.at(TokenSpec(.leftParen, allowAtStartOfLine: false)) {
921+
if self.at(TokenSpec(.leftParen)) {
922922
associatedValue = self.parseParameterClause(RawEnumCaseParameterClauseSyntax.self) { parser in
923923
parser.parseEnumCaseParameter()
924924
}

Tests/SwiftParserTest/DeclarationTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ final class DeclarationTests: XCTestCase {
2626

2727
assertParse(#"@_private(sourceFile: "YetAnotherFile.swift") import Foundation"#)
2828
}
29+
2930
func testStructParsing() {
3031
assertParse("struct Foo {}")
3132
}

Tests/SwiftParserTest/translated/EnumTests.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1450,4 +1450,15 @@ final class EnumTests: XCTestCase {
14501450
"""#
14511451
)
14521452
}
1453+
1454+
func parseEnumCaseElementParameterOnNewline() {
1455+
assertParse(
1456+
"""
1457+
enum E {
1458+
case a
1459+
(Int)
1460+
}
1461+
"""
1462+
)
1463+
}
14531464
}

0 commit comments

Comments
 (0)