Skip to content

Commit 86589a5

Browse files
committed
Rename IdentifierExpr to DeclReferenceExpr
1 parent 1c8da11 commit 86589a5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+641
-548
lines changed

CodeGeneration/Sources/SyntaxSupport/AttributeNodes.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@ public let ATTRIBUTE_NODES: [Node] = [
562562
Child(
563563
name: "DeclName",
564564
deprecatedName: "Declname",
565-
kind: .node(kind: .identifierExpr)
565+
kind: .node(kind: .declReferenceExpr)
566566
),
567567
]
568568
),
@@ -621,7 +621,7 @@ public let ATTRIBUTE_NODES: [Node] = [
621621
Child(
622622
name: "DeclName",
623623
deprecatedName: "Declname",
624-
kind: .node(kind: .identifierExpr),
624+
kind: .node(kind: .declReferenceExpr),
625625
nameForDiagnostics: "declaration name",
626626
documentation: "The value for this argument"
627627
),
@@ -837,7 +837,7 @@ public let ATTRIBUTE_NODES: [Node] = [
837837
Child(
838838
name: "DeclName",
839839
deprecatedName: "Declname",
840-
kind: .node(kind: .identifierExpr),
840+
kind: .node(kind: .declReferenceExpr),
841841
nameForDiagnostics: "declaration name",
842842
documentation: "The value for this argument"
843843
),

CodeGeneration/Sources/SyntaxSupport/ExprNodes.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -837,12 +837,13 @@ public let EXPR_NODES: [Node] = [
837837

838838
// An identifier expression.
839839
Node(
840-
kind: .identifierExpr,
840+
kind: .declReferenceExpr,
841841
base: .expr,
842842
nameForDiagnostics: nil,
843843
children: [
844844
Child(
845-
name: "Identifier",
845+
name: "BaseName",
846+
deprecatedName: "Identifier",
846847
kind: .token(choices: [
847848
.token(tokenKind: "IdentifierToken"),
848849
.keyword(text: "self"),
@@ -853,7 +854,8 @@ public let EXPR_NODES: [Node] = [
853854
])
854855
),
855856
Child(
856-
name: "DeclNameArguments",
857+
name: "ArgumentNames",
858+
deprecatedName: "DeclNameArguments",
857859
kind: .node(kind: .declNameArguments),
858860
isOptional: true
859861
),

CodeGeneration/Sources/SyntaxSupport/SyntaxNodeKind.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ public enum SyntaxNodeKind: String, CaseIterable {
8787
case declNameArgument
8888
case declNameArgumentList
8989
case declNameArguments
90+
case declReferenceExpr
9091
case deferStmt
9192
case deinitializerDecl
9293
case deinitializerEffectSpecifiers
@@ -148,7 +149,6 @@ public enum SyntaxNodeKind: String, CaseIterable {
148149
case genericSpecializationExpr
149150
case genericWhereClause
150151
case guardStmt
151-
case identifierExpr
152152
case identifierPattern
153153
case identifierType
154154
case ifConfigClause
@@ -383,6 +383,7 @@ public enum SyntaxNodeKind: String, CaseIterable {
383383
case .closureShorthandParameterList: return "closureParamList"
384384
case .consumeExpr: return "moveExpr"
385385
case .declModifierList: return "modifierList"
386+
case .declReferenceExpr: return "identifierExpr"
386387
case .deinitializerEffectSpecifiers: return "deinitEffectSpecifiers"
387388
case .derivativeAttributeArguments: return "derivativeRegistrationAttributeArguments"
388389
case .designatedType: return "designatedTypeElement"

CodeGeneration/Sources/Utils/SyntaxBuildableChild.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public extension Child {
131131
preconditionChoices.append(
132132
ExprSyntax(
133133
SequenceExprSyntax {
134-
IdentifierExprSyntax(identifier: .identifier(varName))
134+
DeclReferenceExprSyntax(baseName: .identifier(varName))
135135
BinaryOperatorExprSyntax(text: "==")
136136
NilLiteralExprSyntax()
137137
}
@@ -142,7 +142,7 @@ public extension Child {
142142
preconditionChoices.append(
143143
ExprSyntax(
144144
SequenceExprSyntax {
145-
MemberAccessExprSyntax(base: type.forceUnwrappedIfNeeded(expr: IdentifierExprSyntax(identifier: .identifier(varName))), name: "text")
145+
MemberAccessExprSyntax(base: type.forceUnwrappedIfNeeded(expr: DeclReferenceExprSyntax(baseName: .identifier(varName))), name: "text")
146146
BinaryOperatorExprSyntax(text: "==")
147147
StringLiteralExprSyntax(content: textChoice)
148148
}

CodeGeneration/Sources/generate-swiftsyntax/templates/swiftsyntax/RenamedChildrenCompatibilityFile.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ let renamedChildrenCompatibilityFile = try! SourceFileSyntax(leadingTrivia: copy
7676
LabeledExprSyntax(
7777
label: child.varOrCaseName,
7878
colon: .colonToken(),
79-
expression: IdentifierExprSyntax(identifier: child.deprecatedVarName ?? child.varOrCaseName)
79+
expression: DeclReferenceExprSyntax(baseName: child.deprecatedVarName ?? child.varOrCaseName)
8080
)
8181
}
8282
}

CodeGeneration/Tests/ValidateSyntaxNodes/ValidateSyntaxNodes.swift

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,12 @@ class ValidateSyntaxNodes: XCTestCase {
462462
ValidationFailure(
463463
node: .qualifiedDeclName,
464464
message:
465-
"child 'Arguments' is named inconsistently with 'IdentifierExprSyntax.DeclNameArguments', which has the same type ('DeclNameArgumentsSyntax')"
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')"
466471
),
467472
// MARK: Alternate names for InitializerClauseSyntax
468473
// The cases below don’t have intializers but just a syntactic element that happens to be spelled the same
@@ -628,8 +633,7 @@ class ValidateSyntaxNodes: XCTestCase {
628633
failures,
629634
expectedFailures: [
630635
// The identifier expr / pattern nodes do actually have a child that’s the identifier
631-
ValidationFailure(node: .identifierExpr, message: "child 'Identifier' should generally not contain 'Identifier'"),
632-
ValidationFailure(node: .identifierPattern, message: "child 'Identifier' should generally not contain 'Identifier'"),
636+
ValidationFailure(node: .identifierPattern, message: "child 'Identifier' should generally not contain 'Identifier'")
633637
]
634638
)
635639
}

Sources/SwiftParser/Attributes.swift

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -353,10 +353,10 @@ extension Parser {
353353
label: nil,
354354
colon: nil,
355355
expression: RawExprSyntax(
356-
RawIdentifierExprSyntax(
356+
RawDeclReferenceExprSyntax(
357357
unexpectedBeforeRole,
358-
identifier: role,
359-
declNameArguments: nil,
358+
baseName: role,
359+
argumentNames: nil,
360360
arena: self.arena
361361
)
362362
),
@@ -682,9 +682,9 @@ extension Parser {
682682
let ident = self.eat(handle)
683683
let (unexpectedBeforeColon, colon) = self.expect(.colon)
684684
let (targetFunction, args) = self.parseDeclNameRef([.zeroArgCompoundNames, .keywordsUsingSpecialNames, .operators])
685-
let declName = RawIdentifierExprSyntax(
686-
identifier: targetFunction,
687-
declNameArguments: args,
685+
let declName = RawDeclReferenceExprSyntax(
686+
baseName: targetFunction,
687+
argumentNames: args,
688688
arena: self.arena
689689
)
690690
let comma = self.consume(if: .comma)
@@ -827,9 +827,9 @@ extension Parser {
827827
.zeroArgCompoundNames,
828828
.operators,
829829
])
830-
let declName = RawIdentifierExprSyntax(
831-
identifier: name,
832-
declNameArguments: args,
830+
let declName = RawDeclReferenceExprSyntax(
831+
baseName: name,
832+
argumentNames: args,
833833
arena: self.arena
834834
)
835835
return RawImplementsAttributeArgumentsSyntax(
@@ -1025,17 +1025,21 @@ extension Parser {
10251025
mutating func parseDynamicReplacementAttributeArguments() -> RawDynamicReplacementAttributeArgumentsSyntax {
10261026
let (unexpectedBeforeLabel, label) = self.expect(.keyword(.for))
10271027
let (unexpectedBeforeColon, colon) = self.expect(.colon)
1028-
let base: RawTokenSyntax
1029-
let args: RawDeclNameArgumentsSyntax?
1028+
let baseName: RawTokenSyntax
1029+
let argumentNames: RawDeclNameArgumentsSyntax?
10301030
if label.isMissing && colon.isMissing && self.atStartOfLine {
1031-
base = RawTokenSyntax(missing: .identifier, arena: self.arena)
1032-
args = nil
1031+
baseName = RawTokenSyntax(missing: .identifier, arena: self.arena)
1032+
argumentNames = nil
10331033
} else {
1034-
(base, args) = self.parseDeclNameRef([
1034+
(baseName, argumentNames) = self.parseDeclNameRef([
10351035
.zeroArgCompoundNames, .keywordsUsingSpecialNames, .operators,
10361036
])
10371037
}
1038-
let method = RawIdentifierExprSyntax(identifier: base, declNameArguments: args, arena: self.arena)
1038+
let method = RawDeclReferenceExprSyntax(
1039+
baseName: baseName,
1040+
argumentNames: argumentNames,
1041+
arena: self.arena
1042+
)
10391043
return RawDynamicReplacementAttributeArgumentsSyntax(
10401044
unexpectedBeforeLabel,
10411045
forLabel: label,

Sources/SwiftParser/Expressions.swift

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1166,10 +1166,10 @@ extension Parser {
11661166
case (.poundAvailable, _)?, (.poundUnavailable, _)?:
11671167
let poundAvailable = self.parsePoundAvailableConditionElement()
11681168
return RawExprSyntax(
1169-
RawIdentifierExprSyntax(
1169+
RawDeclReferenceExprSyntax(
11701170
RawUnexpectedNodesSyntax([poundAvailable], arena: self.arena),
1171-
identifier: missingToken(.identifier),
1172-
declNameArguments: nil,
1171+
baseName: missingToken(.identifier),
1172+
argumentNames: nil,
11731173
arena: self.arena
11741174
)
11751175
)
@@ -1247,28 +1247,28 @@ extension Parser {
12471247
extension Parser {
12481248
/// Parse an identifier as an expression.
12491249
mutating func parseIdentifierExpression() -> RawExprSyntax {
1250-
let (name, args) = self.parseDeclNameRef(.compoundNames)
1250+
let (baseName, argumentNames) = self.parseDeclNameRef(.compoundNames)
12511251
guard self.withLookahead({ $0.canParseAsGenericArgumentList() }) else {
1252-
if name.tokenText.isEditorPlaceholder && args == nil {
1252+
if baseName.tokenText.isEditorPlaceholder && argumentNames == nil {
12531253
return RawExprSyntax(
12541254
RawEditorPlaceholderExprSyntax(
1255-
placeholder: name,
1255+
placeholder: baseName,
12561256
arena: self.arena
12571257
)
12581258
)
12591259
}
12601260
return RawExprSyntax(
1261-
RawIdentifierExprSyntax(
1262-
identifier: name,
1263-
declNameArguments: args,
1261+
RawDeclReferenceExprSyntax(
1262+
baseName: baseName,
1263+
argumentNames: argumentNames,
12641264
arena: self.arena
12651265
)
12661266
)
12671267
}
12681268

1269-
let identifier = RawIdentifierExprSyntax(
1270-
identifier: name,
1271-
declNameArguments: args,
1269+
let identifier = RawDeclReferenceExprSyntax(
1270+
baseName: baseName,
1271+
argumentNames: argumentNames,
12721272
arena: self.arena
12731273
)
12741274
let generics = self.parseGenericArguments()
@@ -1634,12 +1634,12 @@ extension Parser {
16341634
}
16351635

16361636
extension Parser {
1637-
mutating func parseAnonymousClosureArgument() -> RawIdentifierExprSyntax {
1638-
let (unexpectedBeforeIdent, ident) = self.expect(.dollarIdentifier)
1639-
return RawIdentifierExprSyntax(
1640-
unexpectedBeforeIdent,
1641-
identifier: ident,
1642-
declNameArguments: nil,
1637+
mutating func parseAnonymousClosureArgument() -> RawDeclReferenceExprSyntax {
1638+
let (unexpectedBeforeBaseName, baseName) = self.expect(.dollarIdentifier)
1639+
return RawDeclReferenceExprSyntax(
1640+
unexpectedBeforeBaseName,
1641+
baseName: baseName,
1642+
argumentNames: nil,
16431643
arena: self.arena
16441644
)
16451645
}
@@ -1898,11 +1898,11 @@ extension Parser {
18981898
// follows a proper subexpression.
18991899
let expr: RawExprSyntax
19001900
if self.at(.binaryOperator) && self.peek(isAt: .comma, .rightParen, .rightSquare) {
1901-
let (ident, args) = self.parseDeclNameRef(.operators)
1901+
let (baseName, argumentNames) = self.parseDeclNameRef(.operators)
19021902
expr = RawExprSyntax(
1903-
RawIdentifierExprSyntax(
1904-
identifier: ident,
1905-
declNameArguments: args,
1903+
RawDeclReferenceExprSyntax(
1904+
baseName: baseName,
1905+
argumentNames: argumentNames,
19061906
arena: self.arena
19071907
)
19081908
)

Sources/SwiftParser/Names.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ extension Parser {
6363
static let zeroArgCompoundNames: Self = [.compoundNames, Self(rawValue: 1 << 5)]
6464
}
6565

66-
mutating func parseDeclNameRef(_ flags: DeclNameOptions = []) -> (RawTokenSyntax, RawDeclNameArgumentsSyntax?) {
66+
mutating func parseDeclNameRef(_ flags: DeclNameOptions = []) -> (baseName: RawTokenSyntax, argumentNames: RawDeclNameArgumentsSyntax?) {
6767
// Consume the base name.
6868
let base: RawTokenSyntax
6969
if let identOrSelf = self.consume(if: .identifier, .keyword(.self), .keyword(.Self)) ?? self.consume(if: .keyword(.`init`)) {

Sources/SwiftParser/generated/Parser+TokenSpecSet.swift

Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,53 @@ extension DeclModifierSyntax {
652652
}
653653
}
654654

655+
extension DeclReferenceExprSyntax {
656+
enum BaseNameOptions: TokenSpecSet {
657+
case identifier
658+
case `self`
659+
case `Self`
660+
case `init`
661+
case dollarIdentifier
662+
case binaryOperator
663+
664+
init?(lexeme: Lexer.Lexeme) {
665+
switch PrepareForKeywordMatch(lexeme) {
666+
case TokenSpec(.identifier):
667+
self = .identifier
668+
case TokenSpec(.`self`):
669+
self = .`self`
670+
case TokenSpec(.`Self`):
671+
self = .`Self`
672+
case TokenSpec(.`init`):
673+
self = .`init`
674+
case TokenSpec(.dollarIdentifier):
675+
self = .dollarIdentifier
676+
case TokenSpec(.binaryOperator):
677+
self = .binaryOperator
678+
default:
679+
return nil
680+
}
681+
}
682+
683+
var spec: TokenSpec {
684+
switch self {
685+
case .identifier:
686+
return .identifier
687+
case .`self`:
688+
return .keyword(.`self`)
689+
case .`Self`:
690+
return .keyword(.`Self`)
691+
case .`init`:
692+
return .keyword(.`init`)
693+
case .dollarIdentifier:
694+
return .dollarIdentifier
695+
case .binaryOperator:
696+
return .binaryOperator
697+
}
698+
}
699+
}
700+
}
701+
655702
extension DerivativeAttributeArgumentsSyntax {
656703
enum AccessorSpecifierOptions: TokenSpecSet {
657704
case get
@@ -996,53 +1043,6 @@ extension FunctionParameterSyntax {
9961043
}
9971044
}
9981045

999-
extension IdentifierExprSyntax {
1000-
enum IdentifierOptions: TokenSpecSet {
1001-
case identifier
1002-
case `self`
1003-
case `Self`
1004-
case `init`
1005-
case dollarIdentifier
1006-
case binaryOperator
1007-
1008-
init?(lexeme: Lexer.Lexeme) {
1009-
switch PrepareForKeywordMatch(lexeme) {
1010-
case TokenSpec(.identifier):
1011-
self = .identifier
1012-
case TokenSpec(.`self`):
1013-
self = .`self`
1014-
case TokenSpec(.`Self`):
1015-
self = .`Self`
1016-
case TokenSpec(.`init`):
1017-
self = .`init`
1018-
case TokenSpec(.dollarIdentifier):
1019-
self = .dollarIdentifier
1020-
case TokenSpec(.binaryOperator):
1021-
self = .binaryOperator
1022-
default:
1023-
return nil
1024-
}
1025-
}
1026-
1027-
var spec: TokenSpec {
1028-
switch self {
1029-
case .identifier:
1030-
return .identifier
1031-
case .`self`:
1032-
return .keyword(.`self`)
1033-
case .`Self`:
1034-
return .keyword(.`Self`)
1035-
case .`init`:
1036-
return .keyword(.`init`)
1037-
case .dollarIdentifier:
1038-
return .dollarIdentifier
1039-
case .binaryOperator:
1040-
return .binaryOperator
1041-
}
1042-
}
1043-
}
1044-
}
1045-
10461046
extension IdentifierPatternSyntax {
10471047
enum IdentifierOptions: TokenSpecSet {
10481048
case identifier

0 commit comments

Comments
 (0)