Skip to content

Commit cb15ec6

Browse files
authored
Merge pull request #1131 from CodaFi/known-unknowns
Remove Unknown Syntax Nodes
2 parents 6fcc5a4 + f3cb538 commit cb15ec6

Some content is hidden

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

41 files changed

+3459
-4738
lines changed

CodeGeneration/Sources/SyntaxSupport/gyb_generated/CommonNodes.swift

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -38,26 +38,6 @@ public let COMMON_NODES: [Node] = [
3838
kind: "Syntax",
3939
parserFunction: "parsePattern"),
4040

41-
Node(name: "UnknownDecl",
42-
nameForDiagnostics: "declaration",
43-
kind: "Decl"),
44-
45-
Node(name: "UnknownExpr",
46-
nameForDiagnostics: "expression",
47-
kind: "Expr"),
48-
49-
Node(name: "UnknownStmt",
50-
nameForDiagnostics: "statement",
51-
kind: "Stmt"),
52-
53-
Node(name: "UnknownType",
54-
nameForDiagnostics: "type",
55-
kind: "Type"),
56-
57-
Node(name: "UnknownPattern",
58-
nameForDiagnostics: "pattern",
59-
kind: "Pattern"),
60-
6141
Node(name: "Missing",
6242
nameForDiagnostics: nil,
6343
kind: "Syntax"),

