diff options
author | Jose <jose@zeroc.com> | 2019-04-03 15:08:27 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2019-04-03 15:08:27 +0200 |
commit | adec71218c1503663a371ea7cf30ea9068f95eb9 (patch) | |
tree | fcd2af866ee6d85d90bd231c1386c0aedeccd64f /cpp/src/slice2swift/SwiftUtil.cpp | |
parent | Fixes for optional marshalling unmarshalling (diff) | |
download | ice-adec71218c1503663a371ea7cf30ea9068f95eb9.tar.bz2 ice-adec71218c1503663a371ea7cf30ea9068f95eb9.tar.xz ice-adec71218c1503663a371ea7cf30ea9068f95eb9.zip |
Fixes for optional marshalling unmarshalling
Diffstat (limited to 'cpp/src/slice2swift/SwiftUtil.cpp')
-rw-r--r-- | cpp/src/slice2swift/SwiftUtil.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/cpp/src/slice2swift/SwiftUtil.cpp b/cpp/src/slice2swift/SwiftUtil.cpp index 404f76489f9..aa95817d4bc 100644 --- a/cpp/src/slice2swift/SwiftUtil.cpp +++ b/cpp/src/slice2swift/SwiftUtil.cpp @@ -320,7 +320,7 @@ SwiftGenerator::getValue(const string& swiftModule, const TypePtr& type) void SwiftGenerator::writeConstantValue(IceUtilInternal::Output& out, const TypePtr& type, const SyntaxTreeBasePtr& valueType, const string& value, - const StringList&, const string& swiftModule) + const StringList&, const string& swiftModule, bool optional) { ConstPtr constant = ConstPtr::dynamicCast(valueType); if(constant) @@ -351,6 +351,10 @@ SwiftGenerator::writeConstantValue(IceUtilInternal::Output& out, const TypePtr& out << value; } } + else if(optional) + { + out << "nil"; + } else { out << getValue(swiftModule, type); @@ -886,7 +890,8 @@ SwiftGenerator::writeMembers(IceUtilInternal::Output& out, else { out << " = "; - writeConstantValue(out, type, member->defaultValueType(), defaultValue, p->getMetaData(), swiftModule); + writeConstantValue(out, type, member->defaultValueType(), defaultValue, p->getMetaData(), swiftModule, + member->optional()); } } } |