Skip to content

Commit 53fb44a

Browse files
committed
Fix to define initializers in ConvenienceInitializers.swift
1 parent c168b1b commit 53fb44a

File tree

5 files changed

+26
-17
lines changed

5 files changed

+26
-17
lines changed

Sources/SwiftSyntax/generated/SyntaxCollections.swift

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -275,14 +275,6 @@ public struct ArrayElementListSyntax: SyntaxCollection, SyntaxHashable {
275275
}
276276
self.init(data)
277277
}
278-
279-
public init(expressions: [ExprSyntaxProtocol]) {
280-
let elements = expressions.enumerated().map { index, expression in
281-
let element = ArrayElementSyntax(expression: expression)
282-
return index != (expressions.count - 1) ? element.with(\.trailingComma, .commaToken()) : element
283-
}
284-
self.init(elements)
285-
}
286278

287279
/// The number of elements, `present` or `missing`, in this collection.
288280
public var count: Int {

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxExprNodes.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,6 @@ public struct ArrayExprSyntax: ExprSyntaxProtocol, SyntaxHashable {
3232
precondition(data.raw.kind == .arrayExpr)
3333
self._syntaxNode = Syntax(data)
3434
}
35-
36-
public init(expressions: [ExprSyntaxProtocol]) {
37-
self.init(elements: ArrayElementListSyntax(expressions: expressions))
38-
}
3935

4036
public init(
4137
leadingTrivia: Trivia? = nil,

Sources/SwiftSyntaxBuilder/ConvenienceInitializers.swift

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,26 @@
1313
@_spi(RawSyntax) import SwiftParser
1414
@_spi(RawSyntax) import SwiftSyntax
1515

16+
// MARK: - ArrayElementList
17+
18+
extension ArrayElementListSyntax {
19+
public init(expressions: [ExprSyntaxProtocol]) {
20+
let elements = expressions.enumerated().map { index, expression in
21+
let element = ArrayElementSyntax(expression: expression)
22+
return index != (expressions.count - 1) ? element.with(\.trailingComma, .commaToken()) : element
23+
}
24+
self.init(elements)
25+
}
26+
}
27+
28+
// MARK: - ArrayExpr
29+
30+
extension ArrayExprSyntax {
31+
public init(expressions: [ExprSyntaxProtocol]) {
32+
self.init(elements: ArrayElementListSyntax(expressions: expressions))
33+
}
34+
}
35+
1636
// MARK: - CustomAttribute
1737

1838
extension AttributeSyntax {

Tests/SwiftSyntaxBuilderTest/ArrayExprTests.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,10 @@ final class ArrayExprTests: XCTestCase {
4747
"""
4848
)
4949
}
50+
51+
func testInitializerWithExpressions() {
52+
let expressions: [ExprSyntax] = [.init(literal: 0), .init(literal: 1), .init(literal: 2)]
53+
let arrayExpr = ArrayExprSyntax(expressions: expressions)
54+
XCTAssertEqual(arrayExpr.description, "[0,1,2]")
55+
}
5056
}

Tests/SwiftSyntaxTest/SyntaxCollectionsTests.swift

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,6 @@ fileprivate func integerLiteralElement(_ int: Int) -> ArrayElementSyntax {
2222
}
2323

2424
public class SyntaxCollectionsTests: XCTestCase {
25-
public func testInitializer() {
26-
let expressions: [ExprSyntax] = [.init(stringLiteral: "0"), .init(stringLiteral: "1"), .init(stringLiteral:"2")]
27-
let arrayElementList = ArrayElementListSyntax(expressions: expressions)
28-
XCTAssertEqual(arrayElementList.description, "0,1,2")
29-
}
3025

3126
public func testAppendingElement() {
3227
let arrayElementList = ArrayElementListSyntax([

0 commit comments

Comments
 (0)