From 237719bb8d401f2b600660b4f7ea025c9e7c1d91 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Thu, 20 Aug 2026 15:02:47 +0100 Subject: [PATCH] build: modernize with "go fix -slicesbackward": use slices.Backward --- fs/operations/operations.go | 8 ++++---- fs/sync/sync.go | 3 +-- fs/sync/sync_test.go | 4 ++-- fstest/fstest.go | 4 ++-- fstest/run.go | 4 ++-- 5 files changed, 11 insertions(+), 12 deletions(-) diff --git a/fs/operations/operations.go b/fs/operations/operations.go index b211d5154..b3b1ba5df 100644 --- a/fs/operations/operations.go +++ b/fs/operations/operations.go @@ -17,6 +17,7 @@ import ( "path" "path/filepath" "runtime" + "slices" "sort" "strconv" "strings" @@ -1569,8 +1570,7 @@ func Rmdirs(ctx context.Context, f fs.Fs, dir string, leaveRoot bool) error { errCount := errcount.New() // Delete all directories at the same level in parallel - for level := len(toDelete) - 1; level >= 0; level-- { - dirs := toDelete[level] + for level, dirs := range slices.Backward(toDelete) { if len(dirs) == 0 { continue } @@ -2511,8 +2511,8 @@ func DirMove(ctx context.Context, f fs.Fs, srcRemote, dstRemote string) (err err } // Remove the source directories in reverse order - for i := len(dirs) - 1; i >= 0; i-- { - err := f.Rmdir(ctx, dirs[i]) + for _, dir := range slices.Backward(dirs) { + err := f.Rmdir(ctx, dir) if err != nil { return fmt.Errorf("RenameDir rmdir: %w", err) } diff --git a/fs/sync/sync.go b/fs/sync/sync.go index 4892204ea..d53ac741c 100644 --- a/fs/sync/sync.go +++ b/fs/sync/sync.go @@ -684,8 +684,7 @@ func (s *syncCopyMove) deleteEmptyDirectories(ctx context.Context, f fs.Fs, entr sort.Sort(entries) var errorCount int var okCount int - for i := len(entries) - 1; i >= 0; i-- { - entry := entries[i] + for _, entry := range slices.Backward(entries) { dir, ok := entry.(fs.Directory) if ok { // TryRmdir only deletes empty directories diff --git a/fs/sync/sync_test.go b/fs/sync/sync_test.go index dbdfd6ec7..0a1f5a0eb 100644 --- a/fs/sync/sync_test.go +++ b/fs/sync/sync_test.go @@ -11,6 +11,7 @@ import ( "os" "os/exec" "runtime" + "slices" "sort" "strings" "testing" @@ -564,8 +565,7 @@ func TestSyncSetDelayedModTimes(t *testing.T) { // Timestamp the directories in reverse order ts := t1 - for i := len(dirs) - 1; i >= 0; i-- { - dir := dirs[i] + for _, dir := range slices.Backward(dirs) { _, err := operations.SetDirModTime(ctx, r.Flocal, nil, dir, ts) require.NoError(t, err) ts = ts.Add(time.Minute) diff --git a/fstest/fstest.go b/fstest/fstest.go index a0205a1c9..2267b0b43 100644 --- a/fstest/fstest.go +++ b/fstest/fstest.go @@ -15,6 +15,7 @@ import ( "path/filepath" "regexp" "runtime" + "slices" "sort" "strings" "testing" @@ -515,8 +516,7 @@ func Purge(f fs.Fs) { return nil }) sort.Strings(dirs) - for i := len(dirs) - 1; i >= 0; i-- { - dir := dirs[i] + for _, dir := range slices.Backward(dirs) { fs.Debugf(f, "Purge dir %q", dir) err := f.Rmdir(ctx, dir) if err != nil { diff --git a/fstest/run.go b/fstest/run.go index 7ac23e433..d5c25f263 100644 --- a/fstest/run.go +++ b/fstest/run.go @@ -33,6 +33,7 @@ import ( "os" "path" "path/filepath" + "slices" "sort" "testing" "time" @@ -181,8 +182,7 @@ func newRunIndividual(t *testing.T, individual bool) *Run { } require.NoError(t, err) sort.Strings(toDelete) - for i := len(toDelete) - 1; i >= 0; i-- { - dir := toDelete[i] + for _, dir := range slices.Backward(toDelete) { _ = Retry(t, fmt.Sprintf("removing dir %q", dir), func() error { return r.Fremote.Rmdir(ctx, dir) })