diff options
author | Bernard Normier <bernard@zeroc.com> | 2019-04-24 10:49:46 -0400 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2019-04-24 10:49:46 -0400 |
commit | 7ffad1d6814c163ce2bc5e7e1050c2c2f0ab5382 (patch) | |
tree | 3d8839e365679a9b48c9797bc37ebc5e3741664f /cpp/src/slice2swift/Gen.cpp | |
parent | Fixed keyword escaping (diff) | |
download | ice-7ffad1d6814c163ce2bc5e7e1050c2c2f0ab5382.tar.bz2 ice-7ffad1d6814c163ce2bc5e7e1050c2c2f0ab5382.tar.xz ice-7ffad1d6814c163ce2bc5e7e1050c2c2f0ab5382.zip |
Reduced generated initializers
Diffstat (limited to 'cpp/src/slice2swift/Gen.cpp')
-rw-r--r-- | cpp/src/slice2swift/Gen.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/cpp/src/slice2swift/Gen.cpp b/cpp/src/slice2swift/Gen.cpp index 29891997277..56f69def016 100644 --- a/cpp/src/slice2swift/Gen.cpp +++ b/cpp/src/slice2swift/Gen.cpp @@ -327,7 +327,7 @@ Gen::TypesVisitor::visitExceptionStart(const ExceptionPtr& p) const string prefix = getClassResolverPrefix(p->unit()); // - // For each UserException class we generate a extension in ClassResolver + // For each UserException class we generate an extension in ClassResolver // ostringstream factory; factory << prefix; @@ -399,11 +399,10 @@ Gen::TypesVisitor::visitExceptionStart(const ExceptionPtr& p) out << nl << "var _slicedData: Ice.SlicedData?"; } - // Local exceptions do not need default initializers bool rootClass = !base && !p->isLocal(); - if(!p->isLocal()) + if(rootClass || !members.empty()) { - writeDefaultInitializer(out, members, p, rootClass, true); + writeDefaultInitializer(out, true, rootClass); } writeMemberwiseInitializer(out, members, baseMembers, allMembers, p, rootClass, extraParams); @@ -514,7 +513,7 @@ Gen::TypesVisitor::visitStructStart(const StructPtr& p) out << sb; writeMembers(out, members, p); - writeDefaultInitializer(out, members, p); + writeDefaultInitializer(out, false, true); writeMemberwiseInitializer(out, members, p); out << eb << nl; @@ -1166,8 +1165,11 @@ Gen::ValueVisitor::visitClassDefStart(const ClassDefPtr& p) out << nl << "var _slicedData: " << getUnqualified("Ice.SlicedData?", swiftModule); } - writeDefaultInitializer(out, members, p, !base, true); - writeMemberwiseInitializer(out, members, baseMembers, allMembers, p, base == 0); + if(!base || !members.empty()) + { + writeDefaultInitializer(out, true, !base); + } + writeMemberwiseInitializer(out, members, baseMembers, allMembers, p, !base); out << sp; out << nl << "open override func ice_id() -> Swift.String" << sb; |