reflect: make Value.Interface return immutable data
Fixes #3134.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5713049
diff --git a/src/pkg/reflect/all_test.go b/src/pkg/reflect/all_test.go
index b21a99e..6bb0613 100644
--- a/src/pkg/reflect/all_test.go
+++ b/src/pkg/reflect/all_test.go
@@ -1743,3 +1743,15 @@
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)
+ }
+}