llgo/ssa: abiMethodOf; AfterInit bugfix

This commit is contained in:
xushiwei
2024-05-27 14:32:23 +08:00
parent c0a156f347
commit 8e89dc8aa9
10 changed files with 567 additions and 266 deletions

View File

@@ -417,4 +417,24 @@ func PathOf(pkg *types.Package) string {
return abi.PathOf(pkg)
}
// FuncName:
// - func: pkg.name
// - method: (pkg.T).name, (*pkg.T).name
func FuncName(pkg *types.Package, name string, recv *types.Var) string {
if recv != nil {
var tName string
t := recv.Type()
if tp, ok := t.(*types.Pointer); ok {
t, tName = tp.Elem(), "*"
}
tName += NameOf(t.(*types.Named))
return "(" + tName + ")." + name
}
ret := FullName(pkg, name)
if ret == "main.main" {
ret = "main"
}
return ret
}
// -----------------------------------------------------------------------------