aboutsummaryrefslogtreecommitdiff
path: root/src/encoding/json/v2/example_orderedobject_test.go
diff options
context:
space:
mode:
authorJoe Tsai <joetsai@digital-static.net>2025-09-08 17:33:47 -0700
committerJoseph Tsai <joetsai@digital-static.net>2025-09-10 00:58:35 -0700
commit30686c4cc89e6952ec00846e34016f37d53f31dd (patch)
tree3a9648a9c491c5e12d9b6df0f24815d0256bc429 /src/encoding/json/v2/example_orderedobject_test.go
parentc5737dc21bbac9fbefc35ac9313e66291d66b382 (diff)
downloadgo-30686c4cc89e6952ec00846e34016f37d53f31dd.tar.xz
encoding/json/v2: document context annotation with SemanticError
When the json package calls Marshaler, MarshalerTo, Unmarshaler, or UnmarshalerFrom methods and a SemanticError is returned, it will automatically annotate the error with context. Document this behavior. Change-Id: Id8e775a7c1c2a6ffc29ea518913591915e8aff87 Reviewed-on: https://go-review.googlesource.com/c/go/+/701956 Reviewed-by: Damien Neil <dneil@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Diffstat (limited to 'src/encoding/json/v2/example_orderedobject_test.go')
-rw-r--r--src/encoding/json/v2/example_orderedobject_test.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/encoding/json/v2/example_orderedobject_test.go b/src/encoding/json/v2/example_orderedobject_test.go
index d68782f725..fc23132504 100644
--- a/src/encoding/json/v2/example_orderedobject_test.go
+++ b/src/encoding/json/v2/example_orderedobject_test.go
@@ -53,7 +53,9 @@ func (obj *OrderedObject[V]) MarshalJSONTo(enc *jsontext.Encoder) error {
// UnmarshalJSONFrom decodes a JSON object from dec into obj.
func (obj *OrderedObject[V]) UnmarshalJSONFrom(dec *jsontext.Decoder) error {
if k := dec.PeekKind(); k != '{' {
- return fmt.Errorf("expected object start, but encountered %v", k)
+ // The [json] package automatically populates relevant fields
+ // in a [json.SemanticError] to provide additional context.
+ return &json.SemanticError{JSONKind: k}
}
if _, err := dec.ReadToken(); err != nil {
return err