reflect: make Value.Interface return immutable data

Fixes #3134.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5713049
This commit is contained in:
Russ Cox 2012-03-01 11:48:27 -05:00
parent dc159fabff
commit a72b87efa9
2 changed files with 22 additions and 0 deletions

View file

@ -1743,3 +1743,15 @@ func isValid(v Value) {
panic("zero Value")
}
}
func TestAlias(t *testing.T) {
x := string("hello")
v := ValueOf(&x).Elem()
oldvalue := v.Interface()
v.SetString("world")
newvalue := v.Interface()
if oldvalue != "hello" || newvalue != "world" {
t.Errorf("aliasing: old=%q new=%q, want hello, world", oldvalue, newvalue)
}
}