Hey Allen
Really cool to hear you are working on Rust support, know that others would
appreciate having it available. Currently "type" is not a listed reserved
word in the compiler/cpp/src/thrift/thriftl.ll, but due to rust using it
that way you would have to add it to the reserved list and modify the test
to no longer support "type" as an identifier.

This would cause a lot of pain for others as "type" is a pretty commonly
used term and would break exiting expected behavior for anyone using the
identifier "type" in their idl today.

-Jake



On Fri, Nov 4, 2016 at 4:07 PM, Allen George <[email protected]> wrote:

> 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