Hi Jim, FWIW, the Thrift file I'm talking about is "TestThrift.thrift" that's used as part of the cross-platform tests. And, you're right: I didn't specify my language. I'm *trying* to implement Thrift support in Rust. I've got part of the code-gen working, and part of the binary protocol as well, but there's obviously still a lot of work to do. "type" is used to define a typedef (aka. type alias) in Rust, which means that the "Bonk" struct (the first struct there) doesn't work anymore.
Allen Terminal Musings: http://www.allengeorge.com/ Raft in Java: https://github.com/allengeorge/libraft/ Twitter: https://twitter.com/allenageorge/ On Fri, Nov 4, 2016 at 12:35 PM, Jim King <[email protected]> wrote: > The use of "type" as a field name seems suspect to me in a test thrift file > for the reason you described. > > This is similar to the use of "what" that was in some example thrift files > exception structures before we added what() to the C++ library, breaking > those examples. Fortunately one can rename the field if using BinaryProtocol > because it only cares about field ordinals, not names, and remain backwards > compatible. > > Perhaps we need to update the list of reserved keywords and enforce them? > Another possibility is to change the code generator to generate a field in a > structure that has a different name like "__type", however would the > definition of "getType()" then fail in your language? > > By the way, what is your target language? You didn't specify. > > - Jim > > -----Original Message----- > From: Allen George [mailto:[email protected]] > Sent: Thursday, November 03, 2016 10:00 PM > To: [email protected] > Subject: What's the right approach to dealing with reserved words in thrift > structs? > > The struct "Bonk" (in ThriftTest.thrift) uses a reserved keyword "type" in my > target language. What's the right approach do dealing with reserved keywords > during code generation? Obviously I'd prefer that "type" wasn't used at all, > but...should I turn it into another name? Should I simply fail instead? > > Thanks, > Allen > > Terminal Musings: http://www.allengeorge.com/ Raft in Java: > https://github.com/allengeorge/libraft/ > Twitter: https://twitter.com/allenageorge/ > --------------------------------------------------------------------------------------- > PRIVACY STATEMENT: > This message is a PRIVATE communication. This message and all attachments > are a private communication sent by SimpliVity and are considered to be > confidential or protected by privilege. If you are not the intended > recipient, you are hereby notified that any disclosure, copying, distribution > or use of the information contained in or attached to this message is > strictly prohibited. Please notify the sender of the delivery error by > replying to this message, and then delete it from your system. > ---------------------------------------------------------------------------------------
