From 7ffad1d6814c163ce2bc5e7e1050c2c2f0ab5382 Mon Sep 17 00:00:00 2001 From: Bernard Normier Date: Wed, 24 Apr 2019 10:49:46 -0400 Subject: Reduced generated initializers --- cpp/src/slice2swift/Gen.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'cpp/src/slice2swift/Gen.cpp') 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; -- cgit v1.2.3