reflect: implement Value.Elem() for interface values

This commit is contained in:
Ayke van Laethem
2021-11-11 22:13:30 +01:00
committed by Ron Evans
parent d15e32fb89
commit 823c9c25cf
3 changed files with 41 additions and 1 deletions
+8 -1
View File
@@ -400,7 +400,14 @@ func (v Value) Elem() Value {
value: ptr,
flags: v.flags | valueFlagIndirect,
}
default: // not implemented: Interface
case Interface:
typecode, value := decomposeInterface(*(*interface{})(v.value))
return Value{
typecode: typecode,
value: value,
flags: v.flags &^ valueFlagIndirect,
}
default:
panic(&ValueError{"Elem"})
}
}