Skip to content

Commit 2582d8b

Browse files
authored
Merge pull request #1132 from DougGregor/remove-special-case-pound-nodes
2 parents ef7f0a8 + f976e0d commit 2582d8b

27 files changed

+6
-2913
lines changed

CodeGeneration/Sources/SyntaxSupport/gyb_generated/ExprNodes.swift

Lines changed: 0 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,97 +1162,6 @@ public let EXPR_NODES: [Node] = [
11621162
])
11631163
]),
11641164

1165-
Node(name: "ObjcNamePiece",
1166-
nameForDiagnostics: nil,
1167-
kind: "Syntax",
1168-
children: [
1169-
Child(name: "Name",
1170-
kind: "IdentifierToken",
1171-
tokenChoices: [
1172-
"Identifier"
1173-
]),
1174-
Child(name: "Dot",
1175-
kind: "PeriodToken",
1176-
isOptional: true,
1177-
tokenChoices: [
1178-
"Period"
1179-
])
1180-
]),
1181-
1182-
Node(name: "ObjcName",
1183-
nameForDiagnostics: nil,
1184-
kind: "SyntaxCollection",
1185-
element: "ObjcNamePiece"),
1186-
1187-
Node(name: "ObjcKeyPathExpr",
1188-
nameForDiagnostics: "'#keyPath' expression",
1189-
kind: "Expr",
1190-
traits: [
1191-
"Parenthesized"
1192-
],
1193-
children: [
1194-
Child(name: "KeyPath",
1195-
kind: "PoundKeyPathToken",
1196-
tokenChoices: [
1197-
"PoundKeyPath"
1198-
]),
1199-
Child(name: "LeftParen",
1200-
kind: "LeftParenToken",
1201-
tokenChoices: [
1202-
"LeftParen"
1203-
]),
1204-
Child(name: "Name",
1205-
kind: "ObjcName",
1206-
collectionElementName: "NamePiece"),
1207-
Child(name: "RightParen",
1208-
kind: "RightParenToken",
1209-
tokenChoices: [
1210-
"RightParen"
1211-
])
1212-
]),
1213-
1214-
Node(name: "ObjcSelectorExpr",
1215-
nameForDiagnostics: "'#selector' expression",
1216-
kind: "Expr",
1217-
traits: [
1218-
"Parenthesized"
1219-
],
1220-
children: [
1221-
Child(name: "PoundSelector",
1222-
kind: "PoundSelectorToken",
1223-
tokenChoices: [
1224-
"PoundSelector"
1225-
]),
1226-
Child(name: "LeftParen",
1227-
kind: "LeftParenToken",
1228-
tokenChoices: [
1229-
"LeftParen"
1230-
]),
1231-
Child(name: "Kind",
1232-
kind: "ContextualKeywordToken",
1233-
isOptional: true,
1234-
tokenChoices: [
1235-
"ContextualKeyword"
1236-
],
1237-
textChoices: [
1238-
"getter",
1239-
"setter"
1240-
]),
1241-
Child(name: "Colon",
1242-
kind: "ColonToken",
1243-
isOptional: true,
1244-
tokenChoices: [
1245-
"Colon"
1246-
]),
1247-
Child(name: "Name",
1248-
kind: "Expr"),
1249-
Child(name: "RightParen",
1250-
kind: "RightParenToken",
1251-
tokenChoices: [
1252-
"RightParen"
1253-
])
1254-
]),
1255-
12561165
Node(name: "MacroExpansionExpr",
12571166
nameForDiagnostics: "pound literal expression",
12581167
kind: "Expr",
@@ -1317,35 +1226,6 @@ public let EXPR_NODES: [Node] = [
13171226
])
13181227
]),
13191228

