summaryrefslogtreecommitdiff
path: root/swift/src
diff options
context:
space:
mode:
Diffstat (limited to 'swift/src')
-rw-r--r--swift/src/Ice/Proxy.swift11
1 files changed, 7 insertions, 4 deletions
diff --git a/swift/src/Ice/Proxy.swift b/swift/src/Ice/Proxy.swift
index 978048db125..bb819639766 100644
--- a/swift/src/Ice/Proxy.swift
+++ b/swift/src/Ice/Proxy.swift
@@ -734,12 +734,15 @@ open class _ObjectPrxI: ObjectPrx {
public static func checkedCast<ProxyImpl>(prx: ObjectPrx,
facet: String? = nil,
context: Context? = nil) throws -> ProxyImpl?
- where ProxyImpl: _ObjectPrxI {
- let objPrx = facet != nil ? prx.ice_facet(facet!) : prx
- guard try objPrx.ice_isA(id: ProxyImpl.ice_staticId(), context: context) else {
+ where ProxyImpl: _ObjectPrxI {
+ do {
+ let objPrx = facet != nil ? prx.ice_facet(facet!) : prx
+ guard try objPrx.ice_isA(id: ProxyImpl.ice_staticId(), context: context) else {
+ return nil
+ }
+ } catch is FacetNotExistsException {
return nil
}
- return ProxyImpl(from: objPrx)
}
public static func uncheckedCast<ProxyImpl>(prx: ObjectPrx,