diff options
Diffstat (limited to 'cpp/src/slice2swift/SwiftUtil.cpp')
-rw-r--r-- | cpp/src/slice2swift/SwiftUtil.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/cpp/src/slice2swift/SwiftUtil.cpp b/cpp/src/slice2swift/SwiftUtil.cpp index 80e9d6469c2..78a1e37e263 100644 --- a/cpp/src/slice2swift/SwiftUtil.cpp +++ b/cpp/src/slice2swift/SwiftUtil.cpp @@ -208,7 +208,7 @@ Slice::getTopLevelModule(const TypePtr& type) assert(ProxyPtr::dynamicCast(type) || ContainedPtr::dynamicCast(type)); ProxyPtr proxy = ProxyPtr::dynamicCast(type); - return getTopLevelModule(proxy ? ContainedPtr::dynamicCast(proxy->_class()->definition()) : + return getTopLevelModule(proxy ? ContainedPtr::dynamicCast(proxy->_class()) : ContainedPtr::dynamicCast(type)); } @@ -1157,7 +1157,7 @@ SwiftGenerator::typeToString(const TypePtr& type, else if(prx) { ClassDefPtr def = prx->_class()->definition(); - if(def->isInterface() || def->allOperations().size() > 0) + if(!def || def->isAbstract()) { t = getUnqualified(getAbsoluteImpl(prx->_class(), "", "Prx"), currentModule); } @@ -1764,7 +1764,7 @@ SwiftGenerator::writeMarshalUnmarshalCode(Output &out, } ClassDefPtr def = prx->_class()->definition(); - if(def->isInterface() || def->allOperations().size() > 0) + if(!def || def->isAbstract()) { args += getUnqualified(getAbsolute(type), swiftModule) + ".self"; } |