From 8cd7902f25c1ab8342cb78f8b56ff9692374b8f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dario=20Castan=CC=83e=CC=81?= Date: Thu, 26 Jun 2014 14:23:21 +0200 Subject: [PATCH] Issue #1 fixed. It only required to check if src has kind reflect.Ptr. Iff it has this kind, it dereferences src calling Elem() on it. --- mergo.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mergo.go b/mergo.go index cbc4de2..3a472db 100644 --- a/mergo.go +++ b/mergo.go @@ -127,6 +127,9 @@ func Merge(dst interface{}, src interface{}) error { } vDst := reflect.ValueOf(dst).Elem() vSrc := reflect.ValueOf(src) + if vSrc.Kind() == reflect.Ptr { + vSrc = vSrc.Elem() + } if vDst.Type() != vSrc.Type() { return ErrDifferentArgumentsTypes }