add some support for modifying what pointers point to
R=rsc
DELTA=27 (16 added, 11 deleted, 0 changed)
OCL=19130
CL=19132
diff --git a/src/lib/reflect/value.go b/src/lib/reflect/value.go
index bace93b..1877d10 100644
--- a/src/lib/reflect/value.go
+++ b/src/lib/reflect/value.go
@@ -514,6 +514,11 @@
}
func (v *PtrValueStruct) SetSub(subv Value) {
+ a := v.typ.(PtrType).Sub().String();
+ b := subv.Type().String();
+ if a != b {
+ panicln("reflect: incompatible types in PtrValue.SetSub:", a, b);
+ }
*AddrToPtrAddr(v.addr) = subv.Addr();
}