Skip to content

Commit 0c3f5a0

Browse files
committed
Adding Let to case
1 parent 4446279 commit 0c3f5a0

File tree

3 files changed

+28
-23
lines changed

3 files changed

+28
-23
lines changed

Sources/SyntaxKit/PatternConvertible.swift

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,19 +60,23 @@ extension Int: PatternConvertible {
6060

6161
extension Swift.Range: PatternConvertible where Bound == Int {
6262
public var patternSyntax: PatternSyntax {
63-
let lhs = ExprSyntax(IntegerLiteralExprSyntax(literal: .integerLiteral(String(self.lowerBound))))
63+
let lhs = ExprSyntax(
64+
IntegerLiteralExprSyntax(literal: .integerLiteral(String(self.lowerBound))))
6465
let op = ExprSyntax(BinaryOperatorExprSyntax(operator: .binaryOperator("..<")))
65-
let rhs = ExprSyntax(IntegerLiteralExprSyntax(literal: .integerLiteral(String(self.upperBound))))
66+
let rhs = ExprSyntax(
67+
IntegerLiteralExprSyntax(literal: .integerLiteral(String(self.upperBound))))
6668
let seq = SequenceExprSyntax(elements: ExprListSyntax([lhs, op, rhs]))
6769
return PatternSyntax(ExpressionPatternSyntax(expression: ExprSyntax(seq)))
6870
}
6971
}
7072

7173
extension Swift.ClosedRange: PatternConvertible where Bound == Int {
7274
public var patternSyntax: PatternSyntax {
73-
let lhs = ExprSyntax(IntegerLiteralExprSyntax(literal: .integerLiteral(String(self.lowerBound))))
75+
let lhs = ExprSyntax(
76+
IntegerLiteralExprSyntax(literal: .integerLiteral(String(self.lowerBound))))
7477
let op = ExprSyntax(BinaryOperatorExprSyntax(operator: .binaryOperator("...")))
75-
let rhs = ExprSyntax(IntegerLiteralExprSyntax(literal: .integerLiteral(String(self.upperBound))))
78+
let rhs = ExprSyntax(
79+
IntegerLiteralExprSyntax(literal: .integerLiteral(String(self.upperBound))))
7680
let seq = SequenceExprSyntax(elements: ExprListSyntax([lhs, op, rhs]))
7781
return PatternSyntax(ExpressionPatternSyntax(expression: ExprSyntax(seq)))
7882
}
@@ -91,11 +95,11 @@ extension String: PatternConvertible {
9195
/// A `let` binding pattern for switch cases.
9296
public struct LetBindingPattern: PatternConvertible {
9397
private let identifier: String
94-
98+
9599
internal init(identifier: String) {
96100
self.identifier = identifier
97101
}
98-
102+
99103
public var patternSyntax: PatternSyntax {
100104
PatternSyntax(
101105
ValueBindingPatternSyntax(

Tests/SyntaxKitTests/ConditionalsExampleTests.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ import Testing
9595
ParameterExp(
9696
name: "",
9797
value:
98-
"\"The string \\\"\\(possibleNumber)\\\" could not be converted to an integer\"")
98+
"\"The string \"\\(possibleNumber)\" could not be converted to an integer\""
99+
)
99100
}
100101
})
101102

@@ -220,7 +221,8 @@ import Testing
220221
}
221222

222223
// MARK: - Switch with value binding
223-
Variable(.let, name: "anotherPoint", equals: TupleLiteral([.int(2), .int(0)])).withExplicitType()
224+
Variable(.let, name: "anotherPoint", equals: TupleLiteral([.int(2), .int(0)]))
225+
.withExplicitType()
224226
.comment {
225227
Line("Switch with value binding")
226228
}

Tests/SyntaxKitTests/PatternConvertibleTests.swift

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,64 +27,63 @@
2727
// OTHER DEALINGS IN THE SOFTWARE.
2828
//
2929

30-
import Testing
3130
import SwiftSyntax
31+
import Testing
3232

3333
@testable import SyntaxKit
3434

3535
internal struct PatternConvertibleTests {
36-
3736
// MARK: - Let Binding Pattern Tests
38-
37+
3938
@Test internal func testLetBindingPattern() {
4039
let pattern = Pattern.let("x")
4140
let syntax = pattern.patternSyntax
42-
41+
4342
let generated = syntax.description
4443
#expect(generated.contains("let x"))
4544
}
46-
45+
4746
@Test internal func testLetBindingPatternInTuple() {
4847
let tuplePattern = Tuple.pattern([Pattern.let("x"), 0])
4948
let syntax = tuplePattern.patternSyntax
50-
49+
5150
let generated = syntax.description
5251
#expect(generated.contains("(let x, 0)"))
5352
}
54-
53+
5554
@Test internal func testLetBindingPatternInSwitchCase() {
5655
let switchCase = SwitchCase(Tuple.pattern([Pattern.let("x"), Pattern.let("y")])) {
5756
Call("print") {
5857
ParameterExp(name: "", value: "\"somewhere else at (\\(x), \\(y))\"")
5958
}
6059
}
61-
60+
6261
let generated = switchCase.generateCode()
6362
#expect(generated.contains("case (let x, let y):"))
6463
#expect(generated.contains("print(\"somewhere else at (\\(x), \\(y))\")"))
6564
}
66-
65+
6766
@Test internal func testLetBindingPatternWithSingleElement() {
6867
let pattern = Pattern.let("value")
6968
let syntax = pattern.patternSyntax
70-
69+
7170
let generated = syntax.description
7271
#expect(generated.contains("let value"))
7372
}
74-
73+
7574
@Test internal func testLetBindingPatternInComplexTuple() {
7675
let tuplePattern = Tuple.pattern([Pattern.let("x"), 0, Pattern.let("y")])
7776
let syntax = tuplePattern.patternSyntax
78-
77+
7978
let generated = syntax.description
8079
#expect(generated.contains("(let x, 0, let y)"))
8180
}
82-
81+
8382
@Test internal func testLetBindingPatternWithWildcard() {
8483
let tuplePattern = Tuple.pattern([Pattern.let("x"), nil, Pattern.let("y")])
8584
let syntax = tuplePattern.patternSyntax
86-
85+
8786
let generated = syntax.description
8887
#expect(generated.contains("(let x, _, let y)"))
8988
}
90-
}
89+
}

0 commit comments

Comments
 (0)