diff --git a/interp/run.go b/interp/run.go index efb42a2b..543beddb 100644 --- a/interp/run.go +++ b/interp/run.go @@ -1187,6 +1187,7 @@ func callBin(n *node) { c.val = reflect.Zero(argType) } } + switch c.typ.cat { case funcT: values = append(values, genFunctionWrapper(c)) @@ -1199,6 +1200,14 @@ func callBin(n *node) { default: values = append(values, genInterfaceWrapper(c, defType)) } + case ptrT: + if c.typ.val.cat == valueT { + values = append(values, genValue(c)) + } else { + values = append(values, genInterfaceWrapper(c, defType)) + } + case valueT: + values = append(values, genValue(c)) default: values = append(values, genInterfaceWrapper(c, defType)) }