thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Can Celasun (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (THRIFT-3037) Can not build Go code when using typedef in IDL
Date Tue, 06 Jun 2017 09:48:18 GMT

    [ https://issues.apache.org/jira/browse/THRIFT-3037?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16038487#comment-16038487
] 

Can Celasun commented on THRIFT-3037:
-------------------------------------

The easiest fix would be to use Go 1.9 aliases for typedefs. I'll send a PR when 1.9 is released.

> Can not build Go code when using typedef in IDL
> -----------------------------------------------
>
>                 Key: THRIFT-3037
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3037
>             Project: Thrift
>          Issue Type: Bug
>          Components: Go - Compiler
>    Affects Versions: 0.9.2
>            Reporter: Joe Bruner
>
> {code}
> // Base.thrift
> namespace go a.X.c
> struct Foo {
>     1: required string s
> }
> {code}
> and the dependent file
> {code}
> // Child.thrift
> namespace go a.Y.c
> include "Base.thrift"
> typedef Base.Foo Foo // <---- This is what causes the problem
> struct Bar {
>     1:Foo f  // <-- Will error
>     // 1:Base.Foo f   Need to comment out typedef and use this instead
> }
> {code}
> Compiling the thrift as is works, but when you go to install the a.Y.c package will produce:
> {code}
> /scratch/go/src/a/Y/c/ttypes.go:78: cannot use c.Foo literal (type *c.Foo) as type *Foo
in assignment
> /scratch/go/src/a/Y/c/ttypes.go:79: p.F.Read undefined (type *Foo has no field or method
Read)
> /scratch/go/src/a/Y/c/ttypes.go:105: p.F.Write undefined (type *Foo has no field or method
Write)
> {code}
> If I comment out the typedef and swap the lines in Bar then everything works fine. This
appears to only happen in Go.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message