cmd/compile/internal/pkginit: remove dependency on typecheck.Resolve

The use of typecheck.Resolve was previously necessary to interoperate
with the non-unified frontend, because it hooked into iimport. It's no
longer necessary with unified IR, where we can just lookup the
".inittask" symbol and access Def directly.

Updates #57410.

Change-Id: I73bdfd53f65988ececd2b777743cd8b591a6db48
Reviewed-on: https://go-review.googlesource.com/c/go/+/458616
Auto-Submit: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
Matthew Dempsky 2022-12-20 12:00:36 -08:00 committed by Gopher Robot
parent 4a0e84a1be
commit 6d4101ea68
1 changed files with 4 additions and 4 deletions

View File

@ -75,14 +75,14 @@ func Task() *ir.Name {
// Find imported packages with init tasks.
for _, pkg := range typecheck.Target.Imports {
n := typecheck.Resolve(ir.NewIdent(base.Pos, pkg.Lookup(".inittask")))
if n.Op() == ir.ONONAME {
n, ok := pkg.Lookup(".inittask").Def.(*ir.Name)
if !ok {
continue
}
if n.Op() != ir.ONAME || n.(*ir.Name).Class != ir.PEXTERN {
if n.Op() != ir.ONAME || n.Class != ir.PEXTERN {
base.Fatalf("bad inittask: %v", n)
}
deps = append(deps, n.(*ir.Name).Linksym())
deps = append(deps, n.Linksym())
}
if base.Flag.ASan {
// Make an initialization function to call runtime.asanregisterglobals to register an