diff options
| author | Mark Freeman <mark@golang.org> | 2026-03-26 13:08:31 -0400 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2026-03-26 13:34:53 -0700 |
| commit | b4a084d3280331230cd6a8028cbb6e671b5af9cf (patch) | |
| tree | 5d12a104536eb0a2b37d74ddec85a4f2546701f7 /src/cmd/compile/internal/noder/reader.go | |
| parent | 353d834da116dd87e7a64e24624cb59c6c273e34 (diff) | |
| download | go-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/reader.go')
| -rw-r--r-- | src/cmd/compile/internal/noder/reader.go | 6 |
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 } |
