cl: remove checkInstanceNamed
This commit is contained in:
@@ -94,8 +94,6 @@ type context struct {
|
||||
bvals map[ssa.Value]llssa.Expr // block values
|
||||
vargs map[*ssa.Alloc][]llssa.Expr // varargs
|
||||
|
||||
instNamed map[*types.Named]none // makeInterface named
|
||||
|
||||
patches Patches
|
||||
blkInfos []blocks.Info
|
||||
|
||||
@@ -547,7 +545,6 @@ func (p *context) compileInstrOrValue(b llssa.Builder, iv instrOrValue, asValue
|
||||
}
|
||||
}
|
||||
prog := p.prog
|
||||
p.checkInstanceNamed(v.X.Type())
|
||||
t := prog.Type(v.Type(), llssa.InGo)
|
||||
x := p.compileValue(b, v.X)
|
||||
ret = b.MakeInterface(t, x)
|
||||
@@ -618,22 +615,6 @@ func (p *context) compileInstrOrValue(b llssa.Builder, iv instrOrValue, asValue
|
||||
return ret
|
||||
}
|
||||
|
||||
func (p *context) checkInstanceNamed(typ types.Type) {
|
||||
if pt, ok := typ.(*types.Pointer); ok {
|
||||
typ = pt.Elem()
|
||||
}
|
||||
named, ok := typ.(*types.Named)
|
||||
if !ok || named.TypeArgs() == nil {
|
||||
return
|
||||
}
|
||||
if _, ok := p.instNamed[named]; ok {
|
||||
return
|
||||
}
|
||||
p.instNamed[named] = none{}
|
||||
p.compileMethods(p.pkg, typ)
|
||||
p.compileMethods(p.pkg, types.NewPointer(typ))
|
||||
}
|
||||
|
||||
func (p *context) jumpTo(v *ssa.Jump) llssa.BasicBlock {
|
||||
fn := p.fn
|
||||
succs := v.Block().Succs
|
||||
@@ -831,7 +812,6 @@ func NewPackageEx(prog llssa.Program, patches Patches, pkg *ssa.Package, files [
|
||||
loaded: map[*types.Package]*pkgInfo{
|
||||
types.Unsafe: {kind: PkgDeclOnly}, // TODO(xsw): PkgNoInit or PkgDeclOnly?
|
||||
},
|
||||
instNamed: make(map[*types.Named]none),
|
||||
}
|
||||
ctx.initPyModule()
|
||||
ctx.initFiles(pkgPath, files)
|
||||
|
||||
Reference in New Issue
Block a user