diff options
| author | Robert Griesemer <gri@google.com> | 2026-03-31 15:38:36 -0700 |
|---|---|---|
| committer | Robert Griesemer <gri@google.com> | 2026-04-01 16:39:05 -0700 |
| commit | 238d7bddeba8436ff6eea8f9216978afb7d6e7cc (patch) | |
| tree | 0c63dbf6ba5151e25893f0ea2c6e6230e459db56 /src/cmd | |
| parent | 9301a3eab246d3ddb49415cfd892c00382189264 (diff) | |
| download | go-238d7bddeba8436ff6eea8f9216978afb7d6e7cc.tar.xz | |
go/types, types2: in range-over-func, the yield function cannot be variadic
Fixes #78483.
For #78314.
Change-Id: If83983c0bf79840aa02dc0d2fa8945f5e8b4e969
Reviewed-on: https://go-review.googlesource.com/c/go/+/761682
Auto-Submit: Robert Griesemer <gri@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Jakub Ciolek <jakub@ciolek.dev>
Reviewed-by: Robert Griesemer <gri@google.com>
Reviewed-by: Mark Freeman <markfreeman@google.com>
Diffstat (limited to 'src/cmd')
| -rw-r--r-- | src/cmd/compile/internal/types2/range.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/types2/range.go b/src/cmd/compile/internal/types2/range.go index ae6524d0e4..f7ecbb4c76 100644 --- a/src/cmd/compile/internal/types2/range.go +++ b/src/cmd/compile/internal/types2/range.go @@ -240,6 +240,7 @@ func rangeKeyVal(check *Checker, orig Type, allowVersion func(goVersion) bool) ( return bad("requires go1.23 or later") } // check iterator arity + // TODO(gri) error messages could be less verbose (consider rangeStmt error and cause returned here) switch { case typ.Params().Len() != 1: return bad("func must be func(yield func(...) bool): wrong argument count") @@ -266,6 +267,8 @@ func rangeKeyVal(check *Checker, orig Type, allowVersion func(goVersion) bool) ( } else { return bad("func must be func(yield func(...) bool): yield func does not return bool") } + case cb.Variadic(): + return bad(check.sprintf("yield func of type %s cannot be variadic", cb)) } assert(cb.Recv() == nil) // determine key and value types, if any |
