diff --git a/schema/field.go b/schema/field.go index c6d9d7a4..a7df0be4 100644 --- a/schema/field.go +++ b/schema/field.go @@ -392,7 +392,7 @@ func (field *Field) setupValuerAndSetter() { isZero := fieldValue.IsZero if fieldValue.Kind() == reflect.Ptr && fieldValue.IsNil() { if zeroer, ok := fieldValue.Interface().(interface{ IsZero() bool }); ok { - if _, ok := reflect.Indirect(reflect.New(fieldValue.Type().Elem())).Interface().(interface{ IsZero() bool }); !ok { + if !fieldValue.Type().Implements(reflect.TypeOf((*interface{ IsZero() bool })(nil)).Elem()) { isZero = zeroer.IsZero } }