From 858622a98d571b60d1bc450663e6fdf8ddb42b0f Mon Sep 17 00:00:00 2001 From: visualfc Date: Fri, 31 May 2024 15:24:56 +0800 Subject: [PATCH] move eface demo to cl/_testrt --- cl/{_testgo => _testrt}/eface/in.go | 0 cl/{_testgo => _testrt}/eface/out.ll | 0 ssa/type_cvt.go | 16 +++------------- 3 files changed, 3 insertions(+), 13 deletions(-) rename cl/{_testgo => _testrt}/eface/in.go (100%) rename cl/{_testgo => _testrt}/eface/out.ll (100%) diff --git a/cl/_testgo/eface/in.go b/cl/_testrt/eface/in.go similarity index 100% rename from cl/_testgo/eface/in.go rename to cl/_testrt/eface/in.go diff --git a/cl/_testgo/eface/out.ll b/cl/_testrt/eface/out.ll similarity index 100% rename from cl/_testgo/eface/out.ll rename to cl/_testrt/eface/out.ll diff --git a/ssa/type_cvt.go b/ssa/type_cvt.go index dc462c0c..11666472 100644 --- a/ssa/type_cvt.go +++ b/ssa/type_cvt.go @@ -26,14 +26,12 @@ import ( // ----------------------------------------------------------------------------- type goTypes struct { - typs map[unsafe.Pointer]unsafe.Pointer - named map[*types.Named]*types.Named // named => raw + typs map[unsafe.Pointer]unsafe.Pointer } func newGoTypes() goTypes { typs := make(map[unsafe.Pointer]unsafe.Pointer) - named := make(map[*types.Named]*types.Named) - return goTypes{typs, named} + return goTypes{typs} } type Background int @@ -118,13 +116,6 @@ func (p goTypes) cvtNamed(t *types.Named) (raw *types.Named, cvt bool) { cvt = t != raw return } - defer func() { - p.typs[unsafe.Pointer(t)] = unsafe.Pointer(raw) - }() - if named, ok := p.named[t]; ok { - return named, false - } - n := t.NumMethods() methods := make([]*types.Func, n) 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 } named := types.NewNamed(t.Obj(), types.Typ[types.Int], methods) - p.named[t] = named - defer delete(p.named, t) + p.typs[unsafe.Pointer(t)] = unsafe.Pointer(named) if tund, cvt := p.cvtType(t.Underlying()); cvt { named.SetUnderlying(tund) return named, true