Skip to content

Commit 1c8da11

Browse files
committed
Use IdentifierExpr as the child of ImplementsAttributeArgumentsSyntax
1 parent 8ceafa7 commit 1c8da11

File tree

9 files changed

+111
-103
lines changed

9 files changed

+111
-103
lines changed

CodeGeneration/Sources/SyntaxSupport/AttributeNodes.swift

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -619,17 +619,11 @@ public let ATTRIBUTE_NODES: [Node] = [
619619
documentation: "The comma separating the type and method name"
620620
),
621621
Child(
622-
name: "DeclBaseName",
623-
kind: .node(kind: .token),
624-
nameForDiagnostics: "declaration base name",
625-
documentation: "The base name of the protocol's requirement."
626-
),
627-
Child(
628-
name: "DeclNameArguments",
629-
kind: .node(kind: .declNameArguments),
630-
nameForDiagnostics: "declaration name arguments",
631-
documentation: "The argument labels of the protocol's requirement if it is a function requirement.",
632-
isOptional: true
622+
name: "DeclName",
623+
deprecatedName: "Declname",
624+
kind: .node(kind: .identifierExpr),
625+
nameForDiagnostics: "declaration name",
626+
documentation: "The value for this argument"
633627
),
634628
]
635629
),

Sources/SwiftParser/Attributes.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -827,12 +827,16 @@ extension Parser {
827827
.zeroArgCompoundNames,
828828
.operators,
829829
])
830+
let declName = RawIdentifierExprSyntax(
831+
identifier: name,
832+
declNameArguments: args,
833+
arena: self.arena
834+
)
830835
return RawImplementsAttributeArgumentsSyntax(
831836
type: type,
832837
unexpectedBeforeComma,
833838
comma: comma,
834-
declBaseName: name,
835-
declNameArguments: args,
839+
declName: declName,
836840
arena: self.arena
837841
)
838842
}

