iter: expose fundamental types to Go 1.23

These were previously only available with GOEXPERIMENT=rangefunc.

For #61897.

Change-Id: I86aea5ae8be1f7a2975b623325811221ed40d384
Reviewed-on: https://go-review.googlesource.com/c/go/+/557836
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
This commit is contained in:
Russ Cox 2024-01-23 12:01:53 -05:00
parent 5122a6796e
commit 5a181c5042
7 changed files with 13 additions and 13 deletions

4
api/next/61897.txt Normal file
View file

@ -0,0 +1,4 @@
pkg iter, func Pull2[$0 interface{}, $1 interface{}](Seq2[$0, $1]) (func() ($0, $1, bool), func()) #61897
pkg iter, func Pull[$0 interface{}](Seq[$0]) (func() ($0, bool), func()) #61897
pkg iter, type Seq2[$0 interface{}, $1 interface{}] func(func($0, $1) bool) #61897
pkg iter, type Seq[$0 interface{}] func(func($0) bool) #61897

View file

@ -0,0 +1,4 @@
### Iterators
The new [`iter` package](/pkg/iter/) provides the basic definitions for
working with user-defined iterators.

View file

@ -0,0 +1 @@
<!-- see ../../3-iter.md -->

View file

@ -85,11 +85,9 @@ var depsRules = `
< internal/reflectlite
< errors
< internal/oserror, math/bits
< iter
< RUNTIME;
internal/race
< iter;
# slices depends on unsafe for overlapping check, cmp for comparison
# semantics, and math/bits for # calculating bitlength of numbers.
unsafe, cmp, math/bits
@ -389,7 +387,6 @@ var depsRules = `
internal/nettrace,
internal/poll,
internal/singleflight,
internal/race,
net/netip,
os
< net;

View file

@ -23,6 +23,7 @@ var stdPkgs = []string{
"html",
"image",
"io",
"iter",
"log",
"maps",
"math",

View file

@ -2,13 +2,8 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build goexperiment.rangefunc
// Package iter provides basic definitions and operations
// related to iteration in Go.
//
// This package is experimental and can only be imported
// when building with GOEXPERIMENT=rangefunc.
package iter
import (

View file

@ -2,12 +2,11 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build goexperiment.rangefunc
package iter
package iter_test
import (
"fmt"
. "iter"
"runtime"
"testing"
)
@ -33,7 +32,6 @@ func squares(n int) Seq2[int, int64] {
}
func TestPull(t *testing.T) {
for end := 0; end <= 3; end++ {
t.Run(fmt.Sprint(end), func(t *testing.T) {
ng := runtime.NumGoroutine()