Skip to content

Commit 39e9447

Browse files
committed
Add convenience initializer for ReturnClause
1 parent 0d4f464 commit 39e9447

File tree

3 files changed

+32
-1
lines changed

3 files changed

+32
-1
lines changed

Sources/SwiftSyntaxBuilder/StringConvenienceInitializers.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ extension String: ExpressibleAsBinaryOperatorExpr {
4040
}
4141
}
4242

43+
extension String: ExpressibleAsReturnClause {
44+
public func createReturnClause() -> ReturnClause {
45+
ReturnClause(returnType: self)
46+
}
47+
}
48+
4349
/// Default conformance to `ExpressibleByTypeBuildable`
4450
extension String {
4551
public func createTypeBuildable() -> TypeBuildable {

Tests/SwiftSyntaxBuilderTest/FunctionTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ final class FunctionTests: XCTestCase {
1414
ReturnStmt(expression: IntegerLiteralExpr(digits: "n"))
1515
})
1616

17-
let signature = FunctionSignature(input: input, output: ReturnClause(returnType: "Int"))
17+
let signature = FunctionSignature(input: input, output: "Int")
1818

1919

2020
let codeBlock = CodeBlock(statementsBuilder: {
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import XCTest
2+
import SwiftSyntax
3+
import SwiftSyntaxBuilder
4+
5+
final class ReturnClauseTests: XCTestCase {
6+
func testReturnClause() {
7+
let leadingTrivia = Trivia.garbageText("")
8+
9+
let testCases: [UInt: (ExpressibleAsReturnClause, String)] = [
10+
#line: (ReturnClause(returnType: "Int"), "␣-> Int"),
11+
#line: ("Int", "␣-> Int"),
12+
]
13+
14+
for (line, testCase) in testCases {
15+
let (builder, expected) = testCase
16+
let returnClause = builder.createReturnClause()
17+
let syntax = returnClause.buildSyntax(format: Format(), leadingTrivia: leadingTrivia)
18+
19+
var text = ""
20+
syntax.write(to: &text)
21+
22+
XCTAssertEqual(text, expected, line: line)
23+
}
24+
}
25+
}

0 commit comments

Comments
 (0)