all: use Go 1.22 range-over-int

Updates #11058

Change-Id: I35e7ef9b90e83cac04ca93fd964ad00ed5b48430
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2024-04-16 13:15:13 -07:00
committed by Brad Fitzpatrick
parent 068db1f972
commit 7c1d6e35a5
143 changed files with 280 additions and 282 deletions

View File

@@ -93,7 +93,7 @@ func (b *LocalBackend) driveSetShareLocked(share *drive.Share) (views.SliceView[
addedShare := false
var shares []*drive.Share
for i := 0; i < existingShares.Len(); i++ {
for i := range existingShares.Len() {
existing := existingShares.At(i)
if existing.Name() != share.Name {
if !addedShare && existing.Name() > share.Name {
@@ -152,7 +152,7 @@ func (b *LocalBackend) driveRenameShareLocked(oldName, newName string) (views.Sl
found := false
var shares []*drive.Share
for i := 0; i < existingShares.Len(); i++ {
for i := range existingShares.Len() {
existing := existingShares.At(i)
if existing.Name() == newName {
return existingShares, os.ErrExist
@@ -213,7 +213,7 @@ func (b *LocalBackend) driveRemoveShareLocked(name string) (views.SliceView[*dri
found := false
var shares []*drive.Share
for i := 0; i < existingShares.Len(); i++ {
for i := range existingShares.Len() {
existing := existingShares.At(i)
if existing.Name() != name {
shares = append(shares, existing.AsStruct())
@@ -281,7 +281,7 @@ func driveShareViewsEqual(a *views.SliceView[*drive.Share, drive.ShareView], b v
return false
}
for i := 0; i < a.Len(); i++ {
for i := range a.Len() {
if !drive.ShareViewsEqual(a.At(i), b.At(i)) {
return false
}

View File

@@ -446,7 +446,7 @@ func NewLocalBackend(logf logger.Logf, logID logid.PublicID, sys *tsd.System, lo
currentShares := b.pm.prefs.DriveShares()
if currentShares.Len() > 0 {
var shares []*drive.Share
for i := 0; i < currentShares.Len(); i++ {
for i := range currentShares.Len() {
shares = append(shares, currentShares.At(i).AsStruct())
}
fs.SetShares(shares)
@@ -1855,7 +1855,7 @@ func (b *LocalBackend) updateFilterLocked(netMap *netmap.NetworkMap, prefs ipn.P
}
if prefs.Valid() {
ar := prefs.AdvertiseRoutes()
for i := 0; i < ar.Len(); i++ {
for i := range ar.Len() {
r := ar.At(i)
if r.Bits() == 0 {
// When offering a default route to the world, we
@@ -5418,7 +5418,7 @@ func (b *LocalBackend) OfferingExitNode() bool {
}
var def4, def6 bool
ar := b.pm.CurrentPrefs().AdvertiseRoutes()
for i := 0; i < ar.Len(); i++ {
for i := range ar.Len() {
r := ar.At(i)
if r.Bits() != 0 {
continue

View File

@@ -949,7 +949,7 @@ func TestUpdateNetmapDelta(t *testing.T) {
}
b.netMap = &netmap.NetworkMap{}
for i := 0; i < 5; i++ {
for i := range 5 {
b.netMap.Peers = append(b.netMap.Peers, (&tailcfg.Node{ID: (tailcfg.NodeID(i) + 1)}).View())
}
b.updatePeersFromNetmapLocked(b.netMap)

View File

@@ -39,7 +39,7 @@ func TestLocalLogLines(t *testing.T) {
logid := func(hex byte) logid.PublicID {
var ret logid.PublicID
for i := 0; i < len(ret); i++ {
for i := range len(ret) {
ret[i] = hex
}
return ret

View File

@@ -338,7 +338,7 @@ func (b *LocalBackend) tkaBootstrapFromGenesisLocked(g tkatype.MarshaledAUM, per
}
bootstrapStateID := fmt.Sprintf("%d:%d", genesis.State.StateID1, genesis.State.StateID2)
for i := 0; i < persist.DisallowedTKAStateIDs().Len(); i++ {
for i := range persist.DisallowedTKAStateIDs().Len() {
stateID := persist.DisallowedTKAStateIDs().At(i)
if stateID == bootstrapStateID {
return fmt.Errorf("TKA with stateID of %q is disallowed on this node", stateID)
@@ -439,7 +439,7 @@ func (b *LocalBackend) NetworkLockStatus() *ipnstate.NetworkLockStatus {
}
filtered := make([]*ipnstate.TKAFilteredPeer, len(b.tka.filtered))
for i := 0; i < len(filtered); i++ {
for i := range len(filtered) {
filtered[i] = b.tka.filtered[i].Clone()
}
@@ -765,7 +765,7 @@ func (b *LocalBackend) NetworkLockLog(maxEntries int) ([]ipnstate.NetworkLockUpd
var out []ipnstate.NetworkLockUpdate
cursor := b.tka.authority.Head()
for i := 0; i < maxEntries; i++ {
for range maxEntries {
aum, err := b.tka.storage.AUM(cursor)
if err != nil {
if err == os.ErrNotExist {

View File

@@ -109,7 +109,7 @@ func fileHasContents(name string, want string) check {
func hexAll(v string) string {
var sb strings.Builder
for i := 0; i < len(v); i++ {
for i := range len(v) {
fmt.Fprintf(&sb, "%%%02x", v[i])
}
return sb.String()
@@ -604,7 +604,7 @@ func TestFileDeleteRace(t *testing.T) {
ps: ps,
}
buf := make([]byte, 2<<20)
for i := 0; i < 30; i++ {
for range 30 {
rr := httptest.NewRecorder()
ph.ServeHTTP(rr, httptest.NewRequest("PUT", "http://100.100.100.101:123/v0/put/foo.txt", bytes.NewReader(buf[:rand.Intn(len(buf))])))
if res := rr.Result(); res.StatusCode != 200 {

View File

@@ -868,7 +868,7 @@ func expandProxyArg(s string) (targetURL string, insecureSkipVerify bool) {
}
func allNumeric(s string) bool {
for i := 0; i < len(s); i++ {
for i := range len(s) {
if s[i] < '0' || s[i] > '9' {
return false
}

View File

@@ -70,7 +70,7 @@ func (nt *notifyThrottler) drain(count int) []ipn.Notify {
nt.mu.Unlock()
nn := []ipn.Notify{}
for i := 0; i < count; i++ {
for i := range count {
select {
case n := <-ch:
nn = append(nn, n)
@@ -1039,7 +1039,7 @@ func TestWGEngineStatusRace(t *testing.T) {
// we would end up in state ipn.Running.
// The same should thus be true if these callbacks occur concurrently.
var wg sync.WaitGroup
for i := 0; i < 100; i++ {
for i := range 100 {
wg.Add(1)
go func(i int) {
defer wg.Done()

View File

@@ -342,7 +342,7 @@ func userIDFromString(v string) string {
}
func isAllDigit(s string) bool {
for i := 0; i < len(s); i++ {
for i := range len(s) {
if b := s[i]; b < '0' || b > '9' {
return false
}

View File

@@ -247,7 +247,7 @@ func (h *Handler) serveDebugDERPRegion(w http.ResponseWriter, r *http.Request) {
// Next, repeatedly get the server key to see if the node is
// behind a load balancer (incorrectly).
serverPubKeys := make(map[key.NodePublic]bool)
for i := 0; i < 5; i++ {
for i := range 5 {
func() {
rc := derphttp.NewRegionClient(fakePrivKey, h.logf, h.netMon, func() *tailcfg.DERPRegion {
return &tailcfg.DERPRegion{

View File

@@ -903,7 +903,7 @@ func (h *Handler) serveDebugDialTypes(w http.ResponseWriter, r *http.Request) {
}
wg.Wait()
for i := 0; i < len(dialers); i++ {
for range len(dialers) {
res := <-results
fmt.Fprintf(w, "[%s] connected=%v err=%v\n", res.name, res.conn != nil, res.err)
if res.conn != nil {

View File

@@ -363,7 +363,7 @@ func applyPrefsEdits(src, dst reflect.Value, mask map[string]reflect.Value) {
func maskFields(v reflect.Value) map[string]reflect.Value {
mask := make(map[string]reflect.Value)
for i := 0; i < v.NumField(); i++ {
for i := range v.NumField() {
f := v.Type().Field(i).Name
if !strings.HasSuffix(f, "Set") {
continue

View File

@@ -26,7 +26,7 @@ import (
)
func fieldsOf(t reflect.Type) (fields []string) {
for i := 0; i < t.NumField(); i++ {
for i := range t.NumField() {
fields = append(fields, t.Field(i).Name)
}
return
@@ -661,7 +661,7 @@ func TestMaskedPrefsFields(t *testing.T) {
// ApplyEdits assumes.
pt := reflect.TypeFor[Prefs]()
mt := reflect.TypeFor[MaskedPrefs]()
for i := 0; i < mt.NumField(); i++ {
for i := range mt.NumField() {
name := mt.Field(i).Name
if i == 0 {
if name != "Prefs" {