]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/compile: implement range over func
authorRuss Cox <rsc@golang.org>
Wed, 14 Jun 2023 14:56:49 +0000 (10:56 -0400)
committerGopher Robot <gobot@golang.org>
Wed, 20 Sep 2023 14:52:38 +0000 (14:52 +0000)
commit2fba42cb52e203d09878b385034b625788275663
tree1ed203fc5a0675d72f7dda10f35baeb5194d0503
parenta94347a05c74de989c9eb92d759ebc14eb12e021
cmd/compile: implement range over func

Add compiler support for range over functions.
See the large comment at the top of
cmd/compile/internal/rangefunc/rewrite.go for details.

This is only reachable if GOEXPERIMENT=range is set,
because otherwise type checking will fail.

For proposal #61405 (but behind a GOEXPERIMENT).
For #61717.

Change-Id: I05717f94e63089c503acc49b28b47edeb4e011b4
Reviewed-on: https://go-review.googlesource.com/c/go/+/510541
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Auto-Submit: Russ Cox <rsc@golang.org>
17 files changed:
src/cmd/compile/internal/escape/call.go
src/cmd/compile/internal/ir/expr.go
src/cmd/compile/internal/ir/stmt.go
src/cmd/compile/internal/ir/symtab.go
src/cmd/compile/internal/noder/irgen.go
src/cmd/compile/internal/noder/reader.go
src/cmd/compile/internal/noder/writer.go
src/cmd/compile/internal/rangefunc/rewrite.go [new file with mode: 0644]
src/cmd/compile/internal/ssagen/ssa.go
src/cmd/compile/internal/syntax/nodes.go
src/cmd/compile/internal/syntax/tokens.go
src/cmd/compile/internal/typecheck/_builtin/runtime.go
src/cmd/compile/internal/typecheck/builtin.go
src/cmd/compile/internal/walk/expr.go
src/cmd/compile/internal/walk/stmt.go
test/range3.go
test/rangegen.go [new file with mode: 0644]