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