Joe Bruner created THRIFT-3037:
----------------------------------

             Summary: 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


// Base.thrift
namespace go a.X.c
struct Foo {
    1: required string s
}

and the dependant file

// 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
}

Compiling the thrift as is works, but when you go to install the a.Y.c package 
will produce:

/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)

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.4#6332)

Reply via email to