@@ -17,6 +17,7 @@ import BasicBridging
1717public protocol BridgedNullable : ExpressibleByNilLiteral {
1818 associatedtype RawPtr
1919 init ( raw: RawPtr ? )
20+ var raw : RawPtr ? { get }
2021}
2122extension BridgedNullable {
2223 public init ( nilLiteral: ( ) ) {
@@ -35,6 +36,8 @@ extension BridgedNullableTrailingWhereClause: /*@retroactive*/ swiftASTGen.Bridg
3536extension BridgedNullableParameterList : /*@retroactive*/ swiftASTGen . BridgedNullable { }
3637extension BridgedNullablePatternBindingInitializer : /*@retroactive*/ swiftASTGen . BridgedNullable { }
3738extension BridgedNullableArgumentList : /*@retroactive*/ swiftASTGen . BridgedNullable { }
39+ extension BridgedNullablePatternBindingDecl : /*@retroactive*/ swiftASTGen . BridgedNullable { }
40+ extension BridgedNullableVarDecl : /*@retroactive*/ swiftASTGen . BridgedNullable { }
3841
3942extension BridgedIdentifier : /*@retroactive*/ Swift . Equatable {
4043 public static func == ( lhs: Self , rhs: Self ) -> Bool {
@@ -47,6 +50,7 @@ extension BridgedIdentifier: /*@retroactive*/ Swift.Equatable {
4750/// E.g. BridgedExpr vs BridgedNullableExpr.
4851protocol BridgedHasNullable {
4952 associatedtype Nullable : BridgedNullable
53+ init ( raw: Nullable . RawPtr )
5054 var raw : Nullable . RawPtr { get }
5155}
5256extension Optional where Wrapped: BridgedHasNullable {
@@ -55,6 +59,14 @@ extension Optional where Wrapped: BridgedHasNullable {
5559 Wrapped . Nullable ( raw: self ? . raw)
5660 }
5761}
62+ extension BridgedHasNullable {
63+ init ? ( _ nullable: Nullable ) {
64+ guard let newRaw = nullable. raw else {
65+ return nil
66+ }
67+ self . init ( raw: newRaw)
68+ }
69+ }
5870
5971extension BridgedStmt : BridgedHasNullable {
6072 typealias Nullable = BridgedNullableStmt
@@ -83,6 +95,12 @@ extension BridgedPatternBindingInitializer: BridgedHasNullable {
8395extension BridgedArgumentList : BridgedHasNullable {
8496 typealias Nullable = BridgedNullableArgumentList
8597}
98+ extension BridgedPatternBindingDecl : BridgedHasNullable {
99+ typealias Nullable = BridgedNullablePatternBindingDecl
100+ }
101+ extension BridgedVarDecl : BridgedHasNullable {
102+ typealias Nullable = BridgedNullableVarDecl
103+ }
86104
87105public extension BridgedSourceLoc {
88106 /// Form a source location at the given absolute position in `buffer`.
0 commit comments