diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-02-14 18:55:57 -0700 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-02-25 17:55:27 -0700 |
commit | 2a41777072f48467bef02bb3bd670d95c2b02102 (patch) | |
tree | b4ac55094c142b3967acfdbf580d161988f822b7 /compat/json/compat.go | |
parent | f68498a6fdb421483d9aebb45527452f6255bb68 (diff) |
compat/json: Handle io.EOF and io.ErrUnexpectedEOF the same
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 |