@@ -872,9 +872,7 @@ func (d *Decoder) decodeByUnmarshaler(ctx context.Context, dst reflect.Value, sr
872872 return errors .New ("does not implemented Unmarshaler" )
873873}
874874
875- var (
876- astNodeType = reflect .TypeOf ((* ast .Node )(nil )).Elem ()
877- )
875+ var astNodeType = reflect .TypeOf ((* ast .Node )(nil )).Elem ()
878876
879877func (d * Decoder ) decodeValue (ctx context.Context , dst reflect.Value , src ast.Node ) error {
880878 d .stepIn ()
@@ -896,7 +894,10 @@ func (d *Decoder) decodeValue(ctx context.Context, dst reflect.Value, src ast.No
896894 return nil
897895 }
898896 if d .canDecodeByUnmarshaler (dst ) {
899- return d .decodeByUnmarshaler (ctx , dst , src )
897+ if err := d .decodeByUnmarshaler (ctx , dst , src ); err != nil {
898+ return err
899+ }
900+ return nil
900901 }
901902 valueType := dst .Type ()
902903 switch valueType .Kind () {
@@ -1723,7 +1724,7 @@ func (d *Decoder) decodeMap(ctx context.Context, dst reflect.Value, src ast.Node
17231724 k := d .createDecodableValue (keyType )
17241725 if d .canDecodeByUnmarshaler (k ) {
17251726 if err := d .decodeByUnmarshaler (ctx , k , key ); err != nil {
1726- return errors . ErrUnmarshaler ( err , keyType , src . GetToken ())
1727+ return err
17271728 }
17281729 } else {
17291730 keyVal , err := d .nodeToValue (ctx , key )
0 commit comments