From 0f00add402261a41a1d16aca72b7a690d047a1b7 Mon Sep 17 00:00:00 2001 From: xushiwei Date: Thu, 25 Apr 2024 14:30:02 +0800 Subject: [PATCH] cl: pathOf(pkg) --- cl/compile.go | 2 +- cl/import.go | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/cl/compile.go b/cl/compile.go index dbd32cd0..0c72c90a 100644 --- a/cl/compile.go +++ b/cl/compile.go @@ -379,7 +379,7 @@ func NewPackage(prog llssa.Program, pkg *ssa.Package, files []*ast.File) (ret ll }) pkgTypes := pkg.Pkg - pkgName, pkgPath := pkgTypes.Name(), pkgTypes.Path() + pkgName, pkgPath := pkgTypes.Name(), pathOf(pkgTypes) ret = prog.NewPackage(pkgName, pkgPath) ctx := &context{ diff --git a/cl/import.go b/cl/import.go index c3f175cb..0509f648 100644 --- a/cl/import.go +++ b/cl/import.go @@ -51,7 +51,7 @@ func (p *context) importPkg(pkg *types.Package) { fset := p.fset names := scope.Names() contents := make(contentMap) - pkgPath := pkg.Path() + pkgPath := pathOf(pkg) for _, name := range names { if token.IsExported(name) { obj := scope.Lookup(name) @@ -105,12 +105,15 @@ func (p *context) initLinkname(pkgPath, line string) { } } -func fullName(pkg *types.Package, name string) string { - pkgPath := pkg.Name() - if pkgPath != "main" { - pkgPath = pkg.Path() +func pathOf(pkg *types.Package) string { + if pkg.Name() == "main" { + return "main" } - return pkgPath + "." + name + return pkg.Path() +} + +func fullName(pkg *types.Package, name string) string { + return pathOf(pkg) + "." + name } func funcName(pkg *types.Package, fn *ssa.Function) string {