From 5054057acdcbf805eb24fc01521728c9bcc7bdd4 Mon Sep 17 00:00:00 2001 From: Tom Bevan Date: Mon, 12 Jul 2021 17:21:31 +0100 Subject: [PATCH] assign an empty type when patch value is nil --- change_value.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/change_value.go b/change_value.go index 7d7ca08..4d721e9 100644 --- a/change_value.go +++ b/change_value.go @@ -123,7 +123,12 @@ func (c *ChangeValue) Set(value reflect.Value, convertCompatibleTypes bool) { } c.target.Set(value.Convert(c.target.Type())) } else { - c.target.Set(value) + if value.IsValid() { + c.target.Set(value) + } else { + t := c.target.Elem() + t.Set(reflect.Zero(t.Type())) + } } c.SetFlag(FlagApplied) }