move eface demo to cl/_testrt

This commit is contained in:
visualfc
2024-05-31 15:24:56 +08:00
parent c673489461
commit 858622a98d
3 changed files with 3 additions and 13 deletions

View File

@@ -26,14 +26,12 @@ import (
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
type goTypes struct { type goTypes struct {
typs map[unsafe.Pointer]unsafe.Pointer typs map[unsafe.Pointer]unsafe.Pointer
named map[*types.Named]*types.Named // named => raw
} }
func newGoTypes() goTypes { func newGoTypes() goTypes {
typs := make(map[unsafe.Pointer]unsafe.Pointer) typs := make(map[unsafe.Pointer]unsafe.Pointer)
named := make(map[*types.Named]*types.Named) return goTypes{typs}
return goTypes{typs, named}
} }
type Background int type Background int
@@ -118,13 +116,6 @@ func (p goTypes) cvtNamed(t *types.Named) (raw *types.Named, cvt bool) {
cvt = t != raw cvt = t != raw
return return
} }
defer func() {
p.typs[unsafe.Pointer(t)] = unsafe.Pointer(raw)
}()
if named, ok := p.named[t]; ok {
return named, false
}
n := t.NumMethods() n := t.NumMethods()
methods := make([]*types.Func, n) methods := make([]*types.Func, n)
for i := 0; i < n; i++ { for i := 0; i < n; i++ {
@@ -132,8 +123,7 @@ func (p goTypes) cvtNamed(t *types.Named) (raw *types.Named, cvt bool) {
methods[i] = m methods[i] = m
} }
named := types.NewNamed(t.Obj(), types.Typ[types.Int], methods) named := types.NewNamed(t.Obj(), types.Typ[types.Int], methods)
p.named[t] = named p.typs[unsafe.Pointer(t)] = unsafe.Pointer(named)
defer delete(p.named, t)
if tund, cvt := p.cvtType(t.Underlying()); cvt { if tund, cvt := p.cvtType(t.Underlying()); cvt {
named.SetUnderlying(tund) named.SetUnderlying(tund)
return named, true return named, true