Skip to content

Commit 4846699

Browse files
committed
Use DeclReferenceExprSyntax in QualifiedDeclNameSyntax
1 parent 6abde11 commit 4846699

File tree

11 files changed

+60
-183
lines changed

11 files changed

+60
-183
lines changed

CodeGeneration/Sources/SyntaxSupport/AttributeNodes.swift

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -777,23 +777,10 @@ public let ATTRIBUTE_NODES: [Node] = [
777777
isOptional: true
778778
),
779779
Child(
780-
name: "Name",
781-
kind: .token(choices: [
782-
.token(tokenKind: "IdentifierToken"),
783-
.keyword(text: "self"),
784-
.keyword(text: "Self"),
785-
.keyword(text: "init"),
786-
.token(tokenKind: "BinaryOperatorToken"),
787-
]),
788-
nameForDiagnostics: "base name",
789-
documentation: "The base name of the referenced function."
790-
),
791-
Child(
792-
name: "Arguments",
793-
kind: .node(kind: .declNameArguments),
794-
nameForDiagnostics: "arguments",
795-
documentation: "The argument labels of the referenced function, optionally specified.",
796-
isOptional: true
780+
name: "DeclName",
781+
kind: .node(kind: .declReferenceExpr),
782+
nameForDiagnostics: "name",
783+
documentation: "The name of the referenced function."
797784
),
798785
]
799786
),

