From: Russ Cox Date: Fri, 13 Sep 2013 17:56:39 +0000 (-0400) Subject: reflect: document FieldByName shortcoming X-Git-Tag: go1.2rc2~222 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7fb3d8e45e523ceffd6eb748a3b9b0bf11a65ffd;p=gostls13.git reflect: document FieldByName shortcoming Fixes #4876. R=golang-dev, iant CC=golang-dev https://golang.org/cl/13701044 --- diff --git a/src/pkg/reflect/type.go b/src/pkg/reflect/type.go index f8ed8c399a..7afb7defea 100644 --- a/src/pkg/reflect/type.go +++ b/src/pkg/reflect/type.go @@ -188,6 +188,14 @@ type Type interface { uncommon() *uncommonType } +// BUG(rsc): FieldByName and related functions consider struct field names to be equal +// if the names are equal, even if they are unexported names originating +// in different packages. The practical effect of this is that the result of +// t.FieldByName("x") is not well defined if the struct type t contains +// multiple fields named x (embedded from different packages). +// FieldByName may return one of the fields named x or may report that there are none. +// See golang.org/issue/4876 for more details. + /* * These data structures are known to the compiler (../../cmd/gc/reflect.c). * A few are known to ../runtime/type.go to convey to debuggers.