Skip to content

Commit faa2afc

Browse files
committed
Remove HasTrailingComma protocol
Turns out we don’t actually need it.
1 parent 2854249 commit faa2afc

File tree

4 files changed

+10
-283
lines changed

4 files changed

+10
-283
lines changed

CodeGeneration/Sources/generate-swiftsyntax/templates/swiftsyntaxbuilder/BuildableNodesFile.swift

+3-27
Original file line numberDiff line numberDiff line change
@@ -23,38 +23,14 @@ let buildableNodesFile = SourceFileSyntax {
2323

2424
for node in SYNTAX_NODES where node.isBuildable {
2525
let type = node.type
26-
let hasTrailingComma = node.traits.contains("WithTrailingComma")
2726

28-
let convenienceInit = createConvenienceInitializer(node: node)
29-
if convenienceInit != nil || hasTrailingComma {
27+
if let convenienceInit = createConvenienceInitializer(node: node) {
3028
let docComment: SwiftSyntax.Trivia = node.documentation.isEmpty ? [] : .docLineComment("/// \(node.documentation)") + .newline
3129
ExtensionDeclSyntax(
3230
leadingTrivia: docComment,
33-
extendedType: SimpleTypeIdentifierSyntax(name: .identifier(type.syntaxBaseName)),
34-
inheritanceClause: hasTrailingComma ? TypeInheritanceClauseSyntax { InheritedTypeSyntax(typeName: TypeSyntax("HasTrailingComma")) } : nil
31+
extendedType: SimpleTypeIdentifierSyntax(name: .identifier(type.syntaxBaseName))
3532
) {
36-
if let convenienceInit = convenienceInit {
37-
convenienceInit
38-
}
39-
40-
if hasTrailingComma {
41-
VariableDeclSyntax(
42-
"""
43-
var hasTrailingComma: Bool {
44-
return trailingComma != nil
45-
}
46-
"""
47-
)
48-
49-
FunctionDeclSyntax(
50-
"""
51-
/// Conformance to `HasTrailingComma`.
52-
public func withTrailingComma(_ withComma: Bool) -> Self {
53-
return withTrailingComma(withComma ? .commaToken() : nil)
54-
}
55-
"""
56-
)
57-
}
33+
convenienceInit
5834
}
5935
}
6036
}

Sources/SwiftSyntaxBuilder/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88

99
add_swift_host_library(SwiftSyntaxBuilder
1010
ConvenienceInitializers.swift
11-
HasTrailingComma.swift
1211
Indenter.swift
1312
ResultBuilderExtensions.swift
1413
Syntax+StringInterpolation.swift
1514
SyntaxNodeWithBody.swift
15+
WithTrailingCommaSyntax+EnsuringTrailingComma.swift
1616

1717

1818
generated/BuildableCollectionNodes.swift

Sources/SwiftSyntaxBuilder/HasTrailingComma.swift renamed to Sources/SwiftSyntaxBuilder/WithTrailingCommaSyntax+EnsuringTrailingComma.swift

+6-9
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,12 @@
1212

1313
import SwiftSyntax
1414

15-
protocol HasTrailingComma {
16-
var hasTrailingComma: Bool { get }
17-
18-
/// Returns this node overriding presence of the trailing comma
19-
func withTrailingComma(_ withComma: Bool) -> Self
20-
}
21-
22-
extension HasTrailingComma {
15+
extension WithTrailingCommaSyntax {
2316
func ensuringTrailingComma() -> Self {
24-
hasTrailingComma ? self : withTrailingComma(true)
17+
if trailingComma == nil {
18+
return self.withTrailingComma(.commaToken())
19+
} else {
20+
return self
21+
}
2522
}
2623
}

0 commit comments

Comments
 (0)