ssa: map delete, map eql nil
This commit is contained in:
@@ -289,22 +289,14 @@ func (b Builder) abiChanOf(t *types.Chan) func() Expr {
|
||||
func (b Builder) abiMapOf(t *types.Map) func() Expr {
|
||||
key := b.abiTypeOf(t.Key())
|
||||
elem := b.abiTypeOf(t.Elem())
|
||||
bucket := b.abiTypeOf(b.bucketType(t))
|
||||
flags := abi.MapTypeFlags(t, (*goProgram)(b.Prog))
|
||||
sizes := (*goProgram)(b.Prog)
|
||||
bucket := b.abiTypeOf(abi.MapBucketType(t, sizes))
|
||||
flags := abi.MapTypeFlags(t, sizes)
|
||||
return func() Expr {
|
||||
return b.Call(b.Pkg.rtFunc("MapOf"), key(), elem(), bucket(), b.Prog.Val(flags))
|
||||
}
|
||||
}
|
||||
|
||||
func (b Builder) bucketType(t *types.Map) types.Type {
|
||||
if bucket, ok := b.Pkg.bucket[t]; ok {
|
||||
return bucket
|
||||
}
|
||||
bucket := abi.MapBucketType(t, (*goProgram)(b.Prog))
|
||||
b.Pkg.bucket[t] = bucket
|
||||
return bucket
|
||||
}
|
||||
|
||||
// func StructField(name string, typ *abi.Type, off uintptr, tag string, embedded bool)
|
||||
// func Struct(pkgPath string, size uintptr, fields []abi.StructField)
|
||||
func (b Builder) abiStructOf(t *types.Struct) func() Expr {
|
||||
|
||||
Reference in New Issue
Block a user