]> Cypherpunks.ru repositories - gostls13.git/commit
reflect: fix Value.SetIterXXX to check for the read-only bit
authorJoe Tsai <joetsai@digital-static.net>
Wed, 24 Aug 2022 02:10:45 +0000 (19:10 -0700)
committerJoseph Tsai <joetsai@digital-static.net>
Thu, 1 Sep 2022 02:24:14 +0000 (02:24 +0000)
commit91ef076562dfcf783074dbd84ad7c6db60fdd481
tree6480c791ec9979ec151887da231dc3bc3698c6a5
parent64b260dbdefcd2205e74d236a7f33d0e6b8f48cb
reflect: fix Value.SetIterXXX to check for the read-only bit

v.SetIterXXX(i) is semantically identical to v.Set(i.XXX()).
If the latter panics for unexported values, so should the former.

This change may breaking some programs, but the change is justified
under the "Go 1 and the Future of Go Programs" document because
the "library has a bug that violates the specification".
In this case, the "reflect" package does not accurately match
the behavior of the Go language specification.
Also, this API was recently released, so the number of users
who could be depending on this behavior is hopefully lower.

Fixes #54628

Change-Id: If86ede51f286e38093f6697944c089f616525115
Reviewed-on: https://go-review.googlesource.com/c/go/+/425184
Auto-Submit: Joseph Tsai <joetsai@digital-static.net>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Joseph Tsai <joetsai@digital-static.net>
Reviewed-by: David Chase <drchase@google.com>
src/reflect/all_test.go
src/reflect/value.go