1320-
Node(name: "ObjectLiteralExpr",
1321-
nameForDiagnostics: "object literal",
1322-
kind: "Expr",
1323-
traits: [
1324-
"Parenthesized"
1325-
],
1326-
children: [
1327-
Child(name: "Identifier",
1328-
kind: "Token",
1329-
tokenChoices: [
1330-
"PoundColorLiteral",
1331-
"PoundFileLiteral",
1332-
"PoundImageLiteral"
1333-
]),
1334-
Child(name: "LeftParen",
1335-
kind: "LeftParenToken",
1336-
tokenChoices: [
1337-
"LeftParen"
1338-
]),
1339-
Child(name: "Arguments",
1340-
kind: "TupleExprElementList",
1341-
collectionElementName: "Argument"),
1342-
Child(name: "RightParen",
1343-
kind: "RightParenToken",
1344-
tokenChoices: [
1345-
"RightParen"
1346-
])
1347-
]),
1348-
13491229
Node(name: "YieldExprList",
13501230
nameForDiagnostics: "yield list",
13511231
kind: "SyntaxCollection",

Sources/SwiftParser/Expressions.swift

Lines changed: 0 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -973,8 +973,6 @@ extension Parser {
973973
/// primary-expression → implicit-member-expression
974974
/// primary-expression → wildcard-expression
975975
/// primary-expression → key-path-expression
976-
/// primary-expression → selector-expression
977-
/// primary-expression → key-path-string-expression
978976
/// primary-expression → macro-expansion-expression
979977
@_spi(RawSyntax)
980978
public mutating func parsePrimaryExpression(
@@ -1081,11 +1079,6 @@ extension Parser {
10811079
self.parseMacroExpansionExpr(pattern: pattern, flavor: flavor)
10821080
)
10831081

1084-
case (.poundSelectorKeyword, _)?:
1085-
return RawExprSyntax(self.parseObjectiveCSelectorLiteral())
1086-
case (.poundKeyPathKeyword, _)?:
1087-
return RawExprSyntax(self.parseObjectiveCKeyPathExpression())
1088-
10891082
case (.leftBrace, _)?: // expr-closure
10901083
return RawExprSyntax(self.parseClosureExpression())
10911084
case (.period, let handle)?, //=.foo
@@ -1653,53 +1646,6 @@ extension Parser {
16531646
}
16541647
}
16551648

1656-
extension Parser {
1657-
/// Parse an Objective-C #keypath literal.
1658-
///
1659-
/// Grammar
1660-
/// =======
1661-
///
1662-
/// key-path-string-expression → '#keyPath' '(' expression ')'
1663-
@_spi(RawSyntax)
1664-
public mutating func parseObjectiveCKeyPathExpression() -> RawObjcKeyPathExprSyntax {
1665-
let (unexpectedBeforeKeyword, keyword) = self.expect(.poundKeyPathKeyword)
1666-
// Parse the leading '('.
1667-
let (unexpectedBeforeLParen, lparen) = self.expect(.leftParen)
1668-
1669-
// Parse the sequence of unqualified-names.
1670-
var elements = [RawObjcNamePieceSyntax]()
1671-
do {
1672-
var flags: DeclNameOptions = []
1673-
var keepGoing: RawTokenSyntax? = nil
1674-
var loopProgress = LoopProgressCondition()
1675-
repeat {
1676-
// Parse the next name.
1677-
let (name, args) = self.parseDeclNameRef(flags)
1678-
assert(args == nil, "Found arguments but did not pass argument flag?")
1679-
1680-
// After the first component, we can start parsing keywords.
1681-
flags.formUnion(.keywords)
1682-
1683-
// Parse the next period to continue the path.
1684-
keepGoing = self.consume(if: .period)
1685-
elements.append(RawObjcNamePieceSyntax(
1686-
name: name, dot: keepGoing, arena: self.arena))
1687-
} while keepGoing != nil && loopProgress.evaluate(currentToken)
1688-
}
1689-
1690-
// Parse the closing ')'.
1691-
let (unexpectedBeforeRParen, rparen) = self.expect(.rightParen)
1692-
return RawObjcKeyPathExprSyntax(
1693-
unexpectedBeforeKeyword,
1694-
keyPath: keyword,
1695-
unexpectedBeforeLParen,
1696-
leftParen: lparen,
1697-
name: RawObjcNameSyntax(elements: elements, arena: self.arena),
1698-
unexpectedBeforeRParen,
1699-
rightParen: rparen, arena: self.arena)
1700-
}
1701-
}
1702-
17031649
extension Parser {
17041650
/// Parse a 'super' reference to the superclass instance of a class.
17051651
///
@@ -1925,48 +1871,6 @@ extension Parser {
19251871
}
19261872
}
19271873

1928-
extension Parser {
1929-
/// Parse a #selector expression.
1930-
///
1931-
/// Grammar
1932-
/// =======
1933-
///
1934-
/// selector-expression → '#selector' '(' expression )
1935-
/// selector-expression → '#selector' '(' 'getter' ':' expression ')'
1936-
/// selector-expression → '#selector' '(' 'setter' ':' expression ')'
1937-
@_spi(RawSyntax)
1938-
public mutating func parseObjectiveCSelectorLiteral() -> RawObjcSelectorExprSyntax {
1939-
// Consume '#selector'.
1940-
let (unexpectedBeforeSelector, selector) = self.expect(.poundSelectorKeyword)
1941-
// Parse the leading '('.
1942-
let (unexpectedBeforeLParen, lparen) = self.expect(.leftParen)
1943-
1944-
// Parse possible 'getter:' or 'setter:' modifiers, and determine
1945-
// the kind of selector we're working with.
1946-
let kindAndColon = self.consume(
1947-
if: { $0.isContextualKeyword(["getter", "setter"])},
1948-
followedBy: { $0.tokenKind == .colon }
1949-
)
1950-
let (kind, colon) = (kindAndColon?.0, kindAndColon?.1)
1951-
1952-
// Parse the subexpression.
1953-
let subexpr = self.parseExpression()
1954-
// Parse the closing ')'.
1955-
let (unexpectedBeforeRParen, rparen) = self.expect(.rightParen)
1956-
return RawObjcSelectorExprSyntax(
1957-
unexpectedBeforeSelector,
1958-
poundSelector: selector,
1959-
unexpectedBeforeLParen,
1960-
leftParen: lparen,
1961-
kind: kind,
1962-
colon: colon,
1963-
name: subexpr,
1964-
unexpectedBeforeRParen,
1965-
rightParen: rparen,
1966-
arena: self.arena)
1967-
}
1968-
}
1969-
19701874
extension Parser {
19711875
/// Parse a closure expression.
19721876
///

Sources/SwiftParser/Lexer.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1565,8 +1565,6 @@ extension Lexer.Cursor {
15651565

15661566
let kind: RawTokenKind
15671567
switch literal {
1568-
case "keyPath": kind = .poundKeyPathKeyword
1569-
case "selector": kind = .poundSelectorKeyword
15701568
case "assert": kind = .poundAssertKeyword
15711569
case "sourceLocation": kind = .poundSourceLocationKeyword
15721570
case "warning": kind = .poundWarningKeyword

Sources/SwiftParser/RawTokenKindSubset.swift

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -700,8 +700,6 @@ enum PrimaryExpressionStart: RawTokenKindSubset {
700700
case nilKeyword
701701
case period
702702
case pound
703-
case poundKeyPathKeyword
704-
case poundSelectorKeyword
705703
case prefixPeriod
706704
case regexLiteral
707705
case selfKeyword
@@ -731,8 +729,6 @@ enum PrimaryExpressionStart: RawTokenKindSubset {
731729
case .nilKeyword: self = .nilKeyword
732730
case .period: self = .period
733731
case .pound: self = .pound
734-
case .poundKeyPathKeyword: self = .poundKeyPathKeyword
735-
case .poundSelectorKeyword: self = .poundSelectorKeyword
736732
case .prefixPeriod: self = .prefixPeriod
737733
case .regexLiteral: self = .regexLiteral
738734
case .selfKeyword: self = .selfKeyword
@@ -765,8 +761,6 @@ enum PrimaryExpressionStart: RawTokenKindSubset {
765761
case .nilKeyword: return .nilKeyword
766762
case .period: return .period
767763
case .pound: return .pound
768-
case .poundKeyPathKeyword: return .poundKeyPathKeyword
769-
case .poundSelectorKeyword: return .poundSelectorKeyword
770764
case .prefixPeriod: return .prefixPeriod
771765
case .regexLiteral: return .regexLiteral
772766
case .selfKeyword: return .selfKeyword

Sources/SwiftSyntax/Documentation.docc/gyb_generated/SwiftSyntax.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -154,12 +154,9 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
154154
- <doc:SwiftSyntax/StringLiteralExprSyntax>
155155
- <doc:SwiftSyntax/RegexLiteralExprSyntax>
156156
- <doc:SwiftSyntax/KeyPathExprSyntax>
157-
- <doc:SwiftSyntax/ObjcKeyPathExprSyntax>
158-
- <doc:SwiftSyntax/ObjcSelectorExprSyntax>
159157
- <doc:SwiftSyntax/MacroExpansionExprSyntax>
160158
- <doc:SwiftSyntax/PostfixIfConfigExprSyntax>
161159
- <doc:SwiftSyntax/EditorPlaceholderExprSyntax>
162-
- <doc:SwiftSyntax/ObjectLiteralExprSyntax>
163160

164161
### Types
165162

@@ -220,8 +217,6 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
220217
- <doc:SwiftSyntax/MultipleTrailingClosureElementSyntax>
221218
- <doc:SwiftSyntax/KeyPathComponentListSyntax>
222219
- <doc:SwiftSyntax/KeyPathComponentSyntax>
223-
- <doc:SwiftSyntax/ObjcNameSyntax>
224-
- <doc:SwiftSyntax/ObjcNamePieceSyntax>
225220
- <doc:SwiftSyntax/YieldExprListSyntax>
226221
- <doc:SwiftSyntax/YieldExprListElementSyntax>
227222
- <doc:SwiftSyntax/FunctionParameterListSyntax>
@@ -311,8 +306,6 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
311306
- <doc:SwiftSyntax/KeyPathPropertyComponentSyntax>
312307
- <doc:SwiftSyntax/KeyPathSubscriptComponentSyntax>
313308
- <doc:SwiftSyntax/KeyPathOptionalComponentSyntax>
314-
- <doc:SwiftSyntax/ObjcNamePieceSyntax>
315-
- <doc:SwiftSyntax/ObjcNameSyntax>
316309
- <doc:SwiftSyntax/YieldExprListSyntax>
317310
- <doc:SwiftSyntax/YieldExprListElementSyntax>
318311
- <doc:SwiftSyntax/TypeInitializerClauseSyntax>

0 commit comments

Comments
 (0)