Sources/SwiftParserDiagnostics/generated/ChildNameForDiagnostics.swift

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,8 @@ private func childNameForDiagnostics(_ keyPath: AnyKeyPath) -> String? {
180180
return "else body"
181181
case \ImplementsAttributeArgumentsSyntax.type:
182182
return "type"
183-
case \ImplementsAttributeArgumentsSyntax.declBaseName:
184-
return "declaration base name"
185-
case \ImplementsAttributeArgumentsSyntax.declNameArguments:
186-
return "declaration name arguments"
183+
case \ImplementsAttributeArgumentsSyntax.declName:
184+
return "declaration name"
187185
case \ImportDeclSyntax.attributes:
188186
return "attributes"
189187
case \ImportDeclSyntax.modifiers:

Sources/SwiftSyntax/generated/ChildNameForKeyPath.swift

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1677,16 +1677,12 @@ public func childName(_ keyPath: AnyKeyPath) -> String? {
16771677
return "unexpectedBetweenTypeAndComma"
16781678
case \ImplementsAttributeArgumentsSyntax.comma:
16791679
return "comma"
1680-
case \ImplementsAttributeArgumentsSyntax.unexpectedBetweenCommaAndDeclBaseName:
1681-
return "unexpectedBetweenCommaAndDeclBaseName"
1682-
case \ImplementsAttributeArgumentsSyntax.declBaseName:
1683-
return "declBaseName"
1684-
case \ImplementsAttributeArgumentsSyntax.unexpectedBetweenDeclBaseNameAndDeclNameArguments:
1685-
return "unexpectedBetweenDeclBaseNameAndDeclNameArguments"
1686-
case \ImplementsAttributeArgumentsSyntax.declNameArguments:
1687-
return "declNameArguments"
1688-
case \ImplementsAttributeArgumentsSyntax.unexpectedAfterDeclNameArguments:
1689-
return "unexpectedAfterDeclNameArguments"
1680+
case \ImplementsAttributeArgumentsSyntax.unexpectedBetweenCommaAndDeclName:
1681+
return "unexpectedBetweenCommaAndDeclName"
1682+
case \ImplementsAttributeArgumentsSyntax.declName:
1683+
return "declName"
1684+
case \ImplementsAttributeArgumentsSyntax.unexpectedAfterDeclName:
1685+
return "unexpectedAfterDeclName"
16901686
case \ImplicitlyUnwrappedOptionalTypeSyntax.unexpectedBeforeWrappedType:
16911687
return "unexpectedBeforeWrappedType"
16921688
case \ImplicitlyUnwrappedOptionalTypeSyntax.wrappedType:

Sources/SwiftSyntax/generated/RenamedChildrenCompatibility.swift

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3829,6 +3829,65 @@ extension GenericWhereClauseSyntax {
38293829
}
38303830
}
38313831

3832+
extension ImplementsAttributeArgumentsSyntax {
3833+
@available(*, deprecated, renamed: "unexpectedBetweenCommaAndDeclName")
3834+
public var unexpectedBetweenCommaAndDeclname: UnexpectedNodesSyntax? {
3835+
get {
3836+
return unexpectedBetweenCommaAndDeclName
3837+
}
3838+
set {
3839+
unexpectedBetweenCommaAndDeclName = newValue
3840+
}
3841+
}
3842+
3843+
@available(*, deprecated, renamed: "declName")
3844+
public var declname: IdentifierExprSyntax {
3845+
get {
3846+
return declName
3847+
}
3848+
set {
3849+
declName = newValue
3850+
}
3851+
}
3852+
3853+
@available(*, deprecated, renamed: "unexpectedAfterDeclName")
3854+
public var unexpectedAfterDeclname: UnexpectedNodesSyntax? {
3855+
get {
3856+
return unexpectedAfterDeclName
3857+
}
3858+
set {
3859+
unexpectedAfterDeclName = newValue
3860+
}
3861+
}
3862+
3863+
@available(*, deprecated, message: "Use an initializer with declName argument(s).")
3864+
@_disfavoredOverload
3865+
public init(
3866+
leadingTrivia: Trivia? = nil,
3867+
_ unexpectedBeforeType: UnexpectedNodesSyntax? = nil,
3868+
type: some TypeSyntaxProtocol,
3869+
_ unexpectedBetweenTypeAndComma: UnexpectedNodesSyntax? = nil,
3870+
comma: TokenSyntax = .commaToken(),
3871+
_ unexpectedBetweenCommaAndDeclname: UnexpectedNodesSyntax? = nil,
3872+
declname: IdentifierExprSyntax,
3873+
_ unexpectedAfterDeclname: UnexpectedNodesSyntax? = nil,
3874+
trailingTrivia: Trivia? = nil
3875+
3876+
) {
3877+
self.init(
3878+
leadingTrivia: leadingTrivia,
3879+
unexpectedBeforeType,
3880+
type: type,
3881+
unexpectedBetweenTypeAndComma,
3882+
comma: comma,
3883+
unexpectedBetweenCommaAndDeclname,
3884+
declName: declname,
3885+
unexpectedAfterDeclname,
3886+
trailingTrivia: trailingTrivia
3887+
)
3888+
}
3889+
}
3890+
38323891
extension ImportDeclSyntax {
38333892
@available(*, deprecated, renamed: "unexpectedBetweenModifiersAndImportKeyword")
38343893
public var unexpectedBetweenModifiersAndImportTok: UnexpectedNodesSyntax? {

Sources/SwiftSyntax/generated/raw/RawSyntaxNodes.swift

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11287,25 +11287,21 @@ public struct RawImplementsAttributeArgumentsSyntax: RawSyntaxNodeProtocol {
1128711287
type: RawTypeSyntax,
1128811288
_ unexpectedBetweenTypeAndComma: RawUnexpectedNodesSyntax? = nil,
1128911289
comma: RawTokenSyntax,
11290-
_ unexpectedBetweenCommaAndDeclBaseName: RawUnexpectedNodesSyntax? = nil,
11291-
declBaseName: RawTokenSyntax,
11292-
_ unexpectedBetweenDeclBaseNameAndDeclNameArguments: RawUnexpectedNodesSyntax? = nil,
11293-
declNameArguments: RawDeclNameArgumentsSyntax?,
11294-
_ unexpectedAfterDeclNameArguments: RawUnexpectedNodesSyntax? = nil,
11290+
_ unexpectedBetweenCommaAndDeclName: RawUnexpectedNodesSyntax? = nil,
11291+
declName: RawIdentifierExprSyntax,
11292+
_ unexpectedAfterDeclName: RawUnexpectedNodesSyntax? = nil,
1129511293
arena: __shared SyntaxArena
1129611294
) {
1129711295
let raw = RawSyntax.makeLayout(
11298-
kind: .implementsAttributeArguments, uninitializedCount: 9, arena: arena) { layout in
11296+
kind: .implementsAttributeArguments, uninitializedCount: 7, arena: arena) { layout in
1129911297
layout.initialize(repeating: nil)
1130011298
layout[0] = unexpectedBeforeType?.raw
1130111299
layout[1] = type.raw
1130211300
layout[2] = unexpectedBetweenTypeAndComma?.raw
1130311301
layout[3] = comma.raw
11304-
layout[4] = unexpectedBetweenCommaAndDeclBaseName?.raw
11305-
layout[5] = declBaseName.raw
11306-
layout[6] = unexpectedBetweenDeclBaseNameAndDeclNameArguments?.raw
11307-
layout[7] = declNameArguments?.raw
11308-
layout[8] = unexpectedAfterDeclNameArguments?.raw
11302+
layout[4] = unexpectedBetweenCommaAndDeclName?.raw
11303+
layout[5] = declName.raw
11304+
layout[6] = unexpectedAfterDeclName?.raw
1130911305
}
1131011306
self.init(unchecked: raw)
1131111307
}
@@ -11326,25 +11322,17 @@ public struct RawImplementsAttributeArgumentsSyntax: RawSyntaxNodeProtocol {
1132611322
layoutView.children[3].map(RawTokenSyntax.init(raw:))!
1132711323
}
1132811324

11329-
public var unexpectedBetweenCommaAndDeclBaseName: RawUnexpectedNodesSyntax? {
11325+
public var unexpectedBetweenCommaAndDeclName: RawUnexpectedNodesSyntax? {
1133011326
layoutView.children[4].map(RawUnexpectedNodesSyntax.init(raw:))
1133111327
}
1133211328

11333-
public var declBaseName: RawTokenSyntax {
11334-
layoutView.children[5].map(RawTokenSyntax.init(raw:))!
11329+
public var declName: RawIdentifierExprSyntax {
11330+
layoutView.children[5].map(RawIdentifierExprSyntax.init(raw:))!
1133511331
}
1133611332

11337-
public var unexpectedBetweenDeclBaseNameAndDeclNameArguments: RawUnexpectedNodesSyntax? {
11333+
public var unexpectedAfterDeclName: RawUnexpectedNodesSyntax? {
1133811334
layoutView.children[6].map(RawUnexpectedNodesSyntax.init(raw:))
1133911335
}
11340-
11341-
public var declNameArguments: RawDeclNameArgumentsSyntax? {
11342-
layoutView.children[7].map(RawDeclNameArgumentsSyntax.init(raw:))
11343-
}
11344-
11345-
public var unexpectedAfterDeclNameArguments: RawUnexpectedNodesSyntax? {
11346-
layoutView.children[8].map(RawUnexpectedNodesSyntax.init(raw:))
11347-
}
1134811336
}
1134911337

1135011338
@_spi(RawSyntax)

Sources/SwiftSyntax/generated/raw/RawSyntaxValidation.swift

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1449,16 +1449,14 @@ func validateLayout(layout: RawSyntaxBuffer, as kind: SyntaxKind) {
14491449
verify(layout[9], as: RawSyntax?.self)])
14501450
assertNoError(kind, 10, verify(layout[10], as: RawUnexpectedNodesSyntax?.self))
14511451
case .implementsAttributeArguments:
1452-
assert(layout.count == 9)
1452+
assert(layout.count == 7)
14531453
assertNoError(kind, 0, verify(layout[0], as: RawUnexpectedNodesSyntax?.self))
14541454
assertNoError(kind, 1, verify(layout[1], as: RawTypeSyntax.self))
14551455
assertNoError(kind, 2, verify(layout[2], as: RawUnexpectedNodesSyntax?.self))
14561456
assertNoError(kind, 3, verify(layout[3], as: RawTokenSyntax.self, tokenChoices: [.tokenKind(.comma)]))
14571457
assertNoError(kind, 4, verify(layout[4], as: RawUnexpectedNodesSyntax?.self))
1458-
assertNoError(kind, 5, verify(layout[5], as: RawTokenSyntax.self))
1458+
assertNoError(kind, 5, verify(layout[5], as: RawIdentifierExprSyntax.self))
14591459
assertNoError(kind, 6, verify(layout[6], as: RawUnexpectedNodesSyntax?.self))
1460-
assertNoError(kind, 7, verify(layout[7], as: RawDeclNameArgumentsSyntax?.self))
1461-
assertNoError(kind, 8, verify(layout[8], as: RawUnexpectedNodesSyntax?.self))
14621460
case .implicitlyUnwrappedOptionalType:
14631461
assert(layout.count == 5)
14641462
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
@@ -2783,6 +2783,7 @@ public struct GenericSpecializationExprSyntax: ExprSyntaxProtocol, SyntaxHashabl
27832783
/// ### Contained in
27842784
///
27852785
/// - ``DynamicReplacementAttributeArgumentsSyntax``.``DynamicReplacementAttributeArgumentsSyntax/declName``
2786+
/// - ``ImplementsAttributeArgumentsSyntax``.``ImplementsAttributeArgumentsSyntax/declName``
27862787
/// - ``SpecializeTargetFunctionArgumentSyntax``.``SpecializeTargetFunctionArgumentSyntax/declName``
27872788
public struct IdentifierExprSyntax: ExprSyntaxProtocol, SyntaxHashable {
27882789
public let _syntaxNode: Syntax

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodes.swift

Lines changed: 19 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -5353,7 +5353,6 @@ public struct DeclNameArgumentSyntax: SyntaxProtocol, SyntaxHashable {
53535353
/// ### Contained in
53545354
///
53555355
/// - ``IdentifierExprSyntax``.``IdentifierExprSyntax/declNameArguments``
5356-
/// - ``ImplementsAttributeArgumentsSyntax``.``ImplementsAttributeArgumentsSyntax/declNameArguments``
53575356
/// - ``KeyPathPropertyComponentSyntax``.``KeyPathPropertyComponentSyntax/declNameArguments``
53585357
/// - ``MemberAccessExprSyntax``.``MemberAccessExprSyntax/declNameArguments``
53595358
/// - ``QualifiedDeclNameSyntax``.``QualifiedDeclNameSyntax/arguments``
@@ -10549,8 +10548,7 @@ public struct IfConfigClauseSyntax: SyntaxProtocol, SyntaxHashable {
1054910548
///
1055010549
/// - `type`: ``TypeSyntax``
1055110550
/// - `comma`: `','`
10552-
/// - `declBaseName`: ``TokenSyntax``
10553-
/// - `declNameArguments`: ``DeclNameArgumentsSyntax``?
10551+
/// - `declName`: ``IdentifierExprSyntax``
1055410552
///
1055510553
/// ### Contained in
1055610554
///
@@ -10577,20 +10575,17 @@ public struct ImplementsAttributeArgumentsSyntax: SyntaxProtocol, SyntaxHashable
1057710575
/// - leadingTrivia: Trivia to be prepended to the leading trivia of the node’s first token. If the node is empty, there is no token to attach the trivia to and the parameter is ignored.
1057810576
/// - type: The type for which the method with this attribute implements a requirement.
1057910577
/// - comma: The comma separating the type and method name
10580-
/// - declBaseName: The base name of the protocol's requirement.
10581-
/// - declNameArguments: The argument labels of the protocol's requirement if it is a function requirement.
10578+
/// - declName: The value for this argument
1058210579
/// - trailingTrivia: Trivia to be appended to the trailing trivia of the node’s last token. If the node is empty, there is no token to attach the trivia to and the parameter is ignored.
1058310580
public init(
1058410581
leadingTrivia: Trivia? = nil,
1058510582
_ unexpectedBeforeType: UnexpectedNodesSyntax? = nil,
1058610583
type: some TypeSyntaxProtocol,
1058710584
_ unexpectedBetweenTypeAndComma: UnexpectedNodesSyntax? = nil,
1058810585
comma: TokenSyntax = .commaToken(),
10589-
_ unexpectedBetweenCommaAndDeclBaseName: UnexpectedNodesSyntax? = nil,
10590-
declBaseName: TokenSyntax,
10591-
_ unexpectedBetweenDeclBaseNameAndDeclNameArguments: UnexpectedNodesSyntax? = nil,
10592-
declNameArguments: DeclNameArgumentsSyntax? = nil,
10593-
_ unexpectedAfterDeclNameArguments: UnexpectedNodesSyntax? = nil,
10586+
_ unexpectedBetweenCommaAndDeclName: UnexpectedNodesSyntax? = nil,
10587+
declName: IdentifierExprSyntax,
10588+
_ unexpectedAfterDeclName: UnexpectedNodesSyntax? = nil,
1059410589
trailingTrivia: Trivia? = nil
1059510590

1059610591
) {
@@ -10601,22 +10596,18 @@ public struct ImplementsAttributeArgumentsSyntax: SyntaxProtocol, SyntaxHashable
1060110596
type,
1060210597
unexpectedBetweenTypeAndComma,
1060310598
comma,
10604-
unexpectedBetweenCommaAndDeclBaseName,
10605-
declBaseName,
10606-
unexpectedBetweenDeclBaseNameAndDeclNameArguments,
10607-
declNameArguments,
10608-
unexpectedAfterDeclNameArguments
10599+
unexpectedBetweenCommaAndDeclName,
10600+
declName,
10601+
unexpectedAfterDeclName
1060910602
))) { (arena, _) in
1061010603
let layout: [RawSyntax?] = [
1061110604
unexpectedBeforeType?.raw,
1061210605
type.raw,
1061310606
unexpectedBetweenTypeAndComma?.raw,
1061410607
comma.raw,
10615-
unexpectedBetweenCommaAndDeclBaseName?.raw,
10616-
declBaseName.raw,
10617-
unexpectedBetweenDeclBaseNameAndDeclNameArguments?.raw,
10618-
declNameArguments?.raw,
10619-
unexpectedAfterDeclNameArguments?.raw
10608+
unexpectedBetweenCommaAndDeclName?.raw,
10609+
declName.raw,
10610+
unexpectedAfterDeclName?.raw
1062010611
]
1062110612
let raw = RawSyntax.makeLayout(
1062210613
kind: SyntaxKind.implementsAttributeArguments,
@@ -10669,7 +10660,7 @@ public struct ImplementsAttributeArgumentsSyntax: SyntaxProtocol, SyntaxHashable
1066910660
}
1067010661
}
1067110662

10672-
public var unexpectedBetweenCommaAndDeclBaseName: UnexpectedNodesSyntax? {
10663+
public var unexpectedBetweenCommaAndDeclName: UnexpectedNodesSyntax? {
1067310664
get {
1067410665
return data.child(at: 4, parent: Syntax(self)).map(UnexpectedNodesSyntax.init)
1067510666
}
@@ -10678,17 +10669,17 @@ public struct ImplementsAttributeArgumentsSyntax: SyntaxProtocol, SyntaxHashable
1067810669
}
1067910670
}
1068010671

10681-
/// The base name of the protocol's requirement.
10682-
public var declBaseName: TokenSyntax {
10672+
/// The value for this argument
10673+
public var declName: IdentifierExprSyntax {
1068310674
get {
10684-
return TokenSyntax(data.child(at: 5, parent: Syntax(self))!)
10675+
return IdentifierExprSyntax(data.child(at: 5, parent: Syntax(self))!)
1068510676
}
1068610677
set(value) {
1068710678
self = ImplementsAttributeArgumentsSyntax(data.replacingChild(at: 5, with: value.data, arena: SyntaxArena()))
1068810679
}
1068910680
}
1069010681

10691-
public var unexpectedBetweenDeclBaseNameAndDeclNameArguments: UnexpectedNodesSyntax? {
10682+
public var unexpectedAfterDeclName: UnexpectedNodesSyntax? {
1069210683
get {
1069310684
return data.child(at: 6, parent: Syntax(self)).map(UnexpectedNodesSyntax.init)
1069410685
}
@@ -10697,36 +10688,15 @@ public struct ImplementsAttributeArgumentsSyntax: SyntaxProtocol, SyntaxHashable
1069710688
}
1069810689
}
1069910690

10700-
/// The argument labels of the protocol's requirement if it is a function requirement.
10701-
public var declNameArguments: DeclNameArgumentsSyntax? {
10702-
get {
10703-
return data.child(at: 7, parent: Syntax(self)).map(DeclNameArgumentsSyntax.init)
10704-
}
10705-
set(value) {
10706-
self = ImplementsAttributeArgumentsSyntax(data.replacingChild(at: 7, with: value?.data, arena: SyntaxArena()))
10707-
}
10708-
}
10709-
10710-
public var unexpectedAfterDeclNameArguments: UnexpectedNodesSyntax? {
10711-
get {
10712-
return data.child(at: 8, parent: Syntax(self)).map(UnexpectedNodesSyntax.init)
10713-
}
10714-
set(value) {
10715-
self = ImplementsAttributeArgumentsSyntax(data.replacingChild(at: 8, with: value?.data, arena: SyntaxArena()))
10716-
}
10717-
}
10718-
1071910691
public static var structure: SyntaxNodeStructure {
1072010692
return .layout([
1072110693
\Self.unexpectedBeforeType,
1072210694
\Self.type,
1072310695
\Self.unexpectedBetweenTypeAndComma,
1072410696
\Self.comma,
10725-
\Self.unexpectedBetweenCommaAndDeclBaseName,
10726-
\Self.declBaseName,
10727-
\Self.unexpectedBetweenDeclBaseNameAndDeclNameArguments,
10728-
\Self.declNameArguments,
10729-
\Self.unexpectedAfterDeclNameArguments
10697+
\Self.unexpectedBetweenCommaAndDeclName,
10698+
\Self.declName,
10699+
\Self.unexpectedAfterDeclName
1073010700
])
1073110701
}
1073210702
}

0 commit comments

Comments
 (0)