Skip to content

Commit 0e4fda1

Browse files
cuishuanggopherbot
authored andcommitted
internal/godoc/codec: use reflect.TypeFor instead of reflect.TypeOf
Updates golang/go#60088 Change-Id: I0ba56ce30a81f1ff3ea941971cca36b57e02e4b4 Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/709176 kokoro-CI: kokoro <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]> Reviewed-by: Carlos Amedee <[email protected]> Auto-Submit: Sean Liao <[email protected]> Reviewed-by: Michael Pratt <[email protected]> Reviewed-by: Sean Liao <[email protected]>
1 parent 1332632 commit 0e4fda1

File tree

2 files changed

+20
-21
lines changed

2 files changed

+20
-21
lines changed

internal/godoc/codec/generate.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,7 @@ func generate(w io.Writer, packageName string, fieldNames map[string][]string, v
107107
}
108108
// The empty interface doesn't need any additional code. It's tricky to get
109109
// its reflect.Type: we need to dereference the pointer type.
110-
var iface any
111-
g.done[reflect.TypeOf(&iface).Elem()] = true
110+
g.done[reflect.TypeFor[any]()] = true
112111

113112
src, err := g.generate()
114113
if err != nil {
@@ -384,18 +383,18 @@ func (g *generator) decodeStatement(t reflect.Type, arg string) string {
384383
func builtinName(t reflect.Type) (suffix string, native reflect.Type) {
385384
switch t.Kind() {
386385
case reflect.String:
387-
return "String", reflect.TypeOf("")
386+
return "String", reflect.TypeFor[string]()
388387
case reflect.Bool:
389-
return "Bool", reflect.TypeOf(true)
388+
return "Bool", reflect.TypeFor[bool]()
390389
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
391-
return "Int", reflect.TypeOf(int64(0))
390+
return "Int", reflect.TypeFor[int64]()
392391
case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
393-
return "Uint", reflect.TypeOf(uint64(0))
392+
return "Uint", reflect.TypeFor[uint64]()
394393
case reflect.Float32, reflect.Float64:
395-
return "Float64", reflect.TypeOf(0.0)
394+
return "Float64", reflect.TypeFor[float64]()
396395
case reflect.Slice:
397-
if t.Elem() == reflect.TypeOf(byte(0)) {
398-
return "Bytes", reflect.TypeOf([]byte(nil))
396+
if t.Elem() == reflect.TypeFor[byte]() {
397+
return "Bytes", reflect.TypeFor[[]byte]()
399398
}
400399
}
401400
return "", nil

internal/godoc/codec/generate_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -77,32 +77,32 @@ func TestExportedFields(t *testing.T) {
7777
}
7878

7979
// First time we see ef, no previous fields.
80-
got := exportedFields(reflect.TypeOf(ef{}), nil)
80+
got := exportedFields(reflect.TypeFor[ef](), nil)
8181
want := []field{
82-
{"A", reflect.TypeOf(0), "0"},
83-
{"B", reflect.TypeOf(false), "false"},
84-
{"C", reflect.TypeOf(""), `""`},
82+
{"A", reflect.TypeFor[int](), "0"},
83+
{"B", reflect.TypeFor[bool](), "false"},
84+
{"C", reflect.TypeFor[string](), `""`},
8585
}
8686
check(want, got)
8787

8888
// Imagine that the previous ef had fields C and A in that order, but not B.
8989
// We should preserve the existing ordering and add B at the end.
90-
got = exportedFields(reflect.TypeOf(ef{}), []string{"C", "A"})
90+
got = exportedFields(reflect.TypeFor[ef](), []string{"C", "A"})
9191
want = []field{
92-
{"C", reflect.TypeOf(""), `""`},
93-
{"A", reflect.TypeOf(0), "0"},
94-
{"B", reflect.TypeOf(false), "false"},
92+
{"C", reflect.TypeFor[string](), `""`},
93+
{"A", reflect.TypeFor[int](), "0"},
94+
{"B", reflect.TypeFor[bool](), "false"},
9595
}
9696
check(want, got)
9797

9898
// Imagine instead that there had been a field D that was removed.
9999
// We still keep the names, but the entry for "D" has a nil type.
100-
got = exportedFields(reflect.TypeOf(ef{}), []string{"A", "D", "B", "C"})
100+
got = exportedFields(reflect.TypeFor[ef](), []string{"A", "D", "B", "C"})
101101
want = []field{
102-
{"A", reflect.TypeOf(0), "0"},
102+
{"A", reflect.TypeFor[int](), "0"},
103103
{"D", nil, ""},
104-
{"B", reflect.TypeOf(false), "false"},
105-
{"C", reflect.TypeOf(""), `""`},
104+
{"B", reflect.TypeFor[bool](), "false"},
105+
{"C", reflect.TypeFor[string](), `""`},
106106
}
107107
check(want, got)
108108
}

0 commit comments

Comments
 (0)