Sources/SwiftSyntax/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ add_swift_host_library(SwiftSyntax
2121
SyntaxOtherNodes.swift
2222
SyntaxText.swift
2323
SyntaxTreeViewMode.swift
24-
SyntaxVerifier.swift
2524
Utils.swift
2625

2726
Raw/RawSyntax.swift

Sources/SwiftSyntax/Documentation.docc/SwiftSyntax.md.gyb

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,6 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
4949
- <doc:SwiftSyntax/SyntaxVisitor>
5050
- <doc:SwiftSyntax/SyntaxAnyVisitor>
5151
- <doc:SwiftSyntax/SyntaxRewriter>
52-
- <doc:SwiftSyntax/SyntaxVerifier>
53-
- <doc:SwiftSyntax/SyntaxVerifierError>
5452
- <doc:SwiftSyntax/SyntaxTreeViewMode>
5553
- <doc:SwiftSyntax/SyntaxVisitorContinueKind>
5654
- <doc:SwiftSyntax/ReversedTokenSequence>
@@ -135,7 +133,6 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
135133
- <doc:SwiftSyntax/${node.name}>
136134
% end
137135
% end
138-
- <doc:SwiftSyntax/UnknownSyntax>
139136

140137
### Traits
141138

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
4242
- <doc:SwiftSyntax/SyntaxVisitor>
4343
- <doc:SwiftSyntax/SyntaxAnyVisitor>
4444
- <doc:SwiftSyntax/SyntaxRewriter>
45-
- <doc:SwiftSyntax/SyntaxVerifier>
46-
- <doc:SwiftSyntax/SyntaxVerifierError>
4745
- <doc:SwiftSyntax/SyntaxTreeViewMode>
4846
- <doc:SwiftSyntax/SyntaxVisitorContinueKind>
4947
- <doc:SwiftSyntax/ReversedTokenSequence>
@@ -52,7 +50,6 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
5250

5351
- <doc:SwiftSyntax/DeclSyntax>
5452
- <doc:SwiftSyntax/DeclSyntaxProtocol>
55-
- <doc:SwiftSyntax/UnknownDeclSyntax>
5653
- <doc:SwiftSyntax/TypealiasDeclSyntax>
5754
- <doc:SwiftSyntax/AssociatedtypeDeclSyntax>
5855
- <doc:SwiftSyntax/IfConfigDeclSyntax>
@@ -82,7 +79,6 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
8279

8380
- <doc:SwiftSyntax/StmtSyntax>
8481
- <doc:SwiftSyntax/StmtSyntaxProtocol>
85-
- <doc:SwiftSyntax/UnknownStmtSyntax>
8682
- <doc:SwiftSyntax/LabeledStmtSyntax>
8783
- <doc:SwiftSyntax/ContinueStmtSyntax>
8884
- <doc:SwiftSyntax/WhileStmtSyntax>
@@ -106,7 +102,6 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
106102

107103
- <doc:SwiftSyntax/ExprSyntax>
108104
- <doc:SwiftSyntax/ExprSyntaxProtocol>
109-
- <doc:SwiftSyntax/UnknownExprSyntax>
110105
- <doc:SwiftSyntax/InOutExprSyntax>
111106
- <doc:SwiftSyntax/PoundColumnExprSyntax>
112107
- <doc:SwiftSyntax/TryExprSyntax>
@@ -156,7 +151,6 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
156151

157152
- <doc:SwiftSyntax/TypeSyntax>
158153
- <doc:SwiftSyntax/TypeSyntaxProtocol>
159-
- <doc:SwiftSyntax/UnknownTypeSyntax>
160154
- <doc:SwiftSyntax/SimpleTypeIdentifierSyntax>
161155
- <doc:SwiftSyntax/MemberTypeIdentifierSyntax>
162156
- <doc:SwiftSyntax/ClassRestrictionTypeSyntax>
@@ -177,7 +171,6 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
177171

178172
- <doc:SwiftSyntax/PatternSyntax>
179173
- <doc:SwiftSyntax/PatternSyntaxProtocol>
180-
- <doc:SwiftSyntax/UnknownPatternSyntax>
181174
- <doc:SwiftSyntax/EnumCasePatternSyntax>
182175
- <doc:SwiftSyntax/IsTypePatternSyntax>
183176
- <doc:SwiftSyntax/OptionalPatternSyntax>
@@ -424,7 +417,6 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
424417
- <doc:SwiftSyntax/MissingStmtSyntax>
425418
- <doc:SwiftSyntax/MissingTypeSyntax>
426419
- <doc:SwiftSyntax/MissingPatternSyntax>
427-
- <doc:SwiftSyntax/UnknownSyntax>
428420

429421
### Traits
430422

Sources/SwiftSyntax/Misc.swift.gyb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
extension Syntax {
2323
public static var structure: SyntaxNodeStructure {
2424
return .choices([
25-
.node(UnknownSyntax.self),
2625
.node(TokenSyntax.self),
2726
% for node in NON_BASE_SYNTAX_NODES:
2827
% if node.is_base():
@@ -39,7 +38,6 @@ extension SyntaxKind {
3938
public var syntaxNodeType: SyntaxProtocol.Type {
4039
switch self {
4140
case .token: return TokenSyntax.self
42-
case .unknown: return UnknownSyntax.self
4341
% for node in NON_BASE_SYNTAX_NODES:
4442
case .${node.swift_syntax_kind}: return ${node.name}.self
4543
% end
@@ -48,8 +46,6 @@ extension SyntaxKind {
4846

4947
public var nameForDiagnostics: String? {
5048
switch self {
51-
case .unknown:
52-
return nil
5349
case .token:
5450
return "token"
5551
% for node in NON_BASE_SYNTAX_NODES:

Sources/SwiftSyntax/Raw/RawSyntaxValidation.swift.gyb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,6 @@ func validateLayout(layout: RawSyntaxBuffer, as kind: SyntaxKind) {
9191
}
9292

9393
switch kind {
94-
case .unknown:
95-
break
9694
case .token:
9795
assertionFailure("validateLayout for .token kind is not supported")
9896
% for node in NON_BASE_SYNTAX_NODES:

Sources/SwiftSyntax/Raw/gyb_generated/RawSyntaxNodes.swift

Lines changed: 5 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public struct RawDeclSyntax: RawDeclSyntaxNodeProtocol {
3434

3535
public static func isKindOf(_ raw: RawSyntax) -> Bool {
3636
switch raw.kind {
37-
case .unknownDecl, .missingDecl, .typealiasDecl, .associatedtypeDecl, .ifConfigDecl, .poundErrorDecl, .poundWarningDecl, .poundSourceLocation, .classDecl, .actorDecl, .structDecl, .protocolDecl, .extensionDecl, .functionDecl, .initializerDecl, .deinitializerDecl, .subscriptDecl, .importDecl, .accessorDecl, .variableDecl, .enumCaseDecl, .enumDecl, .operatorDecl, .precedenceGroupDecl, .macroDecl, .macroExpansionDecl: return true
37+
case .missingDecl, .typealiasDecl, .associatedtypeDecl, .ifConfigDecl, .poundErrorDecl, .poundWarningDecl, .poundSourceLocation, .classDecl, .actorDecl, .structDecl, .protocolDecl, .extensionDecl, .functionDecl, .initializerDecl, .deinitializerDecl, .subscriptDecl, .importDecl, .accessorDecl, .variableDecl, .enumCaseDecl, .enumDecl, .operatorDecl, .precedenceGroupDecl, .macroDecl, .macroExpansionDecl: return true
3838
default: return false
3939
}
4040
}
@@ -65,7 +65,7 @@ public struct RawExprSyntax: RawExprSyntaxNodeProtocol {
6565

6666
public static func isKindOf(_ raw: RawSyntax) -> Bool {
6767
switch raw.kind {
68-
case .unknownExpr, .missingExpr, .inOutExpr, .poundColumnExpr, .tryExpr, .awaitExpr, .moveExpr, .identifierExpr, .superRefExpr, .nilLiteralExpr, .discardAssignmentExpr, .assignmentExpr, .sequenceExpr, .symbolicReferenceExpr, .prefixOperatorExpr, .binaryOperatorExpr, .arrowExpr, .infixOperatorExpr, .floatLiteralExpr, .tupleExpr, .arrayExpr, .dictionaryExpr, .integerLiteralExpr, .booleanLiteralExpr, .unresolvedTernaryExpr, .ternaryExpr, .memberAccessExpr, .unresolvedIsExpr, .isExpr, .unresolvedAsExpr, .asExpr, .typeExpr, .closureExpr, .unresolvedPatternExpr, .functionCallExpr, .subscriptExpr, .optionalChainingExpr, .forcedValueExpr, .postfixUnaryExpr, .specializeExpr, .stringLiteralExpr, .regexLiteralExpr, .keyPathExpr, .macroExpansionExpr, .postfixIfConfigExpr, .editorPlaceholderExpr: return true
68+
case .missingExpr, .inOutExpr, .poundColumnExpr, .tryExpr, .awaitExpr, .moveExpr, .identifierExpr, .superRefExpr, .nilLiteralExpr, .discardAssignmentExpr, .assignmentExpr, .sequenceExpr, .symbolicReferenceExpr, .prefixOperatorExpr, .binaryOperatorExpr, .arrowExpr, .infixOperatorExpr, .floatLiteralExpr, .tupleExpr, .arrayExpr, .dictionaryExpr, .integerLiteralExpr, .booleanLiteralExpr, .unresolvedTernaryExpr, .ternaryExpr, .memberAccessExpr, .unresolvedIsExpr, .isExpr, .unresolvedAsExpr, .asExpr, .typeExpr, .closureExpr, .unresolvedPatternExpr, .functionCallExpr, .subscriptExpr, .optionalChainingExpr, .forcedValueExpr, .postfixUnaryExpr, .specializeExpr, .stringLiteralExpr, .regexLiteralExpr, .keyPathExpr, .macroExpansionExpr, .postfixIfConfigExpr, .editorPlaceholderExpr: return true
6969
default: return false
7070
}
7171
}
@@ -96,7 +96,7 @@ public struct RawStmtSyntax: RawStmtSyntaxNodeProtocol {
9696

9797
public static func isKindOf(_ raw: RawSyntax) -> Bool {
9898
switch raw.kind {
99-
case .unknownStmt, .missingStmt, .labeledStmt, .continueStmt, .whileStmt, .deferStmt, .expressionStmt, .repeatWhileStmt, .guardStmt, .forInStmt, .switchStmt, .doStmt, .returnStmt, .yieldStmt, .fallthroughStmt, .breakStmt, .declarationStmt, .throwStmt, .ifStmt, .poundAssertStmt: return true
99+
case .missingStmt, .labeledStmt, .continueStmt, .whileStmt, .deferStmt, .expressionStmt, .repeatWhileStmt, .guardStmt, .forInStmt, .switchStmt, .doStmt, .returnStmt, .yieldStmt, .fallthroughStmt, .breakStmt, .declarationStmt, .throwStmt, .ifStmt, .poundAssertStmt: return true
100100
default: return false
101101
}
102102
}
@@ -127,7 +127,7 @@ public struct RawTypeSyntax: RawTypeSyntaxNodeProtocol {
127127

128128
public static func isKindOf(_ raw: RawSyntax) -> Bool {
129129
switch raw.kind {
130-
case .unknownType, .missingType, .simpleTypeIdentifier, .memberTypeIdentifier, .classRestrictionType, .arrayType, .dictionaryType, .metatypeType, .optionalType, .constrainedSugarType, .implicitlyUnwrappedOptionalType, .compositionType, .packExpansionType, .tupleType, .functionType, .attributedType, .namedOpaqueReturnType: return true
130+
case .missingType, .simpleTypeIdentifier, .memberTypeIdentifier, .classRestrictionType, .arrayType, .dictionaryType, .metatypeType, .optionalType, .constrainedSugarType, .implicitlyUnwrappedOptionalType, .compositionType, .packExpansionType, .tupleType, .functionType, .attributedType, .namedOpaqueReturnType: return true
131131
default: return false
132132
}
133133
}
@@ -158,7 +158,7 @@ public struct RawPatternSyntax: RawPatternSyntaxNodeProtocol {
158158

159159
public static func isKindOf(_ raw: RawSyntax) -> Bool {
160160
switch raw.kind {
161-
case .unknownPattern, .missingPattern, .enumCasePattern, .isTypePattern, .optionalPattern, .identifierPattern, .asTypePattern, .tuplePattern, .wildcardPattern, .expressionPattern, .valueBindingPattern: return true
161+
case .missingPattern, .enumCasePattern, .isTypePattern, .optionalPattern, .identifierPattern, .asTypePattern, .tuplePattern, .wildcardPattern, .expressionPattern, .valueBindingPattern: return true
162162
default: return false
163163
}
164164
}
@@ -179,131 +179,6 @@ public struct RawPatternSyntax: RawPatternSyntaxNodeProtocol {
179179
}
180180
}
181181

182-
@_spi(RawSyntax)
183-
public struct RawUnknownDeclSyntax: RawDeclSyntaxNodeProtocol {
184-
185-
@_spi(RawSyntax)
186-
public var layoutView: RawSyntaxLayoutView {
187-
return raw.layoutView!
188-
}
189-
190-
public static func isKindOf(_ raw: RawSyntax) -> Bool {
191-
return raw.kind == .unknownDecl
192-
}
193-
194-
public var raw: RawSyntax
195-
init(raw: RawSyntax) {
196-
assert(Self.isKindOf(raw))
197-
self.raw = raw
198-
}
199-
200-
public init?<Node: RawSyntaxNodeProtocol>(_ other: Node) {
201-
guard Self.isKindOf(other.raw) else { return nil }
202-
self.init(raw: other.raw)
203-
}
204-
205-
}
206-
207-
@_spi(RawSyntax)
208-
public struct RawUnknownExprSyntax: RawExprSyntaxNodeProtocol {
209-
210-
@_spi(RawSyntax)
211-
public var layoutView: RawSyntaxLayoutView {
212-
return raw.layoutView!
213-
}
214-
215-
public static func isKindOf(_ raw: RawSyntax) -> Bool {
216-
return raw.kind == .unknownExpr
217-
}
218-
219-
public var raw: RawSyntax
220-
init(raw: RawSyntax) {
221-
assert(Self.isKindOf(raw))
222-
self.raw = raw
223-
}
224-
225-
public init?<Node: RawSyntaxNodeProtocol>(_ other: Node) {
226-
guard Self.isKindOf(other.raw) else { return nil }
227-
self.init(raw: other.raw)
228-
}
229-
230-
}
231-
232-
@_spi(RawSyntax)
233-
public struct RawUnknownStmtSyntax: RawStmtSyntaxNodeProtocol {
234-
235-
@_spi(RawSyntax)
236-
public var layoutView: RawSyntaxLayoutView {
237-
return raw.layoutView!
238-
}
239-
240-
public static func isKindOf(_ raw: RawSyntax) -> Bool {
241-
return raw.kind == .unknownStmt
242-
}
243-
244-
public var raw: RawSyntax
245-
init(raw: RawSyntax) {
246-
assert(Self.isKindOf(raw))
247-
self.raw = raw
248-
}
249-
250-
public init?<Node: RawSyntaxNodeProtocol>(_ other: Node) {
251-
guard Self.isKindOf(other.raw) else { return nil }
252-
self.init(raw: other.raw)
253-
}
254-
255-
}
256-
257-
@_spi(RawSyntax)
258-
public struct RawUnknownTypeSyntax: RawTypeSyntaxNodeProtocol {
259-
260-
@_spi(RawSyntax)
261-
public var layoutView: RawSyntaxLayoutView {
262-
return raw.layoutView!
263-
}
264-
265-
public static func isKindOf(_ raw: RawSyntax) -> Bool {
266-
return raw.kind == .unknownType
267-
}
268-
269-
public var raw: RawSyntax
270-
init(raw: RawSyntax) {
271-
assert(Self.isKindOf(raw))
272-
self.raw = raw
273-
}
274-
275-
public init?<Node: RawSyntaxNodeProtocol>(_ other: Node) {
276-
guard Self.isKindOf(other.raw) else { return nil }
277-
self.init(raw: other.raw)
278-
}
279-
280-
}
281-
282-
@_spi(RawSyntax)
283-
public struct RawUnknownPatternSyntax: RawPatternSyntaxNodeProtocol {
284-
285-
@_spi(RawSyntax)
286-
public var layoutView: RawSyntaxLayoutView {
287-
return raw.layoutView!
288-
}
289-
290-
public static func isKindOf(_ raw: RawSyntax) -> Bool {
291-
return raw.kind == .unknownPattern
292-
}
293-
294-
public var raw: RawSyntax
295-
init(raw: RawSyntax) {
296-
assert(Self.isKindOf(raw))
297-
self.raw = raw
298-
}
299-
300-
public init?<Node: RawSyntaxNodeProtocol>(_ other: Node) {
301-
guard Self.isKindOf(other.raw) else { return nil }
302-
self.init(raw: other.raw)
303-
}
304-
305-
}
306-
307182
@_spi(RawSyntax)
308183
public struct RawMissingSyntax: RawSyntaxNodeProtocol {
309184

Sources/SwiftSyntax/Raw/gyb_generated/RawSyntaxValidation.swift

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -85,20 +85,8 @@ func validateLayout(layout: RawSyntaxBuffer, as kind: SyntaxKind) {
8585
}
8686

8787
switch kind {
88-
case .unknown:
89-
break
9088
case .token:
9189
assertionFailure("validateLayout for .token kind is not supported")
92-
case .unknownDecl:
93-
break
94-
case .unknownExpr:
95-
break
96-
case .unknownStmt:
97-
break
98-
case .unknownType:
99-
break
100-
case .unknownPattern:
101-
break
10290
case .missing:
10391
assert(layout.count == 0)
10492
break

Sources/SwiftSyntax/Syntax.swift

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -272,11 +272,6 @@ public extension SyntaxProtocol {
272272
return raw.kind.isSyntaxCollection
273273
}
274274

275-
/// Whether or not this node represents an unknown node.
276-
var isUnknown: Bool {
277-
return raw.kind.isUnknown
278-
}
279-
280275
/// Whether this tree contains a missing token or unexpected node.
281276
var hasError: Bool {
282277
return raw.recursiveFlags.contains(.hasError)

Sources/SwiftSyntax/SyntaxAnyVisitor.swift.gyb

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,6 @@ open class SyntaxAnyVisitor: SyntaxVisitor {
5858
visitAnyPost(node._syntaxNode)
5959
}
6060

61-
override open func visit(_ node: UnknownSyntax) -> SyntaxVisitorContinueKind {
62-
return visitAny(node._syntaxNode)
63-
}
64-
65-
override open func visitPost(_ node: UnknownSyntax) {
66-
visitAnyPost(node._syntaxNode)
67-
}
68-
6961
% for node in SYNTAX_NODES:
7062
% if is_visitable(node):
7163
override open func visit(_ node: ${node.name}) -> SyntaxVisitorContinueKind {

0 commit comments

Comments
 (0)