func (d _FileDescriptor) AllMessages() []Descriptor {
msgs := d.desc
for , i := range d.imp {
obj, ok := i.o.(*Descriptor)
if ok {
msgs = append(msgs, obj)
}
}
return msgs
}
In each plugin there are gogoproto.Has/Is functions
At the moment they reference the current file, but they should reference the file in which the message/field was originally defined.
If the message was publicly imported its code generation should depend upon the file in which it was defined not the file which publicly imports it.
From awalterschulze on August 07, 2014 13:59:23
protoc-gen-gogo/generator/helper.go
Add this method
func (d _FileDescriptor) AllMessages() []Descriptor { msgs := d.desc for , i := range d.imp { obj, ok := i.o.(*Descriptor) if ok { msgs = append(msgs, obj) } } return msgs }
In each plugin there are gogoproto.Has/Is functions At the moment they reference the current file, but they should reference the file in which the message/field was originally defined.
If the message was publicly imported its code generation should depend upon the file in which it was defined not the file which publicly imports it.
Most of it should work after this work is done.
Original issue: http://code.google.com/p/gogoprotobuf/issues/detail?id=22