Explorar o código

#76 fix UnmarshalJSON

Tao Wen %!s(int64=8) %!d(string=hai) anos
pai
achega
08dbc98040
Modificáronse 1 ficheiros con 5 adicións e 0 borrados
  1. 5 0
      feature_reflect.go

+ 5 - 0
feature_reflect.go

@@ -267,6 +267,11 @@ func createDecoderOfType(cfg *frozenConfig, typ reflect.Type) (ValDecoder, error
 		}
 		return decoder, nil
 	}
+	if reflect.PtrTo(typ).ConvertibleTo(unmarshalerType) {
+		templateInterface := reflect.New(typ).Interface()
+		var decoder ValDecoder = &unmarshalerDecoder{extractInterface(templateInterface)}
+		return decoder, nil
+	}
 	if typ.ConvertibleTo(anyType) {
 		return &anyCodec{}, nil
 	}