llgo/ssa: abiMapOf

This commit is contained in:
xushiwei
2024-06-14 22:07:48 +08:00
parent 47b20b01d0
commit 33d73eaecd
5 changed files with 63 additions and 5 deletions

View File

@@ -66,6 +66,8 @@ func (b Builder) abiTypeOf(t types.Type) func() Expr {
return b.abiFuncOf(t)
case *types.Slice:
return b.abiSliceOf(t)
case *types.Map:
return b.abiMapOf(t)
case *types.Array:
return b.abiArrayOf(t)
}
@@ -244,6 +246,14 @@ func (b Builder) abiPointerOf(t *types.Pointer) func() Expr {
}
}
func (b Builder) abiMapOf(t *types.Map) func() Expr {
key := b.abiType(t.Key())
elem := b.abiType(t.Elem())
return func() Expr {
return b.Call(b.Pkg.rtFunc("MapOf"), key, elem)
}
}
func (b Builder) abiSliceOf(t *types.Slice) func() Expr {
elem := b.abiType(t.Elem())
return func() Expr {