]> Cypherpunks repositories - gostls13.git/commitdiff
reflect: update CanAddr, CanSet documentation
authorRuss Cox <rsc@golang.org>
Wed, 20 Apr 2011 19:04:04 +0000 (15:04 -0400)
committerRuss Cox <rsc@golang.org>
Wed, 20 Apr 2011 19:04:04 +0000 (15:04 -0400)
CanAddr was wrong, out of date; CanSet was incomplete.

R=r
CC=golang-dev
https://golang.org/cl/4442066

src/pkg/reflect/value.go

index 44aaebd50a0a6f79555efd3c4948527ba0d45951..3e1ff1ee2bad74331ff0aba844da317fe1e9635f 100644 (file)
@@ -395,8 +395,7 @@ func (v Value) Bool() bool {
 // CanAddr returns true if the value's address can be obtained with Addr.
 // Such values are called addressable.  A value is addressable if it is
 // an element of a slice, an element of an addressable array,
-// a field of an addressable struct, the result of dereferencing a pointer,
-// or the result of a call to NewValue, MakeChan, MakeMap, or Zero.
+// a field of an addressable struct, or the result of dereferencing a pointer.
 // If CanAddr returns false, calling Addr will panic.
 func (v Value) CanAddr() bool {
        iv := v.internal()
@@ -404,8 +403,8 @@ func (v Value) CanAddr() bool {
 }
 
 // CanSet returns true if the value of v can be changed.
-// Values obtained by the use of unexported struct fields
-// can be read but not set.
+// A Value can be changed only if it is addressable and was not
+// obtained by the use of unexported struct fields.
 // If CanSet returns false, calling Set or any type-specific
 // setter (e.g., SetBool, SetInt64) will panic.
 func (v Value) CanSet() bool {