diff options
Diffstat (limited to 'compat/json/compat.go')
-rw-r--r-- | compat/json/compat.go | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/compat/json/compat.go b/compat/json/compat.go index 6f13fbb..4dc15ab 100644 --- a/compat/json/compat.go +++ b/compat/json/compat.go @@ -53,19 +53,18 @@ func convertError(err error, isUnmarshal bool) error { case *lowmemjson.DecodeReadError: return err case *lowmemjson.DecodeSyntaxError: - switch { - case errors.Is(err, io.EOF): - return io.EOF - case errors.Is(err, io.ErrUnexpectedEOF) && isUnmarshal: - return &SyntaxError{ - msg: "unexpected end of JSON input", - Offset: suberr.Offset, - } - default: - return &SyntaxError{ - msg: suberr.Err.Error(), - Offset: suberr.Offset + 1, + if errors.Is(err, io.EOF) || errors.Is(err, io.ErrUnexpectedEOF) { + if isUnmarshal { + return &SyntaxError{ + msg: "unexpected end of JSON input", + Offset: suberr.Offset, + } } + return suberr.Err + } + return &SyntaxError{ + msg: suberr.Err.Error(), + Offset: suberr.Offset + 1, } case *lowmemjson.DecodeTypeError: switch subsuberr := suberr.Err.(type) { @@ -120,7 +119,7 @@ func convertError(err error, isUnmarshal bool) error { msg: err.Err.Error(), Offset: err.Offset + 1, } - if errors.Is(err, io.ErrUnexpectedEOF) { + if errors.Is(err, io.EOF) || errors.Is(err, io.ErrUnexpectedEOF) { ret.msg = "unexpected end of JSON input" } return ret |