aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/noder
diff options
context:
space:
mode:
authorMark Freeman <mark@golang.org>2026-03-26 13:08:31 -0400
committerGopher Robot <gobot@golang.org>2026-03-26 13:34:53 -0700
commitb4a084d3280331230cd6a8028cbb6e671b5af9cf (patch)
tree5d12a104536eb0a2b37d74ddec85a4f2546701f7 /src/cmd/compile/internal/noder
parent353d834da116dd87e7a64e24624cb59c6c273e34 (diff)
downloadgo-b4a084d3280331230cd6a8028cbb6e671b5af9cf.tar.xz
cmd/compile/internal/noder: shapeSig must return shaped signatures
Suppose a signature f[P any]() shaped to f[go.shape.int](). This function does not flag f[go.shape.int]() as having a shape because it does not mention a shaped type in its parameter or return fields. This doesn't seem right. Change-Id: I87c4e3b259328b7d27ff0a98d65ed400b4895a69 Reviewed-on: https://go-review.googlesource.com/c/go/+/759660 Auto-Submit: Mark Freeman <markfreeman@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Robert Griesemer <gri@google.com>
Diffstat (limited to 'src/cmd/compile/internal/noder')
-rw-r--r--src/cmd/compile/internal/noder/reader.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/noder/reader.go b/src/cmd/compile/internal/noder/reader.go
index 3ae1e2744f..fb5a099efe 100644
--- a/src/cmd/compile/internal/noder/reader.go
+++ b/src/cmd/compile/internal/noder/reader.go
@@ -4114,6 +4114,8 @@ const dictParamName = typecheck.LocalDictName
//
// The parameter types.Fields are all copied too, so their Nname
// fields can be initialized for use by the shape function.
+//
+// All signatures returned by shapeSig are marked as shaped.
func shapeSig(fn *ir.Func, dict *readerDict) *types.Type {
sig := fn.Nname.Type()
oldRecv := sig.Recv()
@@ -4136,5 +4138,7 @@ func shapeSig(fn *ir.Func, dict *readerDict) *types.Type {
results[i] = types.NewField(result.Pos, result.Sym, result.Type)
}
- return types.NewSignature(recv, params, results)
+ typ := types.NewSignature(recv, params, results)
+ typ.SetHasShape(true)
+ return typ
}