reflect: unexported fields are tied to a package

An unexported field of a struct is not visible outside of the package
that defines it, so the package path is implicitly part of the
definition of any struct with an unexported field.

Change-Id: I17c6aac822bd0c24188ab8ba1cc406d6b5d82771
Reviewed-on: https://go-review.googlesource.com/32820
Run-TryBot: David Crawshaw <crawshaw@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
David Crawshaw 2016-11-04 18:22:06 -04:00 committed by Russ Cox
parent 9e2c3f4c7e
commit 8d0c105407
3 changed files with 26 additions and 0 deletions

View file

@ -5913,3 +5913,15 @@ func TestSwapper(t *testing.T) {
}
}
}
func TestInaccessibleField(t *testing.T) {
var b Buffer
var localBuffer struct {
buf []byte
}
lv := ValueOf(&localBuffer).Elem()
rv := ValueOf(b)
shouldPanic(func() {
lv.Set(rv)
})
}