summaryrefslogtreecommitdiff
path: root/parse.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@datawire.io>2022-08-14 20:52:06 -0600
committerLuke Shumaker <lukeshu@datawire.io>2022-08-16 00:05:24 -0600
commit54bbd1e59317a6e9658eb8098657078cc8e81979 (patch)
tree0d7033a0644945dedfe0fca158e0c40864f759f6 /parse.go
parent2ae2ebe2a5ac712db6f9221cb1ad8cfa76aad180 (diff)
wip: Reduce test differences [ci-skip]
- Handle UTF-16 surrogate pairs - Handle cycles in values - Handle cycles in types - Better errors - Handle case-folding of struct field names - Allow []byteTypeWithMethods - Fix struct field-order - Fix handling of interfaces storing pointers - Enforce a maximum decode depth - Validate struct tags
Diffstat (limited to 'parse.go')
-rw-r--r--parse.go16
1 files changed, 8 insertions, 8 deletions
diff --git a/parse.go b/parse.go
index 866e9f4..23df5bc 100644
--- a/parse.go
+++ b/parse.go
@@ -388,7 +388,7 @@ func (par *Parser) HandleRune(c rune) (RuneType, error) {
case 'n':
return par.replaceState(RuneTypeNullN), nil
default:
- return RuneTypeError, fmt.Errorf("any: unexpected character: %q", c)
+ return RuneTypeError, fmt.Errorf("invalid character %q looking for beginning of value", c)
}
// object //////////////////////////////////////////////////////////////////////////////////
case RuneTypeObjectBeg: // waiting for key to start or '}'
@@ -413,7 +413,7 @@ func (par *Parser) HandleRune(c rune) (RuneType, error) {
par.pushState(RuneTypeError)
return RuneTypeObjectColon, nil
default:
- return RuneTypeError, fmt.Errorf("object member: unexpected character: %q", c)
+ return RuneTypeError, fmt.Errorf("invalid character %q after object key", c)
}
case RuneTypeObjectComma: // waiting for ',' or '}'
switch c {
@@ -426,7 +426,7 @@ func (par *Parser) HandleRune(c rune) (RuneType, error) {
par.popState()
return RuneTypeObjectEnd, nil
default:
- return RuneTypeError, fmt.Errorf("object member: unexpected character: %q", c)
+ return RuneTypeError, fmt.Errorf("invalid character %q after object key:value pair", c)
}
// array ///////////////////////////////////////////////////////////////////////////////////
case RuneTypeArrayBeg: // waiting for item to start or ']'
@@ -452,7 +452,7 @@ func (par *Parser) HandleRune(c rune) (RuneType, error) {
par.popState()
return RuneTypeArrayEnd, nil
default:
- return RuneTypeError, fmt.Errorf("array: unexpected character: %q", c)
+ return RuneTypeError, fmt.Errorf("invalid character %q after array element", c)
}
// string //////////////////////////////////////////////////////////////////////////////////
case RuneTypeStringBeg: // waiting for char or '"'
@@ -549,7 +549,7 @@ func (par *Parser) HandleRune(c rune) (RuneType, error) {
case '1', '2', '3', '4', '5', '6', '7', '8', '9':
return par.replaceState(RuneTypeNumberIntDig), nil
default:
- return RuneTypeError, fmt.Errorf("number: unexpected character: %q", c)
+ return RuneTypeError, fmt.Errorf("invalid character %q in numeric literal", c)
}
case RuneTypeNumberIntZero: // C
switch c {
@@ -578,7 +578,7 @@ func (par *Parser) HandleRune(c rune) (RuneType, error) {
case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
return par.replaceState(RuneTypeNumberFracDig), nil
default:
- return RuneTypeError, fmt.Errorf("number: unexpected character: %q", c)
+ return RuneTypeError, fmt.Errorf("invalid character %q in numeric literal", c)
}
case RuneTypeNumberFracDig: // F
switch c {
@@ -597,14 +597,14 @@ func (par *Parser) HandleRune(c rune) (RuneType, error) {
case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
return par.replaceState(RuneTypeNumberExpDig), nil
default:
- return RuneTypeError, fmt.Errorf("number: unexpected character: %c", c)
+ return RuneTypeError, fmt.Errorf("invalid character %q in numeric literal", c)
}
case RuneTypeNumberExpSign: // H
switch c {
case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
return par.replaceState(RuneTypeNumberExpDig), nil
default:
- return RuneTypeError, fmt.Errorf("number: unexpected character: %c", c)
+ return RuneTypeError, fmt.Errorf("invalid character %q in numeric literal", c)
}
case RuneTypeNumberExpDig: // I
switch c {