diff --git a/src/reflect/value.go b/src/reflect/value.go index 0b7a5701b..d25469603 100644 --- a/src/reflect/value.go +++ b/src/reflect/value.go @@ -1366,7 +1366,7 @@ func (v Value) SetMapIndex(key, elem Value) { // if elem is the zero Value, it means delete del := elem == Value{} - if !del && elem.typecode != v.typecode.elem() { + if !del && !elem.typecode.AssignableTo(v.typecode.elem()) { panic("reflect.Value.SetMapIndex: incompatible types for value") }