Skip to content

Commit df7ed15

Browse files
authored
Merge pull request #3399 from alexandear-org/refactor/gopls-modernize
refactor: Simplify code with gopls modernize
2 parents 95717e1 + 2fa2dc8 commit df7ed15

File tree

16 files changed

+41
-62
lines changed

16 files changed

+41
-62
lines changed

.golangci.yml

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ linters:
1717
- godot
1818
- govet
1919
- ineffassign
20+
- intrange
2021
- misspell
2122
- nakedret
2223
- noctx

cmd/limactl/list.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ func fieldNames() []string {
2222
names := []string{}
2323
var data store.FormatData
2424
t := reflect.TypeOf(data)
25-
for i := 0; i < t.NumField(); i++ {
25+
for i := range t.NumField() {
2626
f := t.Field(i)
2727
if f.Anonymous {
28-
for j := 0; j < f.Type.NumField(); j++ {
28+
for j := range f.Type.NumField() {
2929
names = append(names, f.Type.Field(j).Name)
3030
}
3131
} else {

cmd/limactl/prune.go

+3-6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package main
55

66
import (
7+
"maps"
78
"os"
89

910
"github.com/lima-vm/lima/pkg/downloader"
@@ -73,9 +74,7 @@ func knownLocations() (map[string]limayaml.File, error) {
7374
if err != nil {
7475
return nil, err
7576
}
76-
for k, v := range locationsFromLimaYAML(instance.Config) {
77-
locations[k] = v
78-
}
77+
maps.Copy(locations, locationsFromLimaYAML(instance.Config))
7978
}
8079

8180
// Collect locations from templates
@@ -92,9 +91,7 @@ func knownLocations() (map[string]limayaml.File, error) {
9291
if err != nil {
9392
return nil, err
9493
}
95-
for k, v := range locationsFromLimaYAML(y) {
96-
locations[k] = v
97-
}
94+
maps.Copy(locations, locationsFromLimaYAML(y))
9895
}
9996
return locations, nil
10097
}

pkg/cidata/cidata.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"errors"
99
"fmt"
1010
"io"
11+
"maps"
1112
"net"
1213
"net/url"
1314
"os"
@@ -50,9 +51,7 @@ func setupEnv(instConfigEnv map[string]string, propagateProxyEnv bool, slirpGate
5051
return env, err
5152
}
5253
// env.* settings from lima.yaml override system settings without giving a warning
53-
for name, value := range instConfigEnv {
54-
env[name] = value
55-
}
54+
maps.Copy(env, instConfigEnv)
5655
// Current process environment setting override both system settings and env.*
5756
lowerVars := []string{"ftp_proxy", "http_proxy", "https_proxy", "no_proxy"}
5857
upperVars := make([]string, len(lowerVars))

pkg/downloader/downloader_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ func TestDownloadRemote(t *testing.T) {
9191
t.Run("parallel", func(t *testing.T) {
9292
cacheDir := filepath.Join(t.TempDir(), "cache")
9393
results := make(chan downloadResult, parallelDownloads)
94-
for i := 0; i < parallelDownloads; i++ {
94+
for range parallelDownloads {
9595
go func() {
9696
// Parallel download is supported only for different instances with unique localPath.
9797
localPath := filepath.Join(t.TempDir(), t.Name())
@@ -131,7 +131,7 @@ func TestDownloadRemote(t *testing.T) {
131131
t.Run("parallel", func(t *testing.T) {
132132
cacheDir := filepath.Join(t.TempDir(), "cache")
133133
results := make(chan downloadResult, parallelDownloads)
134-
for i := 0; i < parallelDownloads; i++ {
134+
for range parallelDownloads {
135135
go func() {
136136
r, err := Download(context.Background(), "", dummyRemoteFileURL,
137137
WithExpectedDigest(dummyRemoteFileDigest), WithCacheDir(cacheDir))
@@ -177,7 +177,7 @@ func TestDownloadRemote(t *testing.T) {
177177

178178
func countResults(t *testing.T, results chan downloadResult) (downloaded, cached int) {
179179
t.Helper()
180-
for i := 0; i < parallelDownloads; i++ {
180+
for range parallelDownloads {
181181
result := <-results
182182
if result.err != nil {
183183
t.Errorf("Download failed: %s", result.err)

pkg/guestagent/procnettcp/procnettcp.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ func ParseWithEndian(r io.Reader, kind Kind, isBE bool) ([]Entry, error) {
6565
fields := strings.Fields(line)
6666
switch i {
6767
case 0:
68-
for j := 0; j < len(fields); j++ {
68+
for j := range fields {
6969
fieldNames[fields[j]] = j
7070
}
7171
if _, ok := fieldNames["local_address"]; !ok {
@@ -135,18 +135,18 @@ func ParseAddressWithEndian(s string, isBE bool) (net.IP, uint16, error) {
135135
}
136136

137137
ipBytes := make([]byte, len(split[0])/2) // 4 bytes (8 chars) or 16 bytes (32 chars)
138-
for i := 0; i < len(split[0])/8; i++ {
138+
for i := range len(split[0]) / 8 {
139139
quartet := split[0][8*i : 8*(i+1)]
140140
quartetB, err := hex.DecodeString(quartet) // surprisingly little endian, per 4 bytes, on little endian hosts
141141
if err != nil {
142142
return nil, 0, fmt.Errorf("unparsable address %q: unparsable quartet %q: %w", s, quartet, err)
143143
}
144144
if isBE {
145-
for j := 0; j < len(quartetB); j++ {
145+
for j := range quartetB {
146146
ipBytes[4*i+j] = quartetB[j]
147147
}
148148
} else {
149-
for j := 0; j < len(quartetB); j++ {
149+
for j := range quartetB {
150150
ipBytes[4*i+len(quartetB)-1-j] = quartetB[j]
151151
}
152152
}

pkg/hostagent/requirements.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func (a *HostAgent) waitForRequirements(label string, requirements []requirement
2323

2424
for i, req := range requirements {
2525
retryLoop:
26-
for j := 0; j < retries; j++ {
26+
for j := range retries {
2727
logrus.Infof("Waiting for the %s requirement %d of %d: %q", label, i+1, len(requirements), req.description)
2828
err := a.waitForRequirement(req)
2929
if err == nil {

pkg/limatmpl/embed_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ func RunEmbedTest(t *testing.T, tc embedTestCase) {
437437
assert.NilError(t, err, tc.description)
438438
}
439439
tmpl := &limatmpl.Template{
440-
Bytes: []byte(fmt.Sprintf("base: base0.yaml\n%s", tc.template)),
440+
Bytes: fmt.Appendf(nil, "base: base0.yaml\n%s", tc.template),
441441
Locator: "tmpl.yaml",
442442
}
443443
// Don't include `base` property if base0 is a script

pkg/limatmpl/locator.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ images:
191191
- location: %q
192192
arch: %q
193193
`
194-
tmpl.Bytes = []byte(fmt.Sprintf(template, imageArch, locator, imageArch))
194+
tmpl.Bytes = fmt.Appendf(nil, template, imageArch, locator, imageArch)
195195
tmpl.Name = InstNameFromImageURL(locator, imageArch)
196196
return true
197197
}

pkg/limayaml/defaults.go

+10-27
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
_ "embed"
1010
"errors"
1111
"fmt"
12+
"maps"
1213
"net"
1314
"os"
1415
"os/user"
@@ -470,15 +471,9 @@ func FillDefault(y, d, o *LimaYAML, filePath string, warn bool) {
470471

471472
hosts := make(map[string]string)
472473
// Values can be either names or IP addresses. Name values are canonicalized in the hostResolver.
473-
for k, v := range d.HostResolver.Hosts {
474-
hosts[k] = v
475-
}
476-
for k, v := range y.HostResolver.Hosts {
477-
hosts[k] = v
478-
}
479-
for k, v := range o.HostResolver.Hosts {
480-
hosts[k] = v
481-
}
474+
maps.Copy(hosts, d.HostResolver.Hosts)
475+
maps.Copy(hosts, y.HostResolver.Hosts)
476+
maps.Copy(hosts, o.HostResolver.Hosts)
482477
y.HostResolver.Hosts = hosts
483478

484479
y.Provision = slices.Concat(o.Provision, y.Provision, d.Provision)
@@ -852,27 +847,15 @@ func FillDefault(y, d, o *LimaYAML, filePath string, warn bool) {
852847
}
853848

854849
env := make(map[string]string)
855-
for k, v := range d.Env {
856-
env[k] = v
857-
}
858-
for k, v := range y.Env {
859-
env[k] = v
860-
}
861-
for k, v := range o.Env {
862-
env[k] = v
863-
}
850+
maps.Copy(env, d.Env)
851+
maps.Copy(env, y.Env)
852+
maps.Copy(env, o.Env)
864853
y.Env = env
865854

866855
param := make(map[string]string)
867-
for k, v := range d.Param {
868-
param[k] = v
869-
}
870-
for k, v := range y.Param {
871-
param[k] = v
872-
}
873-
for k, v := range o.Param {
874-
param[k] = v
875-
}
856+
maps.Copy(param, d.Param)
857+
maps.Copy(param, y.Param)
858+
maps.Copy(param, o.Param)
876859
y.Param = param
877860

878861
if y.CACertificates.RemoveDefaults == nil {

pkg/limayaml/validate.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"path/filepath"
1313
"regexp"
1414
"runtime"
15+
"slices"
1516
"strconv"
1617
"strings"
1718
"unicode"
@@ -198,10 +199,8 @@ func Validate(y *LimaYAML, warn bool) error {
198199
return fmt.Errorf("field `mountType` must be %q or %q or %q, or %q, got %q", REVSSHFS, NINEP, VIRTIOFS, WSLMount, *y.MountType)
199200
}
200201

201-
for _, f := range y.MountTypesUnsupported {
202-
if f == *y.MountType {
203-
return fmt.Errorf("field `mountType` must not be one of %v (`mountTypesUnsupported`), got %q", y.MountTypesUnsupported, *y.MountType)
204-
}
202+
if slices.Contains(y.MountTypesUnsupported, *y.MountType) {
203+
return fmt.Errorf("field `mountType` must not be one of %v (`mountTypesUnsupported`), got %q", y.MountTypesUnsupported, *y.MountType)
205204
}
206205

207206
if warn && runtime.GOOS != "linux" {
@@ -341,7 +340,7 @@ func Validate(y *LimaYAML, warn bool) error {
341340
return err
342341
}
343342
}
344-
for j := 0; j < 2; j++ {
343+
for j := range 2 {
345344
if err := validatePort(fmt.Sprintf("%s.guestPortRange[%d]", field, j), rule.GuestPortRange[j]); err != nil {
346345
return err
347346
}

pkg/lockutil/lockutil_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func TestWithDirLock(t *testing.T) {
2121
log := filepath.Join(dir, "log")
2222

2323
errc := make(chan error, 10)
24-
for i := 0; i < parallel; i++ {
24+
for i := range parallel {
2525
go func() {
2626
err := WithDirLock(dir, func() error {
2727
if _, err := os.Stat(log); err == nil {
@@ -43,7 +43,7 @@ func TestWithDirLock(t *testing.T) {
4343
}()
4444
}
4545

46-
for i := 0; i < parallel; i++ {
46+
for range parallel {
4747
err := <-errc
4848
if err != nil {
4949
t.Error(err)

pkg/networks/validate.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func (c *Config) Validate() error {
2121
paths := reflect.ValueOf(&c.Paths).Elem()
2222
pathsMap := make(map[string]string, paths.NumField())
2323
var socketVMNetNotFound bool
24-
for i := 0; i < paths.NumField(); i++ {
24+
for i := range paths.NumField() {
2525
// extract YAML name from struct tag; strip options like "omitempty"
2626
name := paths.Type().Field(i).Tag.Get("yaml")
2727
if i := strings.IndexRune(name, ','); i > -1 {

pkg/qemu/qemu_driver.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ func (l *LimaQemuDriver) Start(ctx context.Context) (chan error, error) {
149149

150150
vhostSock := filepath.Join(l.Instance.Dir, fmt.Sprintf(filenames.VhostSock, i))
151151
vhostSockExists := false
152-
for attempt := 0; attempt < 5; attempt++ {
152+
for attempt := range 5 {
153153
logrus.Debugf("Try waiting for %s to appear (attempt %d)", vhostSock, attempt)
154154

155155
if _, err := os.Stat(vhostSock); err != nil {

pkg/reflectutil/reflectutil.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func UnknownNonEmptyFields(structOrStructPtr any, knownNames ...string) []string
3838
default:
3939
panic(fmt.Errorf("expected Ptr or Struct, got %+v", kind))
4040
}
41-
for i := 0; i < val.NumField(); i++ {
41+
for i := range val.NumField() {
4242
iField := val.Field(i)
4343
if isEmpty(iField) {
4444
continue

pkg/vz/network_darwin_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,14 @@ func TestDialQemu(t *testing.T) {
4949
go func() {
5050
t.Log("Sender started")
5151
buf := make([]byte, vmnetMaxPacketSize)
52-
for i := 0; i < vmnetMaxPacketSize; i++ {
52+
for i := range vmnetMaxPacketSize {
5353
buf[i] = 0x55
5454
}
5555

5656
// data packet format:
5757
// 0-4 packet number
5858
// 4-1514 0x55 ...
59-
for i := 0; i < packetsCount; i++ {
59+
for i := range packetsCount {
6060
binary.BigEndian.PutUint32(buf, uint32(i))
6161
if _, err := vzConn.Write(buf); err != nil {
6262
errc <- err
@@ -82,7 +82,7 @@ func TestDialQemu(t *testing.T) {
8282
buf := make([]byte, vmnetMaxPacketSize)
8383

8484
t.Logf("Receiving and verifying data packets...")
85-
for i := 0; i < packetsCount; i++ {
85+
for i := range packetsCount {
8686
n, err := vzConn.Read(buf)
8787
assert.NilError(t, err)
8888
assert.Assert(t, n >= vmnetMaxPacketSize, "unexpected number of bytes")
@@ -96,7 +96,7 @@ func TestDialQemu(t *testing.T) {
9696
}
9797
t.Logf("Received and verified %d data packets", packetsCount)
9898

99-
for i := 0; i < 2; i++ {
99+
for range 2 {
100100
err := <-errc
101101
assert.NilError(t, err)
102102
}

0 commit comments

Comments
 (0)