From e085fd1d573667fadd89d3e2cb0c0e3ee32b7a90 Mon Sep 17 00:00:00 2001 From: visualfc Date: Thu, 5 Sep 2024 20:59:10 +0800 Subject: [PATCH] internal/lib/reflect: type.Name type.Elem --- internal/lib/reflect/type.go | 37 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/internal/lib/reflect/type.go b/internal/lib/reflect/type.go index 4fbac070..a63f3754 100644 --- a/internal/lib/reflect/type.go +++ b/internal/lib/reflect/type.go @@ -539,25 +539,22 @@ func pkgPathFor(t *abi.Type) string { } func (t *rtype) Name() string { - /* - if !t.t.HasName() { - return "" + if !t.t.HasName() { + return "" + } + s := t.String() + i := len(s) - 1 + sqBrackets := 0 + for i >= 0 && (s[i] != '.' || sqBrackets != 0) { + switch s[i] { + case ']': + sqBrackets++ + case '[': + sqBrackets-- } - s := t.String() - i := len(s) - 1 - sqBrackets := 0 - for i >= 0 && (s[i] != '.' || sqBrackets != 0) { - switch s[i] { - case ']': - sqBrackets++ - case '[': - sqBrackets-- - } - i-- - } - return s[i+1:] - */ - panic("todo: reflect.rtype.Name") + i-- + } + return s[i+1:] } func nameFor(t *abi.Type) string { @@ -581,9 +578,7 @@ func elem(t *abi.Type) *abi.Type { if et != nil { return et } - // TODO(xsw): - // panic("reflect: Elem of invalid type " + stringFor(t)) - panic("todo: reflect.elem") + panic("reflect: Elem of invalid type " + stringFor(t)) } func (t *rtype) Elem() Type {