Skip to content

Commit c460947

Browse files
committed
[ASTGen] Wrap optional binding pattern with type annotation
1 parent a3d6992 commit c460947

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

lib/ASTGen/Sources/ASTGen/Stmts.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,14 @@ extension ASTGenVisitor {
161161
// I'm not sure this should really be implicit.
162162
pat.setImplicit()
163163

164+
if let typeAnnotation = node.typeAnnotation {
165+
pat = BridgedTypedPattern.createParsed(
166+
self.ctx,
167+
pattern: pat,
168+
type: self.generate(type: typeAnnotation.type)
169+
).asPattern
170+
}
171+
164172
let initializer: BridgedExpr
165173
if let initNode = node.initializer {
166174
initializer = self.generate(expr: initNode.value)

test/ASTGen/stmts.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,17 @@ func testThen() {
116116
}
117117
}
118118

119+
func intOrString() -> Int? { 1 }
120+
func intOrString() -> String? { "" }
121+
func testIf() {
122+
if
123+
let i: Int = intOrString(),
124+
case let str? = intOrString() as String?
125+
{
126+
_ = (i, str)
127+
}
128+
}
129+
119130
struct GenericTypeWithYields<T> {
120131
var storedProperty: T?
121132

0 commit comments

Comments
 (0)