mirror of
https://github.com/golang/go
synced 2024-11-18 12:54:44 -07:00
reflect: fix stale Value.kind documentation
The lowests fives bits are the kind, and the next five bits are attributes, not the other way around. Change-Id: I5e1d13b195b766e99f66bb1227cc7f84e85dc49d Reviewed-on: https://go-review.googlesource.com/c/go/+/425185 Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Keith Randall <khr@golang.org> Auto-Submit: Keith Randall <khr@golang.org>
This commit is contained in:
parent
027ff3f47d
commit
cdb270cf07
@ -45,17 +45,19 @@ type Value struct {
|
||||
ptr unsafe.Pointer
|
||||
|
||||
// flag holds metadata about the value.
|
||||
// The lowest bits are flag bits:
|
||||
//
|
||||
// The lowest five bits give the Kind of the value, mirroring typ.Kind().
|
||||
//
|
||||
// The next set of bits are flag bits:
|
||||
// - flagStickyRO: obtained via unexported not embedded field, so read-only
|
||||
// - flagEmbedRO: obtained via unexported embedded field, so read-only
|
||||
// - flagIndir: val holds a pointer to the data
|
||||
// - flagAddr: v.CanAddr is true (implies flagIndir)
|
||||
// - flagAddr: v.CanAddr is true (implies flagIndir and ptr is non-nil)
|
||||
// - flagMethod: v is a method value.
|
||||
// The next five bits give the Kind of the value.
|
||||
// This repeats typ.Kind() except for method values.
|
||||
// The remaining 23+ bits give a method number for method values.
|
||||
// If flag.kind() != Func, code can assume that flagMethod is unset.
|
||||
// If ifaceIndir(typ), code can assume that flagIndir is set.
|
||||
//
|
||||
// The remaining 22+ bits give a method number for method values.
|
||||
// If flag.kind() != Func, code can assume that flagMethod is unset.
|
||||
flag
|
||||
|
||||
// A method value represents a curried method invocation
|
||||
|
Loading…
Reference in New Issue
Block a user