encoding/json/v2: fix typo in documentation about errors.AsType

CL 708495 mass migrated the stdlib to use errors.AsType.
It rewrote the documentation, but uses the non-pointer type
of SemanticError or SyntacticError, which is invalid since
the Error method is declared on the pointer receiver.

Also, call errors.AsType on a separate line for readability.

Change-Id: I2eaf59614e2b58aa4bc8669ab81ce64168c54f13
Reviewed-on: https://go-review.googlesource.com/c/go/+/714660
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
Auto-Submit: Joseph Tsai <joetsai@digital-static.net>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
Joe Tsai 2025-10-24 10:55:48 -07:00 committed by Gopher Robot
parent 94f47fc03f
commit 747fe2efed
3 changed files with 6 additions and 3 deletions

View file

@ -24,7 +24,8 @@ import (
// The name of a duplicate JSON object member can be extracted as: // The name of a duplicate JSON object member can be extracted as:
// //
// err := ... // err := ...
// if serr, ok := errors.AsType[jsontext.SyntacticError](err); ok && serr.Err == jsontext.ErrDuplicateName { // serr, ok := errors.AsType[*jsontext.SyntacticError](err)
// if ok && serr.Err == jsontext.ErrDuplicateName {
// ptr := serr.JSONPointer // JSON pointer to duplicate name // ptr := serr.JSONPointer // JSON pointer to duplicate name
// name := ptr.LastToken() // duplicate name itself // name := ptr.LastToken() // duplicate name itself
// ... // ...

View file

@ -29,7 +29,8 @@ import (
// The name of an unknown JSON object member can be extracted as: // The name of an unknown JSON object member can be extracted as:
// //
// err := ... // err := ...
// if serr, ok := errors.AsType[json.SemanticError](err); ok && serr.Err == json.ErrUnknownName { // serr, ok := errors.AsType[*json.SemanticError](err)
// if ok && serr.Err == json.ErrUnknownName {
// ptr := serr.JSONPointer // JSON pointer to unknown name // ptr := serr.JSONPointer // JSON pointer to unknown name
// name := ptr.LastToken() // unknown name itself // name := ptr.LastToken() // unknown name itself
// ... // ...

View file

@ -371,7 +371,8 @@ func Example_unknownMembers() {
// Specifying RejectUnknownMembers causes Unmarshal // Specifying RejectUnknownMembers causes Unmarshal
// to reject the presence of any unknown members. // to reject the presence of any unknown members.
err = json.Unmarshal([]byte(input), new(Color), json.RejectUnknownMembers(true)) err = json.Unmarshal([]byte(input), new(Color), json.RejectUnknownMembers(true))
if serr, ok := errors.AsType[*json.SemanticError](err); ok && serr.Err == json.ErrUnknownName { serr, ok := errors.AsType[*json.SemanticError](err)
if ok && serr.Err == json.ErrUnknownName {
fmt.Println("Unmarshal error:", serr.Err, strconv.Quote(serr.JSONPointer.LastToken())) fmt.Println("Unmarshal error:", serr.Err, strconv.Quote(serr.JSONPointer.LastToken()))
} }