diff --git a/core/mapping/unmarshaler.go b/core/mapping/unmarshaler.go index b3543d79..c40e34ae 100644 --- a/core/mapping/unmarshaler.go +++ b/core/mapping/unmarshaler.go @@ -853,10 +853,12 @@ func (u *Unmarshaler) unmarshalWithFullName(m valuerWithParent, v any, fullName numFields := baseType.NumField() for i := 0; i < numFields; i++ { - if !baseType.Field(i).IsExported() { + field := baseType.Field(i) + if !field.IsExported() { continue } - if err := u.processField(baseType.Field(i), valElem.Field(i), m, fullName); err != nil { + + if err := u.processField(field, valElem.Field(i), m, fullName); err != nil { return err } } diff --git a/core/mapping/unmarshaler_test.go b/core/mapping/unmarshaler_test.go index 4d9dd98b..b756fba6 100644 --- a/core/mapping/unmarshaler_test.go +++ b/core/mapping/unmarshaler_test.go @@ -793,7 +793,9 @@ func TestUnmarshalStringMapFromNotSettableValue(t *testing.T) { } ast := assert.New(t) - ast.Error(UnmarshalKey(m, &v)) + ast.NoError(UnmarshalKey(m, &v)) + assert.Empty(t, v.sort) + assert.Nil(t, v.psort) } func TestUnmarshalStringMapFromString(t *testing.T) {