diff options
| author | Daniel Martí <mvdan@mvdan.cc> | 2023-01-20 21:53:34 +0000 |
|---|---|---|
| committer | Daniel Martí <mvdan@mvdan.cc> | 2023-01-24 20:07:49 +0000 |
| commit | 43f9b826c322d5541ca0260f8b0c9b71db0f7ec8 (patch) | |
| tree | a463ae41932436daa6064a9b59e7137c76f2f7cc /src/encoding | |
| parent | ffbd194f5cf399a98578ea950c969d07a751ecfd (diff) | |
| download | go-43f9b826c322d5541ca0260f8b0c9b71db0f7ec8.tar.xz | |
encoding/gob: slightly simplify init code
https://go.dev/cl/460543 stopped using the "expect" parameter in
bootstrapType, but we forgot to actually remove it.
While here, staticcheck correctly points out that we can use the copy
builtin to fill builtinIdToTypeSlice, now that it and idToType are an
array and slice respectively.
Change-Id: I48078415ab9bdd5633cf41f33ab4dc78eb30b48a
Reviewed-on: https://go-review.googlesource.com/c/go/+/462301
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
Run-TryBot: Rob Pike <r@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/encoding')
| -rw-r--r-- | src/encoding/gob/type.go | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/src/encoding/gob/type.go b/src/encoding/gob/type.go index 80d75160a7..59cab6e143 100644 --- a/src/encoding/gob/type.go +++ b/src/encoding/gob/type.go @@ -243,22 +243,22 @@ var ( // Primordial types, needed during initialization. // Always passed as pointers so the interface{} type // goes through without losing its interfaceness. - tBool = bootstrapType("bool", (*bool)(nil), 1) - tInt = bootstrapType("int", (*int)(nil), 2) - tUint = bootstrapType("uint", (*uint)(nil), 3) - tFloat = bootstrapType("float", (*float64)(nil), 4) - tBytes = bootstrapType("bytes", (*[]byte)(nil), 5) - tString = bootstrapType("string", (*string)(nil), 6) - tComplex = bootstrapType("complex", (*complex128)(nil), 7) - tInterface = bootstrapType("interface", (*any)(nil), 8) + tBool = bootstrapType("bool", (*bool)(nil)) + tInt = bootstrapType("int", (*int)(nil)) + tUint = bootstrapType("uint", (*uint)(nil)) + tFloat = bootstrapType("float", (*float64)(nil)) + tBytes = bootstrapType("bytes", (*[]byte)(nil)) + tString = bootstrapType("string", (*string)(nil)) + tComplex = bootstrapType("complex", (*complex128)(nil)) + tInterface = bootstrapType("interface", (*any)(nil)) // Reserve some Ids for compatible expansion - tReserved7 = bootstrapType("_reserved1", (*struct{ r7 int })(nil), 9) - tReserved6 = bootstrapType("_reserved1", (*struct{ r6 int })(nil), 10) - tReserved5 = bootstrapType("_reserved1", (*struct{ r5 int })(nil), 11) - tReserved4 = bootstrapType("_reserved1", (*struct{ r4 int })(nil), 12) - tReserved3 = bootstrapType("_reserved1", (*struct{ r3 int })(nil), 13) - tReserved2 = bootstrapType("_reserved1", (*struct{ r2 int })(nil), 14) - tReserved1 = bootstrapType("_reserved1", (*struct{ r1 int })(nil), 15) + tReserved7 = bootstrapType("_reserved1", (*struct{ r7 int })(nil)) + tReserved6 = bootstrapType("_reserved1", (*struct{ r6 int })(nil)) + tReserved5 = bootstrapType("_reserved1", (*struct{ r5 int })(nil)) + tReserved4 = bootstrapType("_reserved1", (*struct{ r4 int })(nil)) + tReserved3 = bootstrapType("_reserved1", (*struct{ r3 int })(nil)) + tReserved2 = bootstrapType("_reserved1", (*struct{ r2 int })(nil)) + tReserved1 = bootstrapType("_reserved1", (*struct{ r1 int })(nil)) ) // Predefined because it's needed by the Decoder @@ -275,9 +275,7 @@ func init() { checkId(21, mustGetTypeInfo(reflect.TypeOf((*fieldType)(nil)).Elem()).id) checkId(23, mustGetTypeInfo(reflect.TypeOf((*mapType)(nil)).Elem()).id) - for k, v := range idToType { - builtinIdToTypeSlice[k] = v - } + copy(builtinIdToTypeSlice[:], idToType) // Move the id space upwards to allow for growth in the predefined world // without breaking existing files. @@ -616,7 +614,7 @@ func checkId(want, got typeId) { // used for building the basic types; called only from init(). the incoming // interface always refers to a pointer. -func bootstrapType(name string, e any, expect typeId) typeId { +func bootstrapType(name string, e any) typeId { rt := reflect.TypeOf(e).Elem() _, present := types[rt] if present { |