CodeGeneration/Tests/ValidateSyntaxNodes/ValidateSyntaxNodes.swift

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -457,18 +457,6 @@ class ValidateSyntaxNodes: XCTestCase {
457457
assertFailuresMatchXFails(
458458
failures,
459459
expectedFailures: [
460-
// MARK: DeclNameArguments
461-
// FIXME: IdentifierExprSyntax etc. should probably use DeclName as child instead of Name and Arguments
462-
ValidationFailure(
463-
node: .qualifiedDeclName,
464-
message:
465-
"child 'Arguments' is named inconsistently with 'KeyPathPropertyComponentSyntax.DeclNameArguments', which has the same type ('DeclNameArgumentsSyntax')"
466-
),
467-
ValidationFailure(
468-
node: .declReferenceExpr,
469-
message:
470-
"child 'ArgumentNames' is named inconsistently with 'KeyPathPropertyComponentSyntax.DeclNameArguments', which has the same type ('DeclNameArgumentsSyntax')"
471-
),
472460
// MARK: Alternate names for InitializerClauseSyntax
473461
// The cases below don’t have intializers but just a syntactic element that happens to be spelled the same
474462
ValidationFailure(

Sources/SwiftParser/Names.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,11 @@ extension Parser {
160160
return RawQualifiedDeclNameSyntax(
161161
baseType: type,
162162
period: period,
163-
name: name,
164-
arguments: args,
163+
declName: RawDeclReferenceExprSyntax(
164+
baseName: name,
165+
argumentNames: args,
166+
arena: self.arena
167+
),
165168
arena: self.arena
166169
)
167170
}

Sources/SwiftParser/generated/Parser+TokenSpecSet.swift

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1659,48 +1659,6 @@ extension PrecedenceGroupRelationSyntax {
16591659
}
16601660
}
16611661

1662-
extension QualifiedDeclNameSyntax {
1663-
enum NameOptions: TokenSpecSet {
1664-
case identifier
1665-
case `self`
1666-
case `Self`
1667-
case `init`
1668-
case binaryOperator
1669-
1670-
init?(lexeme: Lexer.Lexeme) {
1671-
switch PrepareForKeywordMatch(lexeme) {
1672-
case TokenSpec(.identifier):
1673-
self = .identifier
1674-
case TokenSpec(.`self`):
1675-
self = .`self`
1676-
case TokenSpec(.`Self`):
1677-
self = .`Self`
1678-
case TokenSpec(.`init`):
1679-
self = .`init`
1680-
case TokenSpec(.binaryOperator):
1681-
self = .binaryOperator
1682-
default:
1683-
return nil
1684-
}
1685-
}
1686-
1687-
var spec: TokenSpec {
1688-
switch self {
1689-
case .identifier:
1690-
return .identifier
1691-
case .`self`:
1692-
return .keyword(.`self`)
1693-
case .`Self`:
1694-
return .keyword(.`Self`)
1695-
case .`init`:
1696-
return .keyword(.`init`)
1697-
case .binaryOperator:
1698-
return .binaryOperator
1699-
}
1700-
}
1701-
}
1702-
}
1703-
17041662
extension SameTypeRequirementSyntax {
17051663
enum EqualOptions: TokenSpecSet {
17061664
case binaryOperator

Sources/SwiftParserDiagnostics/generated/ChildNameForDiagnostics.swift

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -284,10 +284,8 @@ private func childNameForDiagnostics(_ keyPath: AnyKeyPath) -> String? {
284284
return "generic where clause"
285285
case \QualifiedDeclNameSyntax.baseType:
286286
return "base type"
287-
case \QualifiedDeclNameSyntax.name:
288-
return "base name"
289-
case \QualifiedDeclNameSyntax.arguments:
290-
return "arguments"
287+
case \QualifiedDeclNameSyntax.declName:
288+
return "name"
291289
case \RepeatStmtSyntax.body:
292290
return "body"
293291
case \RepeatStmtSyntax.condition:

Sources/SwiftSyntax/generated/ChildNameForKeyPath.swift

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2683,16 +2683,12 @@ public func childName(_ keyPath: AnyKeyPath) -> String? {
26832683
return "unexpectedBetweenBaseTypeAndPeriod"
26842684
case \QualifiedDeclNameSyntax.period:
26852685
return "period"
2686-
case \QualifiedDeclNameSyntax.unexpectedBetweenPeriodAndName:
2687-
return "unexpectedBetweenPeriodAndName"
2688-
case \QualifiedDeclNameSyntax.name:
2689-
return "name"
2690-
case \QualifiedDeclNameSyntax.unexpectedBetweenNameAndArguments:
2691-
return "unexpectedBetweenNameAndArguments"
2692-
case \QualifiedDeclNameSyntax.arguments:
2693-
return "arguments"
2694-
case \QualifiedDeclNameSyntax.unexpectedAfterArguments:
2695-
return "unexpectedAfterArguments"
2686+
case \QualifiedDeclNameSyntax.unexpectedBetweenPeriodAndDeclName:
2687+
return "unexpectedBetweenPeriodAndDeclName"
2688+
case \QualifiedDeclNameSyntax.declName:
2689+
return "declName"
2690+
case \QualifiedDeclNameSyntax.unexpectedAfterDeclName:
2691+
return "unexpectedAfterDeclName"
26962692
case \RegexLiteralExprSyntax.unexpectedBeforeOpeningPounds:
26972693
return "unexpectedBeforeOpeningPounds"
26982694
case \RegexLiteralExprSyntax.openingPounds:

Sources/SwiftSyntax/generated/RenamedChildrenCompatibility.swift

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6616,13 +6616,13 @@ extension QualifiedDeclNameSyntax {
66166616
}
66176617
}
66186618

6619-
@available(*, deprecated, renamed: "unexpectedBetweenPeriodAndName")
6620-
public var unexpectedBetweenDotAndName: UnexpectedNodesSyntax? {
6619+
@available(*, deprecated, renamed: "unexpectedBetweenPeriodAndDeclName")
6620+
public var unexpectedBetweenDotAndDeclName: UnexpectedNodesSyntax? {
66216621
get {
6622-
return unexpectedBetweenPeriodAndName
6622+
return unexpectedBetweenPeriodAndDeclName
66236623
}
66246624
set {
6625-
unexpectedBetweenPeriodAndName = newValue
6625+
unexpectedBetweenPeriodAndDeclName = newValue
66266626
}
66276627
}
66286628

@@ -6634,11 +6634,9 @@ extension QualifiedDeclNameSyntax {
66346634
baseType: (some TypeSyntaxProtocol)? = TypeSyntax?.none,
66356635
_ unexpectedBetweenBaseTypeAndDot: UnexpectedNodesSyntax? = nil,
66366636
dot: TokenSyntax? = nil,
6637-
_ unexpectedBetweenDotAndName: UnexpectedNodesSyntax? = nil,
6638-
name: TokenSyntax,
6639-
_ unexpectedBetweenNameAndArguments: UnexpectedNodesSyntax? = nil,
6640-
arguments: DeclNameArgumentsSyntax? = nil,
6641-
_ unexpectedAfterArguments: UnexpectedNodesSyntax? = nil,
6637+
_ unexpectedBetweenDotAndDeclName: UnexpectedNodesSyntax? = nil,
6638+
declName: DeclReferenceExprSyntax,
6639+
_ unexpectedAfterDeclName: UnexpectedNodesSyntax? = nil,
66426640
trailingTrivia: Trivia? = nil
66436641

66446642
) {
@@ -6648,11 +6646,9 @@ extension QualifiedDeclNameSyntax {
66486646
baseType: baseType,
66496647
unexpectedBetweenBaseTypeAndDot,
66506648
period: dot,
6651-
unexpectedBetweenDotAndName,
6652-
name: name,
6653-
unexpectedBetweenNameAndArguments,
6654-
arguments: arguments,
6655-
unexpectedAfterArguments,
6649+
unexpectedBetweenDotAndDeclName,
6650+
declName: declName,
6651+
unexpectedAfterDeclName,
66566652
trailingTrivia: trailingTrivia
66576653
)
66586654
}

Sources/SwiftSyntax/generated/raw/RawSyntaxNodes.swift

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17778,25 +17778,21 @@ public struct RawQualifiedDeclNameSyntax: RawSyntaxNodeProtocol {
1777817778
baseType: RawTypeSyntax?,
1777917779
_ unexpectedBetweenBaseTypeAndPeriod: RawUnexpectedNodesSyntax? = nil,
1778017780
period: RawTokenSyntax?,
17781-
_ unexpectedBetweenPeriodAndName: RawUnexpectedNodesSyntax? = nil,
17782-
name: RawTokenSyntax,
17783-
_ unexpectedBetweenNameAndArguments: RawUnexpectedNodesSyntax? = nil,
17784-
arguments: RawDeclNameArgumentsSyntax?,
17785-
_ unexpectedAfterArguments: RawUnexpectedNodesSyntax? = nil,
17781+
_ unexpectedBetweenPeriodAndDeclName: RawUnexpectedNodesSyntax? = nil,
17782+
declName: RawDeclReferenceExprSyntax,
17783+
_ unexpectedAfterDeclName: RawUnexpectedNodesSyntax? = nil,
1778617784
arena: __shared SyntaxArena
1778717785
) {
1778817786
let raw = RawSyntax.makeLayout(
17789-
kind: .qualifiedDeclName, uninitializedCount: 9, arena: arena) { layout in
17787+
kind: .qualifiedDeclName, uninitializedCount: 7, arena: arena) { layout in
1779017788
layout.initialize(repeating: nil)
1779117789
layout[0] = unexpectedBeforeBaseType?.raw
1779217790
layout[1] = baseType?.raw
1779317791
layout[2] = unexpectedBetweenBaseTypeAndPeriod?.raw
1779417792
layout[3] = period?.raw
17795-
layout[4] = unexpectedBetweenPeriodAndName?.raw
17796-
layout[5] = name.raw
17797-
layout[6] = unexpectedBetweenNameAndArguments?.raw
17798-
layout[7] = arguments?.raw
17799-
layout[8] = unexpectedAfterArguments?.raw
17793+
layout[4] = unexpectedBetweenPeriodAndDeclName?.raw
17794+
layout[5] = declName.raw
17795+
layout[6] = unexpectedAfterDeclName?.raw
1780017796
}
1780117797
self.init(unchecked: raw)
1780217798
}
@@ -17817,25 +17813,17 @@ public struct RawQualifiedDeclNameSyntax: RawSyntaxNodeProtocol {
1781717813
layoutView.children[3].map(RawTokenSyntax.init(raw:))
1781817814
}
1781917815

17820-
public var unexpectedBetweenPeriodAndName: RawUnexpectedNodesSyntax? {
17816+
public var unexpectedBetweenPeriodAndDeclName: RawUnexpectedNodesSyntax? {
1782117817
layoutView.children[4].map(RawUnexpectedNodesSyntax.init(raw:))
1782217818
}
1782317819

17824-
public var name: RawTokenSyntax {
17825-
layoutView.children[5].map(RawTokenSyntax.init(raw:))!
17820+
public var declName: RawDeclReferenceExprSyntax {
17821+
layoutView.children[5].map(RawDeclReferenceExprSyntax.init(raw:))!
1782617822
}
1782717823

17828-
public var unexpectedBetweenNameAndArguments: RawUnexpectedNodesSyntax? {
17824+
public var unexpectedAfterDeclName: RawUnexpectedNodesSyntax? {
1782917825
layoutView.children[6].map(RawUnexpectedNodesSyntax.init(raw:))
1783017826
}
17831-
17832-
public var arguments: RawDeclNameArgumentsSyntax? {
17833-
layoutView.children[7].map(RawDeclNameArgumentsSyntax.init(raw:))
17834-
}
17835-
17836-
public var unexpectedAfterArguments: RawUnexpectedNodesSyntax? {
17837-
layoutView.children[8].map(RawUnexpectedNodesSyntax.init(raw:))
17838-
}
1783917827
}
1784017828

1784117829
@_spi(RawSyntax)

Sources/SwiftSyntax/generated/raw/RawSyntaxValidation.swift

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2166,22 +2166,14 @@ func validateLayout(layout: RawSyntaxBuffer, as kind: SyntaxKind) {
21662166
assertNoError(kind, 15, verify(layout[15], as: RawMemberBlockSyntax.self))
21672167
assertNoError(kind, 16, verify(layout[16], as: RawUnexpectedNodesSyntax?.self))
21682168
case .qualifiedDeclName:
2169-
assert(layout.count == 9)
2169+
assert(layout.count == 7)
21702170
assertNoError(kind, 0, verify(layout[0], as: RawUnexpectedNodesSyntax?.self))
21712171
assertNoError(kind, 1, verify(layout[1], as: RawTypeSyntax?.self))
21722172
assertNoError(kind, 2, verify(layout[2], as: RawUnexpectedNodesSyntax?.self))
21732173
assertNoError(kind, 3, verify(layout[3], as: RawTokenSyntax?.self, tokenChoices: [.tokenKind(.period)]))
21742174
assertNoError(kind, 4, verify(layout[4], as: RawUnexpectedNodesSyntax?.self))
2175-
assertNoError(kind, 5, verify(layout[5], as: RawTokenSyntax.self, tokenChoices: [
2176-
.tokenKind(.identifier),
2177-
.keyword("self"),
2178-
.keyword("Self"),
2179-
.keyword("init"),
2180-
.tokenKind(.binaryOperator)
2181-
]))
2175+
assertNoError(kind, 5, verify(layout[5], as: RawDeclReferenceExprSyntax.self))
21822176
assertNoError(kind, 6, verify(layout[6], as: RawUnexpectedNodesSyntax?.self))
2183-
assertNoError(kind, 7, verify(layout[7], as: RawDeclNameArgumentsSyntax?.self))
2184-
assertNoError(kind, 8, verify(layout[8], as: RawUnexpectedNodesSyntax?.self))
21852177
case .regexLiteralExpr:
21862178
assert(layout.count == 11)
21872179
assertNoError(kind, 0, verify(layout[0], as: RawUnexpectedNodesSyntax?.self))

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxExprNodes.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1824,6 +1824,7 @@ public struct CopyExprSyntax: ExprSyntaxProtocol, SyntaxHashable {
18241824
/// - ``ImplementsAttributeArgumentsSyntax``.``ImplementsAttributeArgumentsSyntax/declName``
18251825
/// - ``KeyPathPropertyComponentSyntax``.``KeyPathPropertyComponentSyntax/declName``
18261826
/// - ``MemberAccessExprSyntax``.``MemberAccessExprSyntax/declName``
1827+
/// - ``QualifiedDeclNameSyntax``.``QualifiedDeclNameSyntax/declName``
18271828
/// - ``SpecializeTargetFunctionArgumentSyntax``.``SpecializeTargetFunctionArgumentSyntax/declName``
18281829
public struct DeclReferenceExprSyntax: ExprSyntaxProtocol, SyntaxHashable {
18291830
public let _syntaxNode: Syntax

0 commit comments

Comments
 (0)