var s string;
var t reflect.Type;
-{
- var ip *int32;
- var i int32 = 1234;
- vip := reflect.NewValue(&ip);
- vi := reflect.NewValue(i);
- vip.(reflect.PtrValue).Sub().(reflect.PtrValue).SetSub(vi);
- if *ip != 1234 {
- panicln("SetSub failure", *ip);
- }
-}
-
// Types
typedump("missing", "$missing$");
typedump("int", "int");
assert(reflect.ValueToString(value.(reflect.PtrValue).Sub()), "main.AA·test{1, 2, 3, 4, 123, 6, 7, 8, 9, 10}");
}
+ {
+ var ip *int32;
+ var i int32 = 1234;
+ vip := reflect.NewValue(&ip);
+ vi := reflect.NewValue(i);
+ vip.(reflect.PtrValue).Sub().(reflect.PtrValue).SetSub(vi);
+ if *ip != 1234 {
+ panicln("SetSub failure", *ip);
+ }
+ }
+
var pt reflect.PtrType;
var st reflect.StructType;
var mt reflect.MapType;
}
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();
}