[ https://issues.apache.org/jira/browse/THRIFT-5195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17099332#comment-17099332 ]
Jens Geyer commented on THRIFT-5195: ------------------------------------ I can't contribute much on the technical aspects but I want to emphasize that a union *by definition* has "all optional fields", otherwise it would not be a {{union}} but a {{struct}}. That's why the compiler complains when you try to set union members to anything else than optional. > Swift enums (generated from Thrift unions) don't work > ----------------------------------------------------- > > Key: THRIFT-5195 > URL: https://issues.apache.org/jira/browse/THRIFT-5195 > Project: Thrift > Issue Type: Bug > Components: Swift - Library > Affects Versions: 0.14.0 > Reporter: Darius Jankauskas > Priority: Major > > I have some service functions not working. The required argument it takes is > a Swift enum with associated value. This was generated from a Thrift union > with all optional fields. The problem is that the associated value never gets > sent to the server, i.e. TStruct.write() never encounters the associated > value. Deeper in the forEach() method the propName is found but returns null > in > {code:swift} > if let tval = unwrap(any: propValue) as? TSerializable, let id = > Self.fieldIds[propName] {{code} > I've never used reflection (the Mirror class) nor contributed here but am > willing to try. > If anyone has any ideas/suggestions how to fix this, please let me know. -- This message was sent by Atlassian Jira (v8.3.4#803005)