mirror of
https://github.com/labstack/echo.git
synced 2025-03-29 21:56:53 +02:00
explicitly return an error instead of hiding it
This commit is contained in:
parent
18d7fe11df
commit
1aef300cf4
6
bind.go
6
bind.go
@ -145,7 +145,7 @@ func (b *DefaultBinder) bindData(destination interface{}, data map[string][]stri
|
||||
typeField := typ.Field(i)
|
||||
structField := val.Field(i)
|
||||
if typeField.Anonymous {
|
||||
for structField.Kind() == reflect.Ptr {
|
||||
if structField.Kind() == reflect.Ptr {
|
||||
structField = structField.Elem()
|
||||
}
|
||||
}
|
||||
@ -155,8 +155,8 @@ func (b *DefaultBinder) bindData(destination interface{}, data map[string][]stri
|
||||
structFieldKind := structField.Kind()
|
||||
inputFieldName := typeField.Tag.Get(tag)
|
||||
if typeField.Anonymous && structField.Kind() == reflect.Struct && inputFieldName != "" {
|
||||
// if anonymous struct, ignore custom tag
|
||||
inputFieldName = ""
|
||||
// if anonymous struct with query/param/form tags, report an error
|
||||
return errors.New("query/param/form tags are not allowed with anonymous struct field")
|
||||
}
|
||||
|
||||
if inputFieldName == "" {
|
||||
|
@ -370,9 +370,7 @@ func TestBindUnmarshalParamAnonymousFieldPtrCustomTag(t *testing.T) {
|
||||
*Bar `json:"bar" query:"bar"`
|
||||
}{&Bar{}}
|
||||
err := c.Bind(&result)
|
||||
if assert.NoError(t, err) {
|
||||
assert.Equal(t, 1, result.Baz)
|
||||
}
|
||||
assert.Contains(t, err.Error(), "query/param/form tags are not allowed with anonymous struct field")
|
||||
}
|
||||
|
||||
func TestBindUnmarshalTextPtr(t *testing.T) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user