]> Cypherpunks repositories - gostls13.git/commitdiff
encoding/gob: slightly simplify init code
authorDaniel Martí <mvdan@mvdan.cc>
Fri, 20 Jan 2023 21:53:34 +0000 (21:53 +0000)
committerDaniel Martí <mvdan@mvdan.cc>
Tue, 24 Jan 2023 20:07:49 +0000 (20:07 +0000)
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>
src/encoding/gob/type.go

index 80d75160a759221939d5945464ad215ebaf4e052..59cab6e143bb861ecd1bf95c49f94fef6cd9f9cf 100644 (file)
@@ -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 {