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.
> ---------------------------------------------------------------------------------------

Reply via email to