@ -250,8 +250,9 @@ func (u *Unmarshaler) fillSliceFromString(fieldType reflect.Type, value reflect.
func (u *Unmarshaler) fillSliceValue(slice reflect.Value, index int,
baseKind reflect.Kind, value any, fullName string) error {
if value == nil {
return errUnsupportedType
return errNilSliceElement
}
ithVal := slice.Index(index)
switch v := value.(type) {
case fmt.Stringer:
@ -1340,7 +1340,7 @@ func TestUnmarshalNullableSlice(t *testing.T) {
ast := assert.New(t)
ast.Equal(UnmarshalKey(m, &v), errUnsupportedType)
ast.Equal(UnmarshalKey(m, &v), errNilSliceElement)
func TestUnmarshalIntSlice(t *testing.T) {
@ -36,6 +36,7 @@ const (
var (
errUnsupportedType = errors.New("unsupported type on setting field value")
errNumberRange = errors.New("wrong number range setting")
errNilSliceElement = errors.New("null element for slice")
optionsCache = make(map[string]optionsCacheValue)
cacheLock sync.RWMutex
structRequiredCache = make(map[reflect.Type]requiredCacheValue)