capnproto / go-capnp

Cap'n Proto library and code generator for Go
https://capnproto.org
Other
1.22k stars 111 forks source link

Error if attribute name "message" is used in a capnp struct definition #457

Closed kfatehi closed 1 year ago

kfatehi commented 1 year ago

HI, thanks for the work on this library. I noticed what appears to be a bug. If I try to compile this file, this struct's "message" attribute causes the following error when trying to use the generated Go code later on.

cereal/gen/go/log.capnp.go:10674:26: AndroidLogEntry.Message redeclared in this block
        cereal/gen/go/log.capnp.go:10609:26: other declaration of Message

A quick workaround is naming it something else before generation

image

Would this be considered a bug in capnproto.org/go/capnp/v3 or bad practice by the author? I was unable to find a list of reserved words in the schema language, so I suspect this is sort of a de-facto reserved word if using capnproto.org/go/capnp/v3 at this point in time, correct?

Thanks!

zenhack commented 1 year ago

Yeah, this is a known issue; see #46. Besides renaming the field itself you can use the $Go.name annotation.

I'm going to go ahead and close this as a duplicate of #46.

kfatehi commented 1 year ago

thanks! ill try to search more carefully next time