]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile/internal/pkginit: remove dependency on typecheck.Resolve
authorMatthew Dempsky <mdempsky@google.com>
Tue, 20 Dec 2022 20:00:36 +0000 (12:00 -0800)
committerGopher Robot <gobot@golang.org>
Thu, 26 Jan 2023 00:28:25 +0000 (00:28 +0000)
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>
src/cmd/compile/internal/pkginit/init.go

index e13a7fbfe0944516b9b1fbe3d8222b0ef86361cc..57593fdb9b7e7e09711cdf37960805602013c680 100644 (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