File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change @@ -49,3 +49,48 @@ public enum ImplicitlyUnwrappedOptional<Wrapped> : ExpressibleByNilLiteral {
49
49
self = . none
50
50
}
51
51
}
52
+
53
+ #if _runtime(_ObjC)
54
+ extension ImplicitlyUnwrappedOptional : _ObjectiveCBridgeable {
55
+ @_inlineable // FIXME(sil-serialize-all)
56
+ public func _bridgeToObjectiveC( ) -> AnyObject {
57
+ switch self {
58
+ case . none:
59
+ _preconditionFailure ( " Attempt to bridge an implicitly unwrapped optional containing nil " )
60
+
61
+ case . some( let x) :
62
+ return Swift . _bridgeAnythingToObjectiveC ( x)
63
+ }
64
+ }
65
+
66
+ @_inlineable // FIXME(sil-serialize-all)
67
+ public static func _forceBridgeFromObjectiveC(
68
+ _ x: AnyObject ,
69
+ result: inout ImplicitlyUnwrappedOptional < Wrapped > ?
70
+ ) {
71
+ result = Swift . _forceBridgeFromObjectiveC ( x, Wrapped . self)
72
+ }
73
+
74
+ @_inlineable // FIXME(sil-serialize-all)
75
+ public static func _conditionallyBridgeFromObjectiveC(
76
+ _ x: AnyObject ,
77
+ result: inout ImplicitlyUnwrappedOptional < Wrapped > ?
78
+ ) -> Bool {
79
+ let bridged : Wrapped ? =
80
+ Swift . _conditionallyBridgeFromObjectiveC ( x, Wrapped . self)
81
+ if let value = bridged {
82
+ result = value
83
+ }
84
+
85
+ return false
86
+ }
87
+
88
+ @_inlineable // FIXME(sil-serialize-all)
89
+ public static func _unconditionallyBridgeFromObjectiveC( _ source: AnyObject ? )
90
+ -> Wrapped ! {
91
+ var result : ImplicitlyUnwrappedOptional < Wrapped > ?
92
+ _forceBridgeFromObjectiveC ( source!, result: & result)
93
+ return result!
94
+ }
95
+ }
96
+ #endif
You can’t perform that action at this time.
0 commit comments