Skip to content

Commit f70bbf5

Browse files
committed
Relax Designated Type Identifier Parsing to Accept Anything
1 parent b6bf02e commit f70bbf5

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

Sources/SwiftParser/Declarations.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1907,10 +1907,11 @@ extension Parser {
19071907
let (unexpectedBeforeIdentifier, identifier) = self.expectIdentifier()
19081908
var types = [RawDesignatedTypeElementSyntax]()
19091909
while let comma = self.consume(if: .comma) {
1910-
let (unexpectedBeforeDesignatedType, designatedType) = self.expectIdentifier()
1910+
// FIXME: The compiler accepts... anything here. This is a bug.
1911+
// let (unexpectedBeforeDesignatedType, designatedType) = self.expectIdentifier()
1912+
let designatedType = self.consumeAnyToken()
19111913
types.append(RawDesignatedTypeElementSyntax(
19121914
leadingComma: comma,
1913-
unexpectedBeforeDesignatedType,
19141915
name: designatedType,
19151916
arena: self.arena))
19161917
}

Tests/SwiftParserTest/Declarations.swift

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

358358
AssertParse(
359359
"""
360+
infix operator <*<<< : MediumPrecedence, &
360361
prefix operator ^^ : PrefixMagicOperatorProtocol
361362
infix operator <*< : MediumPrecedence, InfixMagicOperatorProtocol
362363
postfix operator ^^ : PostfixMagicOperatorProtocol

0 commit comments

Comments
 (0)