From 3d15bfaa3e05c321dbec48bbcc634a3759b0b18a Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Sun, 20 Aug 2023 15:07:00 -0700 Subject: cmd/compile/internal/types: simplify iterating all parameters The types.RecvsParamsResults, etc. helpers existed to make it "easier" to iterate over all parameters, or recvs+params, or params+results; but they end up still being quite clumsy to use due to the design goal of not allocating temporary slices. Now that recvs+params+results are stored in a single consecutive slice anyway, we can just return different subslices and simplify the loops. Change-Id: I84791b80dc099dfbfbbe6eddbc006135528c23b4 Reviewed-on: https://go-review.googlesource.com/c/go/+/521375 Auto-Submit: Matthew Dempsky TryBot-Result: Gopher Robot Reviewed-by: Cuong Manh Le Run-TryBot: Matthew Dempsky Reviewed-by: Than McIntosh --- src/cmd/compile/internal/noder/linker.go | 6 ++---- src/cmd/compile/internal/noder/reader.go | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) (limited to 'src/cmd/compile/internal/noder') diff --git a/src/cmd/compile/internal/noder/linker.go b/src/cmd/compile/internal/noder/linker.go index 71e57741a0..3a0b32501d 100644 --- a/src/cmd/compile/internal/noder/linker.go +++ b/src/cmd/compile/internal/noder/linker.go @@ -289,10 +289,8 @@ func (l *linker) relocFuncExt(w *pkgbits.Encoder, name *ir.Name) { w.Uint64(uint64(name.Func.ABI)) // Escape analysis. - for _, fs := range &types.RecvsParams { - for _, f := range fs(name.Type()) { - w.String(f.Note) - } + for _, f := range name.Type().RecvParams() { + w.String(f.Note) } if inl := name.Func.Inl; w.Bool(inl != nil) { diff --git a/src/cmd/compile/internal/noder/reader.go b/src/cmd/compile/internal/noder/reader.go index 6ab7b272a6..2a526dbe69 100644 --- a/src/cmd/compile/internal/noder/reader.go +++ b/src/cmd/compile/internal/noder/reader.go @@ -1109,10 +1109,8 @@ func (r *reader) funcExt(name *ir.Name, method *types.Sym) { fn.ABI = obj.ABI(r.Uint64()) // Escape analysis. - for _, fs := range &types.RecvsParams { - for _, f := range fs(name.Type()) { - f.Note = r.String() - } + for _, f := range name.Type().RecvParams() { + f.Note = r.String() } if r.Bool() { -- cgit v1.3