all: simplify code by using modern Go constructs
Generated using modernize by running:
go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./...
Change-Id: Ifc7d61cf6735cc53f2bdf890a338961f55075af5
Reviewed-on: https://go-review.googlesource.com/c/sys/+/661975
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
diff --git a/cpu/parse.go b/cpu/parse.go
index 762b63d..56a7e1a 100644
--- a/cpu/parse.go
+++ b/cpu/parse.go
@@ -13,7 +13,7 @@
// https://golang.org/cl/209597.
func parseRelease(rel string) (major, minor, patch int, ok bool) {
// Strip anything after a dash or plus.
- for i := 0; i < len(rel); i++ {
+ for i := range len(rel) {
if rel[i] == '-' || rel[i] == '+' {
rel = rel[:i]
break
@@ -21,7 +21,7 @@
}
next := func() (int, bool) {
- for i := 0; i < len(rel); i++ {
+ for i := range len(rel) {
if rel[i] == '.' {
ver, err := strconv.Atoi(rel[:i])
rel = rel[i+1:]
diff --git a/unix/dirent_test.go b/unix/dirent_test.go
index e47d091..f209fa1 100644
--- a/unix/dirent_test.go
+++ b/unix/dirent_test.go
@@ -107,7 +107,7 @@
d := t.TempDir()
var files []string
- for i := 0; i < N; i++ {
+ for i := range N {
files = append(files, fmt.Sprintf("file%d", i))
}
for _, file := range files {
diff --git a/unix/fdset_test.go b/unix/fdset_test.go
index 26d05c7..7d08f69 100644
--- a/unix/fdset_test.go
+++ b/unix/fdset_test.go
@@ -15,21 +15,21 @@
func TestFdSet(t *testing.T) {
var fdSet unix.FdSet
fdSet.Zero()
- for fd := 0; fd < unix.FD_SETSIZE; fd++ {
+ for fd := range unix.FD_SETSIZE {
if fdSet.IsSet(fd) {
t.Fatalf("Zero did not clear fd %d", fd)
}
fdSet.Set(fd)
}
- for fd := 0; fd < unix.FD_SETSIZE; fd++ {
+ for fd := range unix.FD_SETSIZE {
if !fdSet.IsSet(fd) {
t.Fatalf("IsSet(%d): expected true, got false", fd)
}
}
fdSet.Zero()
- for fd := 0; fd < unix.FD_SETSIZE; fd++ {
+ for fd := range unix.FD_SETSIZE {
if fdSet.IsSet(fd) {
t.Fatalf("Zero did not clear fd %d", fd)
}
@@ -39,7 +39,7 @@
fdSet.Set(fd)
}
- for fd := 0; fd < unix.FD_SETSIZE; fd++ {
+ for fd := range unix.FD_SETSIZE {
if fd&0x1 == 0x1 {
if !fdSet.IsSet(fd) {
t.Fatalf("IsSet(%d): expected true, got false", fd)
@@ -55,7 +55,7 @@
fdSet.Clear(fd)
}
- for fd := 0; fd < unix.FD_SETSIZE; fd++ {
+ for fd := range unix.FD_SETSIZE {
if fdSet.IsSet(fd) {
t.Fatalf("Clear(%d) did not clear fd", fd)
}
diff --git a/unix/internal/mkmerge/mkmerge.go b/unix/internal/mkmerge/mkmerge.go
index 52f1d12..06a6900 100644
--- a/unix/internal/mkmerge/mkmerge.go
+++ b/unix/internal/mkmerge/mkmerge.go
@@ -137,7 +137,7 @@
// filter parses and filters Go source code from src, removing top
// level declarations using keep as predicate.
// For src parameter, please see docs for parser.ParseFile.
-func filter(src interface{}, keep filterFn) ([]byte, error) {
+func filter(src any, keep filterFn) ([]byte, error) {
// Parse the src into an ast
fset := token.NewFileSet()
f, err := parser.ParseFile(fset, "", src, parser.ParseComments)
@@ -243,7 +243,7 @@
// getCodeSet returns the set of all top-level consts, types, and funcs from src.
// src must be string, []byte, or io.Reader (see go/parser.ParseFile docs)
-func getCodeSet(src interface{}) (*codeSet, error) {
+func getCodeSet(src any) (*codeSet, error) {
set := newCodeSet()
fset := token.NewFileSet()
diff --git a/unix/internal/mkmerge/mkmerge_test.go b/unix/internal/mkmerge/mkmerge_test.go
index 2566dad..29b584d 100644
--- a/unix/internal/mkmerge/mkmerge_test.go
+++ b/unix/internal/mkmerge/mkmerge_test.go
@@ -498,7 +498,7 @@
func addLineNr(src []byte) []byte {
lines := bytes.Split(src, []byte("\n"))
for i, line := range lines {
- lines[i] = []byte(fmt.Sprintf("%d: %s", i+1, line))
+ lines[i] = fmt.Appendf(nil, "%d: %s", i+1, line)
}
return bytes.Join(lines, []byte("\n"))
}
diff --git a/unix/syscall_linux.go b/unix/syscall_linux.go
index 230a945..4958a65 100644
--- a/unix/syscall_linux.go
+++ b/unix/syscall_linux.go
@@ -13,6 +13,7 @@
import (
"encoding/binary"
+ "slices"
"strconv"
"syscall"
"time"
@@ -417,7 +418,7 @@
return nil, 0, EINVAL
}
sa.raw.Family = AF_UNIX
- for i := 0; i < n; i++ {
+ for i := range n {
sa.raw.Path[i] = int8(name[i])
}
// length is family (uint16), name, NUL.
@@ -507,7 +508,7 @@
psm := (*[2]byte)(unsafe.Pointer(&sa.raw.Psm))
psm[0] = byte(sa.PSM)
psm[1] = byte(sa.PSM >> 8)
- for i := 0; i < len(sa.Addr); i++ {
+ for i := range len(sa.Addr) {
sa.raw.Bdaddr[i] = sa.Addr[len(sa.Addr)-1-i]
}
cid := (*[2]byte)(unsafe.Pointer(&sa.raw.Cid))
@@ -589,11 +590,11 @@
sa.raw.Family = AF_CAN
sa.raw.Ifindex = int32(sa.Ifindex)
rx := (*[4]byte)(unsafe.Pointer(&sa.RxID))
- for i := 0; i < 4; i++ {
+ for i := range 4 {
sa.raw.Addr[i] = rx[i]
}
tx := (*[4]byte)(unsafe.Pointer(&sa.TxID))
- for i := 0; i < 4; i++ {
+ for i := range 4 {
sa.raw.Addr[i+4] = tx[i]
}
return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil
@@ -618,11 +619,11 @@
sa.raw.Family = AF_CAN
sa.raw.Ifindex = int32(sa.Ifindex)
n := (*[8]byte)(unsafe.Pointer(&sa.Name))
- for i := 0; i < 8; i++ {
+ for i := range 8 {
sa.raw.Addr[i] = n[i]
}
p := (*[4]byte)(unsafe.Pointer(&sa.PGN))
- for i := 0; i < 4; i++ {
+ for i := range 4 {
sa.raw.Addr[i+8] = p[i]
}
sa.raw.Addr[12] = sa.Addr
@@ -911,7 +912,7 @@
// These are EBCDIC encoded by the kernel, but we still need to pad them
// with blanks. Initializing with blanks allows the caller to feed in either
// a padded or an unpadded string.
- for i := 0; i < 8; i++ {
+ for i := range 8 {
sa.raw.Nodeid[i] = ' '
sa.raw.User_id[i] = ' '
sa.raw.Name[i] = ' '
@@ -1148,7 +1149,7 @@
var user [8]byte
var name [8]byte
- for i := 0; i < 8; i++ {
+ for i := range 8 {
user[i] = byte(pp.User_id[i])
name[i] = byte(pp.Name[i])
}
@@ -1173,11 +1174,11 @@
Ifindex: int(pp.Ifindex),
}
name := (*[8]byte)(unsafe.Pointer(&sa.Name))
- for i := 0; i < 8; i++ {
+ for i := range 8 {
name[i] = pp.Addr[i]
}
pgn := (*[4]byte)(unsafe.Pointer(&sa.PGN))
- for i := 0; i < 4; i++ {
+ for i := range 4 {
pgn[i] = pp.Addr[i+8]
}
addr := (*[1]byte)(unsafe.Pointer(&sa.Addr))
@@ -1188,11 +1189,11 @@
Ifindex: int(pp.Ifindex),
}
rx := (*[4]byte)(unsafe.Pointer(&sa.RxID))
- for i := 0; i < 4; i++ {
+ for i := range 4 {
rx[i] = pp.Addr[i]
}
tx := (*[4]byte)(unsafe.Pointer(&sa.TxID))
- for i := 0; i < 4; i++ {
+ for i := range 4 {
tx[i] = pp.Addr[i+4]
}
return sa, nil
@@ -2216,10 +2217,7 @@
return
}
for i := 0; n > 0 && i < len(iovecs); i++ {
- m := int(iovecs[i].Len)
- if m > n {
- m = n
- }
+ m := min(int(iovecs[i].Len), n)
n -= m
if m > 0 {
raceWriteRange(unsafe.Pointer(iovecs[i].Base), m)
@@ -2270,10 +2268,7 @@
return
}
for i := 0; n > 0 && i < len(iovecs); i++ {
- m := int(iovecs[i].Len)
- if m > n {
- m = n
- }
+ m := min(int(iovecs[i].Len), n)
n -= m
if m > 0 {
raceReadRange(unsafe.Pointer(iovecs[i].Base), m)
@@ -2320,12 +2315,7 @@
return false
}
- for _, g := range groups {
- if g == gid {
- return true
- }
- }
- return false
+ return slices.Contains(groups, gid)
}
func isCapDacOverrideSet() bool {
diff --git a/unix/syscall_linux_test.go b/unix/syscall_linux_test.go
index d4ed887..d3075ca 100644
--- a/unix/syscall_linux_test.go
+++ b/unix/syscall_linux_test.go
@@ -367,7 +367,7 @@
var now time.Time
- for i := 0; i < 10; i++ {
+ for range 10 {
ut, err = unix.Time(nil)
if err != nil {
t.Fatalf("Time: %v", err)
@@ -555,7 +555,7 @@
cpu = 1
if !oldMask.IsSet(cpu) {
newMask.Zero()
- for i := 0; i < len(oldMask); i++ {
+ for i := range len(oldMask) {
if oldMask.IsSet(i) {
newMask.Set(i)
break
@@ -878,7 +878,7 @@
}
defer mi.Close()
bs := bufio.NewScanner(mi)
- wantPrefix := []byte(fmt.Sprintf("%v ", mountID))
+ wantPrefix := fmt.Appendf(nil, "%v ", mountID)
for bs.Scan() {
if !bytes.HasPrefix(bs.Bytes(), wantPrefix) {
continue
diff --git a/unix/xattr_test.go b/unix/xattr_test.go
index dfa208f..3b51114 100644
--- a/unix/xattr_test.go
+++ b/unix/xattr_test.go
@@ -10,6 +10,7 @@
"os"
"path/filepath"
"runtime"
+ "slices"
"strings"
"testing"
@@ -62,13 +63,7 @@
// name and Listxattr doesn't return the namespace prefix.
xattrWant = strings.TrimPrefix(xattrWant, "user.")
}
- found := false
- for _, name := range xattrs {
- if name == xattrWant {
- found = true
- break
- }
- }
+ found := slices.Contains(xattrs, xattrWant)
if !found {
t.Errorf("Listxattr did not return previously set attribute %q in attributes %v", xattrName, xattrs)
@@ -170,13 +165,7 @@
// name and Listxattr doesn't return the namespace prefix.
xattrWant = strings.TrimPrefix(xattrWant, "user.")
}
- found := false
- for _, name := range xattrs {
- if name == xattrWant {
- found = true
- break
- }
- }
+ found := slices.Contains(xattrs, xattrWant)
if !found {
t.Errorf("Flistxattr did not return previously set attribute %q in attributes %v", xattrName, xattrs)