Tidy struct scanner if statement

This commit is contained in:
henryjcee 2024-10-10 10:59:34 +01:00
parent 23b45b716e
commit 11ee1379ce
No known key found for this signature in database
GPG Key ID: 80F585CB00A434A8

View File

@ -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)