@@ -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: ( ) ) {
@@ -35,6 +36,8 @@ extension BridgedNullableTrailingWhereClause: /*@retroactive*/ swiftASTGen.Bridg
35
36
extension BridgedNullableParameterList : /*@retroactive*/ swiftASTGen . BridgedNullable { }
36
37
extension BridgedNullablePatternBindingInitializer : /*@retroactive*/ swiftASTGen . BridgedNullable { }
37
38
extension BridgedNullableArgumentList : /*@retroactive*/ swiftASTGen . BridgedNullable { }
39
+ extension BridgedNullablePatternBindingDecl : /*@retroactive*/ swiftASTGen . BridgedNullable { }
40
+ extension BridgedNullableVarDecl : /*@retroactive*/ swiftASTGen . BridgedNullable { }
38
41
39
42
extension BridgedIdentifier : /*@retroactive*/ Swift . Equatable {
40
43
public static func == ( lhs: Self , rhs: Self ) -> Bool {
@@ -47,6 +50,7 @@ extension BridgedIdentifier: /*@retroactive*/ Swift.Equatable {
47
50
/// E.g. BridgedExpr vs BridgedNullableExpr.
48
51
protocol BridgedHasNullable {
49
52
associatedtype Nullable : BridgedNullable
53
+ init ( raw: Nullable . RawPtr )
50
54
var raw : Nullable . RawPtr { get }
51
55
}
52
56
extension Optional where Wrapped: BridgedHasNullable {
@@ -55,6 +59,14 @@ extension Optional where Wrapped: BridgedHasNullable {
55
59
Wrapped . Nullable ( raw: self ? . raw)
56
60
}
57
61
}
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
+ }
58
70
59
71
extension BridgedStmt : BridgedHasNullable {
60
72
typealias Nullable = BridgedNullableStmt
@@ -83,6 +95,12 @@ extension BridgedPatternBindingInitializer: BridgedHasNullable {
83
95
extension BridgedArgumentList : BridgedHasNullable {
84
96
typealias Nullable = BridgedNullableArgumentList
85
97
}
98
+ extension BridgedPatternBindingDecl : BridgedHasNullable {
99
+ typealias Nullable = BridgedNullablePatternBindingDecl
100
+ }
101
+ extension BridgedVarDecl : BridgedHasNullable {
102
+ typealias Nullable = BridgedNullableVarDecl
103
+ }
86
104
87
105
public extension BridgedSourceLoc {
88
106
/// Form a source location at the given absolute position in `buffer`.
0 commit comments