Skip to content

Commit bc816f7

Browse files
committed
Update to support shorthand if-let
1 parent 9716bcb commit bc816f7

File tree

5 files changed

+13
-16
lines changed

5 files changed

+13
-16
lines changed

Sources/SwiftSyntax/gyb_generated/SyntaxBuilders.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8234,9 +8234,6 @@ public struct OptionalBindingConditionSyntaxBuilder {
82348234
if (layout[1] == nil) {
82358235
layout[1] = RawSyntax.missing(SyntaxKind.pattern)
82368236
}
8237-
if (layout[3] == nil) {
8238-
layout[3] = RawSyntax.missing(SyntaxKind.initializerClause)
8239-
}
82408237

82418238
return .forRoot(RawSyntax.createAndCalcLength(kind: .optionalBindingCondition,
82428239
layout: layout, presence: .present))

Sources/SwiftSyntax/gyb_generated/SyntaxFactory.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3726,12 +3726,12 @@ public enum SyntaxFactory {
37263726
], length: .zero, presence: .present))
37273727
return MatchingPatternConditionSyntax(data)
37283728
}
3729-
public static func makeOptionalBindingCondition(letOrVarKeyword: TokenSyntax, pattern: PatternSyntax, typeAnnotation: TypeAnnotationSyntax?, initializer: InitializerClauseSyntax) -> OptionalBindingConditionSyntax {
3729+
public static func makeOptionalBindingCondition(letOrVarKeyword: TokenSyntax, pattern: PatternSyntax, typeAnnotation: TypeAnnotationSyntax?, initializer: InitializerClauseSyntax?) -> OptionalBindingConditionSyntax {
37303730
let layout: [RawSyntax?] = [
37313731
letOrVarKeyword.raw,
37323732
pattern.raw,
37333733
typeAnnotation?.raw,
3734-
initializer.raw,
3734+
initializer?.raw,
37353735
]
37363736
let raw = RawSyntax.createAndCalcLength(kind: SyntaxKind.optionalBindingCondition,
37373737
layout: layout, presence: SourcePresence.present)
@@ -3745,7 +3745,7 @@ public enum SyntaxFactory {
37453745
RawSyntax.missingToken(TokenKind.letKeyword),
37463746
RawSyntax.missing(SyntaxKind.pattern),
37473747
nil,
3748-
RawSyntax.missing(SyntaxKind.initializerClause),
3748+
nil,
37493749
], length: .zero, presence: .present))
37503750
return OptionalBindingConditionSyntax(data)
37513751
}

Sources/SwiftSyntax/gyb_generated/syntax_nodes/SyntaxNodes.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10039,10 +10039,11 @@ public struct OptionalBindingConditionSyntax: SyntaxProtocol, SyntaxHashable {
1003910039
return OptionalBindingConditionSyntax(newData)
1004010040
}
1004110041

