mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
encoding/json/v2: fix wrong type with cyclic marshal error in map[string]any
The type reported in a ErrCycle is the wrong type due to a typo. This discrepency was detected by setting optimizeCommon to false and running the tests. This only modifies code that is compiled in under goexperiment.jsonv2. Change-Id: I68268f5c719d8b79a67424a35ed0647adf12288c Reviewed-on: https://go-review.googlesource.com/c/go/+/695277 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Damien Neil <dneil@google.com>
This commit is contained in:
parent
de9b6f9875
commit
0a75e5a07b
2 changed files with 2 additions and 2 deletions
|
|
@ -104,7 +104,7 @@ func marshalObjectAny(enc *jsontext.Encoder, obj map[string]any, mo *jsonopts.St
|
|||
if xe.Tokens.Depth() > startDetectingCyclesAfter {
|
||||
v := reflect.ValueOf(obj)
|
||||
if err := visitPointer(&xe.SeenPointers, v); err != nil {
|
||||
return newMarshalErrorBefore(enc, anyType, err)
|
||||
return newMarshalErrorBefore(enc, mapStringAnyType, err)
|
||||
}
|
||||
defer leavePointer(&xe.SeenPointers, v)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3278,7 +3278,7 @@ func TestMarshal(t *testing.T) {
|
|||
return struct{ X any }{m}
|
||||
}(),
|
||||
want: `{"X"` + strings.Repeat(`:{""`, startDetectingCyclesAfter),
|
||||
wantErr: EM(internal.ErrCycle).withPos(`{"X":`+strings.Repeat(`{"":`, startDetectingCyclesAfter), "/X"+jsontext.Pointer(strings.Repeat("/", startDetectingCyclesAfter))).withType(0, T[any]()),
|
||||
wantErr: EM(internal.ErrCycle).withPos(`{"X":`+strings.Repeat(`{"":`, startDetectingCyclesAfter), "/X"+jsontext.Pointer(strings.Repeat("/", startDetectingCyclesAfter))).withType(0, T[map[string]any]()),
|
||||
}, {
|
||||
name: jsontest.Name("Interfaces/Any/Slices/Nil"),
|
||||
in: struct{ X any }{[]any(nil)},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue