On Tue, Jun 27, 2017 at 11:06 AM, Jon Bodner <[email protected]> wrote:
>
> I was writing up an example to demonstrate that embedded fields in a
> dynamically generated struct don't delegate. Except that I somehow made one
> that did:
>
> https://play.golang.org/p/TWApy-JibG
>
> What's extra-odd is that the behavior is completely wrong; it's doubling off
> of the wrong field.
>
> Any idea what's going on? https://github.com/golang/go/issues/15924 states
> that this shouldn't have happened.

Hmmm, that's fairly bad.  Please file a bug report at
https://golang.org/issue .  Thanks.

Issue 15924 is carefully worded.  reflect.StructOf does not generate
wrapper methods for embedded fields.  But for an embedded field which
is not a pointer and is the first field of the struct, you don't
actually need a wrapper method.  StructOf does keep those methods
around on the newly generated type.  But an embedded non-pointer that
is not the first field does require a wrapper, and it looks like not
only is StructOf not generating those wrappers, it is keeping the
original method which then winds up using the data at the wrong
offset.  At least, that is my first impression.

Ian

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to