10042-
public var initializer: InitializerClauseSyntax {
10042+
public var initializer: InitializerClauseSyntax? {
1004310043
get {
1004410044
let childData = data.child(at: Cursor.initializer,
1004510045
parent: Syntax(self))
10046+
if childData == nil { return nil }
1004610047
return InitializerClauseSyntax(childData!)
1004710048
}
1004810049
set(value) {
@@ -10055,7 +10056,7 @@ public struct OptionalBindingConditionSyntax: SyntaxProtocol, SyntaxHashable {
1005510056
/// current `initializer`, if present.
1005610057
public func withInitializer(
1005710058
_ newChild: InitializerClauseSyntax?) -> OptionalBindingConditionSyntax {
10058-
let raw = newChild?.raw ?? RawSyntax.missing(SyntaxKind.initializerClause)
10059+
let raw = newChild?.raw
1005910060
let newData = data.replacingChild(raw, at: Cursor.initializer)
1006010061
return OptionalBindingConditionSyntax(newData)
1006110062
}
@@ -10090,8 +10091,7 @@ public struct OptionalBindingConditionSyntax: SyntaxProtocol, SyntaxHashable {
1009010091
let syntaxChild = Syntax(syntaxData)
1009110092
assert(syntaxChild.is(TypeAnnotationSyntax.self))
1009210093
}
10093-
// Check child #3 child is InitializerClauseSyntax
10094-
assert(rawChildren[3].raw != nil)
10094+
// Check child #3 child is InitializerClauseSyntax or missing
1009510095
if let raw = rawChildren[3].raw {
1009610096
let info = rawChildren[3].syntaxInfo
1009710097
let absoluteRaw = AbsoluteRawSyntax(raw: raw, info: info)
@@ -10108,7 +10108,7 @@ extension OptionalBindingConditionSyntax: CustomReflectable {
1010810108
"letOrVarKeyword": Syntax(letOrVarKeyword).asProtocol(SyntaxProtocol.self),
1010910109
"pattern": Syntax(pattern).asProtocol(SyntaxProtocol.self),
1011010110
"typeAnnotation": typeAnnotation.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any,
10111-
"initializer": Syntax(initializer).asProtocol(SyntaxProtocol.self),
10111+
"initializer": initializer.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any,
1011210112
])
1011310113
}
1011410114
}

Sources/SwiftSyntaxBuilder/gyb_generated/BuildableNodes.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10147,7 +10147,7 @@ public struct OptionalBindingCondition: SyntaxBuildable, ExpressibleAsOptionalBi
1014710147
let letOrVarKeyword: TokenSyntax
1014810148
let pattern: PatternBuildable
1014910149
let typeAnnotation: TypeAnnotation?
10150-
let initializer: InitializerClause
10150+
let initializer: InitializerClause?
1015110151

1015210152
/// Creates a `OptionalBindingCondition` using the provided parameters.
1015310153
/// - Parameters:
@@ -10159,13 +10159,13 @@ public struct OptionalBindingCondition: SyntaxBuildable, ExpressibleAsOptionalBi
1015910159
letOrVarKeyword: TokenSyntax,
1016010160
pattern: ExpressibleAsPatternBuildable,
1016110161
typeAnnotation: ExpressibleAsTypeAnnotation? = nil,
10162-
initializer: ExpressibleAsInitializerClause
10162+
initializer: ExpressibleAsInitializerClause? = nil
1016310163
) {
1016410164
self.letOrVarKeyword = letOrVarKeyword
1016510165
assert(letOrVarKeyword.text == "let" || letOrVarKeyword.text == "var")
1016610166
self.pattern = pattern.createPatternBuildable()
1016710167
self.typeAnnotation = typeAnnotation?.createTypeAnnotation()
10168-
self.initializer = initializer.createInitializerClause()
10168+
self.initializer = initializer?.createInitializerClause()
1016910169
}
1017010170

1017110171

@@ -10174,7 +10174,7 @@ public struct OptionalBindingCondition: SyntaxBuildable, ExpressibleAsOptionalBi
1017410174
letOrVarKeyword: letOrVarKeyword,
1017510175
pattern: pattern.buildPattern(format: format, leadingTrivia: nil),
1017610176
typeAnnotation: typeAnnotation?.buildTypeAnnotation(format: format, leadingTrivia: nil),
10177-
initializer: initializer.buildInitializerClause(format: format, leadingTrivia: nil)
10177+
initializer: initializer?.buildInitializerClause(format: format, leadingTrivia: nil)
1017810178
)
1017910179
if let leadingTrivia = leadingTrivia {
1018010180
return result.withLeadingTrivia(leadingTrivia + (result.leadingTrivia ?? []))

Sources/SwiftSyntaxParser/gyb_generated/NodeDeclarationHash.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@
1717
extension SyntaxParser {
1818
static func verifyNodeDeclarationHash() -> Bool {
1919
return String(cString: swiftparse_syntax_structure_versioning_identifier()!) ==
20-
"2ec3f7586996f875c3cb1e71ed98e0551f0ec8e7"
20+
"02005359b9e133d40bc189a32fb0fee13480b5a1"
2121
}
2222
}

0 commit comments

Comments
 (0)