@@ -17,6 +17,7 @@ import BasicBridging
17
17
public protocol BridgedNullable : ExpressibleByNilLiteral {
18
18
associatedtype RawPtr
19
19
init ( raw: RawPtr ? )
20
+ var raw : RawPtr ? { get }
20
21
}
21
22
extension BridgedNullable {
22
23
public init ( nilLiteral: ( ) ) {
@@ -34,6 +35,8 @@ extension BridgedNullableGenericParamList: /*@retroactive*/ swiftASTGen.BridgedN
34
35
extension BridgedNullableTrailingWhereClause : /*@retroactive*/ swiftASTGen . BridgedNullable { }
35
36
extension BridgedNullableParameterList : /*@retroactive*/ swiftASTGen . BridgedNullable { }
36
37
extension BridgedNullablePatternBindingInitializer : /*@retroactive*/ swiftASTGen . BridgedNullable { }
38
+ extension BridgedNullablePatternBindingDecl : /*@retroactive*/ swiftASTGen . BridgedNullable { }
39
+ extension BridgedNullableVarDecl : /*@retroactive*/ swiftASTGen . BridgedNullable { }
37
40
38
41
extension BridgedIdentifier : /*@retroactive*/ Swift . Equatable {
39
42
public static func == ( lhs: Self , rhs: Self ) -> Bool {
@@ -46,6 +49,7 @@ extension BridgedIdentifier: /*@retroactive*/ Swift.Equatable {
46
49
/// E.g. BridgedExpr vs BridgedNullableExpr.
47
50
protocol BridgedHasNullable {
48
51
associatedtype Nullable : BridgedNullable
52
+ init ( raw: Nullable . RawPtr )
49
53
var raw : Nullable . RawPtr { get }
50
54
}
51
55
extension Optional where Wrapped: BridgedHasNullable {
@@ -54,6 +58,14 @@ extension Optional where Wrapped: BridgedHasNullable {
54
58
Wrapped . Nullable ( raw: self ? . raw)
55
59
}
56
60
}
61
+ extension BridgedHasNullable {
62
+ init ? ( _ nullable: Nullable ) {
63
+ guard let newRaw = nullable. raw else {
64
+ return nil
65
+ }
66
+ self . init ( raw: newRaw)
67
+ }
68
+ }
57
69
58
70
extension BridgedStmt : BridgedHasNullable {
59
71
typealias Nullable = BridgedNullableStmt
@@ -79,6 +91,12 @@ extension BridgedParameterList: BridgedHasNullable {
79
91
extension BridgedPatternBindingInitializer : BridgedHasNullable {
80
92
typealias Nullable = BridgedNullablePatternBindingInitializer
81
93
}
94
+ extension BridgedPatternBindingDecl : BridgedHasNullable {
95
+ typealias Nullable = BridgedNullablePatternBindingDecl
96
+ }
97
+ extension BridgedVarDecl : BridgedHasNullable {
98
+ typealias Nullable = BridgedNullableVarDecl
99
+ }
82
100
83
101
public extension BridgedSourceLoc {
84
102
/// Form a source location at the given absolute position in `buffer`.
0 commit comments