From 11ee1379cea3aa94839ea8527bc2cabb828fb414 Mon Sep 17 00:00:00 2001 From: henryjcee Date: Thu, 10 Oct 2024 10:59:34 +0100 Subject: [PATCH] Tidy struct scanner if statement --- schema/field.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/schema/field.go b/schema/field.go index bdc0b761..f1ba7a16 100644 --- a/schema/field.go +++ b/schema/field.go @@ -920,9 +920,7 @@ func (field *Field) setupValuerAndSetter() { // struct scanner field.Set = func(ctx context.Context, value reflect.Value, v interface{}) (err error) { reflectV := reflect.ValueOf(v) - if !reflectV.IsValid() { - field.ReflectValueOf(ctx, value).Set(reflect.New(field.FieldType).Elem()) - } else if reflectV.Kind() == reflect.Ptr && reflectV.IsNil() { + if !reflectV.IsValid() || reflectV.Kind() == reflect.Ptr && reflectV.IsNil() { field.ReflectValueOf(ctx, value).Set(reflect.New(field.FieldType).Elem()) } else if reflectV.Type().AssignableTo(field.FieldType) { field.ReflectValueOf(ctx, value).Set(reflectV)