Skip to content

Commit fe14ef0

Browse files
committed
Fix a precondition failure if a generic parameter clause had an additional closing right angle
rdar://108624264
1 parent 8ddbb9a commit fe14ef0

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

Sources/SwiftParser/Declarations.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ extension Parser {
544544

545545
let rangle: RawTokenSyntax
546546
if self.currentToken.starts(with: ">") {
547-
rangle = self.consumeAnyToken(remapping: .rightAngle)
547+
rangle = self.consumePrefix(">", as: .rightAngle)
548548
} else {
549549
rangle = RawTokenSyntax(missing: .rightAngle, arena: self.arena)
550550
}

Tests/SwiftParserTest/DeclarationTests.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1610,6 +1610,15 @@ final class DeclarationTests: XCTestCase {
16101610
)
16111611
)
16121612
}
1613+
1614+
func testDoubleRightAngle() {
1615+
assertParse(
1616+
"func foo<A>1️⃣> test()",
1617+
diagnostics: [
1618+
DiagnosticSpec(message: "unexpected code '> test' before parameter clause")
1619+
]
1620+
)
1621+
}
16131622
}
16141623

16151624
extension Parser.DeclAttributes {

0 commit comments

Comments
 (0)