Thanks guys - much appreciated.

I'll take the steps suggested:

1. Add "type" as a reserved word to thrift.ll
2. Change the test to use __type (or something similar)

I've already done "2" - and gone far enough to know that maps of f64s
are definitely a pain point in Rust that I'll have to figure out.

Thanks!
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 5:04 PM, Randy Abernethy
<[email protected]> wrote:
> Hey Allen,
>
> Also excited to hear about the Rust work! Agree with Jake, on the pain
> level associated with adding type as a keyword. However, type is probably a
> pretty good word to add to the keyword list if we were to add one.
>
> Similar/Identical keywords:
>
> - Rust, Go, Delphi, Scala:     type
> - C#, ECMAScript 6    typeof
> - C++    typedef, typeid, typename
>
>
> Obviously some languages avoid the problem through context (like Go and
> Delphi). Perhaps a reasonable approach might be to deprecate it in IDL
> today, change the tests to use __type or some such and soldier on with the
> Rust addition?
>
> -Randy
>
> On Fri, Nov 4, 2016 at 1:34 PM, Jake Farrell <[email protected]> wrote:
>
>> 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