diff options
author | Jose <jose@zeroc.com> | 2019-03-03 20:06:17 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2019-03-03 20:06:17 +0100 |
commit | bdcab6eb8d724759ccedc3a01f9dc1f3d8d478f3 (patch) | |
tree | 0d01b615dcb34745afb301e42a166189fb547d5d /cpp/src/slice2swift/Gen.cpp | |
parent | Swift default values fixes (diff) | |
download | ice-bdcab6eb8d724759ccedc3a01f9dc1f3d8d478f3.tar.bz2 ice-bdcab6eb8d724759ccedc3a01f9dc1f3d8d478f3.tar.xz ice-bdcab6eb8d724759ccedc3a01f9dc1f3d8d478f3.zip |
Swift default values fixes
Diffstat (limited to 'cpp/src/slice2swift/Gen.cpp')
-rw-r--r-- | cpp/src/slice2swift/Gen.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/cpp/src/slice2swift/Gen.cpp b/cpp/src/slice2swift/Gen.cpp index aed0eaf133b..b00cf98f846 100644 --- a/cpp/src/slice2swift/Gen.cpp +++ b/cpp/src/slice2swift/Gen.cpp @@ -299,19 +299,21 @@ Gen::TypesVisitor::visitExceptionStart(const ExceptionPtr& p) } out << sb; - const DataMemberList dataMembers = p->dataMembers(); + const DataMemberList members = p->dataMembers(); const DataMemberList allMembers = p->allDataMembers(); const DataMemberList baseMembers = base ? base->allDataMembers() : DataMemberList(); - writeMembers(out, dataMembers, p); - writeMemberwiseInitializer(out, dataMembers, baseMembers, allMembers, p, !base && !p->isLocal()); + bool rootClass = !base && !p->isLocal(); + writeMembers(out, members, p); + writeDefaultInitializer(out, members, p, rootClass); + writeMemberwiseInitializer(out, members, baseMembers, allMembers, p, rootClass); if(!p->isLocal()) { out << sp; out << nl << "required public init(from ins: " << getUnqualified("Ice.InputStream", swiftModule) << ") throws"; out << sb; - for(DataMemberList::const_iterator q = dataMembers.begin(); q != dataMembers.end(); ++q) + for(DataMemberList::const_iterator q = members.begin(); q != members.end(); ++q) { DataMemberPtr member = *q; StringList metadata = member->getMetaData(); @@ -333,7 +335,7 @@ Gen::TypesVisitor::visitExceptionStart(const ExceptionPtr& p) } out << "public func ice_write(to os: " << getUnqualified("Ice.OutputStream", swiftModule) << ")"; out << sb; - for(DataMemberList::const_iterator q = dataMembers.begin(); q != dataMembers.end(); ++q) + for(DataMemberList::const_iterator q = members.begin(); q != members.end(); ++q) { out << nl << fixIdent((*q)->name()) << ".ice_write(to: os)